erf_2.F90 (dg-options): Add -mieee for alpha*-*-* targets.
[gcc.git] / gcc / ChangeLog
1 2009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2
3 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
4 definition to bool (from int) to un-break build.
5 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
6
7 2009-05-24 Paolo Bonzini <bonzini@gnu.org>
8
9 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
10 discard_stmt_changes): Delete.
11 * tree-ssa-operands.c (scb_stack): Delete.
12 (init_ssa_operands): Do not initialize it.
13 (fini_ssa_operands): Do not free it.
14 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
15
16 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
17 update_stmt, remove the others. Fix comments.
18 * tree-dfa.c (optimize_stack_restore): Likewise.
19 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
20 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
21 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
22 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
23 Likewise.
24 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
25 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
26 (dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
27 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
28 (stmts_to_rescan): Change item type to gimple.
29 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
30
31 2009-05-24 Ira Rosen <irar@il.ibm.com>
32
33 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
34 * tree-pass.h (pass_slp_vectorize): New pass.
35 * params.h (SLP_MAX_INSNS_IN_BB): Define.
36 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
37 * tree-vectorizer.c (timevar.h): Include.
38 (user_vect_verbosity_level): Declare.
39 (vect_location): Fix comment.
40 (vect_set_verbosity_level): Update user_vect_verbosity_level
41 instead of vect_verbosity_level.
42 (vect_set_dump_settings): Add an argument. Ignore user defined
43 verbosity if dump flags require higher level of verbosity. Print to
44 stderr only for loop vectorization.
45 (vectorize_loops): Update call to vect_set_dump_settings.
46 (execute_vect_slp): New function.
47 (gate_vect_slp): Likewise.
48 (struct gimple_opt_pass pass_slp_vectorize): New.
49 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
50 access its members.
51 (vec_info_for_bb): New function.
52 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
53 (VECTORIZATION_ENABLED): New macro.
54 (SLP_ENABLED, SLP_DISABLED): Likewise.
55 (vect_is_simple_use): Add bb_vec_info argument.
56 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
57 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
58 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
59 vect_schedule_slp, vect_analyze_slp): Likewise.
60 (vect_analyze_stmt): Add slp_tree argument.
61 (find_bb_location): Declare.
62 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
63 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
64 (vect_analyze_loop_operations, vect_analyze_loop,
65 get_initial_def_for_induction, vect_create_epilog_for_reduction,
66 vect_finalize_reduction, vectorizable_reduction,
67 vectorizable_live_operation, vect_transform_loop): Likewise.
68 * tree-data-ref.c (dr_analyze_innermost): Update comment,
69 skip evolution analysis if analyzing a basic block.
70 (dr_analyze_indices): Likewise.
71 (initialize_data_dependence_relation): Skip the test whether the
72 object is invariant for basic blocks.
73 (compute_all_dependences): Skip dependence analysis for data
74 references in basic blocks.
75 (find_data_references_in_stmt): Don't fail in case of invariant
76 access in basic block.
77 (find_data_references_in_bb): New function.
78 (find_data_references_in_loop): Move code to
79 find_data_references_in_bb and add a call to it.
80 (compute_data_dependences_for_bb): New function.
81 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
82 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
83 that STEP is 0.
84 (vect_analyze_data_ref_dependence): Check for interleaving in case of
85 unknown dependence in basic block and fail in case of dependence in
86 basic block.
87 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
88 dependence instances from either loop or basic block vectorization
89 info.
90 (vect_compute_data_ref_alignment): Check if it is loop vectorization
91 before calling nested_in_vect_loop_p.
92 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
93 dependence instances from either loop or basic block vectorization
94 info.
95 (vect_verify_datarefs_alignment): Likewise.
96 (vect_enhance_data_refs_alignment): Adjust function calls.
97 (vect_analyze_data_refs_alignment): Likewise.
98 (vect_analyze_group_access): Fix printing. Skip different checks if
99 DR_STEP is 0. Keep strided stores either in loop or basic block
100 vectorization data structure. Fix indentation.
101 (vect_analyze_data_ref_access): Fix comments, allow zero step in
102 basic blocks.
103 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
104 dependence instances from either loop or basic block vectorization
105 info.
106 (vect_analyze_data_refs): Update comment. Call
107 compute_data_dependences_for_bb to analyze basic blocks.
108 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
109 case of loop vectorization. In case of basic block vectorization use
110 data-ref itself as a base.
111 (vect_create_data_ref_ptr): In case of basic block vectorization:
112 don't advance the pointer, add new statements before the current
113 statement. Adjust function calls.
114 (vect_supportable_dr_alignment): Support only aligned accesses in
115 basic block vectorization.
116 * common.opt (ftree-slp-vectorize): New flag.
117 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
118 (vect_pattern_recog_1): Likewise.
119 * tree-vect-stmts.c (process_use): Likewise.
120 (vect_init_vector): Add new statements in the beginning of the basic
121 block in case of basic block SLP.
122 (vect_get_vec_def_for_operand): Adjust function calls.
123 (vect_finish_stmt_generation): Likewise.
124 (vectorizable_call): Add assert that it is loop vectorization, adjust
125 function calls.
126 (vectorizable_conversion, vectorizable_assignment): Likewise.
127 (vectorizable_operation): In case of basic block SLP, take
128 vectorization factor from statement's type and skip the relevance
129 check. Adjust function calls.
130 (vectorizable_type_demotion): Add assert that it is loop
131 vectorization, adjust function calls.
132 (vectorizable_type_promotion): Likewise.
133 (vectorizable_store): Check for outer loop only in case of loop
134 vectorization. Adjust function calls. For basic blocks, skip the
135 relevance check and don't advance pointers.
136 (vectorizable_load): Likewise.
137 (vectorizable_condition): Add assert that it is loop vectorization,
138 adjust function calls.
139 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
140 that it is not reduction, get vector type, call only supported
141 functions, skip loop specific parts.
142 (vect_transform_stmt): Check for outer loop only in case of loop
143 vectorization.
144 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
145 (vect_is_simple_use): Fix comment, add new argument, fix conditions
146 for external definition.
147 * passes.c (pass_slp_vectorize): New pass.
148 * tree-vect-slp.c (find_bb_location): New function.
149 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
150 check for patterns only in loops.
151 (vect_build_slp_tree): Add argument, adjust function calls, fail in
152 case of multiple types in basic block SLP.
153 (vect_mark_slp_stmts_relevant): New function.
154 (vect_supported_load_permutation_p): Fix comment.
155 (vect_analyze_slp_instance): Add argument. In case of basic block
156 SLP, take vectorization factor from statement's type, check that
157 unrolling factor is 1. Adjust function call. Save SLP instance in
158 either loop or basic block vectorization structure. Return FALSE,
159 if SLP failed.
160 (vect_analyze_slp): Add argument. Get strided stores groups from
161 either loop or basic block vectorization structure. Return FALSE
162 if basic block SLP failed.
163 (new_bb_vec_info): New function.
164 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
165 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
166 (vect_schedule_slp): Add argument. Get SLP instances from either
167 loop or basic block vectorization structure. Set vectorization factor
168 to be 1 for basic block SLP.
169 (vect_slp_transform_bb): New function.
170 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
171
172 2009-05-23 Mark Mitchell <mark@codesourcery.com>
173
174 * final.c (shorten_branches): Do not align labels for jump tables.
175 (final_scan_insn): Use JUMP_TABLE_DATA_P.
176
177 2009-05-23 Eric Botcazou <ebotcazou@adacore.com>
178
179 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
180 Remove outdated reference to flow.c and fix nits.
181 * doc/gccint.texi: Tweak RTL description.
182 * doc/rtl.texi: Likewise.
183
184 2009-05-23 Denis Chertykov <chertykov@gmail.com>
185
186 * config/avr/avr.c: Change my email address.
187 * config/avr/avr.h: Likewise.
188 * config/avr/avr.md: Likewise.
189 * config/avr/avr-protos.h: Likewise.
190 * config/avr/libgcc.S: Likewise.
191
192 2009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
193
194 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
195 (spu_split_load, spu_split_store): Change return type to int.
196 (spu_split_convert): Declare.
197 * config/spu/predicates.md (spu_mem_operand): Remove.
198 (spu_mov_operand): Update.
199 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
200 * config/spu/spu.c (regno_aligned_for_load): Remove.
201 (reg_aligned_for_addr, spu_expand_load): Define.
202 (spu_expand_extv): Reimplement and handle MEM.
203 (spu_expand_insv): Handle MEM.
204 (spu_sched_reorder): Handle insn's with length 0.
205 (spu_legitimate_address_p): Reimplement.
206 (store_with_one_insn_p): Return TRUE for any mode with size
207 larger than 16 bytes.
208 (address_needs_split): Define.
209 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
210 operands.
211 (spu_convert_move): Define.
212 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
213 (spu_split_store): Change all MEM's to TImode.
214 (spu_init_expanders): Preallocate registers that correspond to
215 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
216 mark_reg_pointer.
217 (spu_split_convert): Define.
218 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
219 (_move<mode>, _movdi, _movti): Update predicate and condition.
220 (load, store): Change to define_split.
221 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
222 extend<mode>ti2.
223 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
224 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
225 define_insn_and_split of lshr<mode>3.
226 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
227 (<v>ashr<mode>3_imm): Define.
228 (extv, extzv, insv): Allow MEM operands.
229 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
230 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
231 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
232 (_spu_convert2): Change to define_insn_and_split and remove the
233 corresponding define_peephole2.
234 (stack_protect_set, stack_protect_test, stack_protect_test_si):
235 Change predicates to memory_operand.
236
237 2009-05-22 Mark Mitchell <mark@codesourcery.com>
238
239 * config/arm/thumb2.md: Add 16-bit multiply instructions.
240
241 2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
242
243 PR tree-optimization/40219
244 * tree.c (iterative_hash_expr): Make sure the builtin function is
245 a normal builtin function and not a front end or back end builtin
246 before indexing into the built_in_decls array.
247
248 2009-05-22 Richard Guenther <rguenther@suse.de>
249
250 PR middle-end/38964
251 * alias.c (write_dependence_p): Do not use TBAA for answering
252 anti-dependence or output-dependence.
253 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
254 (emit_pointer_definition): Remove.
255 (emit_alias_warning): Likewise.
256 (find_what_var_points_to): Remove TBAA pruning code.
257 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
258 violations.
259 (compute_points_to_sets): Remove code computing the set of
260 dereferenced pointers.
261 * tree-data-ref.c (dr_may_alias_p): Properly use the split
262 oracle for querying anti and output dependencies.
263 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
264 if TBAA may be applied.
265 (refs_anti_dependent_p): New function.
266 (refs_output_dependent_p): Likewise.
267 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
268 (refs_output_dependent_p): Likewise.
269 * doc/tree-ssa.texi (Memory model): New section.
270 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
271 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
272 * cfgexpand.c (expand_gimple_basic_block): Do not handle
273 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
274 * expr.c (expand_expr_real_1): Likewise.
275 * gimple-low.c (lower_stmt): Likewise.
276 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
277 (dump_gimple_cdt): Remove.
278 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
279 (gimple_size): Likewise.
280 (walk_gimple_op): Likewise.
281 (is_gimple_stmt): Likewise.
282 (walk_stmt_load_store_addr_ops): Likewise.
283 (gimple_build_cdt): Remove.
284 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
285 * gimple.h (gimple_cdt_new_type): Remove.
286 (gimple_cdt_new_type_ptr): Likewise.
287 (gimple_cdt_set_new_type): Likewise.
288 (gimple_cdt_location): Likewise.
289 (gimple_cdt_location_ptr): Likewise.
290 (gimple_cdt_set_location): Likewise.
291 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
292 * tree-cfg.c (remove_useless_stmts_1): Do not handle
293 GIMPLE_CHANGE_DYNAMIC_TYPE.
294 (verify_types_in_gimple_stmt): Likewise.
295 * tree-inline.c (estimate_num_insns): Likewise.
296 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
297 (copy_decl_to_var): Likewise.
298 (copy_result_decl_to_var): Likewise.
299 * tree-pretty-print.c (dump_generic_node): Do not handle
300 CHANGE_DYNAMIC_TYPE_EXPR.
301 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
302 * tree-ssa-operands.c (get_expr_operands): Likewise.
303 * tree-ssa-structalias.c (struct variable_info): Remove
304 no_tbaa_pruning member.
305 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
306 (unify_nodes): Do not copy it.
307 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
308 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
309 (set_uids_in_ptset): Do not check it.
310 (find_what_var_points_to): Likewise.
311 (compute_tbaa_pruning): Remove.
312 (compute_points_to_sets): Do not call it.
313 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
314 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
315 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
316 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
317 (DECL_NO_TBAA_P): Likewise.
318 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
319 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
320 (expand_omp_atomic_pipeline): Do not set it.
321 * print-tree.c (print_node): Do not dump it.
322 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
323 redundant check.
324
325 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
326
327 PR target/39856
328 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
329 for clobber.
330
331 2009-05-22 Mark Mitchell <mark@codesourcery.com>
332
333 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
334 non-external.
335
336 2009-05-22 Ben Elliston <bje@au.ibm.com>
337
338 * Makefile.in (bversion.h, s-bversion): New targets.
339 (TOPLEV_H): Add bversion.h.
340 * toplev.h: Include "bversion.h".
341 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
342 the __format__ attribute only if compiling with the same version
343 of GCC as the sources (the "build version").
344
345 2009-05-22 Ben Elliston <bje@au.ibm.com>
346
347 * c-format.c (handle_format_attribute): Fix comment typo.
348
349 2009-05-21 Steve Ellcey <sje@cup.hp.com>
350
351 PR target/37846
352 * config/ia64/ia64.opt (mfused-madd): New.
353 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
354 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
355 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
356 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
357 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
358 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
359 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
360 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
361 instruction if !TARGET_FUSED_MADD.
362 (fpma, fpms): Remove colon from name.
363
364 2009-05-22 Richard Guenther <rguenther@suse.de>
365
366 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
367 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
368 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
369 TARGET_MEM_REF.
370 (create_expression_by_pieces): Only convert if necessary.
371 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
372 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
373
374 2009-05-21 Adam Nemet <anemet@caviumnetworks.com>
375
376 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
377 regular pattern from a template and rename it ...
378 (*extzv_truncsi_exts): ... to this.
379
380 2009-05-21 Richard Guenther <rguenther@suse.de>
381
382 * cgraph.h (struct cgraph_node): Remove inline_decl member.
383 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
384 (cgraph_default_inline_p): Likewise.
385 (cgraph_decide_inlining_incrementally): Likewise.
386
387 2009-05-21 H.J. Lu <hongjiu.lu@intel.com>
388 Uros Bizjak <ubizjak@gmail.com>
389
390 * config/i386/cpuid.h (bit_MOVBE): New.
391
392 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
393
394 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
395 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
396 (ix86_handle_option): Handle OPT_mmovbe.
397 (ix86_target_string): Add -mmovbe.
398 (pta_flags): Add PTA_MOVBE.
399 (processor_alias_table): Add PTA_MOVBE to "atom".
400 (override_options): Handle PTA_MOVBE.
401
402 * config/i386/i386.h (TARGET_MOVBE): New.
403
404 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
405 (*bswapsi_movbe): New.
406 (*bswapdi_movbe): Likewise.
407 (bswapdi2): Renamed to ...
408 (*bswapdi_1): This.
409 (bswapdi2): New expander.
410
411 * config/i386/i386.opt (mmovbe): New.
412
413 * doc/invoke.texi: Document -mmovbe.
414
415 2009-05-21 Taras Glek <tglek@mozilla.com>
416
417 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
418 * gcc-plugin.h (plugin_init): Updated signature.
419 * gcc-plugin.h (plugin_name_args): Moved to this header.
420 * doc/plugins.texi (plugin_init): Updated documention to reflect
421 API change.
422 * doc/plugins.texi (plugin_name_args): Added to documention.
423
424 2009-05-21 Mark Mitchell <mark@codesourcery.com>
425
426 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
427 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
428
429 2009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
430
431 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
432 JUMP_TABLE_DATA_P predicates where applicable.
433 * config/i386/predicates.md: Ditto.
434 * config/i386/sse.md: Ditto.
435
436 2009-05-21 Jakub Jelinek <jakub@redhat.com>
437
438 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
439 operand2 -128 override length_immediate attribute to 1.
440 * config/i386/predicates.md (constm128_operand): New predicate.
441
442 * config/i386/i386.c (memory_address_length): Handle %r12
443 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
444 also check REGNO.
445 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
446 mode look through optional ZERO_EXTEND and SUBREG.
447 * config/i386/i386.md (R12_REG): New define_constant.
448 (prefix_data16): For sse unit set also for MODE_TI insns.
449 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
450 insns set if operand 1 is ext_QIreg_operand.
451 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
452 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
453 immediate.
454 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
455 mode from MODE_DI to MODE_SI.
456 (movdi_1_rex64): Override modrm and length_immediate attributes
457 only for movabs (TYPE_IMOV, alternative 2).
458 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
459 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
460 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
461 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
462 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
463 prefix_rex attribute if DImode.
464 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
465 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
466 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
467 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
468 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
469 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
470 Likewise. For TYPE_IMOV clear length_immediate attribute.
471 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
472 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
473 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
474 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
475 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
476 or one operand TYPE_ISHIFT.
477 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
478 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
479 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
480 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
481 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
482 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
483 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
484 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
485 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
486 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
487 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
488 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
489 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
490 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
491 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
492 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
493 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
494 set mode attribute, don't override length attribute.
495 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
496 to 1.
497 (return_internal_long): Set length attribute to 2 instead of 1.
498 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
499 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
500 prefix_rex attribute.
501 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
502 New predicates.
503 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
504
505 2009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
506
507 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
508
509 2009-05-20 Ian Lance Taylor <iant@google.com>
510
511 * tree.c (build_tree_list_vec_stat): New function.
512 (ctor_to_vec): New function.
513 (build_nt_call_vec): New function.
514 (build_call_array): Change args to be a const pointer.
515 (build_call_vec): New function.
516 * tree.h (build_nt_call_vec): Declare.
517 (build_tree_list_vec_stat): Declare.
518 (build_tree_list_vec): Define.
519 (build_call_array): Update declaration.
520 (build_call_vec): Declare.
521 (ctor_to_vec): Declare.
522 * c-common.c (tree_vector_cache): New static variable.
523 (make_tree_vector): New function.
524 (release_tree_vector): New function.
525 (make_tree_vector_single): New function.
526 (make_tree_vector_copy): New function.
527 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
528 (make_tree_vector_single, make_tree_vector_copy): Declare.
529 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
530 (c_parser_expr_list): Don't manage cache here, instead call
531 make_tree_vector.
532 (c_parser_release_expr_list): Remove static function.
533 (c_parser_vec_to_tree_list): Remove static function.
534 (c_parser_attributes): Call build_tree_list_vec instead of
535 c_parser_vec_to_tree_list. Call release_tree_vector instead of
536 c_parser_release_expr_list.
537 (c_parser_postfix_expression_after_primary): Likewise.
538 (c_parser_objc_keywordexpr): Likewise.
539
540 2009-05-20 Sandra Loosemore <sandra@codesourcery.com>
541
542 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
543 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
544 TARGET_CONVERT_TO_TYPE.
545 * hooks.c (hook_tree_const_tree_null): Define.
546 * hooks.h (hook_tree_const_tree_null): Declare.
547 * target.h (struct gcc_target): Add invalid_parameter_type,
548 invalid_return_type, promoted_type, and convert_to_type fields.
549 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
550 (TARGET_INVALID_RETURN_TYPE): Define.
551 (TARGET_PROMOTED_TYPE): Define.
552 (TARGET_CONVERT_TO_TYPE): Define.
553 (TARGET_INITIALIZER): Update for new fields.
554 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
555 (grokparms): Check targetm.invalid_parameter_type.
556 * c-typeck.c (default_conversion): Check targetm.promoted_type.
557 * c-convert.c (convert): Check targetm.convert_to_type.
558
559 2009-05-20 Adam Nemet <anemet@caviumnetworks.com>
560
561 * config/mips/mips.md (*extenddi_truncate<mode>,
562 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
563 defintions.
564 (*extendhi_truncateqi): New define_insn_and_sptit.
565
566 2009-05-20 Jakub Jelinek <jakub@redhat.com>
567
568 PR middle-end/40204
569 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
570 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
571
572 2009-05-20 Eric Botcazou <ebotcazou@adacore.com>
573
574 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
575 the operand of VIEW_CONVERT_EXPR.
576
577 2009-05-20 H.J. Lu <hongjiu.lu@intel.com>
578
579 * config/i386/driver-i386.c (host_detect_local_cpu): Check
580 extended family and model for Intel processors. Support Intel
581 Atom.
582
583 2009-05-20 Olivier Hainque <hainque@adacore.com>
584
585 * gstab.h (stab_code_type): Define, to be used instead of the
586 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
587 notice.
588 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
589 occurrences by stab_code_type.
590 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
591
592 2009-05-20 Martin Jambor <mjambor@suse.cz>
593
594 * tree-flow.h (insert_edge_copies_seq): Undeclare.
595 (sra_insert_before): Likewise.
596 (sra_insert_after): Likewise.
597 (sra_init_cache): Likewise.
598 (sra_type_can_be_decomposed_p): Likewise.
599 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
600 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
601 (sra_insert_before): Likewise.
602 (sra_insert_after): Likewise.
603 (sra_init_cache): Likewise.
604 (insert_edge_copies_seq): Made static and moved upwards.
605
606 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
607 case.
608
609 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
610
611 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
612 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
613 simple copies.
614
615 2009-05-20 Richard Guenther <rguenther@suse.de>
616
617 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
618 with mismatched comparison modes.
619
620 2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
621
622 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
623 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
624 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
625 with shifts for Thumb2.
626 (orsi_notsi): New for orn.
627 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
628 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
629 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
630 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
631 Don't invert remainder for IOR.
632
633 2009-05-19 Zdenek Dvorak <ook@ucw.cz>
634
635 PR tree-optimization/40087
636 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
637 number_of_iterations_ne): Rename never_infinite argument.
638 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
639 number_of_iterations_le): Handle pointer-type ivs when
640 exit_must_be_taken is false.
641 (number_of_iterations_cond): Do not always assume that
642 exit_must_be_taken if the control variable is a pointer.
643
644 2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
645
646 * c-typeck.c (build_binary_op): Allow % on integal vectors.
647 * doc/extend.texi (Vector Extension): Document that % is allowed too.
648
649 2009-05-19 H.J. Lu <hongjiu.lu@intel.com>
650
651 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
652 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
653
654 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
655
656 PR c/40172
657 * c.opt (Wlogical-op): Disabled by default.
658 * c-opt (c_common_post_options): Do not enable Wlogical-op with
659 Wextra.
660 * doc/invoke.texi (Wlogical-op): Likewise.
661
662 2009-05-19 Eric Botcazou <ebotcazou@adacore.com>
663
664 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
665 into CASE_CONVERT.
666 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
667 Propagate the type of the first operand.
668 <ASSERT_EXPR>: Simplify.
669 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
670 Rewrite using the RHS code as discriminant.
671 <NOP_EXPR>: Turn into CASE_CONVERT.
672 <PLUS_EXPR>: Propagate the type of the first operand.
673
674 2009-05-19 Steve Ellcey <sje@cup.hp.com>
675
676 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
677 (ia64_dconst_0_375): New.
678 * config/ia64/ia64.c (ia64_override_options): Remove
679 -minline-sqrt-min-latency warning.
680 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
681 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
682 * config/ia64/ia64.md (*sqrt_approx): Remove.
683 (sqrtsf2): Remove #if 0.
684 (sqrtsf2_internal_thr): Rewrite and move to div.md.
685 (sqrtdf): Remove assert.
686 (sqrtdf2_internal_thr): Rewrite and move to div.md.
687 (sqrtxf2): Remove #if 0.
688 (sqrtxf2_internal_thr): Rewrite and move to div.md.
689 * div.md (sqrt_approx_rf): New.
690 (sqrtsf2_internal_thr): New implementation.
691 (sqrtsf2_internal_lat): New.
692 (sqrtdf2_internal_thr: New implementation.
693 (sqrtxf2_internal): New implementation.
694
695 2009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
696 Hans-Peter Nilsson <hp@axis.com>
697
698 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
699 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
700 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
701 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
702 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
703 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
704 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
705 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
706 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
707 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
708 * c-common.c: ...from here.
709
710 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
711
712 * c-common.c (warn_logical_operator): Remove unnecessary
713 conditionals.
714
715 2009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
716
717 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
718
719 2009-05-19 Ben Elliston <bje@au.ibm.com>
720
721 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
722 assignments with memcpy calls.
723 (add_fdes): Likewise.
724 (binary_search_unencoded_fdes): Likewise.
725 (linear_search_fdes): Eliminate type puns.
726
727 2009-05-19 Richard Guenther <rguenther@suse.de>
728
729 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
730 not falsely claim to have propagated into all uses.
731
732 2009-05-19 Ben Elliston <bje@au.ibm.com>
733
734 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
735 version to v3.0.
736
737 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
738
739 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
740 * config/sh/sh.c (sh_legitimate_address_p): Make static.
741 (TARGET_LEGITIMATE_ADDRESS_P): New.
742 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
743 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
744
745 2009-05-18 Dodji Seketeli <dodji@redhat.com>
746
747 PR debug/40109
748 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
749 child of the containing namespace's DIE.
750
751 2009-05-18 Adam Nemet <anemet@caviumnetworks.com>
752
753 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
754 *zero_extendhi_truncqi): Move after the zero_extend patterns.
755 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
756 extend patterns.
757
758 2009-05-18 H.J. Lu <hongjiu.lu@intel.com>
759
760 PR target/39942
761 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
762 gen_align with gen_pad.
763 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
764 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
765
766 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
767 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
768
769 * config/i386/i386.md (align): Renamed to ...
770 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
771 ASM_OUTPUT_MAX_SKIP_PAD.
772
773 2009-05-18 Andreas Schwab <schwab@linux-m68k.org>
774
775 * config.gcc: Fix variable syntax.
776
777 PR target/39531
778 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
779 before calling exact_log2.
780 (output_iorsi3): Likewise.
781 (output_xorsi3): Likewise.
782
783 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
784
785 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
786 for the none zero constant operand except for EQ and NE
787 comprisons even when the first operand is R0.
788
789 2009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
790
791 * config/s390/2064.md: Remove trailing whitespaces.
792 * config/s390/2084.md: Likewise.
793 * config/s390/constraints.md: Likewise.
794 * config/s390/fixdfdi.h: Likewise.
795 * config/s390/libgcc-glibc.ver: Likewise.
796 * config/s390/s390-modes.def: Likewise.
797 * config/s390/s390-protos.h: Likewise.
798 * config/s390/s390.c: Likewise.
799 * config/s390/s390.h: Likewise.
800 * config/s390/s390.md: Likewise.
801 * config/s390/tpf-unwind.h: Likewise.
802
803 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
804
805 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
806
807 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
808
809 M68K TLS support.
810 * configure.ac (m68k-*-*): Check if binutils support TLS.
811 * configure: Regenerate.
812 * config/m68k/predicates.md (symbolic_operand): Extend comment.
813 * config/m68k/constraints.md (Cu): New constraint.
814 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
815 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
816 (movsi): Handle TLS symbols.
817 (addsi3_5200): Handle XTLS symbols, indent.
818 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
819 (m68k_tls_reference_p): Declare.
820 (m68k_legitimize_address): Declare.
821 (m68k_unwrap_symbol): Declare.
822 * config/m68k/m68k.opt (mxtls): New option.
823 * config/m68k/m68k.c (ggc.h): Include.
824 (m68k_output_dwarf_dtprel): Implement hook.
825 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
826 (m68k_expand_prologue): Load GOT pointer when function needs it.
827 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
828 (m68k_legitimate_constant_address_p): Same.
829 (m68k_decompose_address): Handle TLS references.
830 (m68k_get_gp): New static function.
831 (enum m68k_reloc): New contants.
832 (TLS_RELOC_P): New macro.
833 (m68k_wrap_symbol): New static function.
834 (m68k_unwrap_symbol): New function.
835 (m68k_final_prescan_insn_1): New static function.
836 (m68k_final_prescan_insn): New function.
837 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
838 functions.
839 (legitimize_pic_address): Handle TLS references..
840 (m68k_tls_get_addr, m68k_get_tls_get_addr)
841 (m68k_libcall_value_in_a0_p)
842 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
843 (m68k_call_m68k_read_tp): Helper variables and functions for ...
844 (m68k_legitimize_tls_address): Handle TLS references.
845 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
846 New functions.
847 (m68k_legitimize_address): Handle TLS symbols.
848 (m68k_get_reloc_decoration): New static function.
849 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
850 UNSPEC_RELOC32.
851 (m68k_output_dwarf_dtprel): Implement hook.
852 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
853 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
854 m68k_call_* routines.
855 (sched_attr_op_type): Handle TLS symbols.
856 (gt-m68k.h): Include.
857 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
858 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
859
860 2009-05-18 Martin Jambor <mjambor@suse.cz>
861
862 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
863 (visit_store_addr_for_mod_analysis): New function.
864 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
865 (determine_cst_member_ptr): Use gimple_assign_single_p.
866 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
867 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
868 operands. Don't check number of operands of a NOP_EXPR.
869
870 2009-05-18 Eric Fisher <joefoxreal@gmail.com>
871
872 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
873
874 2009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
875
876 PR c/40172
877 * c-common.c (warn_logical_operator): Don't warn if one of
878 expression isn't always true or false.
879
880 2009-05-17 Kai Tietz <kai.tietz@onevision.com>
881
882 * config/i386/biarch32.h: New file.
883 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
884
885 2009-05-17 Adam Nemet <anemet@caviumnetworks.com>
886
887 * config/mips/mips.md (*zero_extend<mode>_trunchi,
888 *zero_extend<mode>_truncqi): Merge these into ...
889 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
890 Name the pattern following this as *zero_extendhi_truncqi.
891
892 2009-05-16 Brad Lucier <lucier@math.purdue.edu>
893
894 PR middle-end/39301
895 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
896 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
897 (output_info): Make field HOST_WIDEST_INT.
898 (print_statistics): Use HOST_WIDEST_INT_PRINT.
899 (dump_bitmat_statistics): Same.
900
901 2009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
902
903 * config.gcc (use_gcc_stdint): Set to wrap.
904 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
905 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
906 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
907 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
908 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
909 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
910 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
911 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
912
913 2009-05-16 Joseph Myers <joseph@codesourcery.com>
914
915 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
916 tune_64.
917 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
918 Move definitions earlier.
919 (OPT_ARCH64, OPT_ARCH32): Define.
920 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
921 and tune_64.
922
923 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
924
925 PR target/40153
926 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
927 implies.
928
929 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
930
931 * arm.md (movdi2): Copy non-reg values to DImode registers.
932
933 2009-05-16 Jakub Jelinek <jakub@redhat.com>
934
935 PR target/39942
936 * final.c (label_to_max_skip): New function.
937 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
938 CODE_LABEL_NUMBER <= max_labelno.
939 * output.h (label_to_max_skip): New prototype.
940 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
941 (ix86_avoid_jump_mispredicts): ... this. Don't define if
942 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
943 Handle CODE_LABELs with >= 16 byte alignment or with
944 max_skip == (1 << align) - 1.
945 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
946 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
947
948 PR target/39942
949 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
950 .p2align 3 if MAX_SKIP is smaller than 7.
951 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
952
953 2009-05-15 Ian Lance Taylor <iant@google.com>
954
955 * alias.c (struct alias_set_entry_d): Rename from struct
956 alias_set_entry. Change all uses.
957 * except.c (struct call_site_record_d): Rename from struct
958 call_site_record. Change all uses.
959 * except.h (struct eh_region_d): Rename from struct eh_region.
960 Change all uses.
961 * gcse.c (struct hash_table_d): Rename from struct hash_table.
962 Change all uses.
963 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
964 ivtype_map_elt. Change all uses.
965 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
966 Change all uses.
967 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
968 * graphite.h (struct name_tree_d): Rename from struct name_tree.
969 Change all uses.
970 (struct sese_d): Rename from struct sese. Change all uses.
971 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
972 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
973 * optabs.h (struct optab_d): Rename from struct optab. Change all
974 uses.
975 (struct convert_optab_d): Rename from struct convert_optab.
976 Change all uses.
977 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
978 ipa_opt_pass. Change all uses.
979 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
980 all uses.
981
982 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
983 defined as a typedef.
984 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
985 defined as a tag.
986
987 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
988
989 PR 16302
990 * fold-const.c (make_range,build_range_check,merge_ranges): Move
991 declaration to...
992 (merge_ranges): Returns bool.
993 * tree.h (make_range): .. to here.
994 (build_range_check): Likewise.
995 (merge_ranges): Likewise. Renamed from merge_ranges.
996 * c-typeck.c (parser_build_binary_op): Update calls to
997 warn_logical_operator.
998 * c-common.c (warn_logical_operator): Add new warning.
999 * c-common.h (warn_logical_operator): Update declaration.
1000
1001 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
1002
1003 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1004
1005 2009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1006
1007 * doc/install.texi: Document MPC requirements, flags etc.
1008
1009 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
1010 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
1011 Evaluate constant arguments.
1012 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
1013 (fold_builtin_1): Likewise, also evaluate constant arguments.
1014 Remove superfluous break.
1015 (do_mpc_ckconv): New.
1016 * real.h: Include mpc.h.
1017 * toplev.c (print_version): Output MPC version info if available.
1018
1019 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1020
1021 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
1022
1023 2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
1024
1025 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
1026 only once.
1027
1028 2009-05-15 Jan Hubicka <jh@suse.cz>
1029
1030 * doc/invoke.texi (max-early-inliner-iterations): New flag.
1031 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
1032 (try_inline): Fix return value.
1033 (cgraph_decide_inlining_incrementally): Honor new value.
1034 (cgraph_early_inlining): Handle indirect inlining.
1035 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
1036
1037 2009-05-15 Jan Hubicka <jh@suse.cz>
1038
1039 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
1040 * cgraphunit.c (cgraph_finalize_function): Set it.
1041 (cgraph_expand_function): Use it.
1042
1043 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1044
1045 * real.c (encode_ieee_half): Define.
1046 (decode_ieee_half): Define.
1047 (ieee_half_format): Define.
1048 (arm_half_format): Define.
1049 * real.h (ieee_half_format): Declare.
1050 (arm_half_format): Declare.
1051
1052 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1053
1054 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
1055 swapped, and reversed optabs exist before trying to use them.
1056
1057 2009-05-15 Paul Brook <paul@codesourcery.com>
1058 Sandra Loosemore <sandra@codesourcery.com>
1059
1060 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
1061 loads. Allow PRE_DEC.
1062 (output_move_neon): Handle PRE_DEC.
1063 (arm_print_operand): Add 'A' for neon structure loads.
1064 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
1065 * config/arm/neon.md (neon_mov): Update comment.
1066 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
1067 calls.
1068 (Um): New constraint.
1069
1070 2009-05-15 Jan Hubicka <jh@suse.cz>
1071
1072 Revert the following patch until testsuite fallout is fixed:
1073 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1074 * cgraph.h (struct inline_summary): New filed self_wize,
1075 size_inlining_benefit, self_time and time_inlining_benefit.
1076 (struct cgraph_global_info): Replace insns by time ans size fields.
1077 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1078 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1079 (ipcp_update_callgraph): Do not touch function bodies.
1080 * ipa-inline.c: Include except.h
1081 (MAX_TIME): New constant.
1082 (overall_insns): Remove
1083 (overall_size, max_benefit): New static variables.
1084 (cgraph_estimate_time_after_inlining): New function.
1085 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1086 (cgraph_clone_inlined_nodes): Update size.
1087 (cgraph_mark_inline_edge): Update size.
1088 (cgraph_estimate_growth): Use size info.
1089 (cgraph_check_inline_limits): Check size.
1090 (cgraph_default_inline_p): Likewise.
1091 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1092 (cgraph_decide_recursive_inlining): Check size.
1093 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
1094 times.
1095 (cgraph_decide_inlining): Likewise.
1096 (cgraph_decide_inlining_incrementally): Likewise; honor
1097 PARAM_EARLY_INLINING_INSNS.
1098 (likely_eliminated_by_inlining_p): New predicate.
1099 (estimate_function_body_sizes): New function.
1100 (compute_inline_parameters): Use it.
1101 * except.c (must_not_throw_labels): New function.
1102 * except.h (must_not_throw_labels): Declare.
1103 * tree-inline.c (init_inline_once): Kill inlining_weigths
1104 * tree-ssa-structalias.c: Avoid uninitialized warning.
1105 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1106 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1107 (PARAM_INLINE_CALL_COST): Remove.
1108 (PARAM_EARLY_INLINING_INSNS): New.
1109
1110 2009-05-15 Richard Guenther <rguenther@suse.de>
1111
1112 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
1113 not TODO_update_ssa.
1114
1115 2009-05-15 Richard Guenther <rguenther@suse.de>
1116
1117 PR tree-optimization/39999
1118 * gimple.h (gimple_expr_type): Use the expression type looking
1119 through useless conversions.
1120 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
1121 (vn_nary_op_insert_stmt): Likewise.
1122 (simplify_binary_expression): Likewise.
1123
1124 2009-05-15 Richard Guenther <rguenther@suse.de>
1125
1126 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
1127 New options, enabled by default.
1128 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
1129 Document.
1130 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
1131 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
1132 * tree-ssa-structalias.c (gate_tree_pta): New function.
1133 (pass_build_alias): Use it.
1134
1135 2009-05-15 Joseph Myers <joseph@codesourcery.com>
1136
1137 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
1138 recurse on an invariant address if a conversion from a pointer
1139 type to a wider integer type is involved.
1140
1141 2009-05-15 Jan Hubicka <jh@suse.cz>
1142
1143 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1144 * cgraph.h (struct inline_summary): New filed self_wize,
1145 size_inlining_benefit, self_time and time_inlining_benefit.
1146 (struct cgraph_global_info): Replace insns by time ans size fields.
1147 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1148 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1149 (ipcp_update_callgraph): Do not touch function bodies.
1150 * ipa-inline.c: Include except.h
1151 (MAX_TIME): New constant.
1152 (overall_insns): Remove
1153 (overall_size, max_benefit): New static variables.
1154 (cgraph_estimate_time_after_inlining): New function.
1155 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1156 (cgraph_clone_inlined_nodes): Update size.
1157 (cgraph_mark_inline_edge): Update size.
1158 (cgraph_estimate_growth): Use size info.
1159 (cgraph_check_inline_limits): Check size.
1160 (cgraph_default_inline_p): Likewise.
1161 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1162 (cgraph_decide_recursive_inlining): Check size.
1163 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
1164 times.
1165 (cgraph_decide_inlining): Likewise.
1166 (cgraph_decide_inlining_incrementally): Likewise; honor
1167 PARAM_EARLY_INLINING_INSNS.
1168 (likely_eliminated_by_inlining_p): New predicate.
1169 (estimate_function_body_sizes): New function.
1170 (compute_inline_parameters): Use it.
1171 * except.c (must_not_throw_labels): New function.
1172 * except.h (must_not_throw_labels): Declare.
1173 * tree-inline.c (init_inline_once): Kill inlining_weigths
1174 * tree-ssa-structalias.c: Avoid uninitialized warning.
1175 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1176 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1177 (PARAM_INLINE_CALL_COST): Remove.
1178 (PARAM_EARLY_INLINING_INSNS): New.
1179 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
1180 (inline-call-cost): Remove.
1181 (early-inlining-insns): New.
1182
1183 2009-05-15 Eric Botcazou <ebotcazou@adacore.com>
1184
1185 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
1186 for bounds.
1187 (print_int_cst_bounds_in_octal_p): Likewise.
1188 (dbxout_type): Adjust calls to above functions. Be prepared to deal
1189 with subtypes.
1190 * dwarf2out.c (base_type_die): Likewise.
1191 (is_subrange_type): Delete.
1192 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
1193 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
1194 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
1195 the destination type is boolean.
1196 (build_range_check): Do not special-case subtypes.
1197 (fold_sign_changed_comparison): Likewise.
1198 (fold_unary): Likewise.
1199 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
1200 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
1201 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
1202 * tree.c (subrange_type_for_debug_p): New predicate based on the former
1203 is_subrange_type.
1204 * tree.h (subrange_type_for_debug_p): Declare.
1205 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
1206 (convert_affine_scev): Remove call to above function.
1207 (chrec_convert_aggressive): Likewise.
1208 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
1209 false for conversions involving subtypes.
1210 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
1211 (vrp_val_min): Likewise.
1212 (needs_overflow_infinity): Likewise.
1213 (extract_range_from_unary_expr): Likewise.
1214
1215 2009-05-15 Paolo Bonzini <bonzini@gnu.org>
1216
1217 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1218 * config/frv/frv.c: Likewise.
1219 * config/s390/s390.c: Likewise.
1220 * config/sparc/sparc.h: Likewise.
1221 * config/i386/i386.h: Likewise.
1222 * config/i386/i386.c: Likewise.
1223 * config/crx/crx.c: Likewise.
1224 * config/m68hc11/m68hc11.h: Likewise.
1225 * config/iq2000/iq2000.c: Likewise.
1226 * config/mn10300/mn10300.h: Likewise.
1227 * config/mn10300/mn10300.c: Likewise.
1228 * config/m68k/m68k.c: Likewise.
1229 * config/rs6000/rs6000.c: Likewise.
1230 * config/rs6000/xcoff.h: Likewise.
1231 * config/rs6000/linux64.h: Likewise.
1232 * config/rs6000/sysv4.h: Likewise.
1233 * config/score/score3.c: Likewise.
1234 * config/score/score7.c: Likewise.
1235 * config/score/score.c: Likewise.
1236 * config/arm/arm.md: Likewise.
1237 * config/mips/mips.c: Likewise.
1238 * config/mips/mips.md: Likewise.
1239 * config/bfin/bfin.h: Likewise.
1240 * config/pa/pa.c: Likewise.
1241 * config/pa/constraints.md: Likewise.
1242
1243 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
1244 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
1245 * config/pdp11/pdp11.h: Use memory_address_p instead.
1246
1247 2009-05-14 Ian Lance Taylor <iant@google.com>
1248
1249 * passes.c (finish_optimization_passes): Change i to int.
1250 * plugin.c (plugins_active_p): Change event to int.
1251 (dump_active_plugins): Likewise.
1252 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
1253 Add cast.
1254 * tree.c (tree_range_check_failed): Change c to unsigned int.
1255 (omp_clause_range_check_failed): Likewise.
1256 (build_common_builtin_nodes): Change mode to int. Add cast.
1257 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
1258 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
1259
1260 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
1261 ++ or -- with a variable of enum type.
1262
1263 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1264
1265 PR driver/40144
1266 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
1267
1268 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1269
1270 * store-motion.c: Do not include params.h
1271 * Makefile.in: Fix dependencies for various files.
1272
1273 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1274
1275 * auto-inc-dec.c: Fix pass description, remove apparent
1276 accidental duplication.
1277
1278 2009-05-14 H.J. Lu <hongjiu.lu@intel.com>
1279
1280 PR middle-end/40147
1281 * ipa-utils.h (memory_identifier_string): Moved to ...
1282 * tree.h (memory_identifier_string): Here. Add GTY(()).
1283
1284 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
1285
1286 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
1287 in the former documentation of...
1288 (GO_IF_LEGITIMATE_ADDRESS): ... this.
1289 * ira-conflicts.c (get_dup_num): Use address_operand.
1290 * targhooks.c (default_legitimate_address_p): New.
1291 * targhooks.h (default_legitimate_address_p): New.
1292 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
1293 Call hook.
1294 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
1295 * target.h (struct target): Add legitimate_address_p.
1296 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
1297 (TARGET_INITIALIZER): Include it.
1298
1299 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1300 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
1301 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
1302 (TARGET_LEGITIMATE_ADDRESS_P): New.
1303
1304 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1305 (REG_OK_STRICT_P): Delete.
1306 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
1307 (frv_legitimate_address_p_1): ... this.
1308 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
1309 (frv_legitimate_address_p_1): ... the renamed old
1310 frv_legitimate_address_p.
1311 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
1312 (TARGET_LEGITIMATE_ADDRESS_P): New.
1313
1314 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1315 * config/s390/s390-protos.h (legitimate_address_p): Remove.
1316 * config/s390/s390.c (legitimate_address_p): Rename to...
1317 (s390_legitimate_address_p): ... this, make static.
1318 (legitimize_address): Adjust call.
1319 (TARGET_LEGITIMATE_ADDRESS_P): New.
1320 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
1321
1322 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1323 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
1324 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
1325 (TARGET_LEGITIMATE_ADDRESS_P): New.
1326
1327 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1328 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
1329 * config/spu/spu.c (spu_legitimate_address): Rename to...
1330 (spu_legitimate_address_p): ... this, make static.
1331 (TARGET_LEGITIMATE_ADDRESS_P): New.
1332
1333 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1334 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
1335 * config/sparc/sparc.c (legitimate_address_p): Rename to...
1336 (sparc_legitimate_address_p): ... this, make static and return bool.
1337 (legitimize_address): Adjust call.
1338 (TARGET_LEGITIMATE_ADDRESS_P): New.
1339
1340 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1341 * config/i386/i386-protos.h (legitimate_address_p): Remove.
1342 * config/i386/i386.c (legitimate_address_p): Rename to...
1343 (ix86_legitimate_address_p): ... this, make static.
1344 (constant_address_p): Move after it, adjust call.
1345 (TARGET_LEGITIMATE_ADDRESS_P): New.
1346
1347 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1348 * config/avr/avr-protos.h (legitimate_address_p): Remove.
1349 * config/avr/avr.c (legitimate_address_p): Rename to...
1350 (avr_legitimate_address_p): ... this, make static.
1351 (legitimize_address): Adjust call.
1352 (TARGET_LEGITIMATE_ADDRESS_P): New.
1353
1354 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1355 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
1356 * config/crx/crx.c (crx_legitimate_address_p): Make static.
1357 (TARGET_LEGITIMATE_ADDRESS_P): New.
1358
1359 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1360 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
1361 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
1362 (TARGET_LEGITIMATE_ADDRESS_P): New.
1363
1364 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1365 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
1366 Remove.
1367 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
1368 Make static.
1369 (TARGET_LEGITIMATE_ADDRESS_P): New.
1370
1371 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1372 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
1373 Remove.
1374 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
1375 Rename to...
1376 (m68hc11_legitimate_address_p): ... this, make static.
1377 (go_if_legitimate_address_internal): Rename to...
1378 (m68hc11_legitimate_address_p_1): ... this.
1379 (legitimize_address): Adjust call.
1380 (TARGET_LEGITIMATE_ADDRESS_P): New.
1381
1382 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1383 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
1384 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
1385 (TARGET_LEGITIMATE_ADDRESS_P): New.
1386
1387 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1388 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
1389 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
1390 (mn10300_legitimate_address_p): ... this, make static.
1391 (TARGET_LEGITIMATE_ADDRESS_P): New.
1392
1393 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1394 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
1395 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
1396 (TARGET_LEGITIMATE_ADDRESS_P): New.
1397
1398 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1399 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
1400 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
1401 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1402 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
1403 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
1404 (rs6000_legitimate_address_p): ... this, make static.
1405 (TARGET_LEGITIMATE_ADDRESS_P): New.
1406 (REG_MODE_OK_FOR_BASE_P): Delete.
1407 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
1408
1409 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1410 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
1411 Delete.
1412 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
1413 static, adjust types.
1414 (TARGET_LEGITIMATE_ADDRESS_P): New.
1415
1416 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1417 * config/score/score.c (score_address_p): Rename to...
1418 (score_legitimate_address_p): ... this.
1419 (TARGET_LEGITIMATE_ADDRESS_P): New.
1420 * config/score/score3.c (score3_address_p): Rename to...
1421 (score3_legitimate_address_p): ... this.
1422 * config/score/score7.c (score7_address_p): Rename to...
1423 (score7_legitimate_address_p): ... this.
1424
1425 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
1426 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
1427 GO_IF_LEGITIMATE_ADDRESS): Delete.
1428 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
1429 thumb2_legitimate_address_p): Delete.
1430 (arm_legitimate_address_p): Rename to...
1431 (arm_legitimate_address_outer_p): ... this.
1432 * config/arm/constraints.md ("Uq"): Adjust call.
1433 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
1434 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
1435 (arm_legitimate_address_outer_p): ... this.
1436 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
1437 (TARGET_LEGITIMATE_ADDRESS_P): New.
1438
1439 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1440 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
1441 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
1442 (TARGET_LEGITIMATE_ADDRESS_P): New.
1443
1444 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1445 * config/vax/vax-protos.h (legitimate_address_p): Remove.
1446 * config/vax/vax.c (legitimate_address_p): Rename to...
1447 (vax_legitimate_address_p): ... this, make static.
1448 (TARGET_LEGITIMATE_ADDRESS_P): New.
1449
1450 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1451 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
1452 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
1453 (TARGET_LEGITIMATE_ADDRESS_P): New.
1454
1455 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1456 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
1457 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
1458 (mmix_legitimate_address_p): ... this, make static.
1459 (TARGET_LEGITIMATE_ADDRESS_P): New.
1460
1461 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1462 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
1463 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
1464 (TARGET_LEGITIMATE_ADDRESS_P): New.
1465
1466 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
1467
1468 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
1469 of MODE_COMPLEX_INT.
1470
1471 2009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1472
1473 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
1474 LCT_NORMAL in function call.
1475 * mips-tdump.c (print_file_desc): Add cast to enum type.
1476 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
1477 (mark_stabs): Add casts to enum types.
1478 (parse_stabs_common): Add casts to enum types.
1479
1480 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
1481
1482 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
1483 Check for invalid values of LETTER.
1484
1485 2009-05-13 Taras Glek <tglek@mozilla.com>
1486
1487 * attribs.c (register_attribute): moved out attribute registration into
1488 register_attribute.
1489 * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
1490 * gcc-plugin.h: Added forward decl for register_attribute.
1491 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
1492 * plugin.c (register_callback, invoke_plugin_callbacks): Added
1493 PLUGIN_ATTRIBUTES boilerplate.
1494
1495 2009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
1496
1497 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
1498 values even in sentinel and empty entries.
1499 (ms_printf_flag_specs): Likewise.
1500 (ms_scanf_flag_specs): Likewise.
1501 (ms_strftime_flag_specs): Likewise.
1502 (ms_print_char_table): Likewise.
1503 (ms_scan_char_table): Likewise.
1504 (ms_time_char_table): Likewise.
1505
1506 2009-05-13 Doug Kwan <dougkwan@google.com>
1507
1508 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
1509
1510 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
1511
1512 * config/mips/mips.md (store): Add attributes for QI and HI.
1513 Update comment.
1514 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
1515 (truncdi<mode>2): ... this new pattern.
1516
1517 2009-05-13 Brad Hards <bradh@kde.org>
1518
1519 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
1520
1521 2009-05-14 Jakub Jelinek <jakub@redhat.com>
1522 Ben Elliston <bje@au.ibm.com>
1523
1524 PR middle-end/40035
1525 * dse.c (check_mem_read_rtx): Guard against width == -1.
1526
1527 2009-05-13 Michael Matz <matz@suse.de>
1528
1529 PR middle-end/39976
1530 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
1531 (trivially_conflicts_p): New function.
1532 (insert_backedge_copies): Use it.
1533
1534 2009-05-13 Janis Johnson <janis187@us.ibm.com>
1535
1536 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
1537 (handle_stdc_pragma): Use new enum constant names.
1538 (handle_pragma_float_const_decimal64): Ditto.
1539
1540 2009-05-13 Ian Lance Taylor <iant@google.com>
1541
1542 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
1543 tree.def.
1544
1545 2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
1546
1547 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
1548 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
1549 multilibs.
1550 * config/m68k/m68k.h (FL_UCLINUX): Define.
1551
1552 2009-05-13 Jan Hubicka <jh@suse.cz>
1553
1554 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
1555
1556 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1557
1558 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
1559 unless -fschedule-insns is specified.
1560
1561 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1562
1563 PR target/39561
1564 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
1565 TARGET_EXPAND_CBRANCHDI4.
1566 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
1567 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
1568 (cmpeqdi): Fix comment.
1569
1570 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1571
1572 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
1573 (sh_legitimate_address_p): Likewise.
1574 * config/sh/sh.c (sh_legitimate_index_p): New.
1575 (sh_legitimate_address_p): Likewise.
1576 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
1577 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
1578 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
1579 (MAYBE_BASE_REGISTER_RTX_P): New macro.
1580 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
1581 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
1582 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
1583 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
1584 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
1585
1586 2009-05-12 Jan Hubicka <jh@suse.cz>
1587
1588 * tree-inline.c (estimate_operator_cost): Add operands;
1589 when division happens by constant, it is cheap.
1590 (estimate_num_insns): Loads and stores are not having cost of 0;
1591 EH magic stuff is cheap; when computing runtime cost of switch,
1592 use log2 base of amount of its cases; builtin_expect has cost of 0;
1593 compute cost for moving return value of call.
1594 (init_inline_once): Initialize time_based flags.
1595 * tree-inline.h (eni_weights_d): Add time_based flag.
1596
1597 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
1598
1599 * df-core.c: Update head documentation.
1600
1601 2009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1602
1603 PR bootstrap/40118
1604 * rs6000.c (rs6000_generate_compare): Use op1b instead of
1605 shadowing exisiting variable op1.
1606
1607 2009-05-12 Uros Bizjak <ubizjak@gmail.com>
1608
1609 PR target/37179
1610 * config/i386/driver-i386.c (processor_signatures): New enum.
1611 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
1612 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
1613 processor signature to detect geode processor.
1614
1615 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
1616
1617 Revert:
1618
1619 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
1620
1621 * optabs.c (prepare_cmp_insn): Temporarily disable test that
1622 causes spurious differences between trunk and cond-optab branch.
1623
1624 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
1625
1626 * dojump.c (compare_from_rtx): Delete.
1627 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
1628 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
1629 if the comparison does not satisfy the predicate; test predicates for
1630 operands 2 and 3 of a cstore pattern. Don't try cstore optab
1631 further if one existing pattern fails.
1632 * expr.h (compare_from_rtx): Delete.
1633 (prepare_operand): Declare it.
1634 * optabs.c: Change "lib call" to "libcall" throughout.
1635 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
1636 HAVE_conditional_trap, emit_cmp_insn): Delete.
1637 (can_compare_p): Delete cmp_optab case.
1638 (prepare_float_lib_cmp): Return an rtx and a machine mode.
1639 Accept other parameters by value.
1640 (prepare_operand): Make non-static.
1641 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
1642 other parameters by value. Try to widen operands here based on
1643 an optab_methods argument and looking at cbranch_optab.
1644 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
1645 loop. Use cbranch_optab directly.
1646 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
1647 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
1648 assertion.
1649 (emit_conditional_move, emit_conditional_add): Inline what's needed
1650 of compare_from_rtx, using new prepare_cmp_insn for the rest.
1651 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
1652 with COMPARE. Move cmov_optab and cstore_optab above
1653 with cbranch_optab, move cmp_optab down with ucmp_optab,
1654 remove tst_otpab. Do not initialize trap_rtx.
1655 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
1656 for trap code. Do not check HAVE_conditional_trap. Use
1657 prepare_cmp_insn. Accept no predicate for operand 3.
1658 * optabs.h (OTI_cmp): Mark as used only for libcalls.
1659 (OTI_ctrap, ctrap_optab): New.
1660 (tst_optab): Delete.
1661 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
1662 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
1663 with lookup of ctrap_optab.
1664 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
1665 setcc_gen_code): Delete.
1666 (ctrap_optab): New.
1667
1668 * combine.c (combine_simplify_rtx, simplify_set): Do not
1669 special case comparing against zero for cc0 machines.
1670 * simplify-rtx.c (simplify_binary_operation_1): Never remove
1671 COMPARE on cc0 machines.
1672 (simplify_relational_operation): Return a new expression when
1673 a COMPARE could be removed.
1674 * final.c (final_scan_insn): Compare cc_status values
1675 against LHS of a (compare FOO (const_int 0)) cc0 source.
1676 Also check if cc_status.value is the full compare.
1677
1678 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
1679 (cstoreMM4): Document.
1680 (conditional_trap): Document ctrapMM4 instead.
1681 (sync_compare_and_swapMM): Refer to cbranchcc4.
1682 (Dependent Patterns): Eliminate obsolete information referring to
1683 the old jump optimization phase.
1684 (Canonicalization): Include cbranchcc4 case, omit canonicalization
1685 of compares with 0 on cc0 machines.
1686 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
1687 avoiding references to cc0. Remove text about storing operands
1688 in cmpMM.
1689 * doc/tm.texi (Condition Codes): Include blurb on different
1690 condition code representations, separate into subsections for
1691 CC0, MODE_CC and conditional execution.
1692
1693 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
1694 alpha_emit_setcc): Accept operands and a machine mode.
1695 * config/alpha/alpha.c (alpha_emit_conditional_branch):
1696 Get code/op0/op1 from operands, use machine mode argument
1697 instead of alpha_compare.fp_p. Emit the branch here.
1698 (alpha_emit_setcc): Likewise, and return boolean.
1699 (alpha_emit_conditional_move): Likewise. Assert that
1700 cmp_op_mode == cmp_mode, and simplify accordingly.
1701 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
1702 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
1703 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
1704 Delete.
1705 (stack probe test): Use cbranchdi4.
1706 * config/alpha/predicates.md (alpha_cbranch_operator): New.
1707
1708 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
1709 * config/arc/arc.h (movsicc, movsfcc): Use it.
1710 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
1711 (cbranchsi4, cstoresi4): New.
1712 (cmpsi, bCC and sCC expanders): Remove.
1713
1714 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
1715 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
1716 * config/arm/predicates.md (arm_comparison_operator): Only include
1717 floating-point operators if there is a hardware floating-point unit.
1718 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
1719 deferring to cbranch_cc and cstore_cc respectively.
1720 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
1721 cbranch_cc, cstore_cc): New.
1722 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
1723 arm_compare_op1.
1724 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
1725
1726 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
1727 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
1728 as an argument.
1729 (adjust_insn_length): Adjust calls.
1730 (avr_reorg): Handle (compare (foo) (const_int 0)).
1731 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
1732 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
1733 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
1734 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
1735 (bCC): Remove.
1736 (cbranchqi4, cbranchhi4, cbranchsi4): New.
1737 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
1738
1739 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
1740 (cbranchsi4, cstorebi4, cstoresi4): New.
1741 (movbisi): This insn is duplicate, split it to zero_extend.
1742 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
1743 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
1744 (bfin_optimize_loop): Use cbranch expander.
1745 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
1746 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
1747 (bfin_bimode_comparison_operator): ... this.
1748 (bfin_direct_comparison_operator): New.
1749
1750 * config/cris/cris.c (cris_normal_notice_update_cc): Look
1751 inside (compare FOO (const_int 0)).
1752 (cris_rtx_costs): Handle ZERO_EXTRACT.
1753 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
1754 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
1755 (*tstdi_v32): Delete.
1756 (*cmpdi_non_v32): Add M alternative for operand 1.
1757 (cmpsi, cmp<mode>): Make private.
1758 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
1759 with COMPARE.
1760 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
1761
1762 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
1763 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
1764 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
1765 (cc_reg_operand): New.
1766 (any_cond): Delete.
1767 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
1768 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
1769 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
1770 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
1771 crx_expand_scond): Delete.
1772
1773 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
1774 (cbranchsi4): New.
1775 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
1776 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
1777
1778 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
1779 cstoresi4, cstoresf4, cstoredf4): New.
1780 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
1781 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
1782 Receive the entire operands array.
1783 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
1784 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
1785 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
1786 Get test/op0/op1 from the operands array.
1787 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
1788
1789 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
1790 (h8300_expand_store): New.
1791 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
1792 (const_int 0)).
1793 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
1794 (h8300_expand_store): New.
1795 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
1796 or do not try to produce (set (cc0) REG).
1797 (peepholes): Wrap arguments with COMPARE. Add a peephole to
1798 change a compare into a move to a scratch register. Disable some
1799 peepholes when comparing with zero.
1800 (tstsi, tsthi, tstsi, cmpqi): Make private.
1801 (cmphi): Delete.
1802 (bCC, sCC): Delete.
1803 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
1804 cstoresi4): New.
1805
1806 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
1807 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
1808 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
1809 (ix86_emit_i387_log1p): Use cbranchxf2.
1810 (ix86_expand_setcc): Return void.
1811 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
1812 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
1813 cmp<MODEF>, cmpcc): Remove.
1814 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
1815 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
1816 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
1817 (sCC and bCC expanders): Remove.
1818 (stack_protect_test): Use cbranchcc4.
1819
1820 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
1821 Delete.
1822 (ia64_expand_compare): Accept three rtx by reference and return void.
1823 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
1824 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
1825 from *expr. Update *expr with the BImode comparison to do.
1826 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
1827 cmptf, bCC, sCC, conditional_trap): Delete.
1828 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
1829 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
1830 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
1831 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
1832 * config/ia64/predicates.md (ia64_cbranch_operator): New.
1833
1834 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
1835 type of last argument.
1836 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
1837 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
1838 use machine mode argument instead of branch_type. Remove dead
1839 code for floating-point comparisons.
1840 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
1841 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
1842 Remove.
1843 (cbranchsi4, cstoresi4): New.
1844 * config/iq2000/predicates.md (reg_or_const_operand): New.
1845
1846 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
1847 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
1848 (b<code>_op): Rewrite to...
1849 (bcc_op): ... this, using match_operator.
1850 (s<code>_op): Rewrite to...
1851 (scc_op): ... this, using match_operator.
1852 (s<code>_24_op): Rewrite to...
1853 (scc_op_24): ... this, using match_operator.
1854 (s<code>_<mode>): Rewrite to...
1855 (cstore<mode>4): ... this, using match_operator.
1856 (s<code>_<mode>_24): Rewrite to...
1857 (cstore<mode>4_24): ... this, using match_operator.
1858 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
1859 m32c_unpend_compare, m32c_expand_scc): Delete.
1860 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
1861 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
1862 (m32c_expand_movcc): Change NE to EQ if necessary.
1863 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
1864
1865 * config/m32r/m32r-protos.h (gen_cond_store): New.
1866 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
1867 (gen_cond_store): New, from sCC patterns.
1868 (m32r_expand_block_move): Use cbranchsi4.
1869 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
1870 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
1871 (cbranchsi4, cstoresi4): New.
1872
1873 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
1874 Delete.
1875 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
1876 (m68hc11_notice_update_cc): Look into a compare with 0.
1877 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
1878 Delete.
1879 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
1880 cmphi, cmpqi, bCC): Delete.
1881 (cbranchsi4, cbranchhi4, cbranchqi4): New.
1882 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
1883 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
1884 sets with COMPARE.
1885
1886 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
1887 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
1888 * config/m68k/constraints.md (H): New.
1889 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
1890 the define_insn below.
1891 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
1892 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
1893 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
1894 patterns): Wrap RHS with COMPARE.
1895 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
1896 (*cmpdi_internal): Name this pattern.
1897 (cmpdi): Change to define_insn.
1898 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
1899 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
1900 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
1901 predicate.
1902 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
1903 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
1904 (conditional_trap): Change to...
1905 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
1906 (*conditional_trap): Use the ordered_comparison_operator and
1907 const1_operand predicates.
1908 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
1909 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
1910 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
1911 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
1912
1913 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
1914 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
1915 (mcore_gen_compare): New.
1916 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
1917 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
1918 (mcore_gen_compare): ... this.
1919 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
1920 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
1921 (stack probe pattern): Use cbranchsi4.
1922
1923 * config/mips/predicates.md (mips_cstore_operator): New.
1924 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
1925 * config/mips/mips.md (any_cond): Delete.
1926 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
1927 always succeed.
1928 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
1929 fixuns_truncsfdi2): Use cbranch patterns.
1930 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
1931 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
1932 Adjust call to mips_expand_conditional_branch.
1933 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
1934 cstore<GPR:mode>4.
1935 * config/mips/mips-protos.h (mips_expand_conditional_branch,
1936 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
1937 * config/mips/mips.c (cmp_operands): Delete.
1938 (mips_emit_compare): Get comparison operands from *op0/*op1.
1939 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
1940 that it succeeds. Use op0/op1 instead of cmp_operands.
1941 (mips_expand_conditional_branch, mips_expand_conditional_move,
1942 mips_expand_conditional_trap): Likewise.
1943 (mips_block_move_loop): Use cbranch patterns.
1944 * config/mips/mips.h (cmp_operands): Delete.
1945
1946 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
1947 (mmix_gen_compare_reg): Just return a register in the right CC mode.
1948 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
1949 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
1950 (*cmpcc_folded): Rename to...
1951 (*cmpdi_folded): this.
1952 (*cmpcc): Rename to...
1953 (*cmps): ... this.
1954 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
1955 (bCC): Remove.
1956 (cbranchdi4): New.
1957 (cbranchdf4): New. Handle invalid comparisons here.
1958 * config/mmix/predicates.md (float_comparison_operator): New.
1959
1960 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
1961 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
1962 * config/mn10300/mn10300.md (tst): Delete.
1963 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
1964 Name these patterns and wrap RHS in a compare.
1965 (*cmpsi): Make this pattern private. Include tst.
1966 (*cmpsf): Make this pattern private.
1967 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
1968 (compare with zero peepholes): Likewise.
1969 (bCC): Remove.
1970 (cbranchsi4, cbranchsf4): New.
1971 (casesi): Use cbranchsi4.
1972
1973 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
1974 hppa_branch_type): Delete.
1975 (return_addr_rtx): Use cbranchsi4.
1976 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
1977 Emit CCFPmode comparison here.
1978 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
1979 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
1980 hppa_branch_type): Delete.
1981 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
1982 (movsicc, movdicc): Remove references to hppa_compare_op0,
1983 hppa_compare_op1 and compare_from_rtx.
1984 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
1985 (casesi): Use cbranchsi4.
1986
1987 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
1988 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
1989 * config/pdp11/pdp11.md (register_or_const0_operand): New.
1990 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
1991 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
1992 (bCC): Delete.
1993 (cbranchdf4, cbranchhi4, cbranchqi4): New.
1994 (*branch, *branch_inverted): New.
1995
1996 * config/picochip/picochip.md (cbranchhi4): Use
1997 ordered_comparison_operator.
1998 (cmphi, bCC): Remove.
1999
2000 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
2001 (trap_comparison_operator): Delete.
2002 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
2003 rs6000_emit_cbranch): Accept mode and operands.
2004 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
2005 rs6000_compare_fp_p): Delete.
2006 (rs6000_generate_compare): Accept mode and comparison. Extract code
2007 and op0/op1 from there. Replace references to rs6000_compare_op0
2008 and rs6000_compare_op1.
2009 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
2010 extract result from passed operands.
2011 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
2012 extract loc from passed operands.
2013 (rs6000_emit_cmove): Likewise.
2014 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
2015 rs6000_compare_fp_p): Delete.
2016 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
2017 (cbranch<GPR>4, cbranch<FP>4): New.
2018 (cstore<mode>4): New. Consolidate here all choices about when to use
2019 portable or specialized sCC sequences.
2020 (stack_protect_test): Use cbranchsi4.
2021 (conditional_trap): Replace with ctrap<GPR>4.
2022 (conditional trap insn): Replace trap_comparison_operator with
2023 ordered_comparison_operator.
2024
2025 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
2026 (s390_emit_prologue): Use ctrap.
2027 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
2028 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
2029 New predicates replacing...
2030 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
2031 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
2032 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
2033 (add<mode>cc): Do not use s390_compare_op0/op1.
2034 (s<code>): Change to...
2035 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
2036 (seq): Change to...
2037 (cstorecc4): ... this. Handle EQ or NE equally.
2038 (*sne): Un-privatize for use in cstorecc4.
2039 (b<code>): Change to...
2040 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
2041 (conditional_trap): Replace with...
2042 (ctrap<GPR>4, ctrap<FP>4): ... these.
2043 (stack_protect): Use cbranchcc4.
2044
2045 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
2046 * config/score/score-protos.h (score_gen_cmp): Delete.
2047 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
2048 (score_block_move-loop): Use cbranchsi4.
2049 * config/score/score.md (cbranchsi4): New.
2050 (cmpsi, bCC): Delete.
2051 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
2052 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
2053 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
2054 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
2055 * config/score/score3.h (score3_gen_cmp): Delete.
2056 * config/score/score7.h (score7_gen_cmp): Delete.
2057
2058 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
2059 (sh_emit_scc_to_t): ... this. Return void.
2060 (from_compare): Rename to...
2061 (sh_emit_compare_and_branch): ... this.
2062 (sh_emit_compare_and_set): New.
2063 (sh_expand_t_scc): Accept operands.
2064 * config/sh/predicates.md (sh_float_comparison_operator): New.
2065 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
2066 (prepare_scc_operands): Rename to...
2067 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
2068 arguments.
2069 (sh_emit_cheap_store_flag): New.
2070 (sh_emit_set_t_insn): New.
2071 (from_compare): Rename to...
2072 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
2073 handling of TARGET_SH2E floating point to avoid recursive call.
2074 Generate branch here.
2075 (sh_emit_compare_and_set): New.
2076 (sh_expand_t_scc): Get op0/op1 from arguments.
2077 (sh_emit_cheap_store_flag): New.
2078 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
2079 cases.
2080 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
2081 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
2082 (movsicc, movdicc): Do nothing when it recreated operands from
2083 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
2084 prepare_scc_operands (now sh_emit_scc_to_t).
2085 (udivdi3): Use cstoresi4.
2086 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
2087 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
2088 (cbranchint4_media, cbranchfp4_media): New.
2089 (casesi): Use cbranchdi4.
2090 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
2091 Delete.
2092 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
2093 (movnegt): Remove second operand.
2094 (cbranchsf4, cbranchdf4): New.
2095 (stack_protect): Use cbranchdi4/cbranchsi4.
2096
2097 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
2098 (gen_compare_reg): Accept comparison, extract part of it to...
2099 (gen_compare_reg_1): ... this.
2100 (gen_compare_operator): Delete.
2101 (gen_v9_scc): Accept separate destination, comparison code and arms.
2102 Do not use sparc_compare_op0/sparc_compare_op1.
2103 (emit_scc_insn, emit_conditional_branch_insn): New.
2104 (emit_v9_brxx): Make static. Remove useless assertion.
2105 (sparc_emit_float_lib_cmp): Return RTL instead of calling
2106 emit_cmp_insn.
2107 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
2108 * config/sparc/sparc-protos.h (gen_compare_reg,
2109 sparc_emit_float_lib_cmp): Adjust prototype.
2110 (emit_scc_insn, emit_conditional_branch_insn): New.
2111 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
2112 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
2113 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
2114 iterators to the top.
2115 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
2116 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
2117 snedi_special_trunc): Delete.
2118 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
2119 and snedi_special_trunc.
2120 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
2121 cbranchdi4, cbranch<F:mode>4): New.
2122 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
2123 here. Use gen_compare_reg instead of gen_compare_operator.
2124 (conditional_trap): Replace with...
2125 (ctrapsi4, ctrapdi4): ... this.
2126 (stack_protect_test): Use cbranchcc4.
2127
2128 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
2129 argument to rtx.
2130 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
2131 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
2132 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
2133 from operands[0] or operands[3] depending on is_set.
2134 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
2135 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
2136 cmpdf, bCC), sCC: Remove.
2137 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
2138 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
2139 cstoredf4): New.
2140 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
2141 spu_emit_branch_or_set.
2142
2143 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
2144 Add two arguments.
2145 * config/stormy16/stormy16.h (xstormy16_compare_op0,
2146 xstormy16_compare_op1): Delete.
2147 * config/stormy16/stormy16.c (xstormy16_compare_op0,
2148 xstormy16_compare_op1): Delete.
2149 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
2150 Adjust calls.
2151 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
2152 (cmphi, cmpsi, bCC): Remove.
2153
2154 * config/v850/v850.md (tstsi, cmpsi): Fold into...
2155 (*cmpsi): ... this one.
2156 (cbranchsi4, cstoresi4): New.
2157 (bCC expanders): Delete.
2158 (sCC insns): Fold into...
2159 (*setcc): ... this one.
2160 (casesi): Do not use gen_cmpsi and gen_bgtu.
2161 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
2162 (movsicc): Simplify.
2163 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
2164
2165 * config/vax/vax-protos.h (cond_name): New.
2166 (vax_output_conditional_branch): Remove.
2167 * config/vax/vax.c (cond_name): New.
2168 (vax_output_conditional_branch): Remove.
2169 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
2170 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
2171 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
2172 (bit<VAXint>): Wrap source with (compare).
2173 (b<code> and following unnamed pattern): Rename to *branch and
2174 *branch_reversed. Change macroization to match_operator.
2175 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
2176
2177 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
2178 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
2179 Change last argument to machine_mode.
2180 (xtensa_expand_scc): Add machine_mode argument.
2181 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
2182 (gen_conditional_move, xtensa_expand_conditional_branch,
2183 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
2184 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
2185 Adjust operand numbers.
2186 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
2187 Delete.
2188 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
2189 (cmpsi, cmpsf, b<code>, s<code>): Delete.
2190 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
2191
2192 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
2193
2194 * optabs.c (prepare_cmp_insn): Temporarily disable test that
2195 causes spurious differences between trunk and cond-optab branch.
2196
2197 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
2198
2199 PR target/37137
2200 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
2201
2202 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
2203
2204 * tree.c (iterative_hash_pointer): Delete.
2205 (iterative_hash_expr): Short-circuit handling of NULL pointer.
2206 Hash UIDs and versions of SSA names. Don't special-case built-in
2207 function declarations.
2208
2209 2009-05-11 Ian Lance Taylor <iant@google.com>
2210
2211 PR bootstrap/40103
2212 * graphite.c: Force -Wc++-compat to only be a warning before
2213 #including "cloog/cloog.h".
2214
2215 2009-05-11 Martin Jambor <mjambor@suse.cz>
2216
2217 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
2218
2219 2009-05-11 Jan Hubicka <jh@suse.cz>
2220
2221 * tree-ssa-loop-ivcanon.c: Include target.h
2222 (struct loop_size): new structure.
2223 (constant_after_peeling): New predicate.
2224 (tree_estimate_loop_size): New function.
2225 (estimated_unrolled_size): Rewrite for new estimates.
2226 (try_unroll_loop_completely): Use new estimates.
2227 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
2228
2229 2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
2230
2231 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
2232 libcpp interface change.
2233 (spu_macro_to_expand): Likewise.
2234
2235 2009-05-11 Paolo Bonzini <bonzini@gnu.org>
2236
2237 PR tree-optimization/40026
2238 * gimplify.c (gimplify_init_constructor): Change initial conditional
2239 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
2240 optimize_compound_literals_in_ctor.
2241
2242 2009-05-11 Nathan Sidwell <nathan@codesourcery.com>
2243
2244 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
2245 New devices.
2246 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
2247
2248 2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
2249
2250 * tree-vect-data-refs.c (vect_analyze_group_access): Use
2251 HOST_WIDE_INT for gap.
2252
2253 2009-05-11 Ira Rosen <irar@il.ibm.com>
2254
2255 PR tree-optimization/40074
2256 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
2257 account in group size and step comparison.
2258
2259 2009-05-11 Richard Guenther <rguenther@suse.de>
2260
2261 * passes.c (init_optimization_passes): Strip now incorrect comment.
2262 (execute_function_todo): Do not set PROP_alias.
2263 * tree-pass.h (PROP_alias): Remove.
2264 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
2265 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
2266 * tree-nrv.c (pass_return_slot): Likewise.
2267 * tree-object-size.c (pass_object_sizes): Likewise.
2268 * tree-ssa-dom.c (pass_dominator): Likewise.
2269 (pass_phi_only_cprop): Likewise.
2270 * tree-ssa-dse.c (pass_dse): Likewise.
2271 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
2272 (pass_cselim): Likewise.
2273 * tree-ssa-pre.c (pass_pre): Likewise.
2274 (pass_fre): Likewise.
2275 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
2276 * tree-ssa-sink.c (pass_sink_code): Likewise.
2277 * tree-stdarg.c (pass_stdarg): Likewise.
2278 * tree-tailcall.c (pass_tail_calls): Likewise.
2279 * tree-vrp.c (pass_vrp): Likewise.
2280
2281 2009-05-10 Ian Lance Taylor <iant@google.com>
2282
2283 * basic-block.h (enum profile_status): Break out of struct
2284 control_flow_graph.
2285 * cgraph.h (struct inline_summary): Break out of struct
2286 cgraph_local_info.
2287 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
2288 of struct cgraph_order_sort.
2289 * combine.c (enum undo_kind): New enum, broken out of struct undo.
2290 * cse.c (struct branch_path): Break out of struct
2291 cse_basic_block_data.
2292 * except.h (enum eh_region_type): Break out of struct eh_region.
2293 * gcc.c (enum add_del): Break out of struct modify_target.
2294 * genrecog.c (enum decision_type): Break out of struct decision_test.
2295 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
2296 ggc_pch_data.
2297 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
2298 * regmove.c (enum match_use): New enum, broken out of struct match.
2299 * sched-int.h (enum post_call_group): New enum, broken out of
2300 struct deps.
2301 (struct deps_reg): Break out of struct deps.
2302 * target.h (struct asm_int_op): Break out of struct gcc_target.
2303 * tree-eh.c (struct goto_queue_node): Break out of struct
2304 leh_tf_state.
2305 * tree-inline.h (enum copy_body_cge_which): Break out of
2306 copy_body_data.
2307 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
2308
2309 * c-decl.c (in_struct, struct_types): New static variables.
2310 (pushtag): Add loc parameter. Change all callers.
2311 (lookup_tag): Add ploc parameter. Change all callers.
2312 (check_compound_literal_type): New function.
2313 (parser_xref_tag): Add loc parameter. Change all callers. If
2314 -Wc++-compat, warn about struct/union/enum types defined within a
2315 struct or union.
2316 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
2317 and loc parameters. Change all callers. Change error calls to
2318 error_at, using loc. For a redefinition, if the location of the
2319 original definition is known, report it. Set in_struct and
2320 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
2321 (finish_struct): Add new parameters enclosing_in_struct and
2322 enclosing_struct_types. Change all callers. Set
2323 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
2324 in the struct. If in a struct, add this struct to struct_types.
2325 (start_enum): Add loc parameter. Change all callers. Use
2326 error_at for errors, using loc. For a redefinition, if the
2327 location of the original definition is known, report it. If in a
2328 struct, add this enum type to struct_types. If -Wc++-compat warn
2329 if in sizeof, typeof, or alignof.
2330 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
2331 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
2332 (c_parser_enum_specifier): Get enum location for start_enum.
2333 (c_parser_struct_or_union_specifier): Get struct location for
2334 start_struct. Save in_struct and struct_types status between
2335 start_struct and finish_struct.
2336 (c_parser_cast_expression): Get location of cast.
2337 (c_parser_alignof_expression): Get location of type.
2338 (c_parser_postfix_expression): Likewise.
2339 (c_parser_postfix_expression_after_paren_type): Add type_loc
2340 parameter. Change all callers. Call check_compound_literal_type.
2341 Use type_loc for error about variable size type.
2342 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
2343 of an enum constant from an enum type defined in a struct or union.
2344 (c_cast_expr): Add loc parameter. Change all callers. If
2345 -Wc++-compat, warn about defining a type in a cast.
2346 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
2347 (start_enum, start_struct, finish_struct): Update declarations.
2348 (parser_xref_tag, c_cast_expr): Update declarations.
2349 (check_compound_literal_type): Declare.
2350
2351 2009-05-11 Ben Elliston <bje@au.ibm.com>
2352
2353 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
2354 for recent libcpp interface change.
2355 (rs6000_macro_to_expand): Likewise.
2356
2357 2009-05-10 Michael Matz <matz@suse.de>
2358
2359 PR target/40031
2360 * config/arm/arm.c (require_pic_register): Emit on entry edge,
2361 not at entry of function.
2362
2363 2009-05-10 Richard Guenther <rguenther@suse.de>
2364
2365 PR tree-optimization/40081
2366 Revert
2367 * tree-sra.c (instantiate_element): Instantiate scalar replacements
2368 using the main variant of the element type. Do not fiddle with
2369 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
2370
2371 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
2372 structs with volatile fields.
2373
2374 2009-05-10 Jan Hubicka <jh@suse.cz>
2375
2376 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
2377 (estimate_move_cost): Assert that it does not get called for
2378 VOID_TYPE_P.
2379 (estimate_num_insns): Skip VOID types in argument handling.
2380 (optimize_inline_calls): Delete unreachable blocks and verify that
2381 callgraph is valid.
2382
2383 2009-05-10 Jan Hubicka <jh@suse.cz>
2384
2385 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
2386 * cgraph.c (cgraph_mark_address_taken_node): New function.
2387 (dump_cgraph_node): Dump new flag.
2388 * cgraph.h (struct cgraph_node): Add address_taken.
2389 (cgraph_mark_address_taken_node): New function.
2390 * ipa.c (cgraph_postorder): Prioritize functions with address taken
2391 since new direct calls can be born.
2392
2393 2009-05-10 Joseph Myers <joseph@codesourcery.com>
2394
2395 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
2396 tok->val.node.node.
2397
2398 2009-05-10 Jan Hubicka <jh@suse.cz>
2399
2400 PR middle-end/40084
2401 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
2402 argument; rewrite.
2403 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
2404 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
2405 * tree-inline.c (copy_bb): Set frequency correctly.
2406 (fold_marked_statements): Update call to
2407 cgraph_update_edges_for_call_stmt.
2408
2409 2009-05-10 Joseph Myers <joseph@codesourcery.com>
2410
2411 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
2412 identifiers in diagnostics.
2413 * config/arm/arm.c (arm_handle_fndecl_attribute,
2414 arm_handle_isr_attribute): Likewise.
2415 * config/avr/avr.c (avr_handle_progmem_attribute,
2416 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
2417 * config/bfin/bfin.c (handle_int_attribute,
2418 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
2419 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
2420 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
2421 Likewise.
2422 * config/darwin.c (darwin_handle_kext_attribute,
2423 darwin_handle_weak_import_attribute): Likewise.
2424 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
2425 h8300_handle_eightbit_data_attribute,
2426 h8300_handle_tiny_data_attribute): Likewise.
2427 * config/i386/i386.c (ix86_handle_cconv_attribute,
2428 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
2429 * config/i386/winnt.c (ix86_handle_shared_attribute,
2430 ix86_handle_selectany_attribute): Likewise.
2431 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
2432 * config/m32c/m32c.c (function_vector_handler): Likewise.
2433 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
2434 m68hc11_handle_fntype_attribute): Likewise.
2435 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
2436 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
2437 * config/mips/mips.c (mips_insert_attributes,
2438 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
2439 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
2440 rs6000_handle_struct_attribute): Likewise.
2441 * config/sh/sh.c (sh_insert_attributes,
2442 sh_handle_resbank_handler_attribute,
2443 sh_handle_interrupt_handler_attribute,
2444 sh2a_handle_function_vector_handler_attribute,
2445 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
2446 Likewise.
2447 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
2448 * config/spu/spu.c (spu_handle_fndecl_attribute,
2449 spu_handle_vector_attribute): Likewise.
2450 * config/stormy16/stormy16.c
2451 (xstormy16_handle_interrupt_attribute): Likewise.
2452 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
2453 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
2454
2455 2009-05-10 Joseph Myers <joseph@codesourcery.com>
2456
2457 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
2458 (pp_translate_identifiers): New.
2459 (pp_identifier): Only conditionally translate identifier to locale
2460 character set.
2461 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
2462 (pp_base_tree_identifier): Only conditionally translate identifier
2463 to locale character set.
2464 * c-pretty-print.c (M_): Define.
2465 (pp_c_type_specifier, pp_c_primary_expression): Mark English
2466 fragments for conditional translation with M_.
2467 * tree-pretty-print.c (maybe_init_pretty_print): Disable
2468 identifier translation.
2469
2470 2009-05-10 Richard Guenther <rguenther@suse.de>
2471
2472 PR tree-optimization/40081
2473 * tree-sra.c (instantiate_element): Instantiate scalar replacements
2474 using the main variant of the element type. Do not fiddle with
2475 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
2476
2477 2009-05-09 Jan Hubicka <jh@suse.cz>
2478
2479 PR middle-end/40080
2480 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
2481 indirect calls; verify cgraph afterwards.
2482
2483 2009-05-09 Jan Hubicka <jh@suse.cz>
2484
2485 PR bootstrap/40082
2486 * ipa.c (update_inlined_to_pointer): New function.
2487 (cgraph_remove_unreachable_nodes): Use it.
2488
2489 2009-05-09 Jan Hubicka <jh@suse.cz>
2490
2491 * tree-eh.c (struct leh_state): Remove prev_try.
2492 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
2493 not track prev_try.
2494 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
2495 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
2496 remove_eh_handler_and_replace, foreach_reachable_handler,
2497 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
2498 * except.h (struct eh_region): Remove eh_region_u_cleanup.
2499 (gen_eh_region_cleanup): Update prototype.
2500
2501 2009-05-09 Jan Hubicka <jh@suse.cz>
2502
2503 PR middle-end/40043
2504 * except.c (copy_eh_region): Always set prev_try.
2505 (redirect_eh_edge_to_label): Find outer try.
2506 (foreach_reachable_handler): When looking for prev try
2507 handle case where previous try is not going to be taken.
2508
2509 2009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
2510
2511 PR tree-optimization/40049
2512 * tree-vect-stmts.c (vectorizable_operation): If the machine has
2513 only vector/vector shifts, convert the type of the constant to the
2514 appropriate type to avoid building incorrect trees, which
2515 eventually have problems with garbage collection.
2516
2517 2009-05-08 Joseph Myers <joseph@codesourcery.com>
2518
2519 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
2520 -1 for complex floating-point types if honoring signed zeros.
2521
2522 2009-05-08 Jan Hubicka <jh@suse.cz>
2523
2524 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
2525 argument; handle correctly when profile is absent.
2526 (build_cgraph_edges): Update.
2527 (rebuild_cgraph_edges): Update.
2528 * cgraph.c: Do not include varray.h.
2529 (cgraph_set_call_stmt_including_clones): New function.
2530 (cgraph_create_edge_including_clones): Likewise
2531 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
2532 (cgraph_update_edges_for_call_stmt): Handle clones.
2533 (cgraph_remove_node): Handle clone tree.
2534 (cgraph_remove_node_and_inline_clones): New function.
2535 (dump_cgraph_node): Dump clone tree.
2536 (cgraph_clone_node): Handle clone tree.
2537 (clone_function_name): Bring here from tree-inline.c.
2538 (cgraph_create_virtual_clone): New function.
2539 * cgraph.h (ipa_replace_map): Move here from ipa.h.
2540 (cgraph_clone_info): New function.
2541 (strut cgraph_node): Add clone_info and new clone tree pointers.
2542 (cgraph_remove_node_and_inline_clones,
2543 cgraph_set_call_stmt_including_clones,
2544 cgraph_create_edge_including_clones,
2545 cgraph_create_virtual_clone): Declare.
2546 (cgraph_function_versioning): Use VEC argument.
2547 (compute_call_stmt_bb_frequency): Update prototype.
2548 (cgraph_materialize_all_clones): New function.
2549 * ipa-cp.c (ipcp_update_cloned_node): Remove.
2550 (ipcp_create_replace_map): Update to VECtors.
2551 (ipcp_update_callgraph): Use virtual clones.
2552 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
2553 (ipcp_update_profiling): Do not update local profiling.
2554 (ipcp_insert_stage): Use VECtors and virtual clones.
2555 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
2556 (clone_of_p): New function.
2557 (cgraph_preserve_function_body_p): Use clone tree.
2558 (cgraph_optimize): Materialize clones.
2559 (cgraph_function_versioning): Update for VECtors.
2560 (save_inline_function_body): Use clone tree.
2561 (cgraph_materialize_clone): New function.
2562 (cgraph_materialize_all_clones): Likewise.
2563 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
2564 * ipa.c: Include gimple.h.
2565 (cgraph_remove_unreachable_nodes): Use clone tree.
2566 * ipa-prop.c (ipa_note_param_call): Update call to
2567 compute_call_stmt_bb_frequencycall.
2568 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
2569 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
2570 (copy_bb): Handle updating of clone tree; add new edge when new call
2571 appears.
2572 (expand_call_inline): Be strict about every call having edge.
2573 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
2574 (delete_unreachable_blocks_update_callgraph): New function.
2575 (tree_function_versioning): Use VECtors; always remove unreachable
2576 blocks and fold conditionals.
2577 * tree-inline.h: Do not include varray.h.
2578 (tree_function_versioning): Remove.
2579 * Makefile.in (GTFILES): Remove tree-inline.c
2580 * passes.c (do_per_function): Do only functions having body.
2581 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
2582 tree.
2583
2584 2009-05-08 H.J. Lu <hongjiu.lu@intel.com>
2585 Andrew Morrow <acm@google.com>
2586
2587 PR c/36892
2588 * c-common.c (c_common_attribute_table): Permit deprecated
2589 attribute to take an optional argument.
2590 (handle_deprecated_attribute): If the optional argument to
2591 __attribute__((deprecated)) is not a string ignore the attribute
2592 and emit a warning.
2593
2594 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
2595 * c-typeck.c (build_component_ref): Likewise.
2596 (build_external_ref): Likewise.
2597
2598 * toplev.c (warn_deprecated_use): Add an attribute argument.
2599 Emit the message associated with __attribute__((deprecated)).
2600
2601 * toplev.h (warn_deprecated_use): Updated.
2602
2603 * doc/extend.texi: Document new optional parameter to
2604 __attribute__((deprecated))
2605
2606 2009-05-08 Michael Eager <eager@eagercon.com>
2607
2608 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
2609 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
2610
2611 2009-05-08 Richard Guenther <rguenther@suse.de>
2612
2613 PR tree-optimization/40062
2614 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
2615 Avoid exponential behavior.
2616
2617 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
2618
2619 PR rtl-optimization/33928
2620 PR 26854
2621 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
2622 process_uses, build_single_def_use_links): New.
2623 (update_df): Update use_def_ref.
2624 (forward_propagate_into): Use get_def_for_use instead of use-def
2625 chains.
2626 (fwprop_init): Call build_single_def_use_links and let it initialize
2627 dataflow.
2628 (fwprop_done): Free use_def_ref.
2629 (fwprop_addr): Eliminate duplicate call to df_set_flags.
2630 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
2631 df_rd_simulate_one_insn): New.
2632 (df_rd_bb_local_compute_process_def): Update head comment.
2633 (df_chain_create_bb): Use the new RD simulation functions.
2634 * df.h (df_rd_simulate_artificial_defs_at_top,
2635 df_rd_simulate_one_insn): New.
2636 * opts.c (decode_options): Enable fwprop at -O1.
2637 * doc/invoke.texi (-fforward-propagate): Document this.
2638
2639 2009-05-08 Joseph Myers <joseph@codesourcery.com>
2640
2641 PR c/24581
2642 * c-typeck.c (build_binary_op): Handle arithmetic between one real
2643 and one complex operand specially.
2644 * tree-complex.c (some_nonzerop): Do not identify a real value as
2645 zero if flag_signed_zeros.
2646
2647 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
2648
2649 PR rtl-optimization/33928
2650 * loop-invariant.c (record_use): Fix && vs. || mishap.
2651
2652 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
2653
2654 PR rtl-optimization/33928
2655 * loop-invariant.c (struct use): Add addr_use_p.
2656 (struct def): Add n_addr_uses.
2657 (struct invariant): Add cheap_address.
2658 (create_new_invariant): Set cheap_address.
2659 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
2660 (record_uses): Pass df_ref to record_use.
2661 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
2662 used only as such.
2663
2664 2009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
2665
2666 * config/sh/sh.c: Do not include c-pragma.h.
2667
2668 2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
2669
2670 * config/spu/spu.c: Remove include of c-common.h.
2671
2672 2009-05-07 Janis Johnson <janis187@us.ibm.com>
2673
2674 PR c/39037
2675 * c-common.h (mark_valid_location_for_stdc_pragma,
2676 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
2677 clear_float_const_decimal64, float_const_decimal64_p): New.
2678 * c.opt (Wunsuffixed-float-constants): New.
2679 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
2680 unsuffixed float constant, handle new warning.
2681 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
2682 * c-decl.c (c_scope): New flag float_const_decimal64.
2683 (set_float_const_decimal64, clear_float_const_decimal64,
2684 float_const_decimal64_p): New.
2685 (push_scope): Set new flag.
2686 * c-parser.c (c_parser_translation_unit): Mark when it's valid
2687 to use STDC pragmas.
2688 (c_parser_external_declaration): Ditto.
2689 (c_parser_compound_statement_nostart): Ditto.
2690 * c-pragma.c (valid_location_for_stdc_pragma,
2691 mark_valid_location_for_stdc_pragma,
2692 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
2693 handle_pragma_float_const_decimal64): New.
2694 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
2695 * cp/semantics.c (valid_location_for_stdc_pragma_p,
2696 set_float_const_decimal64, clear_float_const_decimal64,
2697 float_const_decimal64_p): New dummy functions.
2698 * doc/extend.texi (Decimal Float): Remove statement that the
2699 pragma, and suffix for double constants, are not supported.
2700 * doc/invoke.texi (Warning Options): List new option.
2701 (-Wunsuffixed-float-constants): New.
2702
2703 2009-05-08 Steven Bosscher <steven@gcc.gnu.org>
2704
2705 * config/i386/i386.c: Do not include c-common.h.
2706
2707 2009-05-07 Mark Heffernan <meheff@google.com>
2708
2709 * doc/invoke.texi (Debugging Options): Document change of debugging
2710 dump location.
2711 * opts.c (decode_options): Make dump_base_name relative to
2712 aux_base_name directory.
2713
2714 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2715
2716 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
2717 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
2718
2719 2009-05-07 Rafael Avila de Espindola <espindola@google.com>
2720
2721 * Makefile.in (install-plugin): Simplify a bit.
2722
2723 2009-05-07 Paolo Bonzini <bonzini@gnu.org>
2724
2725 * Makefile.in (OBJS-common): Add regcprop.o.
2726 (regcprop.o): New.
2727 * timevar.def (TV_CPROP_REGISTERS): New.
2728 * regrename.c (regrename_optimize): Return 0.
2729 (rest_of_handle_regrename): Delete.
2730 (pass_rename_registers): Point to regrename_optimize.
2731 (struct value_data_entry, struct value_data,
2732 kill_value_one_regno, kill_value_regno, kill_value,
2733 set_value_regno, init_value_data, kill_clobbered_value,
2734 kill_set_value, kill_autoinc_value, copy_value,
2735 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
2736 replace_oldest_value_reg, replace_oldest_value_addr,
2737 replace_oldest_value_mem, copyprop_hardreg_forward_1,
2738 debug_value_data, validate_value_data): Move...
2739 * regcprop.c: ... here.
2740 (rest_of_handle_cprop): Delete.
2741 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
2742
2743 2009-05-07 Jakub Jelinek <jakub@redhat.com>
2744
2745 PR middle-end/40057
2746 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
2747 GEN_INT for 1 << bitnum.
2748 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
2749 build_int_cst_type.
2750
2751 2009-05-07 Uros Bizjak <ubizjak@gmail.com>
2752
2753 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
2754 Remove wrong description of "nand" operation.
2755
2756 2009-05-06 Richard Guenther <rguenther@suse.de>
2757 Adam Nemet <anemet@caviumnetworks.com>
2758
2759 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
2760 comment. Add that if LHS is not a gimple register, then RHS1 has
2761 to be a single object (GIMPLE_SINGLE_RHS).
2762
2763 2009-05-06 Adam Nemet <anemet@caviumnetworks.com>
2764
2765 * expr.c (get_def_for_expr): Move it up in the file.
2766 (store_field): When expanding a bit-field store, look at the
2767 defining gimple stmt for the masking conversion.
2768
2769 2009-05-06 Janis Johnson <janis187@us.ibm.com>
2770
2771 PR middle-end/39986
2772 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
2773 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
2774 32-bit memcpy into long.
2775
2776 2009-05-06 Jakub Jelinek <jakub@redhat.com>
2777
2778 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
2779 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
2780 new_reg_loc_descr.
2781 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
2782 instead of appending DW_OP_deref*.
2783
2784 2009-05-06 Michael Matz <matz@suse.de>
2785
2786 PR middle-end/40021
2787 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
2788 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
2789
2790 2009-05-06 Rafael Avila de Espindola <espindola@google.com>
2791
2792 * Makefile.in (install-plugin): Fix srcdir handling.
2793
2794 2009-05-06 Andrey Belevantsev <abel@ispras.ru>
2795
2796 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
2797 when processing for not_regs_needed bitmap.
2798 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
2799 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
2800 handling it for rhs.
2801
2802 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
2803
2804 * config/i386/i386.md (unnamed inc/dec peephole): Use
2805 optimize_insn_for_size_p instead of optimize_size.
2806 * config/i386/predicates.md (incdec_operand): Likewise.
2807 (aligned_operand): Likewise.
2808 * config/i386/sse.md (divv8sf3): Likewise.
2809 (sqrtv8sf2): Likewise.
2810
2811 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
2812
2813 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
2814
2815 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
2816
2817 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
2818
2819 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
2820 ssemodesuffixf2c with avxmodesuffixf2c.
2821
2822 2009-05-06 Joseph Myers <joseph@codesourcery.com>
2823
2824 PR c/40032
2825 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
2826
2827 2009-05-05 Jakub Jelinek <jakub@redhat.com>
2828
2829 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
2830 (struct tree_base): Adjust spacing for 8 bit boundaries.
2831 (struct tree_decl_common): Add decl_by_reference_flag bit.
2832 (DECL_BY_REFERENCE): Adjust.
2833 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
2834 print DECL_BY_REFERENCE bit.
2835 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
2836 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
2837 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
2838 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
2839 unconditionally.
2840
2841 PR middle-end/39666
2842 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
2843 range of the type, but default label is missing, add it with one
2844 of the existing labels instead of adding a new label for it.
2845
2846 2009-05-05 Joseph Myers <joseph@codesourcery.com>
2847
2848 * dwarf.h: Remove.
2849
2850 2009-05-05 Rafael Avila de Espindola <espindola@google.com>
2851
2852 * Makefile.in (enable_plugin, plugin_includedir): New.
2853 (install): Depend on install-plugin.
2854 (PLUGIN_HEADERS): New.
2855 (install-plugin): New.
2856 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
2857
2858 2009-05-05 Richard Guenther <rguenther@suse.de>
2859
2860 PR tree-optimization/40022
2861 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
2862 the only vuse.
2863 (phivn_valid_p): Fix tuplification error, simplify.
2864 (phiprop_insert_phi): Add dumps.
2865 (propagate_with_phi): Simplify.
2866
2867 2009-05-05 Richard Guenther <rguenther@suse.de>
2868
2869 PR middle-end/40023
2870 * builtins.c (gimplify_va_arg_expr): Properly build the address.
2871
2872 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
2873
2874 * tree.h (strip_float_extensions): Remove duplicate declaration.
2875 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
2876 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
2877 block_ultimate_origin): Rearrange the declarations line to match the
2878 comment that indicates the .c file which the functions are defined.
2879 (dwarf2out_*, set_decl_rtl): Add comment.
2880 (get_base_address): Adjust comment.
2881 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
2882 declarations line and add comment.
2883 (is_builtin_name): Add blank after function name, for clarity.
2884
2885 2009-05-04 Joseph Myers <joseph@codesourcery.com>
2886
2887 * attribs.c (decl_attributes): Use %qE for identifiers in
2888 diagnostics.
2889 * cgraphunit.c (verify_cgraph_node): Translate function names to
2890 locale character set in diagnostics.
2891 * coverage.c (get_coverage_counts): Use %qE for identifiers in
2892 diagnostics.
2893 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
2894 Document that functions are named in UTF-8.
2895 * expr.c (expand_expr_real_1): Translate function names to locale
2896 character set in diagnostics.
2897 * gimplify.c (omp_notice_variable, omp_is_private,
2898 gimplify_scan_omp_clauses): Use %qE for identifiers in
2899 diagnostics.
2900 * langhooks.c (lhd_print_error_function): Translate function names
2901 to locale character set.
2902 * langhooks.h (decl_printable_name): Document that return value is
2903 in internal character set.
2904 * stmt.c: Include pretty-print.h
2905 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
2906 diagnostics.
2907 (resolve_operand_name_1): Translate named operand name to locale
2908 character set.
2909 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
2910 diagnostics.
2911 * toplev.c (announce_function): Translate function names to locale
2912 character set.
2913 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
2914 (default_tree_printer): Use pp_identifier or translate identifiers
2915 to locale character set. Mark "<anonymous>" for translation.
2916 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
2917 for identifiers in diagnostics.
2918 * tree.c (handle_dll_attribute): Use %qE for identifiers in
2919 diagnostics.
2920 * varasm.c (output_constructor): Use %qE for identifiers in
2921 diagnostics.
2922
2923 2009-05-04 Rafael Avila de Espindola <espindola@google.com>
2924
2925 * configure.ac: use ` ` instead of $()
2926 * configure: Regenerate.
2927
2928 2009-05-05 Ben Elliston <bje@au.ibm.com>
2929
2930 * config/pa/linux-atomic.c: Eliminate conditional include of
2931 errno.h on non-LP64 systems to simplify build requirements.
2932
2933 2009-05-04 Joseph Myers <joseph@codesourcery.com>
2934
2935 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
2936 diagnostics.
2937 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
2938 and pass value to identifier_to_locale.
2939 (warn_variable_length_array): Make name a tree.
2940 (grokdeclarator): Separate diagnostic texts for named and unnamed
2941 declarators. Use %qE for named declarators.
2942 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
2943 diagnostics.
2944 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
2945 identifiers in diagnostics.
2946 * c-typeck.c (push_member_name, start_init): Pass identifiers to
2947 identifier_to_locale. Mark "anonymous" strings for translation.
2948
2949 2009-05-04 Michael Eager <eager@eagercon.com>
2950
2951 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
2952 address for DImode/DFmode only if double-precision FP regs.
2953
2954 2009-05-04 Michael Eager <eager@eagercon.com>
2955
2956 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
2957 TARGET_SINGLE_FLOAT check.
2958
2959 2009-05-04 Michael Eager <eager@eagercon.com>
2960
2961 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
2962
2963 2009-05-04 Michael Eager <eager@eagercon.com>
2964
2965 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
2966 * config/rs6000/t-xilinx: New
2967
2968 2009-05-04 Paolo Bonzini <bonzini@gnu.org>
2969
2970 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
2971 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
2972 * gcc/explow.c (memory_address): Use target hook.
2973 * gcc/targhooks.c (default_legitimize_address): New.
2974 * gcc/targhooks.h (default_legitimize_address): New.
2975 * gcc/target.h (legitimize_address): New.
2976 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
2977 (TARGET_INITIALIZER): Include it.
2978 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
2979
2980 * config/bfin/bfin-protos.h (legitimize_address): Remove.
2981 * config/bfin/bfin.c (legitimize_address): Remove.
2982 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
2983 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
2984 Remove.
2985 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
2986 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
2987
2988 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
2989 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
2990 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
2991 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
2992 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
2993 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
2994 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
2995 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
2996 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
2997 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
2998 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
2999 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
3000 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
3001 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
3002 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
3003 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
3004 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
3005 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
3006 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
3007 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
3008 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
3009 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
3010 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
3011
3012 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
3013 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
3014 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
3015 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
3016 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
3017 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
3018 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
3019 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
3020 (thumb_legitimize_address): Delete.
3021 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
3022 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
3023 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
3024 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
3025 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
3026 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
3027 Delete.
3028 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
3029 Delete.
3030
3031 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
3032 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
3033 * config/m32r/m32r.c (m32r_legitimize_address): New.
3034 * config/m68k/m68k.c (m68k_legitimize_address): New.
3035 * config/score/score.c (score_legitimize_address): Standardize.
3036 * config/score/score3.c (score3_legitimize_address): Standardize.
3037 * config/score/score3.h (score3_legitimize_address): Adjust.
3038 * config/score/score7.c (score7_legitimize_address): Standardize.
3039 * config/score/score7.h (score7_legitimize_address): Adjust.
3040 * config/sh/sh.c (sh_legitimize_address): New.
3041 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
3042
3043 * gcc/config/s390/s390.c (legitimize_address): Rename to...
3044 (s390_legitimize_address): ... this.
3045 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
3046 (sparc_legitimize_address): ... this.
3047 * gcc/config/i386/i386.c (legitimize_address): Rename to...
3048 (ix86_legitimize_address): ... this.
3049 * gcc/config/avr/avr.c (legitimize_address): Rename to...
3050 (avr_legitimize_address): ... this.
3051 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
3052 (mn10300_legitimize_address): ... this.
3053 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
3054 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
3055 (alpha_expand_mov): Adjust call.
3056
3057 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
3058 * config/spu/spu.c (spu_legitimize_address): Likewise.
3059 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
3060 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
3061
3062 2009-05-04 Joseph Myers <joseph@codesourcery.com>
3063
3064 * intl.c (locale_encoding, locale_utf8): New.
3065 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
3066 * intl.h (locale_encoding, locale_utf8): Declare.
3067 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
3068 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
3069 New.
3070 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
3071 argument.
3072 (pp_tree_identifier): Define to call pp_base_tree_identifier.
3073 (pp_base_tree_identifier): Declare as function.
3074 (identifier_to_locale): Declare.
3075 * Makefile.in (pretty-print.o): Update dependencies.
3076 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
3077
3078 2009-05-04 Richard Guenther <rguenther@suse.de>
3079
3080 PR middle-end/40015
3081 * builtins.c (fold_builtin_memory_op): Do not decay to element
3082 type if the size matches the whole array.
3083
3084 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
3085
3086 * expmed.c (synth_mult): When trying out a shift, pass the result
3087 of a signed shift.
3088
3089 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
3090
3091 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
3092 (shiftsub1_cost): New.
3093 (init_expmed): Compute shiftsub1_cost.
3094 (synth_mult): Optimize multiplications by constants of the form
3095 -(2^^m-1) for some constant positive integer m.
3096
3097 2009-05-03 Richard Guenther <rguenther@suse.de>
3098
3099 PR c/39983
3100 * c-typeck.c (array_to_pointer_conversion): Do not built
3101 ADDR_EXPRs of arrays of pointer-to-element type.
3102 * c-gimplify.c (c_gimplify_expr): Revert change fixing
3103 up wrong ADDR_EXPRs after-the-fact.
3104 * c-common.c (strict_aliasing_warning): Strip pointer
3105 conversions for obtaining the original type.
3106 * builtins.c (fold_builtin_memset): Handle array types.
3107 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
3108 and array types
3109
3110 2009-05-03 Richard Guenther <rguenther@suse.de>
3111
3112 PR middle-end/23329
3113 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
3114 Do not lose casts from array types with unknown extent to array
3115 types with known extent.
3116 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
3117 alias set compatibility.
3118
3119 2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
3120
3121 * flags.h (extra_warnings): Delete.
3122 * toplev.c (process_options): Handle Wuninitialized here.
3123 * opts.c (extra_warnings): Delete.
3124 (set_Wextra): Delete.
3125 (common_handle_option): -Wextra can be handled automatically.
3126 * c-opts.c (c_common_handle_option): Delete obsolete code.
3127 (c_common_post_options): Simplify comment.
3128 * common.opt (W): Add Var.
3129 (Wextra): Add Var.
3130 (Wuninitialized): Initialize to -1.
3131
3132 2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
3133 Richard Guenther <rguenther@suse.de>
3134
3135 * expr.c (get_def_for_expr): New function.
3136 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
3137 SSA rather than trees.
3138 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
3139 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
3140
3141 2009-05-03 Joseph Myers <joseph@codesourcery.com>
3142
3143 * c-common.c (reswords): Add _Imaginary.
3144 * c-common.c (enum rid): Add RID_IMAGINARY.
3145
3146 2009-05-03 Paolo Bonzini <bonzini@gnu.org>
3147
3148 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
3149 Patch by Richard Guenther.
3150
3151 2009-05-03 Anatoly Sokolov <aesok@post.ru>
3152
3153 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
3154 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
3155 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
3156 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
3157 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
3158 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
3159 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
3160 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
3161 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
3162 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
3163 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
3164 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
3165 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
3166 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
3167 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
3168 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
3169 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
3170 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
3171
3172 2009-05-02 Richard Guenther <rguenther@suse.de>
3173
3174 PR tree-optimization/39940
3175 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
3176 doing so.
3177
3178 2009-05-02 Richard Guenther <rguenther@suse.de>
3179
3180 PR middle-end/40001
3181 * tree-ssa.c (execute_update_addresses_taken): Properly check
3182 if we can mark a variable DECL_GIMPLE_REG_P.
3183 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
3184 back to the end of the function.
3185 (is_gimple_reg_type): Remove complex type special casing.
3186 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
3187 if not optimizing.
3188
3189 2009-05-02 Ben Elliston <bje@au.ibm.com>
3190
3191 * doc/collect2.texi (Collect2): Document search path behaviour
3192 when configured with --with-ld.
3193
3194 2009-05-02 Jan Hubicka <jh@suse.cz>
3195
3196 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
3197 parameter; update callers.
3198 (coalesce_cost_edge): EH edges are costier because they needs
3199 splitting even if not critical and even more costier when there are
3200 multiple EH predecestors.
3201
3202 2009-05-02 Jan Hubicka <jh@suse.cz>
3203
3204 * except.c (remove_eh_handler_and_replace): Handle updating after
3205 removing TRY blocks.
3206
3207 2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
3208
3209 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
3210
3211 2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
3212
3213 * varasm.c: Do not include c-pragma.h.
3214 * attribs.c: Do not incude c-common.h.
3215
3216 2009-05-01 Michael Matz <matz@suse.de>
3217
3218 * calls.c (initialize_argument_information): Handle SSA names like
3219 decls with a non MEM_P DECL_RTL.
3220
3221 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
3222
3223 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
3224 * ipa-utils.c: Likewise.
3225 * ipa-type-escape.c: Likewise.
3226 * cgraphunit.c Do not include c-common.h.
3227 * ipa-pure-const.c: Likewise.
3228 * tree-if-conv.c: Likewise.
3229 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
3230 * ipa-struct-reorg.c: Likewise.
3231 * tree-nomudflap.c: Likewise.
3232 * tree-ssa-structalias.c: Likewise.
3233
3234 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
3235
3236 * store-motion.c: Many cleanups to make this pass a first-class
3237 citizen instead of an appendix to gcse load motion. Add TODO list
3238 to make this pass faster/cleaner/better.
3239
3240 (struct ls_expr): Post gcse.c-split cleanups.
3241 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
3242 "stores" field to "avail_stores".
3243 (pre_ldst_mems): Rename to store_motion_mems.
3244 (pre_ldst_table): Rename to store_motion_mems_table.
3245 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
3246 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
3247 (ldst_entry): Rename to st_expr_entry, update users.
3248 (free_ldst_entry): Rename to free_st_expr_entry, update users.
3249 (free_ldst_mems): Rename to free_store_motion_mems, update users.
3250 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
3251 update caller.
3252 (first_ls_expr): Rename to first_st_expr, update users.
3253 (next_ls_expr): Rename to next_st_expr, update users.
3254 (print_ldst_list): Rename to print_store_motion_mems. Print names of
3255 fields properly for store motion instead of names inherited from load
3256 motion in gcse.c.
3257 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
3258 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
3259 are done with it.
3260
3261 (ae_kill): Rename to st_kill, update users.
3262 (ae_gen): Rename to st_avloc, update users.
3263 (transp): Rename to st_transp, update users.
3264 (pre_insert_map): Rename to st_insert_map, update users.
3265 (pre_delete_map): Rename to st_delete_map, update users.
3266 (insert_store, build_store_vectors, free_store_memory,
3267 one_store_motion_pass): Update for abovementioned changes.
3268
3269 (gcse_subst_count, gcse_create_count): Remove.
3270 (one_store_motion_pass): New statistics counters "n_stores_deleted"
3271 and "n_stores_created", local variables.
3272
3273 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
3274 use for_each_rtx.
3275
3276 (regvec, compute_store_table_current_insn): Remove.
3277 (reg_set_info, reg_clear_last_set): Remove.
3278 (compute_store_table): Use DF caches instead of local dataflow
3279 solvers.
3280
3281 2009-05-01 Joseph Myers <joseph@codesourcery.com>
3282
3283 * c-objc-common.c (c_tree_printer): Print identifiers with
3284 pp_identifier, not pp_string. Mark "({anonymous})" for
3285 translation.
3286 * c-pretty-print.c (pp_c_ws_string): New.
3287 (pp_c_cv_qualifier, pp_c_type_specifier,
3288 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
3289 pp_c_storage_class_specifier, pp_c_function_specifier,
3290 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
3291 pp_c_primary_expression, pp_c_postfix_expression,
3292 pp_c_unary_expression, pp_c_shift_expression,
3293 pp_c_relational_expression, pp_c_equality_expression,
3294 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
3295 use pp_string and pp_c_ws_string in place of pp_identifier and
3296 pp_c_identifier for non-identifiers. Mark English strings for
3297 translation.
3298 * c-pretty-print.h (pp_c_ws_string): Declare.
3299
3300 2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
3301 Roland McGrath <roland@redhat.com>
3302
3303 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
3304 (ENABLE_LD_BUILDID): New configuration option.
3305 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
3306 (LINK_BUILDID_SPEC): New macro.
3307 (init_spec): If defined, prepend it between LINK_EH_SPEC and
3308 link_spec.
3309 * doc/install.texi: Document --enable-linker-build-id option.
3310 * configure: Rebuild.
3311 * config.in: Rebuild.
3312
3313 2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
3314
3315 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
3316 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
3317 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
3318 MIPS_GP_SAVE_AREA_SIZE.
3319 * config/mips/mips.c (struct mips_frame_info): Update comment
3320 before arg_pointer_offset and hard_frame_pointer_offset.
3321 (mips_compute_frame_info): Update diagram before function: to
3322 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
3323 indicate the position of frame_pointer_rtx with -fstack-protector and
3324 to show args_size. Don't allocate cprestore area for leaf functions
3325 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
3326 cprestore_size.
3327 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
3328
3329 2009-04-30 Michael Matz <matz@suse.de>
3330
3331 PR tree-optimization/39955
3332 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
3333
3334 2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
3335
3336 * ira.c (setup_cover_and_important_classes): Use safe macro
3337 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
3338 directly.
3339 * genpreds.c (write_tm_preds_h): Output suitable definition of
3340 REG_CLASS_FOR_CONSTRAINT.
3341
3342 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
3343
3344 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
3345 instead of an int.
3346 * bitmap.c (bitmap_descriptor): Likewise.
3347 * ggc-common.c (loc_descriptor): Likewise.
3348 * varray.c (varray_descriptor): Likewise.
3349 * vec.c (vec_descriptor): Likewise.
3350
3351 2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
3352
3353 * Makefile.in (dce.o): Add $(EXCEPT_H).
3354 * dce.c: Include except.h and delete redundant vector definitions.
3355 (deletable_insn_p): Return false for non-call insns that can throw
3356 if DF is running.
3357
3358 2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
3359
3360 * gcse.c (ae_gen): Remove.
3361 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
3362 and make non-static function to make it available in store-motion.c.
3363 Update call sites with search-and-replace.
3364 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
3365 extract_mentioned_regs, extract_mentioned_regs_helper,
3366 find_moveable_store, compute_store_table, load_kills_store, find_loads,
3367 store_killed_in_insn, store_killed_after, store_killed_before,
3368 build_store_vectors, insert_insn_start_basic_block, insert-store,
3369 remove_reachable_equiv_notes, replace_store_insn, delete_store,
3370 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
3371 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
3372 * store-motion.c: ...new file. Also copy data structures from gcse.c
3373 and clean up to remove parts not used by store motion.
3374 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
3375 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
3376
3377 2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3378
3379 PR target/38571
3380 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
3381 when optimizing for size.
3382
3383 2009-04-30 Hans-Peter Nilsson <hp@axis.com>
3384
3385 * gcse.c (gcse_constant_p): Fix typo in last change.
3386
3387 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
3388
3389 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
3390
3391 2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
3392
3393 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
3394
3395 2009-04-29 James E. Wilson <wilson@codesourcery.com>
3396
3397 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
3398 CONST_HIGH_PART result.
3399
3400 2009-04-29 Anatoly Sokolov <aesok@post.ru>
3401
3402 * config/avr/avr.c (initial_elimination_offset): Rename to
3403 avr_initial_elimination_offset.
3404 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
3405 change return type to bool.
3406 (avr_can_eliminate): New function.
3407 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
3408 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
3409 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
3410 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
3411 avr_initial_elimination_offset.
3412 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
3413 (avr_initial_elimination_offset): Define.
3414
3415 2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
3416 Steven Bosscher <steven@gcc.gnu.org>
3417
3418 PR rtl-optimization/39938
3419 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
3420 * cfgrtl.c: Include insn-attr.h.
3421 (rest_of_pass_free_cfg): New function.
3422 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
3423 * resource.c (init_resource_info): Remove call to df_analyze.
3424
3425 2009-04-29 Richard Guenther <rguenther@suse.de>
3426
3427 PR target/39943
3428 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
3429 allow conversion to signed integers.
3430
3431 2009-04-29 Richard Guenther <rguenther@suse.de>
3432
3433 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
3434 shifts of floating point vectors if the shift amount is
3435 a constant multiple of the element size.
3436
3437 2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
3438 Michael Matz <matz@suse.de>
3439
3440 PR middle-end/39927
3441 PR bootstrap/39929
3442 * tree-outof-ssa.c (emit_partition_copy): New function.
3443 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
3444 insert_part_to_rtx_on_edge): Perform the partition base var
3445 copy using emit_partition_copy.
3446 (insert_value_copy_on_edge): Convert constants to the right mode.
3447 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
3448 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
3449
3450 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3451
3452 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
3453 scan backwards to try to find a constant to initialize it.
3454
3455 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
3456 insn before the loop_end instruction, don't look past labels.
3457
3458 2009-04-29 Richard Guenther <rguenther@suse.de>
3459
3460 PR middle-end/39937
3461 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
3462 loose type conversions.
3463 (forward_propagate_addr_expr): Fix tuplification bug. Remove
3464 stmts only if there are no uses of its definition.
3465
3466 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3467
3468 * config/bfin/bfin.h (splitting_loops): Declare.
3469 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
3470 Reorder bit definitions to be ascending.
3471 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
3472 * config/bfin/bfin.c (splitting_loops): New variable.
3473 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
3474 (struct loop_info): Remove members INIT and LOOP_INIT.
3475 (bfin_optimize_loop): Don't set them. Reorder the code that generates
3476 the LSETUP sequence. Allow LC to be loaded from any register, but
3477 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
3478 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
3479 set to 1.
3480 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
3481 of reload_completed.
3482
3483 From Jie Zhang:
3484 * config/bfin/bfin.md (movsi_insn): Refine constraints.
3485
3486 2009-04-29 Rafael Avila de Espindola <espindola@google.com>
3487
3488 * Makefile.in (PLUGIN_VERSION_H): New.
3489 (OBJS-common): Remove plugin-version.o.
3490 (plugin.o): Depend on (PLUGIN_VERSION_H).
3491 (plugin-version.o): Remove.
3492 * configure: Regenerate
3493 * configure.ac: Create plugin-version.h.
3494 * gcc-plugin.h (plugin_gcc_version): Remove.
3495 (plugin_default_version_check): Change signature.
3496 * plugin-version.c: Remove.
3497 * plugin.c: Include plugin-version.h.
3498 (str_plugin_gcc_version_name): Remove.
3499 (try_init_one_plugin): Pass gcc version to plugin_init.
3500 (plugin_default_version_check): Both gcc and plugin versions are now
3501 arguments.
3502
3503 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3504
3505 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
3506 problematic last insns. Test for TYPE_CALL rather than CALL_P.
3507 Remove special case testing for last insn of inner loops. Don't fail
3508 if the loop ends with a jump, emit an extra nop instead.
3509
3510 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
3511 DREGS rather than comparing directly. Remove code that tries to
3512 account for latencies.
3513
3514 2009-04-29 Richard Guenther <rguenther@suse.de>
3515
3516 PR tree-optimization/39941
3517 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
3518 eliminating an indirect call.
3519
3520 2009-04-29 Richard Guenther <rguenther@suse.de>
3521
3522 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
3523 parameter. Allow invariants as base if !require_lvalue.
3524 (verify_gimple_assign_single): Adjust.
3525
3526 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3527
3528 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
3529 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
3530 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
3531 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
3532 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
3533 a VEC_SELECT.
3534 * config/bfin/bfin.c (bfin_expand_builtin,
3535 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
3536
3537 2009-04-28 Richard Guenther <rguenther@suse.de>
3538
3539 * tree-vect-loop.c (get_initial_def_for_induction): Use
3540 correct types for pointer increment.
3541
3542 2009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3543
3544 * toplev.c (print_version): Update GMP version string calculation.
3545
3546 2009-04-28 Eric Botcazou <ebotcazou@adacore.com>
3547
3548 PR rtl-optimization/39938
3549 * resource.c (init_resource_info): Add call to df_analyze.
3550
3551 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
3552
3553 * config/alpha/alpha.md (usegp): Cast the result of
3554 alpha_find_lo_sum_using_gp to enum attr_usegp.
3555 * config/alpha/alpha.c (override_options): Remove end-of-structure
3556 marker element from cpu_table. Use array size of cpu_table to handle
3557 -mcpu and -mtune options.
3558 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
3559
3560 2009-04-28 Joseph Myers <joseph@codesourcery.com>
3561
3562 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
3563 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
3564 tune_32 and tune_64.
3565 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3566 support on PowerPC.
3567 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
3568 * config/rs6000/option-defaults.h: ... here. New file.
3569 (OPT_64, OPT_32): Define.
3570 (MASK_64BIT): Define to 0 if not already defined.
3571 (OPT_ARCH64, OPT_ARCH32): Define.
3572 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
3573 and tune_64.
3574
3575 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3576
3577 * config/arm/arm.c (arm_override_options): Emit error on using
3578 fpa with AAPCS.
3579
3580 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
3581
3582 PR rtl-optimization/39914
3583 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3584 registers for allocnos created from user-defined variables only
3585 when not optimizing.
3586
3587 2009-04-28 Richard Guenther <rguenther@suse.de>
3588
3589 PR middle-end/39937
3590 * fold-const.c (fold_binary): Use distribute_real_division only
3591 on float types.
3592
3593 2009-04-28 Steve Ellcey <sje@cup.hp.com>
3594
3595 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
3596 add hpux-stdint.h to tm_file.
3597 (hppa[12]*-*-hpux11*): Ditto.
3598 (ia64*-*-hpux*): Ditto.
3599 * config/hpux-stdint.h: New.
3600 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
3601 __STDC_EXT__ for all compiles.
3602 * config/pa/pa-hpux.h: Ditto.
3603 * config/pa/pa-hpux10.h: Ditto.
3604 * config/pa/pa-hpux11.h: Ditto.
3605
3606 2009-04-28 Catherine Moore <clm@codesourcery.com>
3607
3608 * debug.h (set_name): Add comment.
3609
3610 2009-04-28 Andrew Pinski <pinskia@gmail.com>
3611
3612 PR target/39929
3613 * config/darwin.c (machopic_gen_offset): Check
3614 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
3615 * config/arm/arm.c (require_pic_register): Likewise.
3616
3617 2009-04-28 Paolo Bonzini <bonzini@gnu.org>
3618
3619 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
3620 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
3621 m32c_promote_prototypes): Delete.
3622
3623 2009-04-28 Michael Matz <matz@suse.de>
3624
3625 PR middle-end/39922
3626 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
3627 constants.
3628
3629 2009-04-28 Richard Guenther <rguenther@suse.de>
3630
3631 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
3632
3633 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3634
3635 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
3636 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
3637 * config/arm/arm-tune.md: Regenerate.
3638
3639 2009-04-28 Alexander Monakov <amonakov@ispras.ru>
3640
3641 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
3642 block if there are complex incoming edges.
3643 (sel_merge_blocks): Remove useless assert.
3644 (sel_redirect_edge_and_branch): Check that edge was redirected.
3645 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
3646 (sel_find_rgns): Delete declaration.
3647 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
3648 the region when it is not a preheader.
3649
3650 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
3651
3652 PR c/39323
3653 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
3654
3655 2009-04-28 Richard Guenther <rguenther@suse.de>
3656
3657 * tree.h (SSA_NAME_VALUE): Remove.
3658 (struct tree_ssa_name): Remove value_handle member.
3659 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
3660 array for jump threading.
3661 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
3662 SSA_NAME_VALUEs.
3663 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
3664 * tree-flow.h (threadedge_initialize_values): Declare.
3665 (threadedge_finalize_values): Likewise.
3666 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
3667 (SSA_NAME_VALUE): Define.
3668 (threadedge_initialize_values): New function.
3669 (threadedge_finalize_values): Likewise.
3670 * tree-ssa-dom.c (ssa_name_values): New global variable.
3671 (SSA_NAME_VALUE): Define.
3672 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
3673
3674 2009-04-28 Ira Rosen <irar@il.ibm.com>
3675
3676 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
3677 Use REPORT_VECTORIZED_LOCATIONS instead
3678 REPORT_VECTORIZED_LOOPS.
3679 * tree-vectorizer.c (vect_verbosity_level): Make static.
3680 (vect_loop_location): Rename to vect_location.
3681 (vect_set_verbosity_level): Update comment.
3682 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
3683 and vect_location.
3684 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
3685 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
3686 instead REPORT_UNVECTORIZED_LOOPS.
3687 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
3688 and vect_loop_def to vect_external_def and vect_internal_def.
3689 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
3690 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
3691 REPORT_UNVECTORIZED_LOCATIONS.
3692 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
3693 and vect_used_in_loop and to vect_unused_in_scope and
3694 vect_used_in_scope.
3695 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
3696 (vect_verbosity_level): Remove declaration.
3697 (vect_analyze_operations): Likewise.
3698 (vect_analyze_stmt): Declare.
3699 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
3700 REPORT_UNVECTORIZED_LOCATIONS.
3701 (vect_get_loop_niters): Fix indentation.
3702 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
3703 (vect_analyze_loop_operations): New function.
3704 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
3705 vect_analyze_operations.
3706 (vect_is_simple_reduction): Use new names.
3707 (vectorizable_live_operation, vect_transform_loop): Likewise.
3708 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
3709 to specify whether the data references can be a part of interleaving
3710 chain.
3711 (vect_analyze_data_ref_dependence): Use new names.
3712 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
3713 (vect_create_addr_base_for_vector_ref): Remove redundant code.
3714 * tree-vect-patterns.c (widened_name_p): Use new names.
3715 (vect_recog_dot_prod_pattern): Likewise.
3716 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
3717 (process_use, vect_mark_stmts_to_be_vectorized,
3718 vect_model_simple_cost, vect_model_store_cost,
3719 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
3720 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
3721 vectorizable_operation, vectorizable_type_demotion,
3722 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
3723 vectorizable_condition): Likewise.
3724 (vect_analyze_operations): Split into vect_analyze_loop_operations
3725 and ...
3726 (vect_analyze_stmt): ... new function.
3727 (new_stmt_vec_info): Use new names.
3728 (vect_is_simple_use): Use new names and fix comment.
3729 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
3730 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
3731
3732 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
3733
3734 PR target/39911
3735 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
3736 and integer modes for x87 operands. Do not ICE for unsupported size,
3737 generate error instead. Generate error for unsupported operand types.
3738 ['z']: Do not handle HImode memory operands specially. Warning
3739 for floating-point operands. Fallthru to 'Z' for unsupported operand
3740 types. Do not ICE for unsupported size, generate error instead.
3741 (output_387_binary_op): Use %Z to output operands.
3742 (output_fp_compare): Ditto.
3743 (output_387_reg_move): Ditto.
3744
3745 2009-04-28 Ben Elliston <bje@au.ibm.com>
3746
3747 PR c++/35652
3748 Revert:
3749
3750 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3751
3752 * builtins.c (c_strlen): Do not warn here.
3753 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
3754 * c-common.c (pointer_int_sum): Take an explicit location.
3755 Warn about offsets out of bounds.
3756 * c-common.h (pointer_int_sum): Adjust declaration.
3757
3758 2009-04-27 Ian Lance Taylor <iant@google.com>
3759
3760 * collect2.c (is_ctor_dtor): Change type of ret field in struct
3761 names to symkind.
3762 * dce.c (run_fast_df_dce): Change type of old_flags to int.
3763 * df-core.c (df_set_flags): Change return type to int. Change
3764 type of old_flags to int.
3765 (df_clear_flags): Likewise.
3766 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
3767 (df_get_conditional_uses): Likewise.
3768 * df.h (df_set_flags, df_clear_flags): Update declarations.
3769 * dwarf2out.c (struct indirect_string_node): Change type of form
3770 field to enum dwarf_form.
3771 (AT_string_form): Change return type to enum dwarf_form.
3772 * fixed-value.c (fixed_compare): Add cast to enum type.
3773 * fwprop.c (update_df): Change 0 to VOIDmode.
3774 * gensupport.c: Change 0 to UNKNOWN.
3775 * gimple.h (gimple_cond_code): Add cast to enum type.
3776 * haifa-sched.c (reemit_notes): Add cast to enum type.
3777 * hooks.c (hook_int_void_no_regs): Remove function.
3778 * hooks.h (hook_int_void_no_regs): Remove declaration.
3779 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
3780 * predict.c (combine_predictions_for_insn): Add casts to enum type.
3781 * real.c (real_arithmetic): Add cast to enum type.
3782 (real_compare): Likewise.
3783 * target.h (struct gcc_target): Change return type of
3784 branch_target_register_class to enum reg_class.
3785 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
3786 default_branch_target_register_class.
3787 * targhooks.c (default_branch_target_register_class): New function.
3788 * targhooks.h (default_branch_target_register_class): Declare.
3789 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
3790 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
3791 cast to int.
3792 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
3793 ERROR_MARK.
3794 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
3795 vect_uninitialized_def. Change 0 to ERROR_MARK.
3796 * tree-vect-stmts.c (supportable_widening_operation): Don't
3797 initialize icode1 and icode2.
3798 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
3799 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
3800 and to STD_C89.
3801 (cmn_err_flag_specs): Change 0 to STD_C89.
3802 (cmn_err_char_table): Likewise.
3803 * config/arm/arm.c (get_arm_condition_code): Change type of code
3804 to enum arm_cond_code.
3805 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
3806 (IWMMXT_BUILTIN2): Likewise.
3807 (neon_builtin_type_bits): Don't define typedef.
3808 (neon_builtin_datum): Change type of bits field to int.
3809 (arm_expand_neon_args): Add cast to enum type.
3810 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
3811 TLS_MODEL_NONE.
3812 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
3813 casts to enum type.
3814 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
3815 MIPS_FP_COND_f.
3816 * config/mips/mips.md (jal_macro): Return enum constant.
3817 (single_insn): Likewise.
3818 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
3819 CODE_FOR_nothing.
3820 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3821 casts to enum type.
3822 * config/s390/s390.c (s390_tune_flags): Change type to int.
3823 (s390_arch_flags): Likewise.
3824 (s390_handle_arch_option): Change flags field of struct pta to int.
3825 * config/s390/s390.h (s390_tune_flags): Update declaration.
3826 (s390_arch_flags): Likewise.
3827 * config/sh/sh.c (prepare_move_operands): Compare
3828 tls_symbolic_operand result with enum constant.
3829 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
3830 (sh_expand_prologue): Add cast to enum type.
3831 (sh_expand_epilogue): Likewise.
3832 (tls_symbolic_operand): Change return type to enum tls_model.
3833 (fpscr_set_from_mem): Add cast to enum type.
3834 (legitimize_pic_address): Compare tls_symbolic_operand result with
3835 enum constant.
3836 (sh_target_reg_class): Change return type to enum reg_class.
3837 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
3838 PROCESSOR_xxx.
3839 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
3840 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
3841 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
3842 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
3843 (delayed_branch, tls_call_delay): Likewise.
3844 (eligible_for_sibcall_delay): Likewise.
3845 (eligible_for_return_delay): Likewise.
3846 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
3847 (spu_expand_builtin_1): Likewise.
3848
3849 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
3850 for all types of conversions.
3851 (output_init_element): Issue -Wc++-compat warning if needed when
3852 initializing a bitfield with enum type.
3853 * c-parser.c (c_parser_expression): Set original_type to
3854 original_type of right hand operand of comman operator.
3855
3856 2009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3857
3858 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
3859 grammar nits.
3860 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
3861 * doc/cpp.texi (Standard Predefined Macros)
3862 (Implementation-defined behavior): Likewise.
3863 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
3864 * doc/gimple.texi (GIMPLE Exception Handling)
3865 (@code{GIMPLE_ASSIGN}): Likewise.
3866 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
3867 * doc/invoke.texi (Warning Options, Optimize Options)
3868 (AVR Options, Darwin Options): Likewise.
3869 (Optimize Options): Reformulate -fwhole-program description.
3870 * doc/loop.texi (Lambda): Likewise.
3871 * doc/md.texi (Output Template, Define Constraints)
3872 (Standard Names, Insn Splitting): Likewise.
3873 * doc/options.texi (Option properties): Likewise.
3874 * doc/passes.texi (Tree-SSA passes): Likewise.
3875 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
3876 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
3877 (File Names and DBX): Likewise.
3878 * doc/trouble.texi (Incompatibilities): Likewise.
3879
3880 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
3881
3882 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
3883 instruction is correct.
3884
3885 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
3886
3887 Allow non-constant arguments to conversion intrinsics.
3888 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
3889 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
3890 * spu.c (print_operand): Handle 'v' and 'w'.
3891 (exp2_immediate_p, spu_gen_exp2): Define.
3892 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
3893 spu_convtf_1): Update parameter descriptions.
3894 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
3895 * constraints.md ('v', 'w'): New.
3896 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
3897 Remove.
3898 (i2f, I2F): New define_mode_attr.
3899 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
3900 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
3901 fixuns_truncv4sfv4si2): Update to use mode attribute.
3902 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
3903 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
3904 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
3905 patterns for combine.
3906
3907 2009-04-27 Steven Bosscher <steven@gcc.gnu.org>
3908
3909 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
3910 (cprop, hoist, pre, store_motion): New debug counters.
3911 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
3912 is not an RTL pass anymore.
3913 (pass_profiling): Remove extern decl for pass removed in 2005.
3914 (pass_gcse, pass_jump_bypass): Remove.
3915 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
3916 to 0 for clean state.
3917 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
3918 * cse.c (gate_handle_cse_after_global_opts,
3919 rest_of_handle_cse_after_global_opts): New functions.
3920 (pass_cse_after_global_opts): New pass, does local CSE.
3921 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
3922 (TV_CPROP): New timevar.
3923 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
3924 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
3925 (gcse_main, recompute_all_luids): Remove.
3926 (compute_hash_table_work): Call max_reg_num instead of reading
3927 max_gcse_regno.
3928 (cprop_jump): Don't set run_jump_opt_after_gcse.
3929 (constprop_register): Always allow to alter jumps.
3930 (cprop_insn): Likewise.
3931 (do_local_cprop): Likewise.
3932 (local_cprop_pass): Likewise. Return non-zero if something changed.
3933 (cprop): Remove function, fold interesting bits into one_cprop_pass.
3934 (find_implicit_sets): Add note about missed optimization opportunity.
3935 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
3936 pass_rtl_cprop execute function.
3937 Don't bother tracking the pass number, each pass gets its own dumpfile
3938 now anyway.
3939 Always allow to alter jumpsand bypass jumps.
3940 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
3941 will just find no suitable set.
3942 (pre_edge_insert): Fix dumping, this function is for PRE only.
3943 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
3944 pass_rtl_pre execute function.
3945 (hoist_code): Return non-zero if something changed. Keep track of
3946 substitutions and insertions for statistics gathering similar to PRE.
3947 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
3948 called from the pass_rtl_hoist execute function. Show pass statistics.
3949 (compute_store_table): Use max_reg_num directly instead of using the
3950 formerly global max_gcse_regno.
3951 (build_store_vectors): Likewise.
3952 (replace_store_insn): Fix dumping.
3953 (store_motion): Rename to ...
3954 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
3955 pass, called from the pass_rtl_store_motion execute function. Keep
3956 track of substitutions and insertions for statistics gathering similar
3957 to PRE.
3958 (bypass_jumps): Remove, fold interesting bits into ...
3959 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
3960 from the pass_rtl_cprop execute function.
3961 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
3962 pass_jump_bypass): Remove.
3963 (gate_handle_gcse, rest_of_handle_gcse): Remove.
3964 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
3965 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
3966 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
3967 (gate_rtl_store_motion, execute_rtl_store_motion,
3968 pass_rtl_store_motion): New.
3969 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
3970 make it clear that -fcse-skip-blocks is a no-op for backward compat.
3971 * passes.c (init_optimization_passes): Remove pass_gcse and
3972 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
3973 and cse_after_global_opts in place of pass_gcse. Schedule cprop
3974 instead of pass_jump_bypass.
3975
3976 2009-04-27 Richard Guenther <rguenther@suse.de>
3977
3978 PR middle-end/39928
3979 * gimplify.c (gimplify_expr): If we are required to create
3980 a temporary make sure it ends up as register.
3981
3982 2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
3983
3984 PR target/39903
3985 * config/i386/i386.c (construct_container): Don't call
3986 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
3987 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
3988
3989 2009-04-27 Michael Matz <matz@suse.de>
3990
3991 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
3992 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
3993 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
3994 (dump_replaceable_exprs): Take a bitmap.
3995 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
3996 array.
3997 (expand_gimple_basic_block): Likewise.
3998 * tree-ssa-ter.c (struct temp_expr_table_d): Make
3999 replaceable_expressions member a bitmap.
4000 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
4001 (mark_replaceable): Likewise.
4002 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
4003 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
4004
4005 2009-04-27 Richard Guenther <rguenther@suse.de>
4006
4007 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
4008 (verify_stmts): Dispatch to gimple/type verification code.
4009 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
4010 issue with call argument types.
4011
4012 2009-04-27 Michael Matz <matz@suse.de>
4013
4014 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
4015 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
4016 to above.
4017
4018 2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
4019 Eric Botcazou <ebotcazou@adacore.com>
4020
4021 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
4022 a label's basic block.
4023 (mark_target_live_regs): Tidy and rework obsolete comments.
4024 Change back DF problem to LIVE. If a label starts a basic block,
4025 assume that all registers that used to be live then still are.
4026 (init_resource_info): If a label starts a basic block, set its
4027 BLOCK_FOR_INSN accordingly.
4028 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
4029
4030 2009-04-27 Richard Guenther <rguenther@suse.de>
4031
4032 * tree-flow-inline.h (function_ann): Remove.
4033 (get_function_ann): Likewise.
4034 * tree-dfa.c (create_function_ann): Remove.
4035 * tree-flow.h (struct static_var_ann_d): Remove.
4036 (struct function_ann_d): Likewise.
4037 (union tree_ann_d): Remove fdecl member.
4038 (function_ann_t): Remove.
4039 (function_ann, get_function_ann, create_function_ann): Remove
4040 declarations.
4041
4042 2009-04-27 Uros Bizjak <ubizjak@gmail.com>
4043
4044 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
4045
4046 2009-04-27 Jan Hubicka <jh@suse.cz>
4047
4048 * ipa-pure-const.c (struct funct_state_d): New fields
4049 state_previously_known, looping_previously_known; remove
4050 state_set_in_source.
4051 (analyze_function): Use new fields.
4052 (propagate): Avoid assumption that state_set_in_source imply
4053 nonlooping.
4054
4055 * tree-ssa-loop-niter.c (finite_loop_p): New function.
4056 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
4057 * cfgloop.h (finite_loop_p): Declare.
4058
4059 2009-04-26 Michael Matz <matz@suse.de>
4060
4061 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
4062
4063 2009-04-26 Michael Matz <matz@suse.de>
4064
4065 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
4066 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
4067 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
4068 pass_mark_used_blocks): Remove.
4069 * tree-optimize.c (pass_free_datastructures,
4070 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
4071 * passes.c (init_optimization_passes): Don't call
4072 pass_mark_used_blocks, remove dead code.
4073
4074 2009-04-26 H.J. Lu <hongjiu.lu@intel.com>
4075
4076 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
4077 * tree-ssa-live.h (register_ssa_partition): Likewise.
4078
4079 2009-04-26 Michael Matz <matz@suse.de>
4080
4081 Expand from SSA.
4082 * builtins.c (fold_builtin_next_arg): Handle SSA names.
4083 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
4084 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
4085 SSA names.
4086 (compare_pairs): Swap cost comparison.
4087 (coalesce_ssa_name): Don't use change_partition_var.
4088 * tree-nrv.c (struct nrv_data): Add modified member.
4089 (finalize_nrv_r): Set it.
4090 (tree_nrv): Use it to update statements.
4091 (pass_nrv): Require PROP_ssa.
4092 * tree-mudflap.c (mf_decl_cache_locals,
4093 mf_build_check_statement_for): Use make_rename_temp.
4094 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
4095 * alias.c (find_base_decl): Handle SSA names.
4096 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
4097 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
4098 * rtl.h (set_reg_attrs_for_parm): Declare.
4099 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
4100 to "optimized", remove unused locals at finish.
4101 (execute_free_datastructures): Make global, call
4102 delete_tree_cfg_annotations.
4103 (execute_free_cfg_annotations): Don't call
4104 delete_tree_cfg_annotations.
4105
4106 * ssaexpand.h: New file.
4107 * expr.c (toplevel): Include ssaexpand.h.
4108 (expand_assignment): Handle SSA names the same as register variables.
4109 (expand_expr_real_1): Expand SSA names.
4110 * cfgexpand.c (toplevel): Include ssaexpand.h.
4111 (SA): New global variable.
4112 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
4113 (SSAVAR): New macro.
4114 (set_rtl): New helper function.
4115 (add_stack_var): Deal with SSA names, use set_rtl.
4116 (expand_one_stack_var_at): Likewise.
4117 (expand_one_stack_var): Deal with SSA names.
4118 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
4119 before unique numbers.
4120 (expand_stack_vars): Use set_rtl.
4121 (expand_one_var): Accept SSA names, add asserts for them, feed them
4122 to above subroutines.
4123 (expand_used_vars): Expand all partitions (without default defs),
4124 then only the local decls (ignoring those expanded already).
4125 (expand_gimple_cond): Remove edges when jumpif() expands an
4126 unconditional jump.
4127 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
4128 or remove abnormal edges. Ignore insns setting the LHS of a TERed
4129 SSA name.
4130 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
4131 members of SA; deal with PARM_DECL partitions here; expand
4132 all PHI nodes, free tree datastructures and SA. Commit instructions
4133 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
4134 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
4135 info and statements at start, collect garbage at finish.
4136 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
4137 (VAR_ANN_PARTITION) Remove.
4138 (change_partition_var): Don't declare.
4139 (partition_to_var): Always return SSA names.
4140 (var_to_partition): Only accept SSA names.
4141 (register_ssa_partition): Only check argument.
4142 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
4143 member.
4144 (delete_var_map): Don't free it.
4145 (var_union): Only accept SSA names, simplify.
4146 (partition_view_init): Mark only useful SSA names as used.
4147 (partition_view_fini): Only deal with SSA names.
4148 (change_partition_var): Remove.
4149 (dump_var_map): Use ssa_name instead of partition_to_var member.
4150 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
4151 basic blocks.
4152 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
4153 (struct _elim_graph): New member const_dests; nodes member vector of
4154 ints.
4155 (set_location_for_edge): New static helper.
4156 (create_temp): Remove.
4157 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
4158 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4159 (new_elim_graph): Allocate const_dests member.
4160 (clean_elim_graph): Truncate const_dests member.
4161 (delete_elim_graph): Free const_dests member.
4162 (elim_graph_size): Adapt to new type of nodes member.
4163 (elim_graph_add_node): Likewise.
4164 (eliminate_name): Likewise.
4165 (eliminate_build): Don't take basic block argument, deal only with
4166 partition numbers, not variables.
4167 (get_temp_reg): New static helper.
4168 (elim_create): Use it, deal with RTL temporaries instead of trees.
4169 (eliminate_phi): Adjust all calls to new signature.
4170 (assign_vars, replace_use_variable, replace_def_variable): Remove.
4171 (rewrite_trees): Only do checking.
4172 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
4173 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
4174 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
4175 contains_tree_r, MAX_STMTS_IN_LATCH,
4176 process_single_block_loop_latch, analyze_edges_for_bb,
4177 perform_edge_inserts): Remove.
4178 (expand_phi_nodes): New global function.
4179 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
4180 functions, initialize new parameter, remember partitions having a
4181 default def.
4182 (finish_out_of_ssa): New global function.
4183 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
4184 don't reset in_ssa_p here, don't disable TER when mudflap.
4185 (pass_del_ssa): Remove.
4186 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
4187 partition members.
4188 (execute_free_datastructures): Declare.
4189 * Makefile.in (SSAEXPAND_H): New variable.
4190 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
4191 * basic-block.h (commit_one_edge_insertion): Declare.
4192 * passes.c (init_optimization_passes): Move pass_nrv and
4193 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
4194 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
4195 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
4196 (redirect_branch_edge): Deal with super block when expanding, split
4197 out jump patching itself into ...
4198 (patch_jump_insn): ... here, new static helper.
4199
4200 2009-04-26 Michael Matz <matz@suse.de>
4201
4202 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
4203 beyond num_ssa_names.
4204 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
4205 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
4206
4207 2009-04-26 Jakub Jelinek <jakub@redhat.com>
4208
4209 PR inline-asm/39543
4210 * fwprop.c (forward_propagate_asm): New function.
4211 (forward_propagate_and_simplify): Propagate also into __asm, if it
4212 doesn't increase the number of referenced registers.
4213
4214 PR c/39889
4215 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
4216
4217 2009-04-26 Jakub Jelinek <jakub@redhat.com>
4218
4219 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
4220 note_nonlocal_vla_type for nonlocal VLAs.
4221 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
4222 contains_remapped_vars, remap_vla_decls): New functions.
4223 (convert_nonlocal_reference_stmt): If not optimizing, call
4224 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
4225 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
4226 if it wasn't found in var_map.
4227 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
4228 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
4229 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
4230 declare_vars.
4231 * gimplify.c (nonlocal_vlas): New variable.
4232 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
4233 referenced VLAs.
4234 (gimplify_body): Create and destroy nonlocal_vlas.
4235
4236 * dwarf2out.c (loc_descr_plus_const): New function.
4237 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
4238 mem_loc_descriptor, loc_descriptor_from_tree_1,
4239 descr_info_loc, gen_variable_die): Use it.
4240
4241 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
4242 !TREE_STATIC VAR_DECLs.
4243 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
4244 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
4245 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
4246 DECL_BY_REFERENCE is valid.
4247 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
4248 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
4249 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
4250 Copy DECL_BY_REFERENCE.
4251 (struct nesting_copy_body_data): New type.
4252 (nesting_copy_decl): New function.
4253 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
4254 if they have variable length.
4255
4256 2009-04-26 Michael Matz <matz@suse.de>
4257
4258 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
4259 mark new temporaries for renaming.
4260
4261 2009-04-26 Joseph Myers <joseph@codesourcery.com>
4262
4263 PR c/39581
4264 * c-decl.c (global_bindings_p): Return negative value.
4265 (c_variable_size): New. Based on variable_size from
4266 stor-layout.c.
4267 (grokdeclarator): Call c_variable_size not variable_size.
4268
4269 2009-04-26 Uros Bizjak <ubizjak@gmail.com>
4270
4271 * config/i386/i386.c (print_operand) ['z']: Fix typo.
4272
4273 2009-04-26 Kai Tietz <kai.tietz@onevision.com>
4274
4275 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
4276 Redefine it to just use mingw/include.
4277 (ASM_SPEC): Rules for -m32 and -m64.
4278 (LINK_SPEC): Use Likewise.
4279 (SPEC_32): New define.
4280 (SPEC_64): Likewise.
4281 (SUB_LINK_SPEC): Likewise.
4282 (MULTILIB_DEFAULTS): New define.
4283 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
4284 Add multilib options.
4285 (MULTILIB_DIRNAMES): Likewise.
4286 (MULTILIB_OSDIRNAMES): Likewise.
4287 (LIBGCC): Likewise.
4288 (INSTALL_LIBGCC): Likewise.
4289
4290 2009-04-26 Joseph Myers <joseph@codesourcery.com>
4291
4292 PR c/39556
4293 * c-tree.h (enum c_inline_static_type): New.
4294 (record_inline_static): Declare.
4295 * c-decl.c (struct c_inline_static, c_inline_statics,
4296 record_inline_static, check_inline_statics): New.
4297 (pop_file_scope): Call check_inline_statics.
4298 (start_decl): Call record_inline_static instead of pedwarning
4299 directly for static in inline function.
4300 * c-typeck.c (build_external_ref): Call record_inline_static
4301 instead of pedwarning directly for static referenced in inline
4302 function.
4303
4304 2009-04-26 Steven Bosscher <steven@gcc.gnu.org>
4305
4306 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
4307 not new but only being rescanned.
4308 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
4309 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
4310 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
4311 record_set_info, compute_set, grealloc): Remove.
4312 (recompute_all_luids): New function.
4313 (gcse_main): Don't compute sets, and don't do related memory
4314 allocations/free-ing. If something changed before the end of the
4315 pass, update LUIDs using recompute_all_luids.
4316 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
4317 (free_gcse_mem): Don't free it either.
4318 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
4319 Use the df insn LUIDs.
4320 (load_killed_in_block): Likewise.
4321 (compute_hash_table_work): Don't compute reg_set_in_block.
4322 (compute_transp): Use DF_REG_DEF_CHAINs.
4323 (local_cprop_pass): Don't use compute_sets and related functions.
4324 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
4325 Use get_max_uid() instead of max_cuid.
4326 (insert_insn_end_basic_block, pre_insert_copy_insn,
4327 update_ld_motion_stores): Don't try to
4328 keep reg_set tables up to date.
4329 (pre_insert_copies): Use df insn LUIDs.
4330 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
4331 (reg_set_info): Don't use extra bitmap argument.
4332 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
4333 information to compute regs_set_in_block.
4334 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
4335 (bypass_jumps): Don't use compute_sets and friends.
4336
4337 2009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4338
4339 PR testsuite/39710
4340 * opts.c (undocumented_msg): Do not leave blank even with
4341 ENABLE_CHECKING.
4342
4343 2009-04-25 Joseph Myers <joseph@codesourcery.com>
4344
4345 * c-decl.c (build_enumerator): Allow values folding to integer
4346 constants but not integer constant expressions with a pedwarn if
4347 pedantic.
4348
4349 2009-04-25 Joseph Myers <joseph@codesourcery.com>
4350
4351 PR c/39582
4352 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
4353 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
4354 type is an integer constant.
4355
4356 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
4357
4358 PR target/39897
4359 * config/i386/i386.c (print_operand) ['z']: Revert handling of
4360 HImode operands.
4361
4362 2009-04-25 Joseph Myers <joseph@codesourcery.com>
4363
4364 PR c/39564
4365 * c-decl.c (grokdeclarator): Diagnose declarations of functions
4366 with variably modified return type and no storage class
4367 specifiers, except for the case of nested functions. Distinguish
4368 extern declarations of functions with variably modified return
4369 types from those of objects with variably modified types.
4370
4371 2009-04-25 Jan Hubicka <jh@suse.cz>
4372
4373 * tree.c (list_equal_p): New function.
4374 * tree.h (list_equal_p): Declare.
4375 * coretypes.h (edge_def, edge, const_edge, basic_block_def
4376 basic_block_def, basic_block, const_basic_block): New.
4377 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
4378 (redirect_eh_edge): New function.
4379 (make_eh_edge_update_phi): EH edges are not abnormal.
4380 * except.c: Include tree-flow.h.
4381 (list_match): New function.
4382 (eh_region_replaceable_by_p): New function.
4383 (replace_region): New function.
4384 (hash_type_list): New function.
4385 (hash_eh_region): New function.
4386 (eh_regions_equal_p): New function.
4387 (merge_peers): New function.
4388 (remove_unreachable_regions): Verify EH tree when checking;
4389 merge peers.
4390 (copy_eh_region_1): New function.
4391 (copy_eh_region): New function.
4392 (push_reachable_handler): New function.
4393 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
4394 regions without label but with live RESX.
4395 * except.h (redirect_eh_edge_to_label): New.
4396 * tree-flow.h (redirect_eh_edge): New.
4397 * coretypes.h (edge_def, edge, const_edge, basic_block_def
4398 basic_block_def, basic_block, const_basic_block): Remove.
4399 * Makefile.in (except.o): Add dependency on tree-flow.h
4400 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
4401 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
4402 Remove.
4403
4404 2009-04-25 Eric Botcazou <ebotcazou@adacore.com>
4405
4406 PR bootstrap/39645
4407 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
4408 on the destination of memcpy.
4409
4410 2009-04-25 Paolo Bonzini <bonzini@gnu.org>
4411
4412 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
4413 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
4414 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
4415
4416 2009-04-25 Jan Hubicka <jh@suse.cz>
4417
4418 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
4419 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
4420 to be reached by different label than left.
4421 (update_eh_edges): Update comment; remove edge_to_remove if possible
4422 and return true if suceeded.
4423 (cleanup_empty_eh): Accept sharing map; handle shared regions.
4424 (cleanup_eh): Compute sharing map.
4425 * except.c (remove_eh_handler_and_replace): Add argument if we should
4426 update regions.
4427 (remove_unreachable_regions): Update for label sharing.
4428 (label_to_region_map): Likewise.
4429 (get_next_region_sharing_label): New function.
4430 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
4431 prev_try pointers.
4432 (remove_eh_handler): Update.
4433 (remove_eh_region_and_replace_by_outer_of): New function.
4434 * except.h (struct eh_region): Add next_region_sharing_label.
4435 (remove_eh_region_and_replace_by_outer_of,
4436 get_next_region_sharing_label): Declare.
4437 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
4438
4439 2009-04-25 Jan Hubicka <jh@suse.cz>
4440
4441 * tree-cfg.c (split_critical_edges): Split also edges where we can't
4442 insert code even if they are not critical.
4443
4444 2009-04-25 Jan Hubicka <jh@suse.cz>
4445
4446 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
4447 (gimple_can_remove_branch_p): EH edges won't remove branch by
4448 redirection.
4449 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
4450 updating of non-abnormal EH edges.
4451 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
4452 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
4453 (split_critical_edges): Split also edges where emitting code on them
4454 will lead to splitting later.
4455
4456 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
4457 H.J. Lu <hongjiu.lu@intel.com>
4458
4459 PR target/39590
4460 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
4461 the configured assembler supports fildq and fistpq mnemonics.
4462 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
4463 * configure: Regenerated.
4464 * config.in: Ditto.
4465
4466 * config/i386/i386.c (print_operand): Handle 'Z'.
4467 ['z']: Remove handling of special fild/fist suffixes.
4468 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
4469 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
4470 suffix of fild insn.
4471 (*floatsi<mode>2_vector_mixed): Ditto.
4472 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
4473 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
4474 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4475 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
4476 * config/i386/gas.h (GAS_MNEMONICS): Remove.
4477
4478 2009-04-25 Ben Elliston <bje@au.ibm.com>
4479
4480 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
4481 the source of a set operation.
4482
4483 2009-04-25 Anatoly Sokolov <aesok@post.ru>
4484
4485 * target.h (struct gcc_target): Add case_values_threshold field.
4486 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
4487 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
4488 * targhooks.c (default_case_values_threshold): New function.
4489 * targhooks.h (default_case_values_threshold): Declare function.
4490 * stmt.c (expand_case): Use case_values_threshold target hook.
4491 * expr.h (case_values_threshold): Remove declartation.
4492 * expr.c (case_values_threshold): Remove function.
4493 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
4494
4495 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
4496 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
4497 (avr_case_values_threshold): Declare as static.
4498 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
4499
4500 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
4501 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
4502 (mn10300_case_values_threshold): New function.
4503
4504 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
4505
4506 * ira.c (setup_cover_and_important_classes): Add enum cast.
4507
4508 2009-04-24 Vladimir Makarov <vmakarov@redhat.com>
4509
4510 * genpreds.c (write_enum_constraint_num): Output definition of
4511 CONSTRAINT_NUM_DEFINED_P macro.
4512 * ira.c (setup_cover_and_important_classes): Use
4513 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
4514
4515 2009-04-24 DJ Delorie <dj@redhat.com>
4516
4517 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
4518 __SH2A_SINGLE_ONLY__ also.
4519
4520 2009-04-24 Steve Ellcey <sje@cup.hp.com>
4521
4522 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
4523 (movdf_internal): Ditto.
4524 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
4525 SFmode and DFmode constants.
4526 (ia64_print_operand): Add 'G' format for printing
4527 floating point constants.
4528
4529 2009-04-24 Richard Guenther <rguenther@suse.de>
4530
4531 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
4532 from unsigned additions.
4533
4534 2009-04-24 Joseph Myers <joseph@codesourcery.com>
4535
4536 * c-typeck.c (set_init_index): Allow array designators that are
4537 not integer constant expressions with a pedwarn if pedantic.
4538
4539 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
4540
4541 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
4542 zero if no overlap in nonzero bits between the operands.
4543
4544 2009-04-24 Ian Lance Taylor <iant@google.com>
4545
4546 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
4547 (record_dead_and_set_regs): Likewise.
4548 * df.h (struct df_mw_hardreg): Change flags field to int.
4549 (struct df_base_ref): Likewise.
4550 (struct df): Change changeable_flags field to int.
4551 * df-scan.c (df_defs_record): Change clobber_flags to int.
4552 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
4553 constants rather than #define macros.
4554 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
4555 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
4556 (enum dwarf_calling_convention): Likewise.
4557 (enum dwarf_line_number_x_ops): Likewise.
4558 (enum dwarf_call_frame_info): Likewise.
4559 (enum dwarf_source_language): Likewise.
4560 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
4561 (add_calling_convention_attribute): Likewise.
4562 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
4563 (combine_comparisons): Change compcode to int. Add cast to enum type.
4564 * genrecog.c (maybe_both_true_2): Change c to int.
4565 (write_switch): Likewise. Add cast to enum type.
4566 * gimplify.c (gimplify_omp_for): Handle return values from
4567 gimplify_expr using MIN rather than bitwise or.
4568 (gimplify_expr): Add cast to enum type.
4569 * ipa-prop.c (update_jump_functions_after_inlining): Change
4570 IPA_BOTTOM to IPA_JF_UNKNOWN.
4571 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
4572 Add casts to enum type.
4573 (setup_cover_and_important_classes): Change cl to int. Add casts
4574 to enum type.
4575 (setup_class_translate): Change cl and mode to int.
4576 (ira_init_once): Change mode to int.
4577 (free_register_move_costs): Likewise.
4578 (setup_prohibited_mode_move_regs): Add casts to enum type.
4579 * langhooks.c (add_builtin_function_common): Rework assertion that
4580 value fits bitfield.
4581 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
4582 * omega.c (omega_do_elimination): Avoid math on enum types.
4583 * optabs.c (expand_vec_shift_expr): Remove casts to int.
4584 * opts.c (set_debug_level): Change 2 to enum constant. Use new
4585 int local to handle integral_argment value.
4586 * regmove.c (try_auto_increment): Change PUT_MODE to
4587 PUT_REG_NOTE_KIND.
4588 * reload.c (push_secondary_reload): Add casts to enum type.
4589 (secondary_reload_class, find_valid_class): Likewise.
4590 * reload1.c (emit_input_reload_insns): Likewise.
4591 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
4592 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
4593 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
4594 constant.
4595 * tree.c (build_common_builtin_nodes): Add casts to enum type.
4596 * tree-complex.c (complex_lattice_t): Typedef to int rather than
4597 enum type.
4598 (expand_complex_libcall): Add casts to enum type.
4599 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
4600 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
4601 with ERROR_MARK, not NUM_TREE_CODES.
4602 (vect_create_epilog_for_reduction): Likewise.
4603 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
4604 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
4605 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
4606 enum machine_mode.
4607 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
4608 vect_unused_in_loop. Change 0 to loop_vect.
4609 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
4610 * var-tracking.c (get_init_value): Change return type to enum
4611 var_init_status.
4612 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
4613 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
4614 arm_fp_model.
4615 (arm_override_options): Add casts to enum type.
4616 (arm_emit_tls_decoration): Likewise.
4617 * config/i386/i386.c (ix86_function_specific_restore): Add casts
4618 to enum type.
4619 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
4620 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
4621 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
4622 enum type.
4623 * config/s390/s390.c (code_for_builtin_64): Change to array of
4624 enum insn_code.
4625 (code_for_builtin_31): Likewise.
4626 (s390_expand_builtin): Change code_for_builtin to enum insn_code
4627 const *.
4628 * config/sparc/sparc.c (sparc_override_options): Change value
4629 field in struct code_model to enum cmodel. In initializer change
4630 0 to NULL and add cast to enum type.
4631
4632 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
4633 Change all callers. Issue a -Wc++-compat warning using
4634 lhs_origtype if necessary.
4635 (convert_for_assignment): Issue -Wc++-compat warnings about
4636 invalid conversions to enum type on assignment.
4637 * c-common.h (build_modify_expr): Update declaration.
4638
4639 2009-04-24 Nick Clifton <nickc@redhat.com>
4640
4641 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
4642 (function_arg_advance): Likewise.
4643 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
4644 5th alternative.
4645
4646 2009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
4647
4648 * config/s390/constraints.md ('I', 'J'): Fix condition.
4649
4650 2009-04-24 Diego Novillo <dnovillo@google.com>
4651
4652 * gengtype-parse.c (parse_error): Add newline after message.
4653
4654 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
4655
4656 * config/i386/sse.md (avxmodesuffixs): Removed.
4657 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
4658 (*avx_pinsr<ssevecsize>): This.
4659
4660 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
4661
4662 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
4663 follow chains of regs with a single definition, and allow expressions
4664 that are function_invariant_p.
4665 (simple_rhs_p): Allow expressions that are function_invariant_p.
4666
4667 2009-04-24 Paolo Bonzini <bonzini@gnu.org>
4668
4669 PR middle-end/39867
4670 * fold-const.c (fold_cond_expr_with_comparison): When folding
4671 > and >= to MAX, make sure the MAX uses the same type as the
4672 comparison's operands.
4673
4674 2009-04-24 Nick Clifton <nickc@redhat.com>
4675
4676 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
4677 addressing for DImode accesses.
4678 (frv_print_operand_address): Handle PLUS case.
4679 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
4680
4681 2009-04-24 Jakub Jelinek <jakub@redhat.com>
4682
4683 PR rtl-optimization/39794
4684 * alias.c (canon_true_dependence): Add x_addr argument.
4685 * rtl.h (canon_true_dependence): Adjust prototype.
4686 * cse.c (check_dependence): Adjust canon_true_dependence callers.
4687 * cselib.c (cselib_invalidate_mem): Likewise.
4688 * gcse.c (compute_transp): Likewise.
4689 * dse.c (scan_reads_nospill): Likewise.
4690 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
4691 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
4692 canon_base_addr of the group, plus optional offset.
4693 (struct group_info): Rename canon_base_mem to
4694 canon_base_addr.
4695 (get_group_info): Set canon_base_addr to canon_rtx of base, not
4696 canon_rtx of base_mem.
4697
4698 2009-04-23 Paolo Bonzini <bonzini@gnu.org>
4699
4700 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
4701 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
4702
4703 2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4704
4705 * config/spu/spu-builtins.h: Delete file.
4706
4707 * config/spu/spu.h (enum spu_builtin_type): Move here from
4708 spu-builtins.h.
4709 (struct spu_builtin_description): Likewise. Add GTY marker.
4710 Do not use enum spu_function_code or enum insn_code.
4711 (spu_builtins): Add extern declaration.
4712
4713 * config/spu/spu.c: Do not include "spu-builtins.h".
4714 (enum spu_function_code, enum spu_builtin_type_index,
4715 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
4716 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
4717 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
4718 unsigned_V2DI_type_node): Move here from spu-builtins.h.
4719 (spu_builtin_types): Make static. Add GTY marker.
4720 (spu_builtins): Add extern declaration with GTY marker.
4721 Include "gt-spu.h".
4722
4723 * config/spu/spu-c.c: Do not include "spu-builtins.h".
4724 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
4725 Check programmatically whether all parameters are scalar.
4726
4727 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
4728
4729 2009-04-23 Eric Botcazou <ebotcazou@adacore.com>
4730
4731 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
4732 assignment from the constructor either if the target is volatile.
4733
4734 2009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
4735
4736 * config/arm/arm.md (insv): Do not share operands[0].
4737
4738 2009-04-23 Nathan Sidwell <nathan@codesourcery.com>
4739
4740 * config/vxlib-tls.c (active_tls_threads): Delete.
4741 (delete_hook_installed): New.
4742 (tls_delete_hook): Don't delete the delete hook.
4743 (tls_destructor): Delete it here.
4744 (__gthread_set_specific): Adjust installing the delete hook.
4745 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
4746 __gthread_leave_tsd_dtor_context.
4747
4748 2009-04-23 Rafael Avila de Espindola <espindola@google.com>
4749
4750 * c-format.c (gcc_tdiag_char_table): Add support for %E.
4751
4752 2009-04-23 Uros Bizjak <ubizjak@gmail.com>
4753
4754 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
4755 enum type.
4756 (alpha_rtx_costs): Ditto.
4757 (emit_unlikely_jump): Use add_reg_note.
4758 (emit_frame_store_1): Ditto.
4759 (alpha_expand_prologue): Ditto.
4760 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4761 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
4762
4763 2009-04-23 Nick Clifton <nickc@redhat.com>
4764
4765 * config/v850/v850.md (epilogue): Remove suppressed code.
4766 (return): Rename to return_simple and remove test of frame size.
4767 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
4768 to gen_return_simple.
4769
4770 2009-04-22 Jing Yu <jingyu@google.com>
4771
4772 PR testsuite/39781
4773 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
4774
4775 2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
4776
4777 PR C/31499
4778 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
4779 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
4780 value is a VECTOR_CST, the element type is the element type of the
4781 vector.
4782
4783 2009-04-22 DJ Delorie <dj@redhat.com>
4784
4785 * config/m32c/m32c.h: Update GTY annotations to new syntax.
4786
4787 2009-04-22 Jakub Jelinek <jakub@redhat.com>
4788
4789 * alias.c (find_base_term): Move around LO_SUM case, so that
4790 CONST falls through into PLUS/MINUS handling.
4791
4792 PR c/39855
4793 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
4794 into 0, use omit_one_operand.
4795
4796 2009-04-23 Ben Elliston <bje@au.ibm.com>
4797
4798 * config/rs6000/linux-unwind.h (get_regs): Remove type
4799 puns. Change the type of `pc' to an array of unsigned ints and
4800 update all users. Constify frame24.
4801
4802 2009-04-22 DJ Delorie <dj@redhat.com>
4803
4804 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
4805 declarations before code.
4806 (current_function_special_page_vector): Likewise.
4807 (m32c_expand_insv): Silence a warning.
4808
4809 2009-04-21 Taras Glek <tglek@mozilla.com>
4810
4811 * alias.c: Update GTY annotations to new syntax.
4812 * basic-block.h: Likewise.
4813 * bitmap.h: Likewise.
4814 * c-common.h: Likewise.
4815 * c-decl.c: Likewise.
4816 * c-parser.c: Likewise.
4817 * c-pragma.c: Likewise.
4818 * c-tree.h: Likewise.
4819 * cfgloop.h: Likewise.
4820 * cgraph.h: Likewise.
4821 * config/alpha/alpha.c: Likewise.
4822 * config/arm/arm.h: Likewise.
4823 * config/avr/avr.h: Likewise.
4824 * config/bfin/bfin.c: Likewise.
4825 * config/cris/cris.c: Likewise.
4826 * config/darwin.c: Likewise.
4827 * config/frv/frv.c: Likewise.
4828 * config/i386/i386.c: Likewise.
4829 * config/i386/i386.h: Likewise.
4830 * config/i386/winnt.c: Likewise.
4831 * config/ia64/ia64.h: Likewise.
4832 * config/iq2000/iq2000.c: Likewise.
4833 * config/mips/mips.c: Likewise.
4834 * config/mmix/mmix.h: Likewise.
4835 * config/pa/pa.c: Likewise.
4836 * config/pa/pa.h: Likewise.
4837 * config/rs6000/rs6000.c: Likewise.
4838 * config/s390/s390.c: Likewise.
4839 * config/sparc/sparc.c: Likewise.
4840 * config/xtensa/xtensa.c: Likewise.
4841 * cselib.h: Likewise.
4842 * dbxout.c: Likewise.
4843 * dwarf2out.c: Likewise.
4844 * except.c: Likewise.
4845 * except.h: Likewise.
4846 * fixed-value.h: Likewise.
4847 * function.c: Likewise.
4848 * function.h: Likewise.
4849 * gimple.h: Likewise.
4850 * integrate.c: Likewise.
4851 * optabs.c: Likewise.
4852 * output.h: Likewise.
4853 * real.h: Likewise.
4854 * rtl.h: Likewise.
4855 * stringpool.c: Likewise.
4856 * tree-data-ref.c: Likewise.
4857 * tree-flow.h: Likewise.
4858 * tree-scalar-evolution.c: Likewise.
4859 * tree-ssa-address.c: Likewise.
4860 * tree-ssa-alias.h: Likewise.
4861 * tree-ssa-operands.h: Likewise.
4862 * tree.c: Likewise.
4863 * tree.h: Likewise.
4864 * varasm.c: Likewise.
4865 * varray.h: Likewise.
4866 * vec.h: Likewise.
4867 * coretypes.h: Do not define GTY macro if it is already defined.
4868 * doc/gty.texi: Update GTY documentation to new syntax.
4869 * gengtype-lex.l: Enforce attribute-like syntax for GTY
4870 annotations on structs.
4871 * gengtype-parse.c: Likewise.
4872
4873 2009-04-22 Mark Heffernan <meheff@google.com>
4874
4875 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
4876
4877 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
4878
4879 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
4880 where appropriate.
4881
4882 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
4883
4884 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
4885 the same as a PLUS without a shift. Increase the cost of a
4886 CONST_INT in MULT.
4887
4888 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4889
4890 * Makefile.in: Update dependencies.
4891 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
4892 * errors.h: Remove bogus comment about compatibility.
4893 (warning): Update declaration.
4894 * genautomata.c: Update all calls to warning.
4895 * gimple.c: Do not include errors.h. Include toplev.h.
4896 * tree-ssa-structalias.c: Do not include errors.h.
4897 * omega.c: Likewise.
4898 * tree-ssa-reassoc.c: Likewise.
4899 * config/spu/spu-c.c: Likewise.
4900 * config/spu/t-spu-elf: Update dependencies.
4901
4902 2009-04-22 Richard Guenther <rguenther@suse.de>
4903
4904 PR tree-optimization/39824
4905 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
4906 make sure the types are compatible.
4907
4908 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4909
4910 PR c++/14875
4911 * c-common.c (c_parse_error): Take a token_flags parameter.
4912 Use token_type for the token type instead.
4913 Pass token_flags to cpp_type2name.
4914 * c-common.h (c_parse_error): Update declaration.
4915 * c-parser.c (c_parser_error): Pass 0 as token flags.
4916
4917 2009-04-22 Andrey Belevantsev <abel@ispras.ru>
4918
4919 PR rtl-optimization/39580
4920 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
4921
4922 2009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4923
4924 * function.c (expand_function_end): Do not emit a jump to the "naked"
4925 return label for fall-through returns.
4926 * except.c (sjlj_emit_function_exit): Always place the call to the
4927 unregister function at the location installed by expand_function_end.
4928
4929 2009-04-22 Richard Guenther <rguenther@suse.de>
4930
4931 PR tree-optimization/39845
4932 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
4933 (gen_inbound_check): Likewise.
4934
4935 2009-04-22 Nathan Sidwell <nathan@codesourcery.com>
4936
4937 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
4938 padding for PPC.
4939 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
4940 * config/vxlib.c (__gthread_once): Add race guard for PPC.
4941
4942 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
4943
4944 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
4945 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
4946 shift counts to avoid out-of-bounds array accesses.
4947
4948 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
4949
4950 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
4951 (Pmode): Move above.
4952
4953 2009-04-22 Uros Bizjak <ubizjak@gmail.com>
4954
4955 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
4956 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
4957 GET_CODE macro. Use IN_RANGE macro where appropriate.
4958 * config/alpha/alpha.h: Ditto.
4959 * config/alpha/alpha.md: Ditto.
4960 * config/alpha/constraints.md: Ditto.
4961 * config/alpha/predicates.md: Ditto.
4962
4963 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
4964
4965 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
4966 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4967 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4968 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4969 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4970 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4971 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4972 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4973 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4974 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4975 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4976 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4977 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4978 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4979 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4980 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4981 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4982 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4983 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4984 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4985 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4986 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4987 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4988 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4989 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4990 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4991 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4992
4993 2009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4994
4995 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
4996 references from comments.
4997 * cfgbuild.c: (count_basic_blocks): Delete.
4998 (find_basic_blocks_1): Delete.
4999 (find_basic_blocks): Delete.
5000 * except.c (finish_eh_generation): Make static. Move comment from
5001 except.h here. Remove find_basic_blocks references from comments.
5002 * except.h (finish_eh_generation): Delete.
5003 * basic-block.h (find_basic_blocks): Delete.
5004 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
5005
5006 2009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
5007
5008 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
5009 (sdbout_parms): Likewise.
5010
5011 2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
5012
5013 * config/sh/sh.c (prepare_cbranch_operands): Use
5014 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
5015 (expand_cbranchdi4): Likewise.
5016 (from_compare): Add cast to enum type.
5017 (expand_cbranchsi4): Use add_reg_note.
5018 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
5019 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
5020 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
5021 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5022 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
5023 instead of CODE_FOR_nothing.
5024 (cbranchdi4): Likewise. Fix the order of arguments for
5025 gen_rtx_fmt_ee.
5026 (push_fpscr): Use add_reg_note.
5027 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
5028 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
5029
5030 2009-04-21 Joseph Myers <joseph@codesourcery.com>
5031
5032 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
5033 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
5034 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
5035 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
5036 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
5037 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
5038 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
5039 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
5040 config/alpha/x-vms, config/arc/t-arc,
5041 config/arm/README-interworking, config/arm/arm-c.c,
5042 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
5043 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
5044 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
5045 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
5046 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
5047 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
5048 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
5049 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
5050 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
5051 config/cris/t-elfmulti, config/crx/t-crx,
5052 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
5053 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
5054 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
5055 config/h8300/t-h8300, config/i386/athlon.md,
5056 config/i386/darwin-libgcc.10.4.ver,
5057 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
5058 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
5059 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
5060 config/i386/t-linux64, config/i386/t-nwld,
5061 config/i386/t-rtems-i386, config/i386/t-sol2-10,
5062 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
5063 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
5064 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
5065 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
5066 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
5067 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
5068 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
5069 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
5070 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
5071 config/m68k/t-uclinux, config/mcore/t-mcore,
5072 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
5073 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
5074 config/mips/crtn.asm, config/mips/irix-crti.asm,
5075 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
5076 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
5077 config/mips/mips-fixed.md, config/mips/sb1.md,
5078 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
5079 config/mips/t-iris6, config/mips/t-isa3264,
5080 config/mips/t-libgcc-mips16, config/mips/t-linux64,
5081 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
5082 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
5083 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
5084 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
5085 config/mn10300/t-linux, config/mn10300/t-mn10300,
5086 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
5087 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
5088 config/picochip/libgccExtras/clzsi2.asm,
5089 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
5090 config/rs6000/darwin-libgcc.10.4.ver,
5091 config/rs6000/darwin-libgcc.10.5.ver,
5092 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
5093 config/rs6000/t-aix43, config/rs6000/t-aix52,
5094 config/rs6000/t-darwin, config/rs6000/t-fprules,
5095 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
5096 config/rs6000/t-lynx, config/rs6000/t-netbsd,
5097 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
5098 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
5099 config/rs6000/t-rtems, config/rs6000/t-spe,
5100 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
5101 config/score/t-score-elf, config/sh/divcost-analysis,
5102 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
5103 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
5104 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
5105 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
5106 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
5107 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
5108 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
5109 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
5110 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
5111 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
5112 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
5113 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
5114 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
5115 limitx.h, version.c, xcoff.h: Add copyright and license notices.
5116 * config/h8300/genmova.sh: Include copyright and license notices
5117 in generated output.
5118 * config/h8300/mova.md: Regenerate.
5119 * doc/install.texi2html: Include word "Copyright" in copyright
5120 notice and use name "Free Software Foundation, Inc.".
5121 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
5122 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
5123 ChangeLog-2007, ChangeLog-2008: Correct dates.
5124
5125 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
5126
5127 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
5128 NE_EXPR operations as well.
5129 * c-parser.c (c_parser_condition): Do not set location information on
5130 the condition.
5131 (c_parser_conditional_expression): Likewise.
5132 (c_parser_binary_expression): Set location information on operators.
5133 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
5134 TRUTH_NOT_EXPR has been folded.
5135 * fold-const.c (fold_truth_not_expr): Copy location information from
5136 the incoming expression to the outgoing one.
5137 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
5138 recursive calls on the LHS of the operator but pass that of the
5139 operator to recursive calls on the RHS of the operator. Set it
5140 on the COND_EXPR.
5141 (shortcut_cond_expr): Set the locus of the operator on the second
5142 COND_EXPR and that of the expression on the first in degenerate cases.
5143 Pass the locus of the expression to calls to shortcut_cond_r.
5144 Set the locus of the 'then' block on the associated jump, if any.
5145 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
5146 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
5147 expression to call to gimplify_boolean_expr.
5148
5149 2009-04-21 Kai Tietz <kai.tietz@onevision.com>
5150
5151 * config.gcc: Add additional configuration for
5152 i686-w64-mingw* and x86_64-w64-mingw* triplet.
5153 * config/i386/mingw-w64.h: New mingw-w64 specific header.
5154 (CPP_SPEC): Redefine for allowing -municode option.
5155 (STARTFILE_SPEC): Likewise.
5156 * config/i386/t-mingw-w64: New.
5157 * config/i386/mingw-w64.opt: New.
5158 (municode): Add new target option.
5159 * doc/invoke.texi (municode): Add documentation for new option.
5160
5161 2009-04-21 Ian Lance Taylor <iant@google.com>
5162
5163 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5164 Correct test for number of arguments.
5165 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
5166
5167 2009-04-21 Andreas Schwab <schwab@linux-m68k.org>
5168
5169 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
5170 argument of emit_library_call.
5171
5172 2009-04-21 Richard Guenther <rguenther@suse.de>
5173
5174 PR middle-end/39829
5175 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
5176 inside VIEW_CONVERT_EXPRs.
5177
5178 2009-04-21 Martin Jambor <mjambor@suse.cz>
5179
5180 * tree-switch-conversion.c (build_constructors): Split a long line.
5181 (constructor_contains_same_values_p): New function.
5182 (build_one_array): Create assigns of constants if possible, do not
5183 call mark_sym_for_renaming, call update_stmt.
5184 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
5185 make_rename_temp. Do not call mark_symbols_for_renaming, call
5186 update_stmt.
5187 (gen_def_assigns): Do not call mark_symbols_for_renaming or
5188 find_new_referenced_vars, call update_stmt.
5189 (gen_inbound_check): Use create_tmp_var and create ssa names manually
5190 instead of calling make_rename_temp. Do not call
5191 find_new_referenced_vars or mark_symbols_for_renaming, call
5192 update_stmt.
5193
5194 2009-04-21 Richard Guenther <rguenther@suse.de>
5195
5196 PR tree-optimization/39827
5197 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
5198 (tree_ssa_phiprop): Pass the correct array size.
5199
5200 2009-04-21 Uros Bizjak <ubizjak@gmail.com>
5201
5202 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
5203
5204 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
5205
5206 PR 16202
5207 * c-typeck.c (lvalue_p): Move declaration ...
5208 * c-common.h (lvalue_p): ... to here.
5209 * c-common.c (candidate_equal_p): New.
5210 (add_tlist): Use it.
5211 (merge_tlist): Use it.
5212 (warn_for_collisions_1): Likewise.
5213 (warning_candidate_p): Accept more candidates.
5214 (verify_tree): A warning candidate can be an expression. Use
5215 candidate_equal_p.
5216
5217 2009-04-21 Ben Elliston <bje@au.ibm.com>
5218
5219 PR target/5267
5220 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
5221 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
5222 options. Remove -mcall-solaris documentation.
5223
5224 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5225
5226 PR c++/13358
5227 * doc/invoke.texi (-Wlong-long): Update description.
5228 * c-lex (interpret_integer): Only warn if there was no previous
5229 overflow and -Wlong-long is enabled.
5230 * c-decl.c (declspecs_add_type): Drop redundant flags.
5231 * c.opt (Wlong-long): Init to -1.
5232 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
5233 and front-end warn_long_long. Wlong-long only depends on other
5234 flags if it is uninitialized.
5235 * c-parser.c (disable_extension_diagnostics): warn_long_long is
5236 the same for CPP and FE.
5237 (restore_extension_diagnostics): Likewise.
5238
5239 2009-04-20 Ian Lance Taylor <iant@google.com>
5240
5241 Fix enum conversions which are invalid in C++:
5242 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
5243 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
5244 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
5245 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
5246 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
5247 (dbxout_parms): Likewise.
5248 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
5249 (df_clear_flags): Likewise.
5250 * df-problems.c (df_rd_bb_local_compute_process_def): Change
5251 top_flag parameter to int.
5252 (df_chain_create_bb_process_use): Likewise.
5253 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
5254 Remove cast.
5255 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
5256 (df_ref_create_structure, df_def_record_1): Likewise.
5257 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
5258 (df_notes_rescan): Change 0 to VOIDmode in function call.
5259 (df_get_call_refs, df_insn_refs_collect): Likewise.
5260 (df_bb_regs_collect): Likewise.
5261 (df_entry_block_defs_collect): Likewise.
5262 (df_exit_block_uses_collect): Likewise.
5263 * df.h: Update declarations.
5264 * double-int.c (double_int_divmod): Add cast to enum type.
5265 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
5266 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
5267 (based_loc_descr): Likewise.
5268 (loc_descriptor_from_tree_1): Change first_op and second_op to
5269 enum dwarf_location_atom. Add cast to enum type.
5270 * expmed.c (init_expmed): Change 0 to SET in function call.
5271 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
5272 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
5273 (do_store_flag): Likewise.
5274 * fixed-value.h (struct fixed_value): Change mode to enum
5275 machine_mode.
5276 * function.c (assign_parms): Change 0 to VOIDmode in function call.
5277 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
5278 function call.
5279 (insert_insn_decl, insert_decl, insert_state): Likewise.
5280 (automata_list_finish): Likewise.
5281 * genrecog.c (process_define_predicate): Add cast to enum type.
5282 * gensupport.c (init_predicate_table): Add cast to enum type.
5283 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
5284 function call.
5285 (gimple_build_call_1, gimple_build_label): Likewise.
5286 (gimple_build_goto, gimple_build_asm_1): Likewise.
5287 (gimple_build_switch_1, gimple_build_cdt): Likewise.
5288 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
5289 (enum fallback): Rename from enum fallback_t.
5290 (fallback_t): Typedef as int.
5291 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
5292 GSI_SAME_STMT in function call.
5293 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
5294 enum type.
5295 (setup_reg_class_relations): Likewise.
5296 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
5297 (setup_prohibited_class_mode_regs): Add cast to enum type.
5298 (setup_prohibited_mode_move_regs): Likewise.
5299 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
5300 (record_address_regs): Change i to enum reg_class.
5301 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
5302 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
5303 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
5304 (GET_MODE_2XWIDER_MODE): Likewise.
5305 (GET_CLASS_NARROWEST_MODE): Likewise.
5306 * omp-low.c (expand_omp_for): Add cast to enum type.
5307 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
5308 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
5309 * postreload.c (reload_cse_simplify_operands): Change rclass local
5310 to enum reg_class.
5311 * predict.c (combine_predictions_for_insn): Change best_predictor
5312 and predictor to enum br_predictor.
5313 (combine_predictions_for_bb): Likewise.
5314 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
5315 use SET_PREDICT_EXPR_OUTCOME.
5316 * real.c (real_arithmetic): Change icode to code in function call.
5317 * reginfo.c (init_move_cost): Add casts to enum type.
5318 (init_reg_sets_1, init_fake_stack_mems): Likewise.
5319 * regmove.c (regclass_compatible_p): Change class0 and class1 to
5320 enum reg_class.
5321 * reload.c (find_valid_class): Add casts to enum type.
5322 (push_reload): Change 0 to NO_REGS in function call.
5323 (find_reloads): Change this_alternative to array of enum
5324 reg_class. Remove some now-unnecessary casts.
5325 (make_memloc): Change 0 to VOIDmode in function call.
5326 * reload1.c (reload): Change 0 to VOIDmode in function call.
5327 (eliminate_regs_1, elimination_effects): Likewise.
5328 (eliminate_regs_in_insn): Likewise.
5329 (emit_input_reload_insns): Add cast to enum type.
5330 (delete_output_reload): Change 0 to VOIDmode in function call.
5331 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
5332 to enum type in function call.
5333 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
5334 (SET_PREDICT_EXPR_OUTCOME): Define.
5335 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
5336 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
5337 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
5338 (dump_function): Likewise.
5339 * tree-dump.h: Update declarations.
5340 * tree-pass.h: Update declarations.
5341 * varasm.c (assemble_integer): Change mclass to enum mode_class.
5342 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
5343 enum type.
5344 (arm_rtx_costs_1): Correct parenthesization.
5345 (arm_rtx_costs): Add casts to enum type.
5346 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
5347 (vfp_emit_fstmd): Use add_rg_note.
5348 (emit_multi_reg_push, emit_sfm): Likewise.
5349 (thumb_set_frame_pointer): Likewise.
5350 (arm_expand_prologue): Likewise.
5351 (arm_regno_class): Change return type to enum reg_class.
5352 (thumb1_expand_prologue): Use add_reg_note.
5353 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
5354 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
5355 in function call.
5356 * config/arm/gentune.sh: Add cast to enum type.
5357 * config/arm/arm-tune.md: Rebuild.
5358 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
5359 (ix86_split_fp_branch, predict_jump): Likewise.
5360 (ix86_expand_multi_arg_builtin): Change sub_code from enum
5361 insn_code to enum rtx_code.
5362 (ix86_builtin_vectorized_function): Add cast to enum type.
5363 * config/i386/i386.md (truncdfsf2): Change slot to enum
5364 ix86_stack_slot.
5365 (truncxf<mode>2, isinf<mode>2): Likewise.
5366 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
5367 enum type.
5368 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
5369 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
5370 (insert_bundle_state): Change 1 to INSERT in function call.
5371 (ia64_add_bundle_selector_before): Likewise.
5372 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
5373 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
5374 (restore_stack_nonlocal): Likewise.
5375 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
5376 function call.
5377 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
5378 function call.
5379 (mips_rtx_costs): Likewise.
5380 (mips_override_options): Add casts to enum type.
5381 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
5382 in function call.
5383 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
5384 (store_reg, set_reg_plus_d): Likewise.
5385 (hppa_expand_prologue, hppa_profile_hook): Likewise.
5386 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
5387 cast to enum type.
5388 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
5389 function call.
5390 (emit_unlikely_jump): Use add_reg_note.
5391 (rs6000_emit_allocate_stack): Likewise.
5392 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
5393 (output_toc): Change 1 to INSERT in function call.
5394 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
5395 (rs6000_initialize_trampoline): Likewise.
5396 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
5397 function call.
5398 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
5399 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
5400 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
5401 (save_gprs): Use add_reg_note.
5402 (s390_emit_prologue): Likewise.
5403 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5404 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
5405 (sparc_fold_builtin): Add cast to enum type.
5406 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
5407 enum insn_code.
5408 (spu_expand_prologue): Use add_reg_note.
5409 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
5410
5411 2009-04-20 Ian Lance Taylor <iant@google.com>
5412
5413 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
5414 (c_parser_postfix_expression_after_primary): Get VEC for list of
5415 arguments. Get original types of arguments. Call
5416 build_function_call_vec.
5417 (cached_expr_list_1, cached_expr_list_2): New static variables.
5418 (c_parser_expr_list): Change return type to VEC *. Add
5419 p_orig_types parameter. Change all callers.
5420 (c_parser_release_expr): New static function.
5421 (c_parser_vec_to_tree_list): New static function.
5422 * c-typeck.c (build_function_call): Rewrite to build a VEC and
5423 call build_function_call_vec.
5424 (build_function_call_vec): New function, based on old
5425 build_function_call.
5426 (convert_arguments): Remove nargs and argarray parameters. Change
5427 values to a VEC. Add origtypes parameter.
5428 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
5429 (convert_for_assignment): Add origtype parameter. Change all
5430 callers. If warn_cxx_compat, check for conversion to an enum
5431 type when calling a function.
5432 (store_init_value): Add origtype parameter. Change all callers.
5433 (digest_init): Likewise.
5434 (struct init_node): Add origtype field.
5435 (add_pending_init): Add origtype parameter. Change all callers.
5436 (output_init_element): Likewise.
5437 (output_pending_init_elements): Pass origtype from init_node to
5438 output_init_element.
5439 (process_init_element): Pass origtype from c_expr to
5440 output_init_element.
5441 (c_finish_return): Add origtype parameter. Change all callers.
5442 * c-common.c (sync_resolve_size): Change params to VEC *. Change
5443 caller.
5444 (sync_resolve_params): Likewise.
5445 (sync_resolve_return): Change params to first_param. Change caller.
5446 (resolve_overloaded_builtins): Change params to VEC *. Change
5447 callers. Save first parameter around call to build_function_call_vec.
5448 * c-decl.c (finish_decl): Add origtype parameter. Change all
5449 callers. Call build_function_call_vec rather than
5450 build_function_call for cleanup.
5451 * c-tree.h: Update declarations.
5452 * c-common.h: Update declarations.
5453 * stub-objc.c (objc_rewrite_function_call): Change parameter from
5454 params to first_param.
5455 * target.h (struct gcc_target): Change resolve_overloaded_builtin
5456 params parameter from tree to void *.
5457 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5458 Change arglist parameter to have type void *, and to be a pointer
5459 to a VEC.
5460 * config/rs6000/rs6000-protos.h
5461 (altivec_resolve_overloaded_builtin): Update declaration.
5462 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
5463 fnargs parameter to have type void *, and to be a pointer to a
5464 VEC. Call build_function_call_vec instead of
5465 build_function_call.
5466 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
5467
5468 2009-04-20 Joey Ye <joey.ye@intel.com>
5469 Xuepeng Guo <xuepeng.guo@intel.com>
5470 H.J. Lu <hongjiu.lu@intel.com>
5471
5472 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
5473
5474 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
5475 (IX86_LEA_PRIORITY): Likewise.
5476 (distance_non_agu_define): New function.
5477 (distance_agu_use): Likewise.
5478 (ix86_lea_for_add_ok): Likewise.
5479 (ix86_dep_by_shift_count): Likewise.
5480
5481 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
5482 should split for LEA.
5483
5484 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
5485 function.
5486 (ix86_dep_by_shift_count): Likewise.
5487
5488 2009-04-20 Richard Guenther <rguenther@suse.de>
5489
5490 * expr.c (handled_component_p): Move ...
5491 * tree.h (handled_component_p): ... here.
5492 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
5493 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
5494 and REALPART_EXPR to be in one group.
5495
5496 2009-04-20 Richard Guenther <rguenther@suse.de>
5497
5498 * basic-block.h (get_all_dominated_blocks): Declare.
5499 * dominance.c (get_all_dominated_blocks): New function.
5500 * tree-cfg.c (get_all_dominated_blocks): Remove.
5501 (remove_edge_and_dominated_blocks): Adjust.
5502 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
5503 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
5504 instead of recursing.
5505
5506 2009-04-20 Doug Kwan <dougkwan@google.com>
5507
5508 * cgraph.h (cgraph_node_ptr): New type for vector functions.
5509 (struct cgraph_node_set_def): New type.
5510 (cgraph_node_set) New type. Also declare vector functions.
5511 (struct cgraph_node_set_element_def): New type.
5512 (cgraph_node_set_element): Ditto.
5513 (cgraph_node_set_iterator): New iterator type.
5514 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
5515 cgraph_node_set_remove, dump_cgraph_node_set,
5516 debug_cgraph_node_set): New prototypes.
5517 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
5518 cgraph_node_set_size): New inlines.
5519 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
5520 including cgraph.h.
5521 (struct ipa_opt_pass): Add struct cgraph_node_set_def
5522 argument to function 'write_summary'.
5523 * ipa.c: Include ggc.h.
5524 (hash_cgraph_node_set_element,
5525 eq_cgraph_node_set_element, cgraph_node_set_new,
5526 cgraph_node_set_add, cgraph_node_set_remove,
5527 cgraph_node_set_find, dump_cgraph_node_set,
5528 debug_cgraph_node_set): New functions.
5529 * Makefile.in (ipa.o): Add dependency on GGC_H.
5530
5531 2009-04-20 Ira Rosen <irar@il.ibm.com>
5532
5533 PR tree-optimization/39675
5534 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
5535 check of the return code of vect_schedule_slp. Check that
5536 stmt_vec_info still exists for the statement, before checking its
5537 vectorization type.
5538
5539 2009-04-20 Michael Matz <matz@suse.de>
5540
5541 * Makefile.in (generated_files): Take out $(simple_generated_c).
5542
5543 2009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
5544
5545 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
5546 (UINTPTR_TYPE): Likewise.
5547
5548 2009-04-19 Joseph Myers <joseph@codesourcery.com>
5549
5550 PR c/37481
5551 * c-typeck.c (digest_init): Check for initializing an array with a
5552 string literal.
5553
5554 2009-04-19 Joseph Myers <joseph@codesourcery.com>
5555
5556 PR c/19771
5557 * c-semantics.c (pop_stmt_list): Propagate
5558 STATEMENT_LIST_HAS_LABEL to parent statement list.
5559
5560 2009-04-19 Adam Nemet <anemet@caviumnetworks.com>
5561
5562 * config/mips/mips.h (mips_tune_attr): New macro.
5563 * config/mips/mips.md (cpu): Use it.
5564
5565 2009-04-19 Joseph Myers <joseph@codesourcery.com>
5566
5567 PR c/38243
5568 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
5569 declaring a tag.
5570
5571 2009-04-19 Diego Novillo <dnovillo@google.com>
5572
5573 * toplev.c (compile_file): Move call to coverage_finish ...
5574 * cgraphunit.c (ipa_passes): ... here.
5575 Call cgraph_process_new_functions.
5576 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
5577 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
5578
5579 2009-04-19 Jan Hubicka <jh@suse.cz>
5580
5581 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
5582 cfun.
5583 (dump_cgraph_node): Dump can throw external flag.
5584 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
5585
5586 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
5587
5588 PR c/32061
5589 PR c++/36954
5590 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
5591 * common.opt (Wlogical-op): Move from here...
5592 * c.opt (Wlogical-op): ... to here.
5593 * c-typeck.c (parser_build_binary_op): Update call to
5594 warn_logical_operator.
5595 * c-opts.c (c_common_post_options): Enable warn_logical_op with
5596 extra_warnings.
5597 * c-common.c (warn_logical_op): Update.
5598 * c-common.h (warn_logical_op): Update declaration.
5599
5600 2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
5601
5602 * tree.c (protected_set_expr_location): Fix formatting.
5603
5604 2009-04-18 Joseph Myers <joseph@codesourcery.com>
5605
5606 PR c/27676
5607 * c-typeck.c (readonly_warning): new.
5608 (build_unary_op, build_modify_expr): Use readonly_warning for
5609 storing into something readonly but not const-qualified.
5610
5611 2009-04-18 Joseph Myers <joseph@codesourcery.com>
5612
5613 PR c/22367
5614 * c-typeck.c (build_unary_op): Check for taking address of
5615 expression of type void.
5616
5617 2009-04-18 Joseph Myers <joseph@codesourcery.com>
5618
5619 PR c/35210
5620 * c-typeck.c (build_function_call): Check for calling a function
5621 with qualified void return types. Call require_complete_type when
5622 generating a trap.
5623
5624 2009-04-18 Jan Hubicka <jh@suse.cz>
5625
5626 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
5627 Set nothrow flag.
5628 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
5629 can_throw_external flag.
5630 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
5631 * ipa-pure-const.c (ignore_edge): New function.
5632 (propagate): Compute order for NOTHROW computation; set NOTHROWs
5633 only over can_throw_external edges.
5634 (local_pure_const): Add nothrow flag.
5635 * ipa-utils.c (searchc): Add ignore_edge callback.
5636 (ipa_utils_reduced_inorder): Add ignore_edge callback.
5637 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
5638 (set_nothrow_function_flags): Update cgraph.
5639 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
5640
5641 2009-04-18 Richard Guenther <rguenther@suse.de>
5642
5643 PR middle-end/39804
5644 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
5645 (fold_stmt): ... this and ...
5646 (fold_stmt_inplace): ... this.
5647 (fold_stmt_1): Fold references in calls and asms.
5648 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
5649
5650 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
5651
5652 * tree-vrp.c (ssa_name_nonzero_p): Remove.
5653 * tree.h: Remove the prototype for ssa_name_nonzero_p.
5654
5655 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
5656
5657 * tree.c (function_args_count): Remove.
5658 * tree.h: Remove the prototype for function_args_count.
5659
5660 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
5661
5662 * tree-iterator.c (expr_only): Remove.
5663 * tree.h: Remove the prototype for expr_only.
5664
5665 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
5666
5667 * reginfo.c (cannot_change_mode_set_regs): Remove.
5668 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
5669
5670 2009-04-08 Anatoly Sokolov <aesok@post.ru>
5671
5672 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
5673 whether operands 0 and 1 overlaps.
5674
5675 2009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
5676
5677 PR middle-end/36902
5678 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
5679 pointer. Use warning_at instead of warning.
5680 (search_for_addr_array): Likewise.
5681 (check_array_bounds): Likewise.
5682 (check_all_array_refs): Check that the incoming edge is not in the
5683 list of edges to be removed.
5684 (check_all_array_refs): Avoid the temporal pointer.
5685 (vrp_visit_cond_stmt): Fix typo.
5686 (simplify_switch_using_ranges): Handle the case where the switch
5687 index is an integer constant.
5688
5689 2009-04-18 Adam Nemet <anemet@caviumnetworks.com>
5690
5691 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
5692
5693 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
5694
5695 * doc/extend.texi, doc/invoke.texi: Fix typos.
5696
5697 2009-04-17 Cary Coutant <ccoutant@google.com>
5698
5699 * tree-flow-inline.h (get_lineno): Fix inverted test.
5700
5701 2009-04-17 Diego Novillo <dnovillo@google.com>
5702
5703 * tree-ssa-pre.c (create_expression_by_pieces): Remove
5704 assertion for AVAIL_OUT.
5705
5706 2009-04-17 Mike Frysinger <vapier@gentoo.org>
5707
5708 PR target/38627
5709 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
5710 * config/sh/linux-atomic.asm: Likewise.
5711
5712 2009-04-17 Diego Novillo <dnovillo@google.com>
5713
5714 * except.c (debug_eh_tree): New.
5715 (struct eh_region, struct eh_status): Move ...
5716 * except.h: ... here.
5717 (add_type_for_runtime): Declare extern.
5718 (lookup_type_for_runtime): Likewise.
5719 (debug_eh_tree): Declare.
5720 * Makefile.in (GTFILES): List except.h before except.c
5721
5722 2009-04-17 Diego Novillo <dnovillo@google.com>
5723
5724 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
5725 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
5726 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
5727 (find_vars_r): ... here.
5728 * tree-flow.h (find_referenced_vars_in): Declare.
5729 * tree-ssa-pre.c (create_expression_by_pieces): Assert
5730 that AVAIL_OUT exists for BLOCK.
5731 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
5732 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
5733 (tree-parloops.o): Likewise.
5734
5735 2009-04-17 Simon Baldwin <simonb@google.com>
5736
5737 * toplev.c (default_tree_printer): Add handling for %E format.
5738
5739 2009-04-17 Diego Novillo <dnovillo@google.com>
5740
5741 * tree-pretty-print.c (dump_generic_node): Add break after
5742 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
5743 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
5744 FUNCTION_TYPE together. Call print_struct_decl when printing
5745 structures and TDF_SLIM is not given.
5746 (print_struct_decl): Fix logic for detecting recursion.
5747
5748 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
5749
5750 PR 31567
5751 * gcc.c (create_at_file): New.
5752 (compile_input_file_p): New.
5753 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
5754 * main.c (main): Update call to toplev_main.
5755 * toplev.c (toplev_main): Change signature. Call expandargv.
5756 * toplev.h (toplev_main): Change signature.
5757
5758 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
5759
5760 * dwarf2out.c (field_byte_offset): Use the type size as the field size
5761 if the latter is not constant.
5762
5763 2009-04-17 David Edelsohn <edelsohn@gnu.org>
5764
5765 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
5766
5767 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
5768
5769 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
5770 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
5771
5772 2009-04-17 Richard Guenther <rguenther@suse.de>
5773
5774 * tree-ssa-structalias.c (get_constraint_for_component_ref):
5775 Handle component references view-converting an invariant address.
5776
5777 2009-04-17 Adam Nemet <anemet@caviumnetworks.com>
5778
5779 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
5780 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
5781 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
5782 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
5783 Use @deftypevr rather than @deftypevar.
5784
5785 2009-04-17 Richard Guenther <rguenther@suse.de>
5786
5787 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
5788 (get_prop_source_stmt): Likewise.
5789 (can_propagate_from): Likewise.
5790
5791 2009-04-17 Andrew Stubbs <ams@codesourcery.com>
5792
5793 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
5794 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
5795 (--with-multilib-list): Add default value.
5796 * configure: Regenerate.
5797 * Makefile.in (TM_ENDIAN_CONFIG): Define.
5798 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
5799 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
5800 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
5801 Don't add default cpu to multilib list unnecessarily, but do enable
5802 the relevant compiler option..
5803 Add support for --with-multilib-list=<blank> and
5804 --with-multilib-list=!<somelib> to supress unwanted multilibs.
5805 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
5806 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
5807 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
5808 TM_MULTILIB_CONFIG.
5809 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
5810 (MULTILIB_OSDIRNAMES): New variable.
5811 * config/sh/t-1e: Delete file.
5812 * config/sh/t-mlib-sh1: Delete file.
5813 * config/sh/t-mlib-sh2: Delete file.
5814 * config/sh/t-mlib-sh2a: Delete file.
5815 * config/sh/t-mlib-sh2a-nofpu: Delete file.
5816 * config/sh/t-mlib-sh2a-single: Delete file.
5817 * config/sh/t-mlib-sh2a-single-only: Delete file.
5818 * config/sh/t-mlib-sh2e: Delete file.
5819 * config/sh/t-mlib-sh3e: Delete file.
5820 * config/sh/t-mlib-sh4: Delete file.
5821 * config/sh/t-mlib-sh4-nofpu: Delete file.
5822 * config/sh/t-mlib-sh4-single: Delete file.
5823 * config/sh/t-mlib-sh4-single-only: Delete file.
5824 * config/sh/t-mlib-sh4a: Delete file.
5825 * config/sh/t-mlib-sh4a-nofpu: Delete file.
5826 * config/sh/t-mlib-sh4a-single: Delete file.
5827 * config/sh/t-mlib-sh4a-single-only: Delete file.
5828 * config/sh/t-mlib-sh4al: Delete file.
5829 * config/sh/t-mlib-sh5-32media: Delete file.
5830 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
5831 * config/sh/t-mlib-sh5-64media: Delete file.
5832 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
5833 * config/sh/t-mlib-sh5-compact: Delete file.
5834 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
5835 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
5836 * doc/install.texi (Options specification): Add
5837 --with-multilib-list and --with-endian.
5838
5839 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
5840
5841 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
5842 REVISION_c.
5843 (OBJS-common): Add plugin-version.o.
5844 (plugin-version.o): New.
5845 * gcc-plugin.h (plugin_gcc_version): New.
5846 (plugin_default_version_check): New.
5847 (plugin_init_func, plugin_init): Add version argument.
5848 * plugin-version.c: New.
5849 * plugin.c (str_plugin_gcc_version_name): New.
5850 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
5851 pass it to the init function.
5852 (plugin_default_version_check): New.
5853
5854 2009-04-17 Richard Guenther <rguenther@suse.de>
5855
5856 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
5857 for decl-vs-decl disambiguation.
5858
5859 2009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
5860
5861 * config/s390/s390.h (s390_tune_attr): New macro definition.
5862 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
5863
5864 2009-04-17 Richard Guenther <rguenther@suse.de>
5865
5866 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
5867 (fold_stmt_r): Likewise.
5868 (maybe_fold_reference): New function.
5869 (fold_gimple_assign): Handle cases fold_stmt_r did.
5870 (fold_stmt): Do not use fold_stmt_r.
5871 (fold_stmt_inplace): Likewise.
5872
5873 2009-04-17 Richard Guenther <rguenther@suse.de>
5874
5875 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
5876 (record_equivalences_from_stmt): Remove useless checks and
5877 simplifications.
5878 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
5879 the type is already suitable.
5880
5881 2009-04-17 Paolo Bonzini <bonzini@gnu.org>
5882
5883 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
5884
5885 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
5886
5887 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
5888 (CMPtype): Define as __gcc_CMPtype.
5889
5890 2009-04-17 Aurelien Jarno <aurelien@aurel32.net>
5891
5892 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
5893 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
5894
5895 2009-04-17 Richard Guenther <rguenther@suse.de>
5896
5897 PR tree-optimization/39746
5898 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
5899 special-casing for builtins and static variable use/def.
5900 (call_may_clobber_ref_p_1): Likewise.
5901
5902 2009-04-16 Ian Lance Taylor <iant@google.com>
5903
5904 * df.h: Include "timevar.h".
5905 (struct df_problem): Change tv_id field to timevar_id_t.
5906 * tree-pass.h: Include "timevar.h".
5907 (struct opt_pass): Change tv_id field to timevar_id_t.
5908 * timevar.h (timevar_id_t): Define TV_NONE.
5909 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
5910 TV_NONE rather than tv_id != 0.
5911 (execute_one_pass): Likewise.
5912 * Makefile.in (DF_H): Add $(TIMEVAR_H).
5913 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
5914 dependencies to $(TREE_PASS_H).
5915 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
5916 to TV_NONE.
5917 (pass_branch_target_load_optimize2): Likewise.
5918 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
5919 (pass_outof_cfg_layout_mode): Likewise.
5920 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
5921 (pass_rebuild_cgraph_edges): Likewise.
5922 (pass_remove_cgraph_callee_edges): Likewise.
5923 * df-core.c (pass_df_initialize_opt): Likewise.
5924 (pass_df_initialize_no_opt): Likewise.
5925 (pass_df_finish): Likewise.
5926 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
5927 * except.c (pass_set_nothrow_function_flags): Likewise.
5928 (pass_convert_to_eh_region_ranges): Likewise.
5929 * final.c (pass_compute_alignments): Likewise.
5930 * function.c (pass_instantiate_virtual_regs): Likewise.
5931 (pass_init_function): Likewise.
5932 (pass_leaf_regs): Likewise.
5933 (pass_match_asm_constraints): Likewise.
5934 * gimple-low.c (pass_lower_cf): Likewise.
5935 (pass_mark_used_blocks): Likewise.
5936 * init-regs.c (pass_initialize_regs): Likewise.
5937 * integrate.c (pass_initial_value_sets): Likewise.
5938 * ira.c (pass_ira): Likewise.
5939 * jump.c (pass_cleanup_barriers): Likewise.
5940 * omp-low.c (pass_expand_omp): Likewise.
5941 (pass_lower_omp): Likewise.
5942 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
5943 * recog.c (pass_split_all_insns): Likewise.
5944 (pass_split_after_reload): Likewise.
5945 (pass_split_before_regstack): Likewise.
5946 (pass_split_before_sched2): Likewise.
5947 (pass_split_for_shorten_branches): Likewise.
5948 * reginfo.c (pass_reginfo_init): Likewise.
5949 (pass_subregs_of_mode_init): Likewise.
5950 (pass_subregs_of_mode_finish): Likewise.
5951 * passes.c (pass_postreload): Likewise.
5952 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
5953 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
5954 (pass_warn_function_return): Likewise.
5955 (pass_warn_function_noreturn): Likewise.
5956 * tree-complex.c (pass_lower_complex): Likewise.
5957 (pass_lower_complex_O0): Likewise.
5958 * tree-if-conv.c (pass_if_conversion): Likewise.
5959 * tree-into-ssa.c (pass_build_ssa): Likewise.
5960 * tree-mudflap.c (pass_mudflap_1): Likewise.
5961 (pass_mudflap_2): Likewise.
5962 * tree-nomudflap.c (pass_mudflap_1): Likewise.
5963 (pass_mudflap_2): Likewise.
5964 * tree-nrv.c (pass_return_slot): Likewise.
5965 * tree-object-size.c (pass_object_sizes): Likewise.
5966 * tree-optimize.c (pass_all_optimizations): Likewise.
5967 (pass_early_local_passes): Likewise.
5968 (pass_all_early_optimizations): Likewise.
5969 (pass_cleanup_cfg): Likewise.
5970 (pass_cleanup_cfg_post_optimizing): Likewise.
5971 (pass_free_datastructures): Likewise.
5972 (pass_free_cfg_annotations): Likewise.
5973 (pass_fixup_cfg): Likewise.
5974 (pass_init_datastructures): Likewise.
5975 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
5976 (pass_late_warn_uninitialized): Likewise.
5977 (pass_update_address_taken): Likewise.
5978 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
5979 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
5980 (pass_cse_sincos): Likewise.
5981 (pass_convert_to_rsqrt): Likewise.
5982 * tree-ssa-structalias.c (pass_build_alias): Likewise.
5983 * tree-stdarg.c (pass_stdarg): Likewise.
5984 * tree-tailcall.c (pass_tail_recursion): Likewise.
5985 (pass_tail_calls): Likewise.
5986 * tree-vect-generic.c (pass_lower_vector): Likewise.
5987 (pass_lower_vector_ssa): Likewise.
5988 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
5989
5990 2009-04-16 Joseph Myers <joseph@codesourcery.com>
5991
5992 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
5993 XLR entry.
5994 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
5995 Handle -march=xlr.
5996 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
5997 logical and signext.
5998
5999 2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
6000
6001 PR target/39767
6002 * config/sh/predicates.md (arith_operand): Check if the operand
6003 of TRUNCATE is a REG.
6004
6005 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6006
6007 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
6008 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
6009
6010 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6011
6012 * tree-iterator.c (tsi_split_statement_list_after,
6013 tsi_split_statement_list_before): Remove.
6014 * tree-iterator.h: Remove the prototypes for
6015 tsi_split_statement_list_after and tsi_split_statement_list_before.
6016
6017 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6018
6019 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
6020 * tree-ssa-propagate.h: Remove the prototype for
6021 stmt_makes_single_load.
6022
6023 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6024
6025 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
6026 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
6027
6028 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6029
6030 * tree-iterator.c (EXPR_LAST_BODY): Remove.
6031
6032 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6033
6034 * except.c (eh_region_outer_p): Remove.
6035 * except.h: Remove the prototype for eh_region_outer_p.
6036
6037 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6038
6039 * function.c (current_function_assembler_name): Remove.
6040 * function.h: Remove the prototype for
6041 current_function_assembler_name.
6042
6043 2009-04-16 Ian Lance Taylor <iant@google.com>
6044
6045 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
6046 (add_reg_note): Call alloc_reg_note.
6047 * rtl.h (alloc_reg_note): Declare.
6048 * combine.c (try_combine): Use alloc_reg_note.
6049 (recog_for_combine, move_deaths): Likewise.
6050 (distribute_notes): Use alloc_reg_note and add_reg_note.
6051 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
6052 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
6053 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
6054
6055 2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
6056
6057 PR rtl-optimization/39762
6058 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
6059 ira_may_move_out_cost): Add comments about way of their usage.
6060 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
6061
6062 * ira-conflicts.c (process_regs_for_copy): Use function
6063 ira_get_register_move_cost instead of global
6064 ira_register_move_cost.
6065
6066 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
6067 color_pass, move_spill_restore, update_curr_costs): Ditto.
6068
6069 * ira-lives.c (process_single_reg_class_operands): Ditto.
6070
6071 * ira-emit.c (emit_move_list): Ditto.
6072
6073 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
6074 (record_reg_classes): Ditto. Use functions
6075 ira_get_register_move_cost and ira_get_may_move_cost instead of
6076 global vars ira_register_move_cost, ira_may_move_out_cost and
6077 ira_may_move_in_cost.
6078 (record_address_regs): Don't call ira_init_register_move_cost.
6079 Use function ira_get_may_move_cost instead of global
6080 ira_may_move_in_cost.
6081 (process_bb_node_for_hard_reg_moves): Use function
6082 ira_get_register_move_cost instead of global ira_register_move_cost.
6083 (ira_costs): Don't call ira_init_register_move_cost.
6084
6085 2009-04-16 Richard Guenther <rguenther@suse.de>
6086
6087 * tree-cfg.c (verify_gimple_assign_binary):
6088 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
6089 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
6090 (create_general_new_stmt): Note that this function is broken.
6091
6092 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
6093
6094 * common.opt (fhelp): Add Var(help_flag).
6095 * gcc-plugin.h (plugin_info): Add help.
6096 * plugin.c (plugin_name_args): Add help.
6097 (register_plugin_info): Set plugin->help.
6098 (print_help_one_plugin): New.
6099 (print_plugins_help): New.
6100 * plugin.h (print_plugins_help): New.
6101 * toplev.c (toplev_main): Call print_plugins_help if needed.
6102
6103 2009-04-16 Richard Guenther <rguenther@suse.de>
6104
6105 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
6106 (gimple_ior_addresses_taken_1): New function.
6107 (gimple_ior_addresses_taken): Likewise.
6108 * gimple.h (struct gimple_statement_with_ops_base): Remove
6109 addresses_taken member.
6110 (gimple_ior_addresses_taken): Declare.
6111 (gimple_addresses_taken, gimple_addresses_taken_ptr,
6112 gimple_set_addresses_taken): Remove.
6113 * ipa-reference.c (mark_address): New function.
6114 (scan_stmt_for_static_refs): Use it for marking addresses taken.
6115 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
6116 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
6117 (gimple_add_to_addresses_taken): Remove.
6118 (get_tmr_operands): Call mark_address_taken.
6119 (get_asm_expr_operands): Likewise.
6120 (get_expr_operands): Likewise.
6121 (build_ssa_operands): Do not clear the addresses_taken bitmap.
6122 (free_stmt_operands): Do not free it.
6123 * tree-ssa.c (delete_tree_ssa): Likewise.
6124 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
6125
6126 2009-04-16 Richard Guenther <rguenther@suse.de>
6127
6128 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
6129 (walk_stmt_load_store_ops): Likewise.
6130 * gimple.c (get_base_loadstore): New function.
6131 (walk_stmt_load_store_addr_ops): Likewise.
6132 (walk_stmt_load_store_ops): Likewise.
6133 * ipa-pure-const.c (check_op): Simplify.
6134 (check_load, check_store): New functions.
6135 (check_stmt): Use walk_stmt_load_store_ops.
6136 * ipa-reference.c (mark_load): Adjust signature.
6137 (mark_store): Likewise.
6138 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
6139
6140 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
6141
6142 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
6143 (plugin_info): New.
6144 * opts.c (common_handle_option): Don't call print_version.
6145 * plugin.c (plugin_name_args): Add version.
6146 (register_plugin_info): New.
6147 (register_callback): Handle PLUGIN_INFO.
6148 (try_init_one_plugin): New.
6149 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
6150 if failed to init.
6151 (finalize_one_plugin): New.
6152 (finalize_plugins): New.
6153 (print_one_plugin): New.
6154 (print_plugins_versions): New.
6155 * plugin.h (print_plugins_versions): New.
6156 (finalize_plugins): New.
6157 * toplev.c (compile_file): Don't call initialize_plugins.
6158 (print_version): Call print_plugins_versions.
6159 (toplev_main): Call initialize_plugins. Print version if needed.
6160 Call finalize_plugins.
6161
6162 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
6163
6164 * common.opt (fversion): New.
6165 * gcc.c (print_version): New.
6166 (process_command): Don't print the version. Just set print_version.
6167 (main): Print version. Call subprocesses if print_version and
6168 verbose_flag are set.
6169 * opts.c (common_handle_option): Handle OPT_fversion.
6170
6171 2009-04-16 Richard Guenther <rguenther@suse.de>
6172 Ira Rosen <irar@il.ibm.com>
6173
6174 PR tree-optimization/39698
6175 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
6176 type of the reduction variable. Only generate the def if
6177 it is needed.
6178
6179 * omp-low.c (expand_omp_for_generic): When converting to a pointer
6180 make sure to first convert to an integer of the same precision.
6181 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
6182 the type of the evolution correctly in computing the new
6183 induction variable base.
6184
6185 2009-04-16 Richard Guenther <rguenther@suse.de>
6186
6187 PR middle-end/39625
6188 * tree-cfg.c (make_blocks): Split statements with to-be
6189 abnormal SSA names on the lhs.
6190
6191 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
6192
6193 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
6194 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
6195 * c-typeck.c (really_start_incremental_init): Likewise.
6196 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
6197 (TARGET_INITIALIZER): Remove it.
6198 * target.h (struct target): Remove vector_opaque_p.
6199 * tree.c (build_opaque_vector_type): New.
6200 * tree.h (TYPE_VECTOR_OPAQUE): New.
6201 (build_opaque_vector_type): Declare.
6202 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
6203 * config/rs6000/rs6000.c (build_opaque_vector_type,
6204 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
6205 (rs6000_init_builtins): Use build_opaque_vector_type for
6206 opaque_V4SI_type_node.
6207
6208 2009-04-15 Catherine Moore <clm@codesourcery.com>
6209
6210 * debug.h (set_name): Declare.
6211 * dwarf2out.c (dwarf2out_set_name): Declare.
6212 (dwarf2_debug_hooks): Add set_name.
6213 (find_AT_string): New.
6214 (add_AT_string): Call find_AT_string.
6215 (dwarf2out_set_name): New.
6216 * cp/decl.c (grokdeclarator): Call set_name.
6217 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
6218 * debug.c (do_nothing_debug_hooks): Likewise.
6219 * dbxout.c (dbx_debug_hooks): Likewise.
6220 * sdbout.c (sdb_debug_hooks): Likewise.
6221
6222 2009-04-15 Michael Eager <eager@eagercon.com>
6223
6224 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
6225 reg for single-precision FPU.
6226 * config/rs6000/rs6000.md (movsi_internal1): Only for
6227 !TARGET_SINGLE_FPU.
6228 (movsi_internal1_single): New. Add pattern to move SI values to/from
6229 single-precision FP regs.
6230
6231 2009-04-15 Richard Guenther <rguenther@suse.de>
6232
6233 * omp-low.c (lower_rec_input_clauses): Build correct address
6234 expressions.
6235 (expand_omp_for_generic): Fix multiplication type.
6236 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
6237 (generate_memset_zero): Fix types.
6238 * tree-profile.c (prepare_instrumented_value): Correctly
6239 widen a pointer.
6240
6241 2009-04-15 Ian Lance Taylor <iant@google.com>
6242
6243 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
6244 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
6245 for -Wall and for -Wc++-compat.
6246 (c_common_post_options): For C++, set warn_enum_compare if not
6247 already set.
6248 * c-tree.h (struct c_expr): Add field original_type.
6249 (build_external_ref): Update declaration.
6250 * c-parser.c (c_parser_braced_init): Set original_type.
6251 (c_parser_initelt): Likewise.
6252 (c_parser_expr_no_commas): Likewise.
6253 (c_parser_conditional_expression): Likewise.
6254 (c_parser_cast_expression): Likewise.
6255 (c_parser_unary_expression): Likewise. Pull setting of
6256 original_code to top of function.
6257 (c_parser_sizeof_expression): Set original_type.
6258 (c_parser_alignof_expression): Likewise.
6259 (c_parser_postfix_expression): Likewise. Pull setting of
6260 original_code to top of function.
6261 (c_parser_postfix_expression_after_paren_type): Set original_type.
6262 (c_parser_postfix_expression_after_primary): Likewise.
6263 (c_parser_expression): Likewise.
6264 * c-typeck.c (build_external_ref): Add type parameter. Change all
6265 callers.
6266 (c_expr_sizeof_expr): Set original_type field.
6267 (parser_build_unary_op): Likewise.
6268 (parser_build_binary_op): Likewise. Optionally warn about
6269 comparisons of enums of different types.
6270 (digest_init): Set original_type field.
6271 (really_start_incremental_init): Likewise.
6272 (push_init_level, pop_init_level): Likewise.
6273 * doc/invoke.texi (Warning Options): -Wenum-compare now
6274 supported in C.
6275
6276 2009-04-15 Richard Guenther <rguenther@suse.de>
6277
6278 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
6279 out a necessary conversion.
6280 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
6281 names we didn't value number.
6282 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
6283
6284 2009-04-15 Richard Guenther <rguenther@suse.de>
6285
6286 PR tree-optimization/39764
6287 * tree-ssa-ccp.c (get_value): Canonicalize value with
6288 canonicalize_float_value.
6289
6290 2009-04-15 Jan Hubicka <jh@suse.cz>
6291
6292 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
6293 Wrong version of patch.
6294
6295 2009-04-15 Jan Hubicka <jh@suse.cz>
6296
6297 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
6298
6299 2009-04-15 Nathan Sidwell <nathan@codesourcery.com>
6300
6301 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
6302 our distinct integral and vector types.
6303
6304 2009-04-15 Rafael Avila de Espindola <espindola@google.com>
6305
6306 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
6307 * init.c (build_vtbl_address): Remove call to assemble_external.
6308
6309 2009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
6310
6311 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
6312 output for other floating point modes.
6313
6314 2009-04-14 Diego Novillo <dnovillo@google.com>
6315
6316 * diagnostic.c (diagnostic_report_diagnostic): Do not
6317 warn about loaded plugins for DK_ERROR and DK_WARNING.
6318 * c-decl.c (declspecs_add_type): Move call to
6319 invoke_plugin_callbacks ...
6320 * c-parser.c (c_parser_declspecs): ... here.
6321 * plugin.c (dump_active_plugins): Tidy output.
6322
6323 2009-04-14 Diego Novillo <dnovillo@google.com>
6324 Le-Chun Wu <lcwu@google.com>
6325
6326 * configure.ac: Add --enable-plugin support.
6327 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
6328 * Makefile.in (PLUGIN_H): Define.
6329 Export ENABLE_PLUGIN and GMPINC to site.exp.
6330 Add PLUGINLIBS to link command.
6331 Add/modify dependencies for plugin.o and files including plugin.h.
6332 (plugin.o): New.
6333 * config.in: Regenerate.
6334
6335 * opts.c (common_handle_option): Handle OPT_fplugin_ and
6336 OPT_fplugin_arg_.
6337
6338 2009-04-14 Le-Chun Wu <lcwu@google.com>
6339
6340 * tree-pass.h (register_one_dump_file): Add a prototype for
6341 register_one_dump_file.
6342 * toplev.c (compile_file): Call initialize_plugins.
6343 (do_compile): Call invoke_plugin_callbacks.
6344 (toplev_main): Call invoke_plugin_callbacks.
6345 * common.opt: Add -fplugin= and -fplugin-arg-.
6346 * gcc-plugin.h: New public header file for plugins to include.
6347 * plugin.c: New source file.
6348 * plugin.h: New internal header file.
6349 * passes.c (register_one_dump_file): Make it external.
6350
6351 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
6352
6353 2009-04-14 Diego Novillo <dnovillo@google.com>
6354
6355 * doc/plugins.texi: New.
6356 * doc/gccint.texi: Add reference to Plugins chapter.
6357 * doc/invoke.texi: Document -fplugin and -fplugin-arg
6358 * diagnostic.c (diagnostic_report_diagnostic): Warn about
6359 loaded plugins, if any.
6360 * timevar.def (TV_PLUGIN_INIT): Define.
6361 (TV_PLUGIN_RUN): Define.
6362 * plugin.c: Include timevar.h
6363 (plugins_active_p): New.
6364 (dump_active_plugins): New.
6365 (debug_active_plugins): New.
6366
6367 2009-04-14 Joseph Myers <joseph@codesourcery.com>
6368
6369 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
6370 library paths.
6371 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
6372
6373 2009-04-14 Kazu Hirata <kazu@codesourcery.com>
6374
6375 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
6376 the same as a minus without a shift.
6377
6378 2009-04-14 Nick Clifton <nickc@redhat.com>
6379
6380 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
6381 comparisons with small integers will always produce a short
6382 branch.
6383
6384 2009-04-14 Rafael Avila de Espindola <espindola@google.com>
6385
6386 Merge:
6387 2008-12-19 Diego Novillo <dnovillo@google.com>
6388
6389 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
6390
6391 2009-04-14 Richard Guenther <rguenther@suse.de>
6392
6393 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
6394 verification.
6395 (verify_gimple_assign_binary): Likewise. Handle shifts and
6396 rotates correctly.
6397 (verify_gimple_phi): Print the mismatched argument position.
6398 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6399 Fix types.
6400 (vect_update_init_of_dr): Likewise.
6401 * matrix-reorg.c (transform_access_sites): Do what the
6402 comment suggests.
6403 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
6404
6405 2009-04-13 Michael Eager <eager@eagercon.com>
6406
6407 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
6408 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
6409 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
6410 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
6411 remove duplicate config
6412
6413 2009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6414
6415 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
6416 file_name:line_number type locator of the call site.
6417
6418 2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
6419
6420 * genautomata.c: Put blank after comma.
6421 (automaton_decls): New.
6422 (struct unit_usage): Add comments to member next.
6423 (store_alt_unit_usage): Keep the list ordered.
6424 (unit_present_on_list_p, equal_alternatives_p): New.
6425 (check_regexp_units_distribution): Check units distribution
6426 correctness correctly.
6427 (main): Don't write automata if error is found. Return correct
6428 exit code.
6429
6430 * config/m68k/cf.md (cfv4_ds): Remove.
6431 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
6432 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
6433
6434 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
6435 power4-load-ext, power4-store, power4-store-update,
6436 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
6437 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
6438 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
6439 power4-sqrt, power4-isync): Modify reservation to make correct
6440 unit distribution to automata.
6441
6442 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
6443 power5-store-update, power5-two, power5-three, power5-lmul,
6444 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
6445
6446 2009-04-13 Adam Nemet <anemet@caviumnetworks.com>
6447
6448 * except.c (pass_set_nothrow_function_flags): Set name and add
6449 TODO_dump_func.
6450 (set_nothrow_function_flags): Mention in the dump file when
6451 changing a function to nothrow.
6452
6453 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
6454
6455 PR/39066
6456 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
6457 instead of unsigned long.
6458
6459 2009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6460
6461 * config/arm/arm.c (return_used_this_function): Remove.
6462 (arm_output_function_prologue): Remove use of
6463 return_used_this_function.
6464 (output_return_instruction): Replace use of
6465 return_used_this_function
6466 by cfun->machine->return_used_this_function.
6467 (arm_output_epilogue): Likewise.
6468 (arm_output_function_epilogue): Likewise.
6469 (thumb_unexpanded_epilogue): Likewise.
6470 * config/arm/arm.h (struct machine_function):
6471 New member return_used_this_function.
6472
6473 2009-04-12 Mark Mitchell <mark@codesourcery.com>
6474
6475 * doc/install.texi: Correct description of default directory for
6476 --with-gxx-include-dir.
6477
6478 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
6479
6480 * fold-const.c (build_range_check): Properly deal with enumeral and
6481 boolean base types.
6482
6483 2009-04-12 Steven Bosscher <steven@gcc.gnu.org>
6484
6485 * doc/invoke.texi (max_gcse_passes): Remove documentation.
6486 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
6487 * params.h (MAX_GCSE_PASSES): Remove.
6488 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
6489 in sequence. Remove ability to run multiple passes.
6490 (bypass_jumps): Report run as third CPROP pass.
6491
6492 2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
6493
6494 PR middle-end/39651
6495 * except.c (can_throw_external): Look at each insn in a SEQUENCE
6496 when deciding whether the whole SEQUENCE can throw.
6497
6498 2009-04-12 Uros Bizjak <ubizjak@gmail.com>
6499
6500 PR target/39740
6501 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
6502 offseted label references.
6503
6504 2009-04-11 Jan Hubicka <jh@suse.cz>
6505
6506 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
6507
6508 2009-04-11 Richard Guenther <rguenther@suse.de>
6509
6510 PR middle-end/39732
6511 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
6512 return variables as TREE_ADDRESSABLE.
6513
6514 2009-04-11 Richard Guenther <rguenther@suse.de>
6515
6516 PR tree-optimization/39713
6517 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
6518 reference trees have SSA_NAME operands.
6519
6520 2009-04-11 Richard Guenther <rguenther@suse.de>
6521
6522 PR c/39712
6523 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
6524 address expressions.
6525
6526 2009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
6527
6528 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
6529 match changes in Cygwin 1.7
6530 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
6531 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
6532
6533 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
6534
6535 PR tree-optimization/39701
6536 * doc/invoke.texi (Optimization Options): Document change in
6537 meaning and initialization of -fdelete-null-pointer-checks.
6538
6539 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
6540
6541 PR middle-end/39701
6542 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
6543
6544 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
6545 here.
6546
6547 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
6548
6549 2009-04-10 Chao-ying Fu <fu@mips.com>
6550
6551 * doc/tm.texi (Instruction Output): Document
6552 TARGET_ASM_FINAL_POSTSCAN_INSN.
6553 * target.h (final_postscan_insn): New field in asm_out.
6554 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
6555 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
6556 * final.c (final_scan_insn): Call
6557 targetm.asm_out.final_postscan_insn after outputting
6558 an asm macro and a normal instruction.
6559
6560 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
6561 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
6562 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
6563 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
6564 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
6565
6566 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
6567
6568 PR middle-end/39701
6569 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
6570 variables as non-NULL even with -fdelete-null-pointer-checks.
6571
6572 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
6573
6574 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
6575
6576 2009-04-09 H.J. Lu <hongjiu.lu@intel.com>
6577
6578 PR target/39678
6579 * config/i386/i386.c (classify_argument): Handle SCmode with
6580 (bit_offset % 64) != 0.
6581
6582 2009-04-09 Sandra Loosemore <sandra@codesourcery.com>
6583
6584 * doc/invoke.texi (Optimize Options): Add cross-reference to
6585 -Q --help=optimizers examples.
6586
6587 2009-04-10 Ben Elliston <bje@au.ibm.com>
6588
6589 PR target/36800
6590 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
6591 regalign for the reg == fpr and TDmode case.
6592
6593 2009-04-09 David Ayers <ayers@fsfe.org>
6594
6595 PR objc/29200
6596 * objc/objc-act.c (warn_with_method): Remove helper function.
6597 (check_duplicates): Call warning and inform directly.
6598 (really_start_method): Likewise.
6599
6600 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
6601
6602 * expmed.c (expand_divmod): Always use a comparison for a division
6603 by a large unsigned integer.
6604
6605 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
6606 for things others than variables or functions as nonzero.
6607
6608 2009-04-09 Nick Clifton <nickc@redhat.com>
6609
6610 * unwind-compat.c: Change copyright header to refer to version
6611 3 of the GNU General Public License with version 3.1 of the
6612 GCC Runtime Library Exception and to point readers at the
6613 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
6614 * config/alpha/crtfastmath.c: Likewise.
6615 * config/alpha/linux-unwind.h: Likewise.
6616 * config/alpha/qrnnd.asm: Likewise.
6617 * config/alpha/vms-crt0-64.c: Likewise.
6618 * config/alpha/vms-crt0.c: Likewise.
6619 * config/alpha/vms-dwarf2.asm: Likewise.
6620 * config/alpha/vms-dwarf2eh.asm: Likewise.
6621 * config/alpha/vms-psxcrt0-64.c: Likewise.
6622 * config/alpha/vms-psxcrt0.c: Likewise.
6623 * config/alpha/vms_tramp.asm: Likewise.
6624 * config/arc/initfini.c: Likewise.
6625 * config/arc/lib1funcs.asm: Likewise.
6626 * config/arm/bpabi-v6m.S: Likewise.
6627 * config/arm/bpabi.S: Likewise.
6628 * config/arm/bpabi.c: Likewise.
6629 * config/arm/crti.asm: Likewise.
6630 * config/arm/crtn.asm: Likewise.
6631 * config/arm/ieee754-df.S: Likewise.
6632 * config/arm/ieee754-sf.S: Likewise.
6633 * config/arm/lib1funcs.asm: Likewise.
6634 * config/arm/libunwind.S: Likewise.
6635 * config/arm/linux-atomic.c: Likewise.
6636 * config/arm/mmintrin.h: Likewise.
6637 * config/arm/pr-support.c: Likewise.
6638 * config/arm/unaligned-funcs.c: Likewise.
6639 * config/arm/unwind-arm.c: Likewise.
6640 * config/arm/unwind-arm.h: Likewise.
6641 * config/avr/libgcc.S: Likewise.
6642 * config/bfin/crti.s: Likewise.
6643 * config/bfin/crtlibid.s: Likewise.
6644 * config/bfin/crtn.s: Likewise.
6645 * config/bfin/lib1funcs.asm: Likewise.
6646 * config/bfin/linux-unwind.h: Likewise.
6647 * config/cris/arit.c: Likewise.
6648 * config/cris/cris_abi_symbol.c: Likewise.
6649 * config/darwin-64.c: Likewise.
6650 * config/darwin-crt2.c: Likewise.
6651 * config/darwin-crt3.c: Likewise.
6652 * config/darwin.h: Likewise.
6653 * config/dbxelf.h: Likewise.
6654 * config/dfp-bit.c: Likewise.
6655 * config/dfp-bit.h: Likewise.
6656 * config/elfos.h: Likewise.
6657 * config/fixed-bit.c: Likewise.
6658 * config/fixed-bit.h: Likewise.
6659 * config/fp-bit.c: Likewise.
6660 * config/fp-bit.h: Likewise.
6661 * config/fr30/crti.asm: Likewise.
6662 * config/fr30/crtn.asm: Likewise.
6663 * config/fr30/lib1funcs.asm: Likewise.
6664 * config/freebsd-spec.h: Likewise.
6665 * config/frv/cmovd.c: Likewise.
6666 * config/frv/cmovh.c: Likewise.
6667 * config/frv/cmovw.c: Likewise.
6668 * config/frv/frvbegin.c: Likewise.
6669 * config/frv/frvend.c: Likewise.
6670 * config/frv/lib1funcs.asm: Likewise.
6671 * config/glibc-stdint.h: Likewise.
6672 * config/h8300/clzhi2.c: Likewise.
6673 * config/h8300/crti.asm: Likewise.
6674 * config/h8300/crtn.asm: Likewise.
6675 * config/h8300/ctzhi2.c: Likewise.
6676 * config/h8300/fixunssfsi.c: Likewise.
6677 * config/h8300/lib1funcs.asm: Likewise.
6678 * config/h8300/parityhi2.c: Likewise.
6679 * config/h8300/popcounthi2.c: Likewise.
6680 * config/i386/ammintrin.h: Likewise.
6681 * config/i386/att.h: Likewise.
6682 * config/i386/avxintrin.h: Likewise.
6683 * config/i386/biarch64.h: Likewise.
6684 * config/i386/bmmintrin.h: Likewise.
6685 * config/i386/cpuid.h: Likewise.
6686 * config/i386/cross-stdarg.h: Likewise.
6687 * config/i386/crtfastmath.c: Likewise.
6688 * config/i386/crtprec.c: Likewise.
6689 * config/i386/cygming-crtbegin.c: Likewise.
6690 * config/i386/cygming-crtend.c: Likewise.
6691 * config/i386/cygwin.asm: Likewise.
6692 * config/i386/emmintrin.h: Likewise.
6693 * config/i386/gmm_malloc.h: Likewise.
6694 * config/i386/gthr-win32.c: Likewise.
6695 * config/i386/i386.h: Likewise.
6696 * config/i386/immintrin.h: Likewise.
6697 * config/i386/linux-unwind.h: Likewise.
6698 * config/i386/linux64.h: Likewise.
6699 * config/i386/mm3dnow.h: Likewise.
6700 * config/i386/mmintrin-common.h: Likewise.
6701 * config/i386/mmintrin.h: Likewise.
6702 * config/i386/nmmintrin.h: Likewise.
6703 * config/i386/pmm_malloc.h: Likewise.
6704 * config/i386/pmmintrin.h: Likewise.
6705 * config/i386/smmintrin.h: Likewise.
6706 * config/i386/sol2-c1.asm: Likewise.
6707 * config/i386/sol2-ci.asm: Likewise.
6708 * config/i386/sol2-cn.asm: Likewise.
6709 * config/i386/sol2-gc1.asm: Likewise.
6710 * config/i386/tmmintrin.h: Likewise.
6711 * config/i386/unix.h: Likewise.
6712 * config/i386/w32-unwind.h: Likewise.
6713 * config/i386/wmmintrin.h: Likewise.
6714 * config/i386/x86-64.h: Likewise.
6715 * config/i386/x86intrin.h: Likewise.
6716 * config/i386/xmmintrin.h: Likewise.
6717 * config/ia64/crtbegin.asm: Likewise.
6718 * config/ia64/crtend.asm: Likewise.
6719 * config/ia64/crtfastmath.c: Likewise.
6720 * config/ia64/crti.asm: Likewise.
6721 * config/ia64/crtn.asm: Likewise.
6722 * config/ia64/fde-glibc.c: Likewise.
6723 * config/ia64/lib1funcs.asm: Likewise.
6724 * config/ia64/linux-unwind.h: Likewise.
6725 * config/ia64/quadlib.c: Likewise.
6726 * config/ia64/unwind-ia64.c: Likewise.
6727 * config/linux.h: Likewise.
6728 * config/m32c/m32c-lib1.S: Likewise.
6729 * config/m32c/m32c-lib2-trapv.c: Likewise.
6730 * config/m32c/m32c-lib2.c: Likewise.
6731 * config/m32r/initfini.c: Likewise.
6732 * config/m68hc11/larith.asm: Likewise.
6733 * config/m68hc11/m68hc11-crt0.S: Likewise.
6734 * config/m68k/cf.md: Likewise.
6735 * config/m68k/crti.s: Likewise.
6736 * config/m68k/crtn.s: Likewise.
6737 * config/m68k/lb1sf68.asm: Likewise.
6738 * config/m68k/linux-unwind.h: Likewise.
6739 * config/mcore/crti.asm: Likewise.
6740 * config/mcore/crtn.asm: Likewise.
6741 * config/mcore/lib1.asm: Likewise.
6742 * config/mips/linux-unwind.h: Likewise.
6743 * config/mips/loongson.h: Likewise.
6744 * config/mips/mips16.S: Likewise.
6745 * config/mmix/crti.asm: Likewise.
6746 * config/mmix/crtn.asm: Likewise.
6747 * config/pa/fptr.c: Likewise.
6748 * config/pa/hpux-unwind.h: Likewise.
6749 * config/pa/lib2funcs.asm: Likewise.
6750 * config/pa/linux-atomic.c: Likewise.
6751 * config/pa/linux-unwind.h: Likewise.
6752 * config/pa/milli64.S: Likewise.
6753 * config/pa/quadlib.c: Likewise.
6754 * config/pa/stublib.c: Likewise.
6755 * config/picochip/libgccExtras/adddi3.asm: Likewise.
6756 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
6757 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
6758 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
6759 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
6760 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
6761 * config/picochip/libgccExtras/divmod15.asm: Likewise.
6762 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
6763 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
6764 * config/picochip/libgccExtras/longjmp.asm: Likewise.
6765 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
6766 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
6767 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
6768 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
6769 * config/picochip/libgccExtras/setjmp.asm: Likewise.
6770 * config/picochip/libgccExtras/subdi3.asm: Likewise.
6771 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
6772 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
6773 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
6774 * config/rs6000/750cl.h: Likewise.
6775 * config/rs6000/altivec.h: Likewise.
6776 * config/rs6000/biarch64.h: Likewise.
6777 * config/rs6000/crtresfpr.asm: Likewise.
6778 * config/rs6000/crtresgpr.asm: Likewise.
6779 * config/rs6000/crtresxfpr.asm: Likewise.
6780 * config/rs6000/crtresxgpr.asm: Likewise.
6781 * config/rs6000/crtsavfpr.asm: Likewise.
6782 * config/rs6000/crtsavgpr.asm: Likewise.
6783 * config/rs6000/darwin-asm.h: Likewise.
6784 * config/rs6000/darwin-fallback.c: Likewise.
6785 * config/rs6000/darwin-fpsave.asm: Likewise.
6786 * config/rs6000/darwin-ldouble.c: Likewise.
6787 * config/rs6000/darwin-tramp.asm: Likewise.
6788 * config/rs6000/darwin-unwind.h: Likewise.
6789 * config/rs6000/darwin-vecsave.asm: Likewise.
6790 * config/rs6000/darwin-world.asm: Likewise.
6791 * config/rs6000/e500crtres32gpr.asm: Likewise.
6792 * config/rs6000/e500crtres64gpr.asm: Likewise.
6793 * config/rs6000/e500crtres64gprctr.asm: Likewise.
6794 * config/rs6000/e500crtrest32gpr.asm: Likewise.
6795 * config/rs6000/e500crtrest64gpr.asm: Likewise.
6796 * config/rs6000/e500crtresx32gpr.asm: Likewise.
6797 * config/rs6000/e500crtresx64gpr.asm: Likewise.
6798 * config/rs6000/e500crtsav32gpr.asm: Likewise.
6799 * config/rs6000/e500crtsav64gpr.asm: Likewise.
6800 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
6801 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
6802 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
6803 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
6804 * config/rs6000/eabi-ci.asm: Likewise.
6805 * config/rs6000/eabi-cn.asm: Likewise.
6806 * config/rs6000/eabi.asm: Likewise.
6807 * config/rs6000/linux-unwind.h: Likewise.
6808 * config/rs6000/linux64.h: Likewise.
6809 * config/rs6000/paired.h: Likewise.
6810 * config/rs6000/paired.md: Likewise.
6811 * config/rs6000/ppc64-fp.c: Likewise.
6812 * config/rs6000/ppu_intrinsics.h: Likewise.
6813 * config/rs6000/rs6000.h: Likewise.
6814 * config/rs6000/si2vmx.h: Likewise.
6815 * config/rs6000/sol-ci.asm: Likewise.
6816 * config/rs6000/sol-cn.asm: Likewise.
6817 * config/rs6000/spe.h: Likewise.
6818 * config/rs6000/spu2vmx.h: Likewise.
6819 * config/rs6000/sysv4.h: Likewise.
6820 * config/rs6000/tramp.asm: Likewise.
6821 * config/rs6000/vec_types.h: Likewise.
6822 * config/s390/linux-unwind.h: Likewise.
6823 * config/s390/tpf-unwind.h: Likewise.
6824 * config/score/crti.asm: Likewise.
6825 * config/score/crtn.asm: Likewise.
6826 * config/sh/crt1.asm: Likewise.
6827 * config/sh/crti.asm: Likewise.
6828 * config/sh/crtn.asm: Likewise.
6829 * config/sh/divtab-sh4-300.c: Likewise.
6830 * config/sh/divtab-sh4.c: Likewise.
6831 * config/sh/divtab.c: Likewise.
6832 * config/sh/lib1funcs-4-300.asm: Likewise.
6833 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
6834 * config/sh/lib1funcs.asm: Likewise.
6835 * config/sh/lib1funcs.h: Likewise.
6836 * config/sh/linux-atomic.asm: Likewise.
6837 * config/sh/linux-unwind.h: Likewise.
6838 * config/sh/shmedia.h: Likewise.
6839 * config/sh/sshmedia.h: Likewise.
6840 * config/sh/ushmedia.h: Likewise.
6841 * config/sparc/crtfastmath.c: Likewise.
6842 * config/sparc/linux-unwind.h: Likewise.
6843 * config/sparc/sol2-c1.asm: Likewise.
6844 * config/sparc/sol2-ci.asm: Likewise.
6845 * config/sparc/sol2-cn.asm: Likewise.
6846 * config/spu/divmodti4.c: Likewise.
6847 * config/spu/divv2df3.c: Likewise.
6848 * config/spu/float_disf.c: Likewise.
6849 * config/spu/float_unsdidf.c: Likewise.
6850 * config/spu/float_unsdisf.c: Likewise.
6851 * config/spu/float_unssidf.c: Likewise.
6852 * config/spu/mfc_multi_tag_release.c: Likewise.
6853 * config/spu/mfc_multi_tag_reserve.c: Likewise.
6854 * config/spu/mfc_tag_release.c: Likewise.
6855 * config/spu/mfc_tag_reserve.c: Likewise.
6856 * config/spu/mfc_tag_table.c: Likewise.
6857 * config/spu/multi3.c: Likewise.
6858 * config/spu/spu_internals.h: Likewise.
6859 * config/spu/spu_intrinsics.h: Likewise.
6860 * config/spu/spu_mfcio.h: Likewise.
6861 * config/spu/vec_types.h: Likewise.
6862 * config/spu/vmx2spu.h: Likewise.
6863 * config/stormy16/stormy16-lib2.c: Likewise.
6864 * config/svr4.h: Likewise.
6865 * config/sync.c: Likewise.
6866 * config/v850/lib1funcs.asm: Likewise.
6867 * config/vxlib-tls.c: Likewise.
6868 * config/vxlib.c: Likewise.
6869 * config/vxworks-dummy.h: Likewise.
6870 * config/xtensa/crti.asm: Likewise.
6871 * config/xtensa/crtn.asm: Likewise.
6872 * config/xtensa/ieee754-df.S: Likewise.
6873 * config/xtensa/ieee754-sf.S: Likewise.
6874 * config/xtensa/lib1funcs.asm: Likewise.
6875 * config/xtensa/lib2funcs.S: Likewise.
6876 * config/xtensa/linux-unwind.h: Likewise.
6877 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
6878 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
6879 * coretypes.h: Likewise.
6880 * crtstuff.c: Likewise.
6881 * defaults.h: Likewise.
6882 * dwarf2.h: Likewise.
6883 * emutls.c: Likewise.
6884 * gbl-ctors.h: Likewise.
6885 * gcov-io.h: Likewise.
6886 * ginclude/float.h: Likewise.
6887 * ginclude/iso646.h: Likewise.
6888 * ginclude/stdarg.h: Likewise.
6889 * ginclude/stdbool.h: Likewise.
6890 * ginclude/stddef.h: Likewise.
6891 * ginclude/stdfix.h: Likewise.
6892 * ginclude/stdint-gcc.h: Likewise.
6893 * ginclude/tgmath.h: Likewise.
6894 * gthr-aix.h: Likewise.
6895 * gthr-dce.h: Likewise.
6896 * gthr-gnat.c: Likewise.
6897 * gthr-gnat.h: Likewise.
6898 * gthr-lynx.h: Likewise.
6899 * gthr-mipssde.h: Likewise.
6900 * gthr-nks.h: Likewise.
6901 * gthr-posix.c: Likewise.
6902 * gthr-posix.h: Likewise.
6903 * gthr-posix95.h: Likewise.
6904 * gthr-rtems.h: Likewise.
6905 * gthr-single.h: Likewise.
6906 * gthr-solaris.h: Likewise.
6907 * gthr-tpf.h: Likewise.
6908 * gthr-vxworks.h: Likewise.
6909 * gthr-win32.h: Likewise.
6910 * gthr.h: Likewise.
6911 * libgcc2.c: Likewise.
6912 * libgcc2.h: Likewise.
6913 * libgcov.c: Likewise.
6914 * tsystem.h: Likewise.
6915 * typeclass.h: Likewise.
6916 * unwind-c.c: Likewise.
6917 * unwind-compat.h: Likewise.
6918 * unwind-dw2-fde-compat.c: Likewise.
6919 * unwind-dw2-fde-darwin.c: Likewise.
6920 * unwind-dw2-fde-glibc.c: Likewise.
6921 * unwind-dw2-fde.c: Likewise.
6922 * unwind-dw2-fde.h: Likewise.
6923 * unwind-dw2.c: Likewise.
6924 * unwind-dw2.h: Likewise.
6925 * unwind-generic.h: Likewise.
6926 * unwind-pe.h: Likewise.
6927 * unwind-sjlj.c: Likewise.
6928 * unwind.inc: Likewise.
6929 * config/arm/neon-gen.ml: Change generated copyright header to
6930 refer to version 3 of the GNU General Public License with
6931 version 3.1 of the GCC Runtime Library Exception and to point
6932 readers at the COPYING3 and COPYING3.RUNTIME files and the
6933 FSF's license web page.
6934 * config/arm/arm_neon.h: Regenerate.
6935
6936 2009-04-09 Jakub Jelinek <jakub@redhat.com>
6937
6938 * config/cris/cris.md: Change copyright header to refer to version
6939 3 of the GNU General Public License.
6940 * doc/install.texi2html: Change copyright header to refer to version
6941 3 of the GNU General Public License and to point readers at the
6942 COPYING3 file and the FSF's license web page.
6943 * config/vax/linux.h: Likewise.
6944
6945 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
6946
6947 * config/i386/i386.md (cmpcc): New.
6948 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
6949 (sync_compare_and_swap_cc*): Delete.
6950
6951 * config/s390/s390.c (s390_compare_emitted): Remove.
6952 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
6953 s390_compare_emitted used to be handled. Assert that modes match.
6954 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
6955 refer to sync_compare_and_swap_ccsi.
6956 * config/s390/s390.h (s390_compare_emitted): Remove.
6957 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
6958 instead of s390_compare_emitted.
6959 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
6960 instead of s390_compare_emitted.
6961 * config/s390/s390.md (cmpcc): New.
6962 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
6963 CC_REGNUM, do not pretend it's set.
6964 (sync_compare_and_swap_cc*): Delete.
6965 * config/s390/predicates.md (cc_reg_operand): New.
6966
6967 * expr.c (sync_compare_and_swap_cc): Delete.
6968 * optabs.h (sync_compare_and_swap_cc): Delete.
6969 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
6970 is being used with can_compare_p.
6971 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
6972 (find_cc_set): New.
6973 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
6974 look for a MODE_CC set instead. Use emit_store_flag.
6975 (expand_compare_and_swap_loop): Likewise, with some additional
6976 complication to avoid a force_reg when useless. Use
6977 emit_cmp_and_jump_insns.
6978 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
6979 * doc/md.texi (sync_compare_and_swap_cc): Merge with
6980 sync_compare_and_swap documentation.
6981
6982 2009-04-09 Jan Hubicka <jh@suse.cz>
6983
6984 * except.c (find_prev_try): Break out from ....
6985 (duplicate_eh_regions): ... here; properly update prev_try pointers
6986 when duplication part of tree.
6987 (dump_eh_tree): Improve dumping.
6988 (verify_eh_region): New.
6989 (verify_eh_tree): Use it.
6990
6991 2009-04-06 Richard Guenther <rguenther@suse.de>
6992
6993 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
6994 &ARRAY addresses by adjusting their types and prepending
6995 a conversion.
6996 * tree-cfg.c (verify_gimple_assign_single): Verify that
6997 addresses are correct.
6998
6999 2009-04-09 Richard Guenther <rguenther@suse.de>
7000
7001 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
7002 indices into an array reference if possible.
7003 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7004 Fold POINTER_PLUS_EXPR statements with invariant address.
7005
7006 2009-04-09 Alan Modra <amodra@bigpond.net.au>
7007
7008 PR target/39634
7009 * config.gcc (powerpc64-*-linux*): Always build biarch.
7010
7011 2009-04-09 Joseph Myers <joseph@codesourcery.com>
7012
7013 PR c/39613
7014 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
7015 it and pedwarn if this results in an INTEGER_CST.
7016
7017 2009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7018
7019 * doc/install.texi: Update minimum GMP version. Remove obsolete
7020 text in MPFR section.
7021
7022 2009-04-08 Jakub Jelinek <jakub@redhat.com>
7023
7024 * dwarf2out.c (class_scope_p): New static inline.
7025 (class_or_namespace_scope_p): Use it.
7026 (gen_variable_die): Use DW_TAG_member tag for static data member
7027 declarations instead of DW_TAG_variable.
7028
7029 PR middle-end/39573
7030 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
7031 variables.
7032
7033 2009-04-08 Richard Guenther <rguenther@suse.de>
7034
7035 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
7036 valueize random data.
7037
7038 2009-04-08 David Edelsohn <edelsohn@gnu.org>
7039
7040 * config.gcc (aix tm_file): Add aix-stdint.h.
7041 (aix tm clause use_gcc_stdint): Set to wrap.
7042 * config/rs6000/aix-stdint.h: New file.
7043
7044 2009-04-08 Richard Guenther <rguenther@suse.de>
7045
7046 PR middle-end/36291
7047 * tree-dfa.c (add_referenced_var): Do not recurse into
7048 global initializers.
7049 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
7050 exposed variables.
7051 (fold_const_aggregate_ref): Likewise.
7052
7053 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
7054
7055 * recog.c (ordered_comparison_operator): New.
7056 * gensupport.c (std_preds): Add it.
7057 * doc/md.texi (Machine-Independent Predicates): Document it.
7058
7059 2009-04-08 Jan Hubicka <jh@suse.cz>
7060
7061 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
7062 * function.h (rtl_eh): Remove exception_handler_label_map.
7063 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
7064 remove_exception_handler_label, for_each_eh_label_1): Remove.
7065 (rtl_remove_unreachable_regions): Remove.
7066 (convert_from_eh_region_ranges): Do not remove unreachable regions.
7067 (find_exception_handler_labels): Don't build the hashtable.
7068 (maybe_remove_eh_handler): Remove.
7069 (for_each_eh_label): Rewrite to walk the tree.
7070 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
7071 * except.h (maybe_remove_eh_handler): Remove.
7072 * passes.c (init_optimization_passes): Schedule second EH cleanup
7073 before out-of-ssa.
7074 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
7075 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
7076
7077 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
7078
7079 * genoutput.c (validate_optab_operands): New.
7080 (gen_insn, gen_expand): Call it.
7081
7082 * genflags.c (gen_insn): Detect misused iterators.
7083 (main): Pass line_no to gen_insn, exit with status 1 on error.
7084
7085 * genextract.c (line_no): Make global.
7086 (VEC_safe_set_locstr): Change assertion to error message.
7087 (main): Exit with status 1 on error.
7088
7089 2009-04-08 Joseph Myers <joseph@codesourcery.com>
7090
7091 PR c/39614
7092 PR c/39673
7093 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7094 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7095 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
7096 * c-convert.c (convert): Do not call fold on results of conversion
7097 functions when the result is a C_MAYBE_CONST_EXPR.
7098 * c-parser.c (c_parser_postfix_expression): Do not fold condition
7099 of __builtin_choose_expr.
7100 * c-typeck.c (remove_c_maybe_const_expr): New.
7101 (build_unary_op, build_conditional_expr, build_compound_expr,
7102 build_binary_op, c_objc_common_truthvalue_conversion): Call
7103 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
7104 integer operands.
7105
7106 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
7107
7108 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
7109 CODE to produce a new one. Add a prototype to use fold_convert_const
7110
7111 2009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
7112
7113 PR bootstrap/39660
7114 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
7115 mix declarations and code.
7116
7117 2009-04-08 Ben Elliston <bje@au.ibm.com>
7118
7119 * gcc.c: Replace `CC' with `GCC' throughout.
7120
7121 2009-04-07 H.J. Lu <hongjiu.lu@intel.com>
7122
7123 * doc/invoke.texi: Document Atom support.
7124
7125 2009-04-07 Jason Merrill <jason@redhat.com>
7126
7127 PR c++/25185
7128 * c-common.h, c-common.c: Add flag_pretty_templates.
7129 * c-opts.c (c_common_handle_option): Set it.
7130 * c.opt: Add -fno-pretty-templates.
7131 * doc/invoke.texi (C++ Dialect Options): Likewise.
7132
7133 2009-04-07 Uros Bizjak <ubizjak@gmail.com>
7134
7135 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
7136 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
7137 (ia64_expand_builtin): Likewise.
7138
7139 2009-04-07 Martin Jambor <mjambor@suse.cz>
7140
7141 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
7142 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
7143 ADDR_EXPRS are include too.
7144
7145 2009-04-07 Richard Guenther <rguenther@suse.de>
7146
7147 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
7148 decls are only used if passes as parameters or if they are
7149 local statics and the call is not to a builtin.
7150 (call_may_clobber_ref_p_1): Likewise.
7151
7152 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
7153
7154 * expr.c (do_store_flag): Remove last argument. Simplify code
7155 to avoid duplication of tests already done by can_compare_p.
7156 (expand_expr_real_1): Adjust caller.
7157
7158 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
7159
7160 * optabs.c (can_compare_p): Test the predicate of a
7161 cbranch and cstore pattern.
7162
7163 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
7164
7165 * expr.c (convert_move): Use emit_store_flag instead of
7166 "emulating" it.
7167
7168 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
7169
7170 * config/i386/i386.c (ix86_compare_emitted): Remove.
7171 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
7172 ix86_compare_op0 like ix86_compare_emitted used to be handled.
7173 * config/i386/i386.h (ix86_compare_emitted): Remove.
7174 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
7175 instead of ix86_compare_emitted.
7176 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
7177
7178 2009-04-07 Andrew Stubbs <ams@codesourcery.com>
7179
7180 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
7181 Add t-sysroot-suffix to tmake_file.
7182 * config/print-sysroot-suffix.sh: New file.
7183 * config/t-sysroot-suffix: New file.
7184
7185 2009-04-07 Ben Elliston <bje@au.ibm.com>
7186
7187 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
7188 as the latter produces a warning when the target does not support
7189 infinity.
7190
7191 2009-04-07 Ben Elliston <bje@au.ibm.com>
7192
7193 * dfp.c: Replace type punning assignments with memcpy throughout.
7194 * Makefile.in (dfp.o-warn): Remove.
7195
7196 2009-04-07 Alan Modra <amodra@bigpond.net.au>
7197
7198 PR target/39634
7199 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
7200 Include soft-fp/t-softfp after rs6000/t-linux64.
7201
7202 2009-04-06 Eric Botcazou <ebotcazou@adacore.com>
7203
7204 * stor-layout.c (set_sizetype): Use the full precision of their
7205 machine mode for bitsize types.
7206
7207 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>
7208
7209 * config/i386/i386.md: Revert 2 accidental checkins.
7210
7211 2009-04-06 Joey Ye <joey.ye@intel.com>
7212 Xuepeng Guo <xuepeng.guo@intel.com>
7213 H.J. Lu <hongjiu.lu@intel.com>
7214
7215 Atom pipeline model, tuning and insn selection.
7216 * config.gcc (atom): Add atom config options and target.
7217
7218 * config/i386/atom.md: New.
7219
7220 * config/i386/i386.c (atom_cost): New cost.
7221 (m_ATOM): New macro flag.
7222 (initial_ix86_tune_features): Set m_ATOM.
7223 (x86_accumulate_outgoing_args): Likewise.
7224 (x86_arch_always_fancy_math_387): Likewise.
7225 (processor_target): Add Atom cost.
7226 (cpu_names): Add Atom cpu name.
7227 (override_options): Set Atom ISA.
7228 (ix86_issue_rate): New case PROCESSOR_ATOM.
7229 (ix86_adjust_cost): Likewise.
7230
7231 * config/i386/i386.h (TARGET_ATOM): New target macro.
7232 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
7233 (TARGET_OPT_AGU): New target option.
7234 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
7235 (processor_type): Add PROCESSOR_ATOM.
7236
7237 * config/i386/i386.md (cpu): Add new value "atom".
7238 (use_carry, movu): New attr.
7239 (atom.md): Include atom.md.
7240 (adddi3_carry_rex64): Set attr "use_carry".
7241 (addqi3_carry): Likewise.
7242 (addhi3_carry): Likewise.
7243 (addsi3_carry): Likewise.
7244 (*addsi3_carry_zext): Likewise.
7245 (subdi3_carry_rex64): Likewise.
7246 (subqi3_carry): Likewise.
7247 (subhi3_carry): Likewise.
7248 (subsi3_carry): Likewise.
7249 (x86_movdicc_0_m1_rex64): Likewise.
7250 (*x86_movdicc_0_m1_se): Likewise.
7251 (x86_movsicc_0_m1): Likewise.
7252 (*x86_movsicc_0_m1_se): Likewise.
7253 (*adddi_1_rex64): Emit add insn as much as possible.
7254 (*addsi_1): Likewise.
7255 (return_internal): Set atom_unit.
7256 (return_internal_long): Likewise.
7257 (return_pop_internal): Likewise.
7258 (*rcpsf2_sse): Set atom_sse_attr attr.
7259 (*qrt<mode>2_sse): Likewise.
7260 (*prefetch_sse): Likewise.
7261
7262 * config/i386/i386-c.c (ix86_target_macros_internal): New case
7263 PROCESSOR_ATOM.
7264 (ix86_target_macros_internal): Likewise.
7265
7266 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
7267 (*prefetch_sse_rex): Likewise.
7268 (sse_rcpv4sf2): Likewise.
7269 (sse_vmrcpv4sf2): Likewise.
7270 (sse_sqrtv4sf2): Likewise.
7271 (<sse>_vmsqrt<mode>2): Likewise.
7272 (sse_ldmxcsr): Likewise.
7273 (sse_stmxcsr): Likewise.
7274 (*sse_sfence): Likewise.
7275 (sse2_clflush): Likewise.
7276 (*sse2_mfence): Likewise.
7277 (*sse2_lfence): Likewise.
7278 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
7279 (<sse>_movup<ssemodesuffixf2c>): Likewise.
7280 (avx_movdqu<avxmodesuffix>): Likewise.
7281 (avx_lddqu<avxmodesuffix>): Likewise.
7282 (sse2_movntv2di): Change attr "type" to "ssemov".
7283 (sse2_movntsi): Likewise.
7284 (rsqrtv8sf2): Change attr "type" to "sseadd".
7285 (sse3_addsubv2df3): Set attr "atom_unit".
7286 (sse3_h<plusminus_insn>v4sf3): Likewise.
7287 (*sse2_pmaddwd): Likewise.
7288 (*vec_extractv2di_1_rex64): Likewise.
7289 (*vec_extractv2di_1_avx): Likewise.
7290 (sse2_psadbw): Likewise.
7291 (ssse3_phaddwv8hi3): Likewise.
7292 (ssse3_phaddwv4hi3): Likewise.
7293 (ssse3_phadddv4si3): Likewise.
7294 (ssse3_phadddv2si3): Likewise.
7295 (ssse3_phaddswv8hi3): Likewise.
7296 (ssse3_phaddswv4hi3): Likewise.
7297 (ssse3_phsubwv8hi3): Likewise.
7298 (ssse3_phsubwv4hi3): Likewise.
7299 (ssse3_phsubdv4si3): Likewise.
7300 (ssse3_phsubdv2si3): Likewise.
7301 (ssse3_phsubswv8hi3): Likewise.
7302 (ssse3_phsubswv4hi3): Likewise.
7303 (ssse3_pmaddubsw128): Likewise.
7304 (sse3_pmaddubsw: Likewise.
7305 (ssse3_palignrti): Likewise.
7306 (ssse3_palignrdi): Likewise.
7307
7308 2009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
7309
7310 * doc/install.texi (Specific): Fix two cross-references to MinGW.
7311
7312 2009-04-06 Richard Guenther <rguenther@suse.de>
7313
7314 PR tree-optimization/28868
7315 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
7316 of which PHI results we inserted.
7317 (insert_into_preds_of_block): Record inserted PHIs.
7318 (eliminate): Eliminate redundant PHI nodes.
7319 (init_pre): Init inserted_phi_names.
7320
7321 2009-04-06 Richard Guenther <rguenther@suse.de>
7322
7323 PR tree-optimization/39643
7324 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
7325 IMAGPART_EXPRs of complex constants.
7326 (execute_fold_all_builtins): If we folded a call queue
7327 TODO_update_address_taken.
7328
7329 2009-04-06 Jan Hubicka <jh@suse.cz>
7330
7331 PR middle-end/39659
7332 * except.c (remove_unreachable_regions): Propagate may_contain_throw
7333 flag.
7334
7335 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
7336
7337 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
7338 delay slot.
7339 (ic_invalidate_array): Likewise.
7340
7341 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
7342
7343 * calls.c (emit_library_call_value_1): Fix a problem with parameter
7344 alignment for library calls.
7345
7346 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
7347
7348 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
7349 (mingw32 tm clause use_gcc_stdint): Set to wrap.
7350 * config/i386/mingw-stdint.h: New file.
7351
7352 2009-04-05 Richard Guenther <rguenther@suse.de>
7353
7354 PR tree-optimization/39648
7355 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
7356 our &A vs. &A[0] IL deficiencies.
7357
7358 2009-04-04 Jan Hubicka <jh@suse.cz>
7359
7360 * except.c (sjlj_find_directly_reachable_regions): Be ready for
7361 removed toplevel regions.
7362 (sjlj_mark_call_sites): Likewise.
7363
7364 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
7365
7366 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
7367 (cygwin tm clause use_gcc_stdint): Set to wrap.
7368 * config/i386/cygwin-stdint.h: New file.
7369
7370 2009-04-04 Richard Guenther <rguenther@suse.de>
7371
7372 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
7373 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
7374 single-argument PHIs if we are in loop-closed SSA form.
7375 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
7376 for the pre-condition.
7377 (slpeel_tree_peel_loop_to_edge): Likewise.
7378 (vect_build_loop_niters): Take an optional sequence to append stmts.
7379 (vect_generate_tmps_on_preheader): Likewise.
7380 (vect_do_peeling_for_loop_bound): Take extra guards for the
7381 pre-condition.
7382 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
7383 the cost model check.
7384 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7385 guards if we are going to peel. Do not apply versioning in that case.
7386 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
7387 (vect_do_peeling_for_loop_bound): Likewise.
7388 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
7389 loop bound only record extra pre-conditions, do not apply loop
7390 versioning.
7391
7392 2009-04-04 Richard Guenther <rguenther@suse.de>
7393
7394 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
7395 renaming code.
7396
7397 2009-04-04 Jan Hubicka <jh@suse.cz>
7398
7399 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
7400 last_basic_block for size of bb->index indexed array.
7401 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
7402 compute_out, link_btr_uses, build_btr_def_use_webs,
7403 build_btr_def_use_webs, migrate_btr_defs): Likewise.
7404
7405 2009-04-04 Jan Hubicka <jh@suse.cz>
7406
7407 * except.c (remove_eh_handler_and_replace): Break out from ...
7408 (remove_eh_handler): ... here.
7409 (bring_to_root): New function.
7410 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
7411 handled ones, bring others to root of tree.
7412
7413 2009-04-04 Jan Hubicka <jh@suse.cz>
7414
7415 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
7416 (all_phis_safe_to_merge): New function.
7417 (update_info): New structure.
7418 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
7419 (cleanup_empty_eh): Update SSA if possible.
7420
7421 2009-04-04 Richard Guenther <rguenther@suse.de>
7422
7423 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
7424 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
7425 (append_vuse): Likewise.
7426
7427 2009-04-04 Jakub Jelinek <jakub@redhat.com>
7428
7429 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
7430 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
7431 instead of REG_UNSAVED for DW_CFA_undefined.
7432 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
7433 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
7434 outermost frame.
7435
7436 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
7437
7438 PR target/39501
7439 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
7440 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
7441 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
7442
7443 2009-04-04 Richard Guenther <rguenther@suse.de>
7444
7445 PR tree-optimization/8781
7446 PR tree-optimization/37892
7447 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
7448 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
7449 (valueize_refs): Call it for *& valueizations.
7450 (shared_reference_ops_from_ref): Rename to ...
7451 (valueize_shared_reference_ops_from_ref): ... this and valueize.
7452 (shared_reference_ops_from_call): Rename to ...
7453 (valueize_shared_reference_ops_from_call): ... this and valueize.
7454 (vn_reference_lookup): Update.
7455 (visit_reference_op_call): Likewise.
7456 * tree-ssa-pre.c (phi_translate_1): Fold *&.
7457 (eliminate): Value-replace the call address in call statements.
7458
7459 2009-04-04 Richard Guenther <rguenther@suse.de>
7460
7461 PR tree-optimization/39636
7462 * tree-ssa-forwprop.c
7463 (forward_propagate_addr_into_variable_array_index): Check for
7464 GIMPLE_ASSIGN before accessing the rhs code.
7465
7466 2009-04-03 Jason Merrill <jason@redhat.com>
7467
7468 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
7469
7470 2009-04-03 Steve Ellcey <sje@cup.hp.com>
7471
7472 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
7473 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
7474 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
7475 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
7476 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
7477 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
7478 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
7479 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
7480 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
7481 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
7482 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
7483 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
7484 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
7485 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
7486 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
7487 Use fr_reg_or_fp01_operand instead of fr_register_operand
7488
7489 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
7490 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
7491 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
7492
7493 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
7494
7495 PR rtl-optimization/39607
7496 PR rtl-optimization/39631
7497
7498 Revert:
7499
7500 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7501 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7502 instead of DF_LR_OUT.
7503 * ira-lives.c (process_bb_node_lives): Ditto.
7504 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7505 instead of DF_LR_{OUT,IN}.
7506 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7507 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7508
7509 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
7510
7511 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
7512 (execute_lower_omp): Always run but take the short way out if -fopenmp
7513 is not given.
7514 (gate_lower_omp): Remove, forcing the pass manager to always run the
7515 pass and always set PROP_gimple_lomp.
7516 (pass_lower_omp): Remove gate function.
7517 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
7518 PROP_trees. Instead, require it.
7519 * ipa-cp.c (pass_ipa_cp): Likewise.
7520 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
7521 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
7522 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
7523 and PROP_gimple_leh.
7524
7525 2009-04-03 Richard Guenther <rguenther@suse.de>
7526
7527 PR middle-end/13146
7528 PR tree-optimization/23940
7529 PR tree-optimization/33237
7530 PR middle-end/33974
7531 PR middle-end/34093
7532 PR tree-optimization/36201
7533 PR tree-optimization/36230
7534 PR tree-optimization/38049
7535 PR tree-optimization/38207
7536 PR tree-optimization/38230
7537 PR tree-optimization/38301
7538 PR tree-optimization/38585
7539 PR middle-end/38895
7540 PR tree-optimization/38985
7541 PR tree-optimization/39299
7542 * tree-ssa-structalias.h: Remove.
7543 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
7544 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
7545 (struct vuse_element_d): Remove.
7546 (struct vuse_vec_d): Likewise.
7547 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
7548 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
7549 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
7550 VUSE_ELEMENT_VAR): Likewise.
7551 (struct voptype_d): Likewise.
7552 (NUM_VOP_FREE_BUCKETS): Likewise.
7553 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
7554 (struct stmt_operands_d): Remove.
7555 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
7556 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
7557 VDEF_NUM, VDEF_VECT): Likewise.
7558 (copy_virtual_operands): Remove.
7559 (operand_build_cmp): Likewise.
7560 (create_ssa_artificial_load_stmt): Likewise.
7561 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
7562 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
7563 vuse_index and mayuse_index members. Pack and move done and iter_type
7564 members to the front.
7565 (SSA_OP_VMAYUSE): Remove.
7566 (SSA_OP_VIRTUAL_USES): Adjust.
7567 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
7568 (unlink_stmt_vdef): Declare.
7569 (add_to_addressable_set): Remove.
7570 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
7571 (vrp_visit_stmt): Likewise.
7572 * doc/tree-ssa.texi (Alias analysis): Update.
7573 * doc/invoke.texi (max-aliased-vops): Remove docs.
7574 (avg-aliased-vops): Likewise.
7575 * tree-into-ssa.c (syms_to_rename): Remove.
7576 (need_to_update_vops_p): Likewise.
7577 (need_to_initialize_update_ssa_p): Rename to ...
7578 (update_ssa_initialized_fn): ... this. Track function we are
7579 initialized for.
7580 (symbol_marked_for_renaming): Simplify.
7581 (add_new_name_mapping): Do not set need_to_update_vops_p.
7582 (dump_currdefs): Use SYMS_TO_RENAME.
7583 (rewrite_update_stmt): Always walk all uses/defs.
7584 (dump_update_ssa): Adjust.
7585 (init_update_ssa): Take function argument. Track what we are
7586 initialized for.
7587 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
7588 (create_new_def_for): Initialize for cfun, assert we are initialized
7589 for cfun.
7590 (mark_sym_for_renaming): Simplify.
7591 (mark_set_for_renaming): Do not initialize update-ssa.
7592 (need_ssa_update_p): Simplify. Take function argument.
7593 (name_mappings_registered_p): Assert we ask for the correct function.
7594 (name_registered_for_update_p): Likewise.
7595 (ssa_names_to_replace): Likewise.
7596 (release_ssa_name_after_update_ssa): Likewise.
7597 (update_ssa): Likewise. Use SYMS_TO_RENAME.
7598 (dump_decl_set): Do not print a newline.
7599 (debug_decl_set): Do it here.
7600 (dump_update_ssa): And here.
7601 * tree-ssa-loop-im.c (move_computations): Adjust.
7602 (movement_possibility): Likewise.
7603 (determine_max_movement): Likewise.
7604 (gather_mem_refs_stmt): Likewise.
7605 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
7606 or NAME_MEMORY_TAG.
7607 * tree-complex.c (update_all_vops): Remove.
7608 (expand_complex_move): Adjust.
7609 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
7610 Simplify test for memory referencing statement. Exclude
7611 non-invariant ADDR_EXPRs.
7612 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
7613 * tree-loop-distribution.c (generate_memset_zero): Adjust.
7614 (rdg_flag_uses): Likewise.
7615 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
7616 related code.
7617 (tree_optimize_tail_calls_1): Also split the
7618 edge from the entry block if we have degenerate PHI nodes in
7619 the first basic block.
7620 * tree.c (init_ttree): Remove memory-tag related code.
7621 (tree_code_size): Likewise.
7622 (tree_node_structure): Likewise.
7623 (build7_stat): Re-write to be build6_stat.
7624 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
7625 (SSA_VAR_P): Adjust.
7626 (struct tree_memory_tag): Remove.
7627 (struct tree_memory_partition_tag): Likewise.
7628 (union tree_node): Adjust.
7629 (build7): Re-write to be build6.
7630 * tree-pass.h (pass_reset_cc_flags): Remove.
7631 (TODO_update_address_taken): New flag.
7632 (pass_simple_dse): Remove.
7633 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
7634 * params.h (MAX_ALIASED_VOPS): Remove.
7635 (AVG_ALIASED_VOPS): Likewise.
7636 * omp-low.c (expand_omp_taskreg): Update SSA form.
7637 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
7638 aliases the lhs in a copy stmt.
7639 * tree-ssa-dse.c (struct address_walk_data): Remove.
7640 (memory_ssa_name_same): Likewise.
7641 (memory_address_same): Likewise.
7642 (get_kill_of_stmt_lhs): Likewise.
7643 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
7644 unused stores. Look through PHI nodes into post-dominated regions.
7645 (dse_optimize_stmt): Simplify. Properly remove stores.
7646 (tree_ssa_dse): Compute dominators.
7647 (execute_simple_dse): Remove.
7648 (pass_simple_dse): Likewise.
7649 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
7650 gimple_loaded_syms and gimple_stored_syms computation.
7651 * toplev.c (dump_memory_report): Dump alias and pta stats.
7652 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
7653 (vn_reference_eq): Likewise.
7654 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
7655 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
7656 valueize_vuses): Remove.
7657 (get_def_ref_stmt_vuses): Simplify. Rename to ...
7658 (get_def_ref_stmt_vuse): ... this.
7659 (vn_reference_lookup_2): New function.
7660 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
7661 walking equivalent vuses. Simplify.
7662 (vn_reference_lookup): Likewise.
7663 (vn_reference_insert): Likewise.
7664 (vn_reference_insert_pieces): Likewise.
7665 (visit_reference_op_call): Simplify.
7666 (visit_reference_op_load): Likewise.
7667 (visit_reference_op_store): Likewise.
7668 (init_scc_vn): Remove shared_lookup_vuses initialization.
7669 (free_scc_vn): Remove shared_lookup_vuses freeing.
7670 (sort_vuses, sort_vuses_heap): Remove.
7671 (get_ref_from_reference_ops): Export.
7672 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
7673 vector with single vuse pointer.
7674 (vn_reference_lookup_pieces, vn_reference_lookup,
7675 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
7676 (shared_vuses_from_stmt): Remove.
7677 (get_ref_from_reference_ops): Declare.
7678 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
7679 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
7680 memory-tag related code.
7681 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
7682 (likely_value): Add comment, skip static-chain of call statements.
7683 (surely_varying_stmt_p): Adjust.
7684 (gimplify_and_update_call_from_tree): Likewise.
7685 (execute_fold_all_builtins): Do not rebuild alias info.
7686 (gimplify_and_update_call_from_tree): Properly update VOPs.
7687 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
7688 (copy_ref_info): Remove memory-tag related code.
7689 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
7690 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
7691 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
7692 computation.
7693 * tree-ssa-dom.c (gimple_p): Remove typedef.
7694 (eliminate_redundant_computations): Adjust.
7695 (record_equivalences_from_stmt): Likewise.
7696 (avail_expr_hash): Likewise.
7697 (avail_expr_eq): Likewise.
7698 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
7699 (stmt_makes_single_load): Likewise.
7700 (stmt_makes_single_store): Likewise.
7701 * tree-ssa-alias.c: Rewrite completely.
7702 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
7703 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
7704 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
7705 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
7706 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
7707 Remove public functions.
7708 (pass_reset_cc_flags): Remove.
7709 (pass_build_alias): Move ...
7710 * tree-ssa-structalias.c (pass_build_alias): ... here.
7711 * tree-ssa-alias.c (may_be_aliased): Move ...
7712 * tree-flow-inline.h (may_be_aliased): ... here.
7713 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
7714 count_uses_and_derefs): Move ...
7715 * gimple.c: ... here.
7716 * gimple.h (count_uses_and_derefs): Declare.
7717 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
7718 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
7719 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
7720 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
7721 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
7722 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
7723 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
7724 New functions.
7725 * tree-dfa.c (refs_may_alias_p): Move ...
7726 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
7727 * tree-ssa-alias.h: New file.
7728 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
7729 (statement_sink_location): Likewise.
7730 * opts.c (decode_options): Do not adjust max-aliased-vops or
7731 avg-aliased-vops values.
7732 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
7733 (TV_CALL_CLOBBER): Likewise.
7734 (TV_FLOW_SENSITIVE): Likewise.
7735 (TV_FLOW_INSENSITIVE): Likewise.
7736 (TV_MEMORY_PARTITIONING): Likewise.
7737 (TV_ALIAS_STMT_WALK): New timevar.
7738 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
7739 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
7740 (get_address_description): Remove memory-tag related code.
7741 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
7742 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
7743 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
7744 and immediate uses in statements. Document.
7745 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
7746 (dump_symbols): Remove.
7747 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
7748 * alias.c (get_deref_alias_set): New function split out from ...
7749 (get_alias_set): ... here.
7750 * alias.h (get_deref_alias_set): Declare.
7751 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
7752 type parameter. Remove restrict pointer handling. Create a
7753 ref-all pointer in case type-based alias sets do not conflict.
7754 (vect_analyze_data_refs): Remove SMT related code.
7755 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
7756 (vectorizable_load): Likewise.
7757 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
7758 (DR_SYMBOL_TAG, DR_VOPS): Remove.
7759 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
7760 Ignore vops and SMTs.
7761 (dr_analyze_alias): Likewise..
7762 (free_data_ref): Likewise.
7763 (create_data_ref): Likewise.
7764 (analyze_all_data_dependences): Likewise.
7765 (get_references_in_stmt): Adjust.
7766 * tree-flow-inline.h (gimple_aliases_computed_p,
7767 gimple_addressable_vars, gimple_call_clobbered_vars,
7768 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
7769 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
7770 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
7771 gimple_mem_ref_stats): Remove.
7772 (gimple_vop): New function.
7773 (op_iter_next_use): Remove vuses and mayuses cases.
7774 (op_iter_next_def): Remove vdefs case.
7775 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
7776 (clear_and_done_ssa_iter): Do not set removed fields.
7777 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
7778 Assert we are not iterating over vuses or vdefs if not also
7779 iterating over uses or defs.
7780 (op_iter_init_use): Likewise.
7781 (op_iter_init_def): Likewise.
7782 (op_iter_next_vdef): Remove.
7783 (op_iter_next_mustdef): Likewise.
7784 (op_iter_init_vdef): Likewise.
7785 (compare_ssa_operands_equal): Likewise.
7786 (link_use_stmts_after): Handle vuse operand.
7787 (is_call_used): Use is_call_clobbered.
7788 (is_call_clobbered): Global variables are always call clobbered,
7789 query the call-clobbers bitmap.
7790 (mark_call_clobbered): Ignore global variables.
7791 (clear_call_clobbered): Likewise.
7792 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
7793 virtual operands sanity check.
7794 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
7795 Remove.
7796 (TARGET_MEM_REF): Remove TMR_TAG operand.
7797 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
7798 Remove call-clobber related code.
7799 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
7800 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
7801 partitions or escape reason.
7802 (get_single_def_stmt, get_single_def_stmt_from_phi,
7803 get_single_def_stmt_with_phi): Remove.
7804 (dump_referenced_vars): Tidy.
7805 (get_ref_base_and_extent): Allow bare decls.
7806 (collect_dfa_stats): Adjust.
7807 * graphite.c (rename_variables_in_stmt): Adjust.
7808 (graphite_copy_stmts_from_block): Likewise.
7809 (translate_clast): Likewise.
7810 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
7811 (EXPR_DIES): New.
7812 (translate_vuse_through_block): Use the oracle.
7813 (phi_translate_1): Adjust.
7814 (value_dies_in_block_x): Use the oracle. Cache the outcome
7815 in EXPR_DIES.
7816 (valid_in_sets): Check if the VUSE for
7817 a REFERENCE is available.
7818 (eliminate): Do not remove stmts during elimination,
7819 instead queue and remove them afterwards.
7820 (do_pre): Do not rebuild alias info.
7821 (pass_pre): Run TODO_rebuild_alias before PRE.
7822 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
7823 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
7824 (mark_all_v_defs_stmt): Remove.
7825 (mark_all_v_defs_seq): Adjust.
7826 (sra_replace): Likewise.
7827 (scalarize_use): Likewise.
7828 (scalarize_copy): Likewise.
7829 (scalarize_init): Likewise.
7830 (scalarize_ldst): Likewise.
7831 (todoflags): Remove.
7832 (tree_sra): Do not rebuild alias info.
7833 (tree_sra_early): Adjust.
7834 (pass_sra): Run TODO_update_address_taken before SRA.
7835 * tree-predcom.c (set_alias_info): Remove.
7836 (prepare_initializers_chain): Do not call it.
7837 (mark_virtual_ops_for_renaming): Adjust.
7838 (mark_virtual_ops_for_renaming_list): Remove.
7839 (initialize_root_vars): Adjust.
7840 (initialize_root_vars_lm): Likewise.
7841 (prepare_initializers_chain): Likewise.
7842 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
7843 (may_propagate_copy_into_stmt): Likewise.
7844 (merge_alias_info): Do nothing for now.
7845 (propagate_tree_value_into_stmt): Adjust.
7846 (stmt_may_generate_copy): Likewise.
7847 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
7848 not mark symbols for renaming.
7849 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
7850 with the same statement, make sure to update the new pointed-to one.
7851 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
7852 call statements, do not mark symbols for renaming.
7853 (mark_operand_necessary): Dump something.
7854 (ref_may_be_aliased): New function.
7855 (mark_aliased_reaching_defs_necessary_1): New helper function.
7856 (mark_aliased_reaching_defs_necessary): Likewise.
7857 (mark_all_reaching_defs_necessary_1): Likewise.
7858 (mark_all_reaching_defs_necessary): Likewise.
7859 (propagate_necessity): Do not process virtual PHIs. For
7860 non-aliased loads mark all reaching definitions as necessary.
7861 For aliased loads and stores mark the immediate dominating
7862 aliased clobbers as necessary.
7863 (visited): New global static.
7864 (perform_tree_ssa_dce): Free visited bitmap after propagating
7865 necessity.
7866 (remove_dead_phis): Perform simple dead virtual PHI removal.
7867 (remove_dead_stmt): Properly unlink virtual operands when
7868 removing stores.
7869 (eliminate_unnecessary_stmts): Schedule PHI removal after
7870 stmt removal.
7871 * tree-ssa-ter.c (is_replaceable_p): Adjust.
7872 (process_replaceable): Likewise.
7873 (find_replaceable_in_bb): Likewise.
7874 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
7875 based on the single gimple vop.
7876 (verify_flow_insensitive_alias_info): Remove.
7877 (verify_flow_sensitive_alias_info): Likewise.
7878 (verify_call_clobbering): Likewise.
7879 (verify_memory_partitions): Likewise.
7880 (verify_alias_info): Likewise.
7881 (verify_ssa): Adjust..
7882 (execute_update_addresses_taken): Export. Update SSA
7883 manually. Optimize only when optimizing. Use a local bitmap.
7884 (pass_update_address_taken): Remove TODO_update_ssa, add
7885 TODO_dump_func.
7886 (pass_update_address_taken): Just use TODO_update_address_taken.
7887 (init_tree_ssa): Do not initialize addressable_vars.
7888 (verify_ssa): Verify new VUSE / VDEF properties.
7889 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
7890 Do not call verify_alias_info.
7891 (delete_tree_ssa): Clear the VUSE, VDEF operands.
7892 Do not free the loaded and stored syms bitmaps. Reset the escaped
7893 and callused solutions. Do not free addressable_vars.
7894 Remove memory-tag related code.
7895 (warn_uninitialized_var): Aliases are always available.
7896 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
7897 * lambda-code.c (can_put_in_inner_loop): Adjust.
7898 (can_put_after_inner_loop): Likewise.
7899 (perfect_nestify): Likewise.
7900 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
7901 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
7902 (vectorizable_conversion): Do not mark symbols for renaming.
7903 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
7904 (expand_call_inline): Unlink the calls virtual operands before
7905 replacing it.
7906 (tree_function_versioning): Do not call update_ssa if we are not
7907 updating clones. Simplify.
7908 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
7909 (propagate_with_phi): Likewise..
7910 * tree-outof-ssa.c (create_temp): Remove memory tag and call
7911 clobber code. Assert we are not aliased or global.
7912 * tree-flow.h: Include tree-ssa-alias.h
7913 (enum escape_type): Remove.
7914 (struct mem_sym_stats_d): Likewise.
7915 (struct mem_ref_stats_d): Likewise.
7916 (struct gimple_df): Add vop member. Remove global_var,
7917 call_clobbered_vars, call_used_vars, addressable_vars,
7918 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
7919 escaped and callused members.
7920 (struct ptr_info_def): Remove all members, add points-to solution
7921 member pt.
7922 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
7923 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
7924 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
7925 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
7926 (tree-ssa-alias.o): Likewise.
7927 (toplev.o): Add tree-ssa-alias.h
7928 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
7929 * gimple.c (gimple_set_bb): Fix off-by-one error.
7930 (is_gimple_reg): Do not handle memory tags.
7931 (gimple_copy): Also copy virtual operands.
7932 Delay updating the statement. Do not reset loaded and stored syms.
7933 (gimple_set_stored_syms): Remove.
7934 (gimple_set_loaded_syms): Likewise.
7935 (gimple_call_copy_skip_args): Copy the virtual operands
7936 and mark the new statement modified.
7937 * tree-ssa-structalias.c (may_alias_p): Remove.
7938 (set_uids_in_ptset): Take the alias set to prune with as
7939 parameter. Fold in the alias test of may_alias_p.
7940 (compute_points_to_sets): Compute whether a ptr is dereferenced
7941 in a local sbitmap.
7942 (process_constraint): Deal with &ANYTHING on the lhs, reject all
7943 other ADDRESSOF constraints on the lhs.
7944 (get_constraint_for_component_ref): Assert that we don't get
7945 ADDRESSOF constraints from the base of the reference.
7946 Properly generate UNKNOWN_OFFSET for DEREF if needed.
7947 (struct variable_info): Remove collapsed_to member.
7948 (get_varinfo_fc): Remove.
7949 (new_var_info): Do not set collapsed_to.
7950 (dump_constraint): Do not follow cycles.
7951 (dump_constraint_graph): Likewise.
7952 (build_pred_graph): Likewise.
7953 (build_succ_graph): Likewise.
7954 (rewrite_constraints): Likewise.
7955 (do_simple_structure_copy): Remove.
7956 (do_rhs_deref_structure_copy): Remove.
7957 (do_lhs_deref_structure_copy): Remove.
7958 (collapse_rest_of_var): Remove.
7959 (do_structure_copy): Re-implement.
7960 (pta_stats): New global variable.
7961 (dump_pta_stats): New function.
7962 (struct constraint_expr): Make offset signed.
7963 (UNKNOWN_OFFSET): Define special value.
7964 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
7965 (solution_set_expand): New helper function split out from ...
7966 (do_sd_constraint): ... here.
7967 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
7968 (do_ds_constraint): Likewise.
7969 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
7970 and CALLUSED = *CALLUSED.
7971 (set_union_with_increment): Make inc argument signed.
7972 (type_safe): Remove.
7973 (get_constraint_for_ptr_offset): Handle unknown and negative
7974 constant offsets.
7975 (first_vi_for_offset): Handle offsets before start. Bail
7976 out early for offsets beyond the variable extent.
7977 (first_or_preceding_vi_for_offset): New function.
7978 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
7979 Together with ESCAPED = *ESCAPED this properly computes reachability.
7980 (find_what_var_points_to): New function.
7981 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
7982 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
7983 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
7984 pt_solutions_intersect): New functions.
7985 (compute_call_used_vars): Remove.
7986 (compute_may_aliases): New main entry into PTA computation.
7987 * gimple.h (gimple_p): New typedef.
7988 (struct gimple_statement_base): Remove references_memory_p.
7989 (struct gimple_statement_with_memory_ops_base): Remove
7990 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
7991 members.
7992 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
7993 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
7994 gimple_set_references_memory): Remove.
7995 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
7996 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
7997 New functions.
7998 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
7999 (verify_expr): Allow RESULT_DECL.
8000 (gimple_duplicate_bb): Do not copy virtual operands.
8001 (gimple_duplicate_sese_region): Adjust.
8002 (gimple_duplicate_sese_tail): Likewise.
8003 (mark_virtual_ops_in_region): Remove.
8004 (move_sese_region_to_fn): Do not call it.
8005 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
8006 and pass_simple_dse.
8007 (execute_function_todo): Handle TODO_update_address_taken,
8008 call execute_update_addresses_taken for TODO_rebuild_alias.
8009 (execute_todo): Adjust.
8010 (execute_one_pass): Init dump files early.
8011 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
8012 call-clobbered.
8013 (create_general_new_stmt): Clear vops.
8014 * tree-ssa-reassoc.c (get_rank): Adjust.
8015 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
8016 symbols for renaming.
8017 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
8018 (PARAM_AVG_ALIASED_VOPS): Likewise.
8019 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
8020 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
8021 * tree-ssa-operands.c: Simplify for new virtual operand representation.
8022 (operand_build_cmp, copy_virtual_operands,
8023 create_ssa_artificial_load_stmt, add_to_addressable_set,
8024 gimple_add_to_addresses_taken): Remove public functions.
8025 (unlink_stmt_vdef): New function.
8026
8027 2009-04-03 Alan Modra <amodra@bigpond.net.au>
8028
8029 * config.gcc (powerpc-*-linux*): Merge variants.
8030
8031 2009-04-02 Chao-ying Fu <fu@mips.com>
8032 James Grosbach <james.grosbach@microchip.com>
8033
8034 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
8035 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
8036 cop0_sp_offset.
8037 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
8038 keep_interrupts_masked_p, use_debug_exception_return_p.
8039 (mips_attribute_table): Add interrupt, use_shadow_register_set,
8040 keep_interrupts_masked, use_debug_exception_return.
8041 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
8042 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
8043 New functions.
8044 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
8045 (mips_print_operand): Process COP0 registers to print $0 .. $31
8046 correctly for GAS to process.
8047 (mips_interrupt_extra_call_saved_reg_p): New function.
8048 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
8049 extra registers.
8050 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
8051 (mips_compute_frame_info): Add supports for interrupt context that
8052 includes doubleword accumulators and COP0 registers.
8053 (mips_for_each_saved_acc): New function.
8054 (mips_for_each_saved_gpr_and_fpr): Change the function name from
8055 mips_for_each_saved_reg.
8056 (mips_save_reg): Save accumulators.
8057 (mips_kernel_reg_p): A new for_each_rtx callback.
8058 (mips_expand_prologue): Support interrupt handlers.
8059 (mips_restore_reg): Restore accumulators.
8060 (mips_expand_epilogue): Support interrupt handlers.
8061 (mips_can_use_return_insn): Return false for interrupt handlers.
8062 (mips_epilogue_uses): New function.
8063 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
8064 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
8065 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
8066 cop0_move): New instructions.
8067 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
8068 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
8069 defines.
8070 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
8071 New defines.
8072 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
8073 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
8074 interrupt handlers, we use K0 as the temporary register.
8075 (EPILOGUE_USES): Change to a function call.
8076 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
8077 handlers, we use K0 as the temporary register.
8078
8079 * doc/extend.texi (Function Attributes): Document interrupt,
8080 use_shadow_register_set, keep_interrupts_masked,
8081 use_debug_exception_return for MIPS attributes.
8082
8083 2009-04-03 Alan Modra <amodra@bigpond.net.au>
8084
8085 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
8086 Remove a number of t-files from tmake_file.
8087 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
8088 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
8089 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
8090 target_prototype, not TARGET_PROTOTYPE.
8091 (LINK_OS_GNU_SPEC): Define.
8092 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
8093 and darwin-ldoubdle.c.
8094
8095 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8096
8097 PR driver/39293
8098 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
8099 (cpp_options): Ditto.
8100 (default_compilers): Ditto.
8101 (display_help): Ditto.
8102 (process_command): Ditto.
8103 (do_spec_1): Ditto.
8104 (set_input): Use lbasename instead of duplicate code.
8105 (save_temps_prefix): New static for -save-temps=obj.
8106 (save_temps_length): Ditto.
8107
8108 * doc/invoke.texi (-save-temps=obj): Document new variant to
8109 -save-temps switch.
8110
8111 2009-04-02 Jeff Law <law@redhat.com>
8112
8113 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
8114 variable.
8115
8116 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
8117
8118 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
8119 * configure: Regenerated.
8120
8121 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
8122
8123 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
8124 share the argument list.
8125
8126 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
8127
8128 Merge
8129
8130 2009-02-12 Diego Novillo <dnovillo@google.com>
8131
8132 * varpool.c (debug_varpool): New.
8133 * cgraph.h (debug_varpool): Declare.
8134
8135 2009-04-02 Jan Hubicka <jh@suse.cz>
8136
8137 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
8138 pass.
8139
8140 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
8141
8142 * config/i386/i386.c (ix86_abi): Move initialization to ...
8143 (override_options): Here.
8144
8145 2009-04-02 Christian Bruel <christian.bruel@st.com>
8146
8147 * config/sh/sh.c (sh_dwarf_register_span): New function.
8148 (TARGET_DWARF_REGISTER_SPAN): Define.
8149 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
8150
8151 2009-04-02 Ira Rosen <irar@il.ibm.com>
8152
8153 PR tree-optimization/39595
8154 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
8155 interleaved loads group is not greater than the SLP group size.
8156
8157 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
8158
8159 * builtins.c (is_builtin_name): New.
8160 (called_as_built_in): Use is_builtin_name.
8161 * tree.h (is_builtin_name): New.
8162 * varasm.c (incorporeal_function_p): Use is_builtin_name
8163
8164 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
8165
8166 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
8167
8168 2009-04-02 Dodji Seketeli <dodji@redhat.com>
8169
8170 PR c++/26693
8171 * c-decl.c (clone_underlying_type): Move this ...
8172 * c-common.c (set_underlying_type): ... here.
8173 Also, make sure the function properly sets TYPE_STUB_DECL() on
8174 the newly created typedef variant type.
8175 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
8176 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
8177 points.
8178
8179 2009-04-02 Richard Guenther <rguenther@suse.de>
8180
8181 PR tree-optimization/37221
8182 * tree-flow.h (degenerate_phi_result): Declare.
8183 * tree-ssa-dom.c (degenerate_phi_result): Export.
8184 * tree-scalar-evolution.c (analyze_initial_condition): If
8185 the initial condition is defined by a degenerate PHI node
8186 use the degenerate value.
8187
8188 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
8189
8190 PR rtl-optimization/39588
8191 * combine.c (merge_outer_ops): Do not set the constant when this
8192 is not necessary.
8193 (simplify_shift_const_1): Do not modify it either in this case.
8194
8195 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
8196
8197 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
8198 tuning is deprecated if -mtune value is set to an Itanium1 variant.
8199
8200 2009-04-01 Janis Johnson <janis187@us.ibm.com>
8201
8202 PR c/29027
8203 * c-lex.c (interpret_float): Default (no suffix) is double.
8204
8205 2009-04-1 Xinliang David Li <davidxl@google.com>
8206
8207 * config/i386/i386.c (legitimate_constant_p): Recognize
8208 all one vector constant.
8209
8210 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8211
8212 * config/vax/vax.c: Add #includes to silence warnings.
8213 Change #include order to silence two warnings.
8214
8215 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8216
8217 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
8218 (ASM_SPEC): Pass -k to the assembler for PIC code.
8219
8220 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8221
8222 * config.gcc: Add vax-*-linux* to the switch.
8223 * config/vax/linux.h: New file. (TARGET_VERSION,
8224 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
8225
8226 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8227
8228 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
8229 Use predicate macros instead of GET_CODE() == foo.
8230 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
8231 ashlsi3, rotrsi3, <unnamed>): Likewise.
8232
8233 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8234
8235 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
8236 jbbccihi, jbbccisi): Remova trailing whitespace.
8237 * config/vax/constraints.md: Likewise.
8238 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
8239 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
8240 * config/vax/predicates.md: Likewise.
8241 * config/vax/vax.c (print_operand_address, vax_output_int_move,
8242 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
8243 * config/vax/vax.h: Likewise.
8244 * config/vax/vax.md (nonlocal_goto): Likewise.
8245
8246 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8247
8248 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
8249 (indirectable_address_p, adjacent_operands_p): Add spaces around
8250 braces.
8251 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
8252
8253 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8254
8255 * config/vax/vax.c (legitimate_constant_address_p,
8256 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
8257 index_term_p, reg_plus_index_p, legitimate_address_p,
8258 vax_mode_dependent_address_p): Update comments to match functions
8259 modified by the recent int->bool conversion.
8260
8261 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8262
8263 * config/vax/builtins.md: Update copyright message.
8264 * config/vax/constraints.md: Likewise.
8265 * config/vax/netbsd-elf.h: Likewise.
8266 * config/vax/predicates.md: Likewise.
8267 * config/vax/vax-protos.h: Likewise.
8268 * config/vax/vax.c: Likewise.
8269 * config/vax/vax.h: Likewise.
8270 * config/vax/vax.md: Likewise.
8271 * config/vax/vax.opt: Likewise.
8272
8273 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8274
8275 * config/vax/builtins.md (ffssi2, ffssi2_internal,
8276 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
8277 * config/vax/constraints.md (B, R): Likewise.
8278 * config/vax/predicates.md (external_memory_operand,
8279 nonimmediate_addsub_di_operand): Likewise.
8280 * config/vax/vax.c (vax_output_int_add): Likewise.
8281 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
8282 untyped_call): Likewise.
8283
8284 2009-04-01 Matt Thomas <matt@3am-software.com>
8285
8286 * config/vax/predicates.md: New file.
8287 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
8288 external_const_operand, nonsymbolic_operand, external_memory_operand,
8289 indirect_memory_operand, indexed_memory_operand,
8290 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
8291 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
8292 predicate.
8293 * config/vax/constraints.md: New file.
8294 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
8295 New constraint.
8296 * config/vax/builtins.md: New file.
8297 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
8298 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
8299 jbbccisi): Define.
8300 * config/vax/vax.opt (mqmath): Add option.
8301 * config/vax/vax.md (isfx): Extend with DI.
8302 (VAXintQH, VAXintQHSD): Define.
8303 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
8304 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
8305 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
8306 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
8307 (movdi): Update constraints and use vax_output_int_move().
8308 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
8309 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
8310 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
8311 nonlocal_goto): New.
8312 (mov<mode>): Extend accepted operand types.
8313 (subdi3_old): Rename from subdi3, change update constraints and use
8314 a new implementation.
8315 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
8316 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
8317 MOVE_RATIO, CLEAR_RATIO): Define.
8318 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
8319 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
8320 (PRINT_OPERAND): Redefine using a function instead of inlined code.
8321 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
8322 (split_quadword_operands): Make static and really allow variable
8323 splitting.
8324 (print_operand_address): Update for PIC generation.
8325 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
8326 indexable_address_p, fixup_mathdi_operand,
8327 vax_expand_addsub_di_operands, adjacent_operands_p): New.
8328 (vax_float_literal, legitimate_constant_p,
8329 indirectable_constant_address_p, index_term_p,
8330 reg_plus_index_p): Return bool instead of int.
8331 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
8332 where needed.
8333 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
8334 generation.
8335 (vax_output_conditional_branch): Indent.
8336 (legitimate_constant_address_p, indirectable_constant_address_p,
8337 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
8338 vax_mode_dependent_address_p): Return bool instead of int, update for
8339 PIC generation.
8340 * config/vax/vax-protos.h (legitimate_constant_address_p,
8341 legitimate_constant_p, legitimate_address_p,
8342 vax_mode_dependent_address_p): Change declaration to bool.
8343 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
8344 vax_expand_addsub_di_operands, vax_output_int_subtract,
8345 vax_output_movmemsi): Declare.
8346 (split_quadword_operands, vax_float_literal): Delete declaration.
8347 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
8348 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
8349 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
8350 ASM_OUTPUT_DWARF_PCREL): Define.
8351 (ASM_SPEC): Change definition to allow PIC generation.
8352
8353 2009-04-01 Steve Ellcey <sje@cup.hp.com>
8354
8355 * doc/sourcebuild.texi: Update front-end requirements.
8356
8357 2009-04-01 Jakub Jelinek <jakub@redhat.com>
8358
8359 PR target/39226
8360 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
8361 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
8362 (booldi3_internal3): Use boolean_or_operator instead of
8363 boolean_operator.
8364
8365 2009-04-01 Joseph Myers <joseph@codesourcery.com>
8366
8367 PR c/39605
8368 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
8369 declarator whose size is not an integer constant expression but
8370 folds to an integer constant, then treat it as a constant
8371 subsequently.
8372
8373 2009-04-01 Richard Guenther <rguenther@suse.de>
8374
8375 * fold-const.c (fold_plusminus_mult_expr): Do not fold
8376 i * 4 + 2 to (i * 2 + 1) * 2.
8377
8378 2009-04-01 Jakub Jelinek <jakub@redhat.com>
8379
8380 PR c/37772
8381 * c-parser.c (c_parser_asm_statement): Skip until close paren and
8382 return if c_parser_asm_string_literal returned NULL.
8383
8384 2009-04-01 Nick Clifton <nickc@redhat.com>
8385
8386 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
8387 already defined.
8388 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
8389 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
8390 other typedefs to avoid conflicts with libgcc2.c. Define labels
8391 to gain 16-bit bit-manipulation functions from libgcc2.c and then
8392 include it.
8393 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
8394 to gain 16-bit trapping arithmetic functions from libgcc2.c and
8395 then include it.
8396
8397 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
8398
8399 * varasm.c (default_function_rodata_section): Declare DOT as
8400 const char*.
8401
8402 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
8403 Andrey Galkin <agalkin@hypercom.com>
8404
8405 PR/39492
8406 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
8407 Make object_name unique for each process.
8408
8409 2009-04-01 Jakub Jelinek <jakub@redhat.com>
8410
8411 PR other/39591
8412 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
8413 addressable variables in the parallel that could go out of scope while
8414 running queued tasks.
8415
8416 2009-04-01 Anatoly Sokolov <aesok@post.ru>
8417
8418 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
8419 (CASE_VALUES_THRESHOLD): Redefine.
8420 * config/avr/avr.c (avr_override_options): Remove initialization of
8421 avr_case_values_threshold variable.
8422 (avr_case_values_threshold): Remove variable. Add new function.
8423 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
8424 * config/avr/avr.opt (mno-tablejump): Remove option.
8425 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
8426
8427 2009-04-01 DJ Delorie <dj@redhat.com>
8428
8429 * varasm.c (default_function_rodata_section): Don't assume
8430 anything about where the first '.' in the section name is.
8431
8432 2009-04-01 Alan Modra <amodra@bigpond.net.au>
8433
8434 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
8435 rs6000_emit_stack_tie.
8436
8437 2009-03-31 Ian Lance Taylor <iant@google.com>
8438
8439 * tree-eh.c (tree_remove_unreachable_handlers): Compare
8440 gimple_code with GIMPLE_RESX, not RESX.
8441
8442 2009-03-31 Joseph Myers <joseph@codesourcery.com>
8443
8444 * c-common.c (c_get_ident): New.
8445 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
8446
8447 2009-04-01 Ben Elliston <bje@au.ibm.com>
8448
8449 * config/rs6000/sysv4.opt (msdata): Improve option description.
8450
8451 2009-03-31 Steve Ellcey <sje@cup.hp.com>
8452
8453 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
8454 (divdf3_internal_lat): Remove.
8455 (divxf3_internal_lat): Remove.
8456 (divxf3_internal_thr): Remove.
8457 (divxf): Use divxf3_internal.
8458 * config/ia64/div.md (divsf3_internal_lat): New.
8459 (divdf3_internal_lat): New.
8460 (divxf3_internal): New.
8461
8462 2009-03-31 Joseph Myers <joseph@codesourcery.com>
8463
8464 PR c/448
8465 * Makefile.in (USE_GCC_STDINT): Define.
8466 (stmp-int-hdrs): Install stdint.h if applicable.
8467 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
8468 if known.
8469 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
8470 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
8471 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
8472 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8473 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8474 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8475 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8476 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8477 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
8478 (c_common_nodes_and_builtins): Initialize
8479 underlying_wchar_type_node. Do not initialize
8480 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
8481 nodes for new types.
8482 (c_stddef_cpp_builtins): Define macros for new types.
8483 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
8484 Remove.
8485 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
8486 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
8487 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
8488 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
8489 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
8490 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
8491 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
8492 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
8493 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
8494 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
8495 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
8496 int16_type_node, int32_type_node, int64_type_node,
8497 uint8_type_node, uint16_type_node, c_uint32_type_node,
8498 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
8499 int_least32_type_node, int_least64_type_node,
8500 uint_least8_type_node, uint_least16_type_node,
8501 uint_least32_type_node, uint_least64_type_node,
8502 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
8503 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
8504 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
8505 uintptr_type_node): Define.
8506 * c-cppbuiltin.c (builtin_define_constants,
8507 builtin_define_type_minmax): New.
8508 (builtin_define_stdint_macros): Define more macros.
8509 (c_cpp_builtins): Define more limit macros.
8510 (type_suffix): New.
8511 (builtin_define_type_max): Define in terms of
8512 builtin_define_type_minmax. Remove is_long parameter. All
8513 callers changed.
8514 * config.gcc (use_gcc_stdint): Define.
8515 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
8516 Add newlib-stdint.h for generic targets.
8517 * config/glibc-stdint.h, config/newlib-stdint.h,
8518 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
8519 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
8520 * config/score/score.h (UINTPTR_TYPE): Define.
8521 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
8522 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
8523 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8524 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8525 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8526 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8527 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8528 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
8529 * config/spu/spu.h (STDINT_LONG32): Define.
8530 * configure.ac (use_gcc_stdint): Substitute.
8531 * configure: Regenerate.
8532 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
8533 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
8534 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
8535 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
8536 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
8537 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
8538 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
8539 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
8540 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
8541 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
8542 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
8543 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
8544 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
8545 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
8546 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
8547 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
8548 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
8549 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
8550 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
8551 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
8552 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
8553 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
8554 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
8555 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8556 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8557 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8558 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8559 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8560 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
8561
8562 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
8563
8564 * loop-iv.c (suitable_set_for_replacement): Renamed from
8565 simplify_using_assignment; changed to return bool and to accept new
8566 args DEST and SRC. Return true iff we find a source/destination pair
8567 that can be used to make a replacement, and fill SRC and DEST if so.
8568 Remove arg ALTERED. Don't deal with altered regs here. All callers
8569 changed.
8570 (simplify_using_initial_values): Deal with altered regs here and track
8571 more precisely the effect they have on the validity of our expression.
8572
8573 * loop-iv.c (simplify_using_condition): A condition of the form
8574 (EQ REG CONST) can be used to simply make a substitution.
8575 (simplify_using_initial_values): Keep track of conditions we have seen
8576 and keep using them to simplify new expressions, while applying the
8577 same substitutions to them as to the expression.
8578
8579 * simplify-rtx.c (simplify_relational_operation_1): Simplify
8580 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
8581 GEU/LTU reversed.
8582
8583 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
8584 changed. Use this when trying to improve the upper bound.
8585 Generate the comparison by using simplify_gen_relational.
8586
8587 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
8588
8589 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
8590 functions.
8591 (simplify_using_assignment, simplify_using_initial_values): Call
8592 replace_in_expr to make replacements. Call replace_single_def_regs
8593 once on the initial version of the expression.
8594
8595 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8596
8597 PR target/27237
8598 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
8599
8600 2009-03-31 Richard Guenther <rguenther@suse.de>
8601
8602 PR middle-end/31029
8603 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
8604 equality comparisons. Fold C - X CMP X if C % 2 == 1.
8605
8606 2009-03-31 Richard Guenther <rguenther@suse.de>
8607
8608 * tree.h (div_if_zero_remainder): Declare.
8609 * fold-const.c (div_if_zero_remainder): Export.
8610 * tree-ssa-forwprop.c
8611 (forward_propagate_addr_into_variable_array_index): Handle
8612 constant array index addition outside of the variable index.
8613
8614 2009-03-31 Joseph Myers <joseph@codesourcery.com>
8615
8616 PR target/39592
8617 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
8618 define_splits, floatunssi<mode>2): Require x87 conversions from
8619 DImode to be permitted.
8620
8621 2009-03-31 Joseph Myers <joseph@codesourcery.com>
8622
8623 PR preprocessor/15638
8624 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
8625
8626 2009-03-31 Richard Guenther <rguenther@suse.de>
8627
8628 PR middle-end/23401
8629 PR middle-end/27810
8630 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
8631 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
8632 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
8633 a separate statement.
8634 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
8635 (lookup_tmp_var): Likewise.
8636 (is_gimple_formal_tmp_or_call_rhs): Remove.
8637 (is_gimple_reg_or_call_rhs): Rename to ...
8638 (is_gimple_reg_rhs_or_call): ... this.
8639 (is_gimple_mem_or_call_rhs): Rename to ...
8640 (is_gimple_mem_rhs_or_call): ... this.
8641 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
8642 DECL_GIMPLE_REG_P only if is_formal is true.
8643 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
8644 for non-proper post-modify expression gimplification.
8645 (gimplify_self_mod_expr): For post-modify expressions gimplify
8646 the lvalue to a minimal lvalue.
8647 (rhs_predicate_for): Remove formal temp case.
8648 (gimplify_modify_expr_rhs): Likewise.
8649 (gimplify_addr_expr): Use is_gimple_reg.
8650 (gimplify_expr): Remove formal temp cases.
8651 (gimple_regimplify_operands): Likewise.
8652 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
8653 and FILTER_EXPR like constants.
8654 * gimple.c (walk_gimple_op): Fix val_only initialization, use
8655 is_gimple_reg.
8656 (is_gimple_formal_tmp_rhs): Remove.
8657 (is_gimple_reg_rhs): Remove special casing.
8658 (is_gimple_mem_rhs): Fix.
8659 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
8660 (is_gimple_formal_tmp_var): Remove.
8661 (is_gimple_formal_tmp_reg): Likewise.
8662 (is_gimple_min_lval): Allow invariant component ref parts.
8663 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
8664 is_gimple_formal_tmp_reg): Remove declarations.
8665 * tree-cfg.c (verify_expr): Verify that variables with address
8666 taken do not have DECL_GIMPLE_REG_P set.
8667 * tree-mudflap.c (mf_build_check_statement_for): Use
8668 force_gimple_operand instead of gimplify_expr.
8669
8670 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
8671
8672 * modulo-sched.c (sms_schedule_by_order): Pass the actual
8673 schedulable rows to compute_split_row.
8674
8675 2009-03-31 Ben Elliston <bje@au.ibm.com>
8676
8677 PR target/31635
8678 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
8679 OPT_mvrsave.
8680
8681 2009-03-31 Alan Modra <amodra@bigpond.net.au>
8682
8683 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
8684 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
8685 * configure: Regenerate.
8686 * config.in: Regenerate.
8687 * config/rs6000/rs6000.opt (mtls-markers): Add.
8688 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
8689 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
8690 (tls_ld_aix, tls_ld_sysv): Likewise.
8691 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
8692 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
8693
8694 2009-03-31 Alan Modra <amodra@bigpond.net.au>
8695
8696 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
8697
8698 2009-03-30 Jan Hubicka <jh@suse.cz>
8699
8700 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
8701 out of RESX.
8702 (tree_remove_unreachable_handlers): Cleanup EH predecestor
8703 detection and label handling.
8704
8705 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8706
8707 * ira-int.h (ira_allocno): Rename left_conflicts_num to
8708 left_conflicts_size.
8709 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
8710 ALLOCNO_LEFT_CONFLICTS_SIZE.
8711
8712 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
8713 remove_allocno_from_bucket_and_push,
8714 allocno_spill_priority_compare, push_allocnos_to_stack,
8715 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
8716 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
8717 (setup_allocno_left_conflicts_num): Ditto. Rename to
8718 setup_allocno_left_conflicts_size.
8719 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
8720 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
8721 setup_allocno_left_conflicts_size instead of
8722 setup_allocno_left_conflicts_num.
8723
8724 * ira-build.c (ira_create_allocno): Use
8725 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
8726 ALLOCNO_LEFT_CONFLICTS_NUM.
8727
8728 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8729
8730 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8731 instead of DF_LR_OUT.
8732
8733 * ira-lives.c (process_bb_node_lives): Ditto.
8734
8735 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8736 instead of DF_LR_{OUT,IN}.
8737
8738 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8739
8740 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8741
8742 2009-03-30 Jan Hubicka <jh@suse.cz>
8743
8744 * except.c (label_to_region_map): Fix thinko.
8745
8746 2009-03-30 Steve Ellcey <sje@cup.hp.com>
8747
8748 PR middle-end/38237
8749 * tree.h (tree_find_value): New declaration.
8750 * tree.c (tree_find_value): New function.
8751 * varasm.c (assemble_external): Avoid duplicate entries on lists.
8752
8753 2009-03-30 Jakub Jelinek <jakub@redhat.com>
8754
8755 PR debug/39563
8756 * c-decl.c (struct c_binding): Add locus field.
8757 (bind): Add locus argument, set locus field from it.
8758 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
8759 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
8760 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
8761 implicitly_declare, undeclared_variable, lookup_label,
8762 declare_label, c_make_fname_decl, c_builtin_function,
8763 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
8764 bind callers.
8765
8766 2009-03-30 H.J. Lu <hongjiu.lu@intel.com>
8767
8768 PR target/38781
8769 * config/i386/i386.c (classify_argument): Check total size of
8770 structure.
8771
8772 2009-03-30 Martin Jambor <mjambor@suse.cz>
8773
8774 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
8775 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
8776 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
8777 respectively.
8778
8779 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
8780 seen_variable_array_ref while also traversing a union.
8781
8782 * tree-inline.c (optimize_inline_calls): Do not call
8783 cgraph_node_remove_callees.
8784 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
8785 (pass_remove_cgraph_callee_edges): New variable.
8786 * passes.c (init_optimization_passes): Add
8787 pass_remove_cgraph_callee_edges after early inlining and before all
8788 late intraprocedural passes.
8789
8790 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
8791
8792 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
8793
8794 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
8795 Fix typos in names.
8796
8797 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
8798
8799 * combine.c (simplify_comparison): Use have_insn_for.
8800 * dojump.c (do_jump): Likewise.
8801
8802 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
8803
8804 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
8805 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
8806 sparc_compare_op0 like sparc_compare_emitted used to be handled.
8807 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
8808 instead of sparc_compare_emitted.
8809 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
8810 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
8811 instead of sparc_compare_emitted.
8812
8813 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
8814
8815 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
8816 enter/exit cfglayout mode.
8817 (pass_partition_block): Require it.
8818 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
8819 (combine_instructions): Track basic blocks instead of labels.
8820 (update_cfg_for_uncondjump): New.
8821 (try_combine): Use it. Update jumps after rescanning.
8822 (pass_combine): Require PROP_cfglayout.
8823 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
8824
8825 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
8826
8827 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
8828 Provide/destroy PROP_cfglayout respectively.
8829 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
8830 * tree-pass.h (PROP_cfglayout): New.
8831
8832 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
8833
8834 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
8835 fold_convert_const_fixed_from_fixed,
8836 fold_convert_const_fixed_from_int,
8837 fold_convert_const_fixed_from_real, fold_negate_const): Do not
8838 set TREE_CONSTANT_OVERFLOW.
8839 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
8840 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
8841
8842 2009-03-30 Ira Rosen <irar@il.ibm.com>
8843
8844 * tree-vect-loop-manip.c: New file.
8845 * tree-vectorizer.c: Update documentation and included files.
8846 (vect_loop_location): Make extern.
8847 (rename_use_op): Move to tree-vect-loop-manip.c
8848 (rename_variables_in_bb, rename_variables_in_loop,
8849 slpeel_update_phis_for_duplicate_loop,
8850 slpeel_update_phi_nodes_for_guard1,
8851 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
8852 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
8853 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
8854 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
8855 find_loop_location): Likewise.
8856 (new_stmt_vec_info): Move to tree-vect-stmts.c.
8857 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
8858 get_vectype_for_scalar_type, vect_is_simple_use,
8859 supportable_widening_operation, supportable_narrowing_operation):
8860 Likewise.
8861 (bb_in_loop_p): Move to tree-vect-loop.c.
8862 (new_loop_vec_info, destroy_loop_vec_info,
8863 reduction_code_for_scalar_code, report_vect_op,
8864 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
8865 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
8866 (vect_supportable_dr_alignment): Likewise.
8867 * tree-vectorizer.h (tree-data-ref.h): Include.
8868 (vect_loop_location): Declare.
8869 Reorganize function declarations according to the new file structure.
8870 * tree-vect-loop.c: New file.
8871 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
8872 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
8873 * tree-vect-data-refs.c: New file.
8874 * tree-vect-patterns.c (timevar.h): Don't include.
8875 * tree-vect-stmts.c: New file.
8876 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
8877 tree-vect-slp.c, tree-vect-loop.c.
8878 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
8879 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
8880 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
8881 (tree-vect-analyze.o): Remove.
8882 (tree-vect-transform.o): Likewise.
8883 (tree-vect-data-refs.o): Add rule.
8884 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
8885 tree-vect-slp.o): Likewise.
8886 (tree-vect-patterns.o): Remove redundant dependencies.
8887 (tree-vectorizer.o): Likewise.
8888 * tree-vect-slp.c: New file.
8889
8890 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8891
8892 * optc-gen.awk: Warn if an option flag has multiple different
8893 help strings.
8894
8895 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
8896
8897 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
8898 -floop-block): Document dependences on PPL, CLooG and Graphite.
8899
8900 2009-03-30 Joseph Myers <joseph@codesourcery.com>
8901
8902 PR rtl-optimization/323
8903 * c-common.c (c_fully_fold, convert_and_check,
8904 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
8905 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
8906 * c-common.def (EXCESS_PRECISION_EXPR): New.
8907 * c-cppbuiltin.c (builtin_define_float_constants): Define
8908 constants with enough digits for long double.
8909 * c-lex.c (interpret_float): Interpret constant with excess
8910 precision where appropriate.
8911 * c-opts.c (c_common_post_options): Set
8912 flag_excess_precision_cmdline. Give an error for
8913 -fexcess-precision=standard for C++ for processors where the
8914 option is significant.
8915 * c-parser.c (c_parser_conditional_expression): Handle excess
8916 precision in condition.
8917 * c-typeck.c (convert_arguments): Handle arguments with excess
8918 precision.
8919 (build_unary_op): Move excess precision outside operation.
8920 (build_conditional_expr): Likewise.
8921 (build_compound_expr): Likewise.
8922 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
8923 (build_modify_expr): Handle excess precision in RHS.
8924 (convert_for_assignment): Handle excess precision in converted
8925 value.
8926 (digest_init, output_init_element, process_init_element): Handle
8927 excess precision in initializer.
8928 (c_finish_return): Handle excess precision in return value.
8929 (build_binary_op): Handle excess precision in operands and add
8930 excess precision as needed for operation.
8931 * common.opt (-fexcess-precision=): New option.
8932 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
8933 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
8934 For standard excess precision, output explicit conversion to and
8935 truncation from XFmode.
8936 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
8937 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
8938 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
8939 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
8940 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
8941 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
8942 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
8943 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
8944 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
8945 define_splits, sqrt<mode>2): Disable where appropriate for
8946 standard excess precision.
8947 * convert.c (convert_to_real): Do not shorten arithmetic to type
8948 for which excess precision would be used.
8949 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
8950 * doc/invoke.texi (-fexcess-precision=): Document option.
8951 (-mfpmath=): Correct index entry.
8952 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
8953 flag_excess_precision): New.
8954 * langhooks.c (lhd_post_options): Set
8955 flag_excess_precision_cmdline.
8956 * opts.c (common_handle_option): Handle -fexcess-precision=.
8957 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
8958 init_excess_precision): New.
8959 (lang_dependent_init_target): Call init_excess_precision.
8960 * tree.c (excess_precision_type): New.
8961 * tree.h (excess_precision_type): Declare.
8962
8963 2009-03-30 Joseph Myers <joseph@codesourcery.com>
8964
8965 PR c/35235
8966 * c-typeck.c (build_component_ref): Do not copy qualifiers from
8967 non-lvalue to component.
8968
8969 2009-03-29 Joseph Myers <joseph@codesourcery.com>
8970
8971 PR preprocessor/34695
8972 * Makefile.in (c-opts.o): Depend on c-tree.h.
8973 * c-common.c: Move down include of diagnostic.h.
8974 (done_lexing, c_cpp_error): New.
8975 * c-common.h (done_lexing): Declare.
8976 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
8977 (parse_in).
8978 * c-opts.c: Include c-tree.h.
8979 (c_common_init_options): Set preprocessor error callback.
8980 (c_common_handle_option): Do not set preprocessor
8981 inhibit_warnings, warnings_are_errors, warn_system_headers,
8982 pedantic_errors or inhibit_warnings flags.
8983 (c_common_post_options): Do not check cpp_errors (parse_in).
8984 (c_common_finish): Do not output dependencies if there were
8985 errors. Do not check return value of cpp_finish.
8986 * c-ppoutput.c (pp_file_change): Set input_location.
8987 * c-tree.h (c_cpp_error): Declare.
8988 * diagnostic.c (diagnostic_set_info_translated): Also initialize
8989 override_column.
8990 (diagnostic_build_prefix): Check override_column.
8991 * diagnostic.h (diagnostic_info): Add override_column field.
8992 (diagnostic_override_column): Define.
8993
8994 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
8995
8996 * c-common.c (c_expand_expr, c_staticp): Remove.
8997 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
8998 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
8999 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
9000 * c-gimplify.c (gimplify_compound_literal_expr,
9001 optimize_compound_literals_in_ctor): Remove.
9002 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
9003 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
9004 * c-semantics.c (emit_local_var): Remove.
9005
9006 * langhooks-def.h (lhd_expand_expr): Remove.
9007 * langhooks.c (lhd_expand_expr): Remove.
9008 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
9009
9010 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
9011 handling from c-semantics.c; don't call into langhook.
9012 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
9013 * gimplify.c (gimplify_compound_literal_expr,
9014 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
9015 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
9016 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
9017 as was done in c-gimplify.c.
9018 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
9019 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
9020 Move from c-common.h.
9021 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
9022
9023 * tree.c (staticp): Do not call langhook.
9024 * langhooks.c (lhd_staticp): Delete.
9025 * langhooks-def.h (lhd_staticp): Delete prototype.
9026 (LANG_HOOKS_STATICP): Delete.
9027 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
9028
9029 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
9030 instead of DECL_STMTs.
9031
9032 2009-03-29 Joseph Myers <joseph@codesourcery.com>
9033
9034 PR c/456
9035 PR c/5675
9036 PR c/19976
9037 PR c/29116
9038 PR c/31871
9039 PR c/35198
9040 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
9041 void_type_node.
9042 (fold_call_expr): Return a NOP_EXPR from folding rather than the
9043 contained expression.
9044 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
9045 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
9046 conditional expressions for C.
9047 (decl_constant_value_for_optimization): Move from
9048 decl_constant_value_for_broken_optimization in c-typeck.c. Check
9049 whether optimizing and that the expression is a VAR_DECL not of
9050 array type instead of doing such checks in the caller. Do not
9051 check pedantic. Call gcc_unreachable for C++.
9052 * c-common.def (C_MAYBE_CONST_EXPR): New.
9053 * c-common.h (c_fully_fold, c_save_expr,
9054 decl_constant_value_for_optimization): New prototypes.
9055 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9056 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9057 EXPR_INT_CONST_OPERANDS): Define.
9058 * c-convert.c (convert): Strip nops from expression.
9059 * c-decl.c (groktypename): Take extra parameters expr and
9060 expr_const_operands. Update call to grokdeclarator.
9061 (start_decl): Update call to grokdeclarator. Add statement for
9062 expressions used in type of decl.
9063 (grokparm): Update call to grokdeclarator.
9064 (push_parm_decl): Update call to grokdeclarator.
9065 (build_compound_literal): Add parameter non_const and build a
9066 C_MAYBE_COSNT_EXPR if applicable.
9067 (grokdeclarator): Take extra parameters expr and
9068 expr_const_operands. Track expressions used in declaration
9069 specifiers and declarators. Fold array sizes and track whether
9070 they are constant expressions and whether they are integer
9071 constant expressions.
9072 (parser_xref_tag): Set expr and expr_const_operands fields in
9073 return value.
9074 (grokfield): Update call to grokdeclarator.
9075 (start_function): Update call to grokdeclarator.
9076 (build_null_declspecs): Set expr and expr_const_operands fields in
9077 return value.
9078 (declspecs_add_type): Handle expressions in typeof specifiers.
9079 * c-parser.c (c_parser_declspecs): Set expr and
9080 expr_const_operands fields for declaration specifiers.
9081 (c_parser_enum_specifier): Likewise.
9082 (c_parser_struct_or_union_specifier): Likewise.
9083 (c_parser_typeof_specifier): Likewise. Update call to
9084 groktypename. Fold expression as needed. Return expressions with
9085 type instead of adding statements.
9086 (c_parser_attributes): Update calls to c_parser_expr_list.
9087 (c_parser_statement_after_labels): Fold expression before passing
9088 to objc_build_throw_stmt.
9089 (c_parser_condition): Fold expression.
9090 (c_parser_asm_operands): Fold expression.
9091 (c_parser_conditional_expression): Use c_save_expr. Update call
9092 to build_conditional_expr.
9093 (c_parser_alignof_expression): Update call to groktypename.
9094 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
9095 original_code. Fold expression argument of va_arg. Create
9096 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
9097 argument to va_arg. Update calls to groktypename. Fold array
9098 index for offsetof. Verify that first argument to
9099 __builtin_choose_expr has integer type.
9100 (c_parser_postfix_expression_after_paren_type): Update calls to
9101 groktypename and build_compound_literal. Handle expressions with
9102 side effects in type name.
9103 (c_parser_postfix_expression_after_primary): Update call to
9104 c_parser_expr_list. Set original_code for calls to
9105 __builtin_constant_p.
9106 (c_parser_expr_list): Take extra parameter fold_p. Fold
9107 expressions if requested.
9108 (c_parser_objc_type_name): Update call to groktypename.
9109 (c_parser_objc_synchronized_statement): Fold expression.
9110 (c_parser_objc_receiver): Fold expression.
9111 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
9112 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
9113 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
9114 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
9115 (struct c_typespec): Add elements expr and expr_const_operands.
9116 (struct c_declspecs): Add elements expr and expr_const_operands.
9117 (groktypename, build_conditional_expr, build_compound_literal):
9118 Update prototypes.
9119 (in_late_binary_op): Declare.
9120 * c-typeck.c (note_integer_operands): New function.
9121 (in_late_binary_op): New variable.
9122 (decl_constant_value_for_broken_optimization): Move to c-common.c
9123 and rename to decl_constant_value_for_optimization.
9124 (default_function_array_conversion): Do not strip nops.
9125 (default_conversion): Do not call
9126 decl_constant_value_for_broken_optimization.
9127 (build_array_ref): Do not fold result.
9128 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
9129 result when operand is a VLA.
9130 (c_expr_sizeof_type): Update call to groktypename. Handle
9131 expressions included in type name. Use C_MAYBE_CONST_EXPR for
9132 result when operand names a VLA type.
9133 (build_function_call): Update call to build_compound_literal.
9134 Only fold result for calls to __builtin_* functions. Strip
9135 NOP_EXPR from INTEGER_CST returned from such functions. Fold
9136 the function designator.
9137 (convert_arguments): Fold arguments. Update call to
9138 convert_for_assignment.
9139 (build_unary_op): Handle increment and decrement of
9140 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
9141 decrement earlier. Fold operand of increment and decrement.
9142 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
9143 built for integer operand. Wrap returns that are INTEGER_CSTs
9144 without being integer constant expressions or that have integer
9145 constant operands without being INTEGER_CSTs.
9146 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
9147 (build_conditional_expr): Add operand ifexp_bcp. Track whether
9148 result is an integer constant expression or can be used in
9149 unevaluated parts of one and avoid folding and wrap as
9150 appropriate. Fold operands before possibly doing -Wsign-compare
9151 warnings.
9152 (build_compound_expr): Wrap result for C99 if operands can be used
9153 in integer constant expressions.
9154 (build_c_cast): Update call to digest_init. Do not ignore
9155 overflow from casting floating-point constants to integers. Wrap
9156 results that could be confused with integer constant expressions,
9157 null pointer constants or floating-point constants.
9158 (c_cast_expr): Update call to groktypename. Handle expressions
9159 included in type name.
9160 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
9161 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
9162 Update calls to convert_for_assignment.
9163 (convert_for_assignment): Take new parameter
9164 null_pointer_constant. Do not strip nops or call
9165 decl_constant_value_for_broken_optimization. Set
9166 in_late_binary_op for conversions to boolean.
9167 (store_init_value): Update call to digest_init.
9168 (digest_init): Take new parameter null_pointer_constant. Do not
9169 call decl_constant_value_for_broken_optimization. pedwarn for
9170 initializers not constant expressions. Update calls to
9171 convert_for_assignment.
9172 (constructor_nonconst): New.
9173 (struct constructor_stack): Add nonconst element.
9174 (really_start_incremental_init, push_init_level, pop_init_level):
9175 Handle constructor_nonconst and nonconst element.
9176 (set_init_index): Call constant_expression_warning for array
9177 designators.
9178 (output_init_element): Fold value. Set constructor_nonconst as
9179 applicable. pedwarn for initializers not constant expressions.
9180 Update call to digest_init. Call constant_expression_warning
9181 where constant initializers are required.
9182 (process_init_element): Use c_save_expr.
9183 (c_finish_goto_ptr): Fold expression.
9184 (c_finish_return): Fold return value. Update call to
9185 convert_for_assignment.
9186 (c_start_case): Fold switch expression.
9187 (c_process_expr_stmt): Fold expression.
9188 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
9189 ensure statement expression is not evaluated in constant expression.
9190 (build_binary_op): Track whether results are integer constant
9191 expressions or may occur in such, disable folding and wrap results
9192 as applicable. Fold operands for -Wsign-compare warnings unless
9193 in_late_binary_op.
9194 (c_objc_common_truthvalue_conversion): Handle results folded to
9195 integer constants that are not integer constant expressions.
9196 * doc/extend.texi: Document when typeof operands are evaluated,
9197 that condition of __builtin_choose_expr is an integer constant
9198 expression, and more about use of __builtin_constant_p in
9199 initializers.
9200
9201 2009-03-29 Richard Guenther <rguenther@suse.de>
9202
9203 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
9204 propagate addresses of array references.
9205
9206 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
9207
9208 * regmove.c (perhaps_ends_bb_p): Remove.
9209 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
9210 from INSN and check that the main loop stays within that basic block.
9211 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
9212 (regmove_forward_pass): Split out from regmove_optimize. Use
9213 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
9214 (regmove_backward_pass): Split out from regmove_optimize. Use
9215 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
9216 (regmove_optimize): Simplify.
9217
9218 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
9219
9220 PR target/39545
9221 * config/i386/i386.c (classify_argument): Ignore flexible array
9222 member in struct and warn ABI change.
9223
9224 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
9225
9226 * config/i386/i386-protos.h (ix86_agi_dependent): New.
9227
9228 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
9229 (ix86_adjust_cost): Updated.
9230
9231 2009-03-29 Jan Hubicka <jh@suse.cz>
9232
9233 PR middle-end/28850
9234 * tree-pass.h (pass_cleanup_eh): New function.
9235 (remove_unreachable_regions): Break code handling RTL
9236 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
9237 that can not be reached by runtime.
9238 (can_be_reached_by_runtime): New function.
9239 (label_to_region_map): New function.
9240 (num_eh_regions): New function.
9241 (rtl_remove_unreachable_regions): New function.
9242 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
9243 (remove_eh_region): New function.
9244 * except.h: Include sbitmap and vecprim.
9245 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
9246 num_eh_regions): Declare.
9247 * passes.c (init_optimization_passes): Schedule cleanup_eh.
9248 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
9249 * tree-eh.c (tree_remove_unreachable_handlers): New function.
9250 (tree_empty_eh_handler_p): New function.
9251 (cleanup_empty_eh): New function.
9252 (cleanup_eh): New function.
9253 (pass_cleanup_eh): New function.
9254
9255 2009-03-29 Jan Hubicka <jh@suse.cz>
9256
9257 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
9258 for removed regions.
9259
9260 2009-03-29 Jan Hubicka <jh@suse.cz>
9261
9262 * except.c (dump_eh_tree): Dump all datastructures.
9263
9264 2009-03-29 Jan Hubicka <jh@suse.cz>
9265
9266 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
9267 (duplicate_eh_regions_1): Likewise.
9268 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
9269 vector; call EH verification.
9270 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
9271 Be ready for region being removed.
9272
9273 2009-03-29 Jan Hubicka <jh@suse.cz>
9274
9275 * bitmap.c (bitmap_last_set_bit): New function.
9276 * bitmap.h (bitmap_last_set_bit): Declare.
9277
9278 2009-03-29 David Ayers <ayers@fsfe.org>
9279
9280 PR objc/27377
9281 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
9282 by calling objc_compare_types and surpress warnings about
9283 incompatible C pointers that are compatible ObjC pointers.
9284
9285 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
9286
9287 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
9288 call initialize_inline_failed.
9289 (initialize_inline_failed): Move it from here ...
9290 * cgraph.c (initialize_inline_failed): ... to here.
9291 (cgraph_create_edge): Call initialize_inline_failed rather than
9292 setting inline_failed directly.
9293
9294 2009-03-29 Ben Elliston <bje@au.ibm.com>
9295
9296 PR target/32542
9297 * sysv4.opt (msdata): Improve comment.
9298 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
9299 * sysv4.h (SVR4_ASM_SPEC): Likewise.
9300
9301 2009-03-29 Ben Elliston <bje@au.ibm.com>
9302
9303 PR target/30451
9304 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
9305 load and store attributes.
9306
9307 2009-03-29 Ben Elliston <bje@au.ibm.com>
9308
9309 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
9310 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
9311 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
9312 * doc/extend.texi (X86 Built-in Functions): Add index entries for
9313 __builtin_infq and __builtin_huge_valq.
9314
9315 2009-03-28 Anatoly Sokolov <aesok@post.ru>
9316
9317 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
9318 atmega8m1 devices.
9319 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9320 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
9321
9322 2009-03-28 Xinliang David Li <davidxl@google.com>
9323
9324 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
9325 (do_dbg_cnt): New function.
9326
9327 2009-03-28 Jan Hubicka <jh@suse.cz>
9328
9329 Merge from pretty-ipa:
9330
9331 2009-03-27 Jan Hubicka <jh@suse.cz>
9332
9333 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
9334 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
9335 * passes.c (function_called_by_processed_nodes_p): New.
9336 * ipa-pure-const.c (check_call): Fix handling of operands.
9337 (analyze_function): Dump debug output for skipped bodies.
9338 (local_pure_const): Use function_called_by_processed_nodes_p.
9339 * dwarf2out.c (reference_to_unused): Use output.
9340 * passes.c (do_per_function_toporder): Likewise.
9341
9342 2008-11-12 Jan Hubicka <jh@suse.cz>
9343
9344 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
9345 * ipa-pure-const.c (funct_state_d): Add can throw field; make
9346 state_set_in_source enum
9347 (check_decl): Ignore memory tags; do not set fake looping flags;
9348 dump diagnostics.
9349 (check_operand, check_tree, check_rhs_var, check_lhs_var,
9350 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
9351 (check_call, analyze_function): Rewrite.
9352 (check_stmt): New.
9353 (add_new_function): Update call of analyze_function.
9354 (generate_summary): Add call of analyze_function.
9355 (propagate): Propagate can_throw; handle state_set_in_source correctly.
9356 (local_pure_const): New function.
9357 (pass_local_pure_const): New pass.
9358 * ipa-inline.c (inline_transform): Set after_inlining.
9359 * tree-eh.c (stmt_can_throw_external): New.
9360 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
9361 work with aliasing built.
9362 * tree-flow.h (stmt_can_throw_external): New.
9363 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
9364 and local pure/const pass in early and late optimization queue.
9365
9366 2009-03-28 Martin Jambor <mjambor@suse.cz>
9367
9368 * fold-const.c (get_pointer_modulus_and_residue): New parameter
9369 allow_func_align.
9370 (fold_binary): Allow function decl aligment consideration is the
9371 second argument is integer constant one.
9372 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
9373 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
9374 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
9375
9376 2009-03-28 Jan Hubicka <jh@suse.cz>
9377
9378 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
9379 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
9380 * function.h (rtl_data): Add nothrow flag.
9381 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
9382 set DECL_NOTHROW for AVAILABLE functions.
9383
9384 2009-03-28 Jakub Jelinek <jakub@redhat.com>
9385
9386 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
9387 following vector keyword has expansion starting with pixel or bool
9388 keyword, expand vector to __vector and pixel or bool to __pixel or
9389 __bool.
9390
9391 PR c++/39554
9392 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
9393 warn_if_disallowed_function_p): Removed.
9394 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
9395 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
9396 warning_if_disallowed_function_p.
9397 * flags.h (warn_if_disallowed_function_p,
9398 warn_disallowed_functions): Removed.
9399 * common.opt (Wdisallowed-function-list=): Removed.
9400 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
9401
9402 2009-03-28 Richard Guenther <rguenther@suse.de>
9403
9404 PR tree-optimization/38723
9405 * tree-ssa-pre.c (compute_avail): Add all default definitions to
9406 the entry block.
9407
9408 2009-03-28 Jan Hubicka <jh@suse.cz>
9409
9410 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
9411 test introduced by my previous patch.
9412
9413 2009-03-28 Richard Guenther <rguenther@suse.de>
9414
9415 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
9416 the PHIs value undefined.
9417
9418 2009-03-28 Jan Hubicka <jh@suse.cz>
9419
9420 * tree-pass.h (pass_fixup_cfg): New pass.
9421 * ipa-inline.c (inline_transform): Set
9422 always_inline_functions_inlined/after_inlining.
9423 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
9424 (pass_fixup_cfg): New pass.
9425 * passes.c (init_optimization_passes): Add fixup_cfg.
9426
9427 2009-03-28 Richard Guenther <rguenther@suse.de>
9428
9429 PR tree-optimization/38458
9430 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
9431 argument use the arguments copy-of value.
9432
9433 2009-03-28 Richard Guenther <rguenther@suse.de>
9434
9435 PR tree-optimization/38180
9436 * tree-ssa-ccp.c (get_default_value): Simplify.
9437 (likely_value): Likewise.
9438 (surely_varying_stmt_p): Properly handle VOP case.
9439 (ccp_initialize): Likewise.
9440 (ccp_fold): Handle propagating through *&.
9441 (fold_const_aggregate_ref): Also handle decls.
9442
9443 2009-03-28 Jan Hubicka <jh@suse.cz>
9444
9445 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
9446 * cgraph.h (cgraph_node): Likewise.
9447 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
9448 (cgraph_reset_node): Use process flag.
9449 (cgraph_mark_functions_to_output): Likewise.
9450 (cgraph_expand_function): Likewise.
9451 (cgraph_expand_all_functions): Likewise.
9452 (cgraph_output_in_order): Likewise.
9453 * dwarf2out.c (reference_to_unused): Likewise.
9454 * passes.c do_per_function_toporder): Likewise.
9455
9456 2009-03-28 Jan Hubicka <jh@suse.cz>
9457
9458 Bring from lto-branch:
9459
9460 2008-09-03 Doug Kwan <dougkwan@google.com>
9461
9462 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
9463 enums instead of reason strings.
9464 * cgraph.c (cgraph_create_edge): Same.
9465 (cgraph_inline_failed_string): New function.
9466 * cgraph.h (cgraph_inline_failed_t): New enum type.
9467 (cgraph_inline_failed_string): New prototype.
9468 (struct cgraph_edge): Change type of INLINED_FAILED from constant
9469 char pointer to cgraph_inline_failed_t.
9470 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
9471 (cgraph_default_inline_p): Ditto.
9472 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
9473 to cgraph_inline_failed_t pointer.
9474 * cif-code.def: New file.
9475 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
9476 reason string.
9477 (cgraph_check_inline_limits): Change type of REASON to pointer to
9478 cgraph_inline_failed_t. Replace reason strings with enums.
9479 (cgraph_default_inline_p): Ditto.
9480 (cgraph_recursive_inlining_p): Ditto.
9481 (update_caller_keys): Change type of FAILED_REASON to
9482 cgraph_inline_failed_t.
9483 (cgraph_set_inline_failed): Change type of REASON to pointer to
9484 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
9485 convert enums to strings for text output.
9486 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
9487 to be of type cgraph_inline_failed_t. Replace reason strings with
9488 enums. Call cgraph_inline_failed_string to covert enums
9489 to strings for text output.
9490 (cgraph_decide_inlining): Replace reason strings with enums.
9491 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
9492 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
9493 for text output.
9494 * tree-inline.c (expand_call_inline): Change type of REASON
9495 to cgraph_inline_failed_t. Replace reason strings with enums.
9496 Call cgraph_inline_failed_string for text output.
9497 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
9498 (cgraph.o): Ditto.
9499
9500 2009-03-28 Jan Hubicka <jh@suse.cz>
9501
9502 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
9503 cgraph_clone_node): Remove master clone handling.
9504 (cgraph_is_master_clone, cgraph_master_clone): Remove.
9505 * cgraph.h (master_clone): Remove.
9506 (cgraph_is_master_clone, cgraph_master_clone): Remove.
9507 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
9508 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
9509
9510 2009-03-28 Jan Hubicka <jh@suse.cz>
9511
9512 * cgraph.c (cgraph_function_body_availability): Functions declared
9513 inline are always safe to assume that it is not going to be replaced.
9514
9515 2009-03-28 Richard Guenther <rguenther@suse.de>
9516
9517 PR tree-optimization/38513
9518 * tree-ssa-pre.c (eliminate): Remove redundant stores.
9519 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
9520 EXC_PTR_EXPR and FILTER_EXPR.
9521 (get_ref_from_reference_ops): Likewise.
9522
9523 2009-03-28 Richard Guenther <rguenther@suse.de>
9524
9525 PR tree-optimization/38968
9526 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
9527 Use FLOOR_MOD_EXPR to compute misalignment.
9528
9529 2009-03-28 Richard Guenther <rguenther@suse.de>
9530
9531 PR tree-optimization/37795
9532 * tree.h (combine_comparisons): Declare.
9533 * fold-const.c (combine_comparisons): Export.
9534 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
9535 comparisons.
9536 (ifcombine_iforif): Use combine_comparisons.
9537
9538 2009-03-28 Jan Hubicka <jh@suse.cz>
9539
9540 * tree-eh.c (inlinable_call_p): New function.
9541 (make_eh_edges): Use it.
9542 (verify_eh_edges): Use it.
9543 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
9544 * except.c (reachable_next_level): Add inlinable_function argument
9545 (sjlj_find_directly_reachable_regions): Update.
9546 (add_reachable_handler): Do not set saw_any_handlers.
9547 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
9548 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
9549 Add new inlinable call parameter.
9550 (can_throw_internal, can_throw_external): Update.
9551 * except.h (can_throw_internal_1, can_throw_external_1,
9552 foreach_reachable_handler): Update declaration.
9553
9554 2009-03-28 Joseph Myers <joseph@codesourcery.com>
9555
9556 * config/arm/t-arm-coff, config/h8300/coff.h,
9557 config/i386/i386-aout.h, config/i386/i386-coff.h,
9558 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
9559 config/pdp11/2bsd.h, config/rs6000/aix41.h,
9560 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
9561 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
9562 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
9563 sys-types.h: Remove.
9564 * Makefile.in: Remove protoize and fixproto support and references
9565 in comments.
9566 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
9567 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
9568 Remove.
9569 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
9570 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
9571 unprotoize$(exeext).
9572 (rest.encap): Don't depend on $(STMP_FIXPROTO)
9573 (.PHONY): Don't depend on proto.
9574 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
9575 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
9576 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
9577 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
9578 build/gen-protos.o, build/scan.o, xsys-protos.h,
9579 build/fix-header$(build_exeext), build/fix-header.o,
9580 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
9581 stmp-install-fixproto): Remove.
9582 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
9583 SYSCALLS.c or fixproto files.
9584 (install-common): Don't install protoize.
9585 (install-headers-tar, install-headers-cpio, install-headers-cp):
9586 Don't depend on $(STMP_FIXPROTO).
9587 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
9588 install fixproto files or write out fixproto settings.
9589 (uninstall): Don't uninstall protoize.
9590 * config.gcc (use_fixproto): Remove.
9591 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
9592 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
9593 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
9594 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
9595 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
9596 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
9597 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
9598 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
9599 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
9600 * config/t-vxworks (STMP_FIXPROTO): Remove.
9601 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
9602 STMP_FIXPROTO): Remove.
9603 * config.in, configure: Regenerate.
9604 * crtstuff.c (gid_t, uid_t): Don't undefine.
9605 * doc/install.texi: Change m68k-coff to m68k-elf in example.
9606 (arm-*-coff, arm-*-aout: Remove target entries.
9607 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
9608 Remove mention of AIX 4.1.
9609 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
9610 * doc/invoke.texi (Running Protoize): Remove.
9611 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
9612 (Protoize Caveats): Remove.
9613 * tsystem.h: Update comments on headers assumed to exist.
9614
9615 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
9616
9617 * genautomata.c: Add a new year to the copyright. Add a new
9618 reference.
9619 (struct insn_reserv_decl): Add comments for member bypass_list.
9620 (find_bypass): Remove.
9621 (insert_bypass): New.
9622 (process_decls): Use insert_bypass.
9623 (output_internal_insn_latency_func): Output all bypasses with the
9624 same input insn in one switch case.
9625
9626 * rtl.def (define_bypass): Describe bypass choice.
9627 * doc/md.texi (define_bypass): Ditto.
9628
9629 2009-03-27 Richard Guenther <rguenther@suse.de>
9630
9631 * gimplify.c (mark_addressable): Export.
9632 * tree-flow.h (mark_addressable): Declare.
9633 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
9634 * tree-ssa.c (verify_phi_args): Verify that address taken
9635 variables have TREE_ADDRESSABLE set.
9636
9637 2009-03-27 Richard Guenther <rguenther@suse.de>
9638
9639 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
9640 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
9641 Do not mark decls TREE_ADDRESSABLE.
9642 (build_fold_addr_expr): Adjust.
9643 (fold_addr_expr): Remove.
9644 (fold_unary): Use build_fold_addr_expr.
9645 (fold_comparison): Likewise.
9646 (split_address_to_core_and_offset): Likewise.
9647 * coverage.c (tree_coverage_counter_addr): Mark the array decl
9648 TREE_ADDRESSABLE.
9649 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
9650 (gimplify_modify_expr_to_memcpy): Mark source and destination
9651 addressable.
9652 * omp-low.c (create_omp_child_function): Mark the object decl
9653 TREE_ADDRESSABLE.
9654 (lower_rec_input_clauses): Mark the var we take the address of
9655 TREE_ADDRESSABLE.
9656 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
9657
9658 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9659
9660 PR middle-end/39315
9661 * cfgexpand.c (expand_one_stack_var_at): Change alignment
9662 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
9663
9664 2009-03-27 Richard Guenther <rguenther@suse.de>
9665
9666 PR tree-optimization/39120
9667 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
9668 constraints.
9669 (handle_lhs_call): Process return constraints. Add escape
9670 constraints if necessary.
9671 (handle_const_call): Fill out return constraints. Make nested
9672 case more precise. Avoid consttmp if possible.
9673 (handle_pure_call): Fill out return constraints. Avoid
9674 callused if possible.
9675 (find_func_aliases): Simplify call handling.
9676
9677 2009-03-27 Richard Guenther <rguenther@suse.de>
9678
9679 PR tree-optimization/39120
9680 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
9681 as a representative.
9682 (solve_graph): Do propagate CALLUSED.
9683 (handle_pure_call): Use a scalar constraint from CALLUSED for
9684 the return value.
9685 (find_what_p_points_to): CALLUSED shall not appear in poins-to
9686 solutions.
9687
9688 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9689
9690 PR c/39323
9691 * c-common.c (handle_aligned_attribute): Properly check alignment
9692 overflow. Use (1U << i) instead of (1 << i).
9693
9694 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
9695
9696 * expr.h (get_mem_align_offset): Updated.
9697
9698 * tree.h (tree_decl_common): Change align to "unsigned int" and
9699 move it before pointer_alias_set.
9700
9701 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9702 Jakub Jelinek <jakub@redhat.com>
9703
9704 PR target/38034
9705 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
9706 gr_register_operand with gr_reg_or_0_operand.
9707 (cmpxchg_rel_di): Likewise.
9708 (sync_lock_test_and_set<mode>): Likewise.
9709
9710 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9711
9712 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
9713 (true_regnum): Likewise.
9714
9715 * rtlanal.c (subreg_info): Moved to ...
9716 * rtl.h (subreg_info): Here. New.
9717 (subreg_get_info): New.
9718
9719 * rtlanal.c (subreg_get_info): Make it extern.
9720
9721 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9722
9723 PR target/39472
9724 * config/i386/i386.c (ix86_abi): New.
9725 (override_options): Handle -mabi=.
9726 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
9727 (ix86_call_abi_override): Likewise.
9728 (init_cumulative_args): Likewise.
9729 (function_arg_advance): Likewise.
9730 (function_arg_64): Likewise.
9731 (function_arg): Likewise.
9732 (ix86_pass_by_reference): Likewise.
9733 (ix86_function_value_regno_p): Likewise.
9734 (ix86_build_builtin_va_list_abi): Likewise.
9735 (setup_incoming_varargs_64): Likewise.
9736 (is_va_list_char_pointer): Likewise.
9737 (ix86_init_machine_status): Likewise.
9738 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
9739 (ix86_function_type_abi): Return enum calling_abi. Rewrite
9740 for 64bit. Replace DEFAULT_ABI with ix86_abi.
9741 (ix86_function_abi): Make it static and return enum calling_abi.
9742 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
9743 with ix86_abi.
9744 (ix86_fn_abi_va_list): Updated.
9745
9746 * config/i386/i386.h (ix86_abi): New.
9747 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
9748 (CONDITIONAL_REGISTER_USAGE): Likewise.
9749 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
9750 (machine_function): Likewise.
9751
9752 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
9753 with ix86_abi.
9754 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
9755 (STACK_BOUNDARY): Likewise.
9756 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
9757
9758 * config/i386/i386.opt (mabi=): New.
9759
9760 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
9761 return enum calling_abi.
9762 (ix86_function_type_abi): Likewise.
9763 (ix86_function_abi): Removed.
9764
9765 * doc/invoke.texi: Document -mabi= option for x86.
9766
9767 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9768
9769 * builtins.c (real_dconstp): Delete.
9770 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
9771
9772 2009-03-27 Dodji Seketeli <dodji@redhat.com>
9773 Jakub Jelinek <jakub@redhat.com>
9774
9775 PR debug/37959
9776 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
9777 (gen_subprogram_die): When a function is explicit, generate the
9778 DW_AT_explicit attribute.
9779 * langhooks.h (struct lang_hooks_for_decls): Add
9780 function_decl_explicit_p langhook.
9781 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
9782 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
9783
9784 2009-03-27 Jakub Jelinek <jakub@redhat.com>
9785
9786 * builtins.c (fold_builtin_memory_op): Optimize memmove
9787 into memcpy if we can prove source and destination don't overlap.
9788
9789 * tree-inline.c: Include gt-tree-inline.h.
9790 (clone_fn_id_num): New variable.
9791 (clone_function_name): New function.
9792 (tree_function_versioning): Use it.
9793 * Makefile.in (GTFILES): Add tree-inline.c.
9794
9795 2009-03-27 Mark Mitchell <mark@codesourcery.com>
9796
9797 * BASE-VER: Change to 4.5.0.
9798
9799 2009-03-27 Xinliang David Li <davidxl@google.com>
9800
9801 PR tree-optimization/39557
9802 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
9803
9804 2009-03-27 Xinliang David Li <davidxl@google.com>
9805
9806 PR tree-optimization/39548
9807 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
9808 candidate check.
9809
9810 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9811
9812 * c-common.c (pointer_int_sum): Use %wd on return from
9813 tree_low_cst.
9814
9815 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9816
9817 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
9818 on return from tree_low_cst.
9819
9820 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
9821
9822 PR c++/36799
9823 * ginclude/stdarg.h (va_copy): Define also for
9824 __GXX_EXPERIMENTAL_CXX0X__.
9825
9826 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9827
9828 PR c++/35652
9829 * builtins.h (c_strlen): Do not warn here.
9830 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
9831 * c-common.c (pointer_int_sum): Take an explicit location.
9832 Warn about offsets out of bounds.
9833 * c-common.h (pointer_int_sum): Adjust declaration.
9834
9835 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9836
9837 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
9838 markup glitch.
9839
9840 2009-03-26 Jakub Jelinek <jakub@redhat.com>
9841
9842 PR c++/39554
9843 * opts.c (warn_if_disallowed_function_p): Don't assume
9844 get_callee_fndecl must return non-NULL.
9845
9846 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
9847
9848 PR rtl-optimization/39522
9849 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
9850 when reg_reloaded_valid is set.
9851
9852 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9853
9854 * config/spu/divv2df3.c: New file.
9855 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
9856 (DPBIT_FUNCS): Filter out _div_df.
9857
9858 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
9859
9860 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
9861 a jump insn, count that jump in the distance to the loop start.
9862
9863 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
9864
9865 PR target/39523
9866 * config/sh/sh.c (calc_live_regs): Fix condition for global
9867 registers except PIC_OFFSET_TABLE_REGNUM.
9868
9869 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
9870
9871 PR/39518
9872 * doc/invoke.texi (-mconsole): New.
9873 (-mcygwin): New.
9874 (-mno-cygwin): New.
9875 (-mdll): New.
9876 (-mnop-fun-dllimport): New.
9877 (-mthread): New.
9878 (-mwin32): New.
9879 (-mwindows): New.
9880 (sub section "i386 and x86-64 Windows Options"): New.
9881
9882 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
9883
9884 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
9885 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
9886
9887 2009-03-25 Richard Guenther <rguenther@suse.de>
9888
9889 PR middle-end/39497
9890 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
9891 of -Wno-error.
9892
9893 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
9894
9895 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
9896 neither of haifa/selective schedulers are working.
9897
9898 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9899
9900 * doc/invoke.texi (Debugging Options): Fix description of
9901 -fno-merge-debug-strings.
9902
9903 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
9904
9905 * config/cris/libgcc.ver: New version-script.
9906 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
9907
9908 * configure.ac <GAS features, nop mnemonic>: Add pattern
9909 crisv32-*-* for "nop".
9910 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
9911 * configure: Regenerate.
9912
9913 2009-03-24 Ira Rosen <irar@il.ibm.com>
9914
9915 PR tree-optimization/39529
9916 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
9917 mark_sym_for_renaming for the tag copied to the new vector
9918 pointer.
9919
9920 2009-03-24 Arthur Loiret <aloiret@debian.org>
9921
9922 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
9923 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
9924 EXTRA_SPEC_FUNCTIONS.
9925 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
9926 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
9927 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
9928 -march and -mtune options.
9929
9930 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
9931
9932 * config/m68k/t-rtems: Add m5329 multilib.
9933
9934 2009-03-24 Dodji Seketeli <dodji@redhat.com>
9935 Jakub Jelinek <jakub@redhat.com>
9936
9937 PR debug/39524
9938 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
9939 nodes.
9940
9941 2009-03-23 Jakub Jelinek <jakub@redhat.com>
9942
9943 PR c/39495
9944 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
9945 instead of c_parser_expression_conv, if original_code isn't one of the
9946 4 allowed comparison codes, fail.
9947
9948 2009-03-23 Richard Guenther <rguenther@suse.de>
9949
9950 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
9951 * tree.h (struct tree_type): Likewise.
9952 * reload.h (struct insn_chain): Likewise.
9953 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
9954 * function.h (struct function): Likewise.
9955 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
9956
9957 2009-03-23 Jakub Jelinek <jakub@redhat.com>
9958
9959 PR tree-optimization/39516
9960 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
9961
9962 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
9963
9964 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
9965 should be set true if BITS_PER_WORD of target is bigger than 32
9966
9967 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
9968
9969 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
9970 Translate -B-options to -rpath-link. Correct existing
9971 rpath-link and conditionalize on !nostdlib.
9972
9973 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9974
9975 * doc/extend.texi (Function Attributes, Variable Attributes):
9976 Fix typos.
9977 * doc/invoke.texi (Debugging Options, Optimize Options)
9978 (i386 and x86-64 Options, MCore Options): Likewise.
9979
9980 2009-03-20 Jakub Jelinek <jakub@redhat.com>
9981
9982 PR debug/37890
9983 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
9984 it for block local namespace aliases.
9985 (gen_decl_die): Pass context_die to gen_namespace_die.
9986
9987 2009-03-19 Jakub Jelinek <jakub@redhat.com>
9988
9989 PR c/39495
9990 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
9991 minimum or maximum value.
9992
9993 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
9994
9995 * reginfo.c (globalize_reg): Recompute derived reg sets.
9996
9997 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
9998
9999 PR target/39063
10000 * libgcc2.c (mprotect): Do not use signed arguments for
10001 VirtualProtect, use DWORD arguments. Also fix the 'may
10002 be used uninitialized' warning for the np variable.
10003
10004 2009-03-19 Jakub Jelinek <jakub@redhat.com>
10005
10006 PR target/39496
10007 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
10008 functions using regparm calling conventions when not optimizing.
10009 (ix86_function_sseregparm): Similarly for sseregparm calling
10010 conventions.
10011
10012 2009-03-19 Li Feng <nemokingdom@gmail.com>
10013
10014 PR middle-end/39500
10015 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
10016 dependence if the first conflict is after niter iterations.
10017
10018 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
10019
10020 PR middle-end/38609
10021 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
10022 functions with dynamic stack-pointer adjustments.
10023
10024 2009-03-19 Ben Elliston <bje@au.ibm.com>
10025
10026 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
10027 option; change to -msdata=data.
10028
10029 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10030
10031 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
10032 and -fopenmp.
10033
10034 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
10035
10036 PR target/35180
10037 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
10038
10039 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
10040
10041 * doc/invoke.texi (Code Gen Options): Expand discussion of
10042 -fno-common.
10043
10044 2009-03-18 Jakub Jelinek <jakub@redhat.com>
10045
10046 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
10047 * matrix-reorg.c (struct matrix_info): Likewise.
10048 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
10049 * rtl.h (struct mem_attrs): Likewise.
10050 * df.h (struct df): Likewise.
10051 * tree-data-ref.h (struct data_dependence_relation): Likewise.
10052 * ira-int.h (struct ira_allocno): Likewise.
10053 * df-scan.c (struct df_collection_rec): Likewise.
10054 * ira.c (struct equivalence): Likewise.
10055 * function.c (struct temp_slot): Likewise.
10056 * cfgloop.h (struct loop): Likewise.
10057
10058 PR debug/39485
10059 * function.c (use_register_for_decl): When not optimizing, disregard
10060 register keyword for variables with types containing methods.
10061
10062 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
10063
10064 PR middle-end/39447
10065 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
10066 (is_simple_operand): Call contains_component_ref_p before calling data
10067 reference analysis that would fail on COMPONENT_REFs.
10068
10069 * tree-vrp.c (search_for_addr_array): Fix formatting.
10070
10071 2009-03-18 Richard Guenther <rguenther@suse.de>
10072
10073 * tree-vect-transform.c (vect_loop_versioning): Fold the
10074 generated comparisons.
10075 * tree-vectorizer.c (set_prologue_iterations): Likewise.
10076 (slpeel_tree_peel_loop_to_edge): Likewise.
10077
10078 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10079
10080 PR middle-end/37805
10081 * opts.c (print_specific_help): In addition to `undocumented',
10082 accept `separate' and `joined' flags if passed alone. Describe
10083 output by the first matched one of those.
10084 (common_handle_option): Skip over empty strings.
10085 * gcc.c (display_help): Fix help string for `--help='.
10086 * doc/invoke.texi (Option Summary, Overall Options): With
10087 `--help=', classes and qualifiers can both be repeated, but
10088 only the latter can be negated. One should not pass only
10089 negated qualifiers. Fix markup and examples.
10090
10091 Revert
10092 2008-10-14 Jakub Jelinek <jakub@redhat.com>
10093 PR middle-end/37805
10094 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
10095 and -fhelp=separate.
10096
10097 2009-03-17 Jing Yu <jingyu@google.com>
10098
10099 PR middle-end/39378
10100 * function.h (struct rtl_data): Move is_thunk from here...
10101 (struct function): ...to here.
10102 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
10103 * varasm.c (assemble_start_function): Change is_thunk from crtl to
10104 cfun.
10105 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
10106 cfun.
10107 (alpha_does_function_need_gp, alpha_start_function): Likewise.
10108 (alpha_output_function_end_prologue): Likewise.
10109 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
10110 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
10111 (rs6000_output_function_epilogue): Likewise.
10112 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
10113
10114 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
10115
10116 PR target/39482
10117 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
10118 from different units in a single alternative.
10119 (*truncdfsf_i387): Ditto.
10120 (*truncxfsf2_mixed): Ditto.
10121 (*truncxfdf2_mixed): Ditto.
10122
10123 2009-03-17 Jakub Jelinek <jakub@redhat.com>
10124
10125 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
10126 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
10127
10128 PR debug/39474
10129 * tree-ssa-live.c (remove_unused_locals): Don't remove local
10130 unused non-artificial variables when not optimizing.
10131
10132 PR debug/39471
10133 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
10134 DW_TAG_imported_module even if decl is IMPORTED_DECL with
10135 NAMESPACE_DECL in its DECL_INITIAL.
10136
10137 PR middle-end/39443
10138 * optabs.c (set_user_assembler_libfunc): New function.
10139 * expr.h (set_user_assembler_libfunc): New prototype.
10140 * c-common.c: Include libfuncs.h.
10141 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
10142 for memcmp, memset, memcpy, memmove and abort.
10143 * Makefile.in (c-common.o): Depend on libfuncs.h.
10144
10145 PR debug/39412
10146 * dwarf2out.c (gen_inlined_enumeration_type_die,
10147 gen_inlined_structure_type_die, gen_inlined_union_type_die,
10148 gen_tagged_type_instantiation_die): Removed.
10149 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
10150 do nothing.
10151
10152 2009-03-17 Janis Johnson <janis187@us.ibm.com>
10153
10154 PR testsuite/38526
10155 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
10156 its use.
10157 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
10158 (check-parallel-%): Ditto.
10159 (check-consistency): Ditto.
10160
10161 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
10162
10163 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
10164 local variable rhs by NULL_TREE.
10165
10166 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
10167
10168 PR target/39477
10169 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
10170
10171 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
10172
10173 PR target/39476
10174 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
10175
10176 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
10177
10178 PR target/39473
10179 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
10180 for ms->sysv ABI calls only in 64bit mode.
10181
10182 * config/i386/i386.md (untyped_call): Support 32bit.
10183
10184 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
10185
10186 * doc/extend.texi: Replace x86_65 with x86_64.
10187
10188 2009-03-16 Jakub Jelinek <jakub@redhat.com>
10189
10190 PR tree-optimization/39455
10191 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
10192 mismatches for POINTER_TYPE_P (type).
10193 (number_of_iterations_le): Likewise.
10194
10195 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
10196
10197 * config/picochip/picochip.c: Removed profiling support.
10198 * config/picochip/picochip.md: Removed profiling instruction.
10199 * config/picochip/picochip.h: Removed profiling builtin.
10200
10201 2009-03-16 Joseph Myers <joseph@codesourcery.com>
10202
10203 * doc/install.texi (--with-host-libstdcxx): Document.
10204
10205 2009-03-14 Anatoly Sokolov <aesok@post.ru>
10206
10207 PR target/34299
10208 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
10209 generate a warning if the function name does not begin with
10210 "__vector" and the function has either the 'signal' or 'interrupt'
10211 attribute, from here to ...
10212 (avr_declare_function_name): ...here. New function.
10213 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
10214 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
10215
10216 2009-03-14 Jakub Jelinek <jakub@redhat.com>
10217
10218 PR bootstrap/39454
10219 * cse.c (fold_rtx): Don't modify original const_arg1 when
10220 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
10221 separate variable instead.
10222 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
10223 from out of range shift counts.
10224 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
10225
10226 2009-03-13 Catherine Moore <clm@codesourcery.com>
10227
10228 * config/i386/x-mingw32 (host-mingw32.o): Replace
10229 diagnostic.h with $(DIAGNOSTIC_H).
10230
10231 2009-03-12 Jakub Jelinek <jakub@redhat.com>
10232
10233 PR target/39431
10234 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
10235 predicate.
10236 * config/i386/sync.md (sync_compare_and_swap<mode>,
10237 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
10238 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
10239 into a register.
10240 (sync_double_compare_and_swapdi_pic,
10241 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
10242 cmpxchg8b_pic_memory_operand instead of just memory_operand.
10243
10244 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10245
10246 PR target/39445
10247 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
10248
10249 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10250
10251 PR target/39327
10252 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
10253 (avx_addsubv4df3): Likewise.
10254 (*avx_addsubv4sf3): Likewise.
10255 (sse3_addsubv4sf3): Likewise.
10256
10257 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10258
10259 PR target/38824
10260 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
10261
10262 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
10263
10264 PR debug/39432
10265 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
10266 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
10267 registers for allocnos created from user-defined variables.
10268
10269 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10270
10271 PR target/39181
10272 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
10273 of non-integer mode as well.
10274
10275 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
10276
10277 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
10278 for functions for which the parameter types are unknown.
10279
10280 2009-03-11 Jakub Jelinek <jakub@redhat.com>
10281
10282 PR target/39137
10283 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
10284 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
10285 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
10286 * config/i386/i386.c (ix86_local_alignment): For
10287 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
10288 long long variables on the stack to avoid dynamic realignment.
10289 Allow the first argument to be a decl rather than type.
10290 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
10291
10292 2009-03-11 Nick Clifton <nickc@redhat.com>
10293
10294 PR target/5362
10295 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
10296 options.
10297 Add description to mno-lsim option.
10298 * config/mcore/mcore.h: Remove comment about deprecated m4align
10299 option.
10300 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
10301 * doc/invoke.texi: Add description of mno-lsim and
10302 mstack-increment options.
10303
10304 * config/fr30/fr30.opt: Document the -mno-lsim option.
10305 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
10306 and -mno-lsim options.
10307
10308 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10309
10310 * fold-const.c (fold_comparison): Only call fold_inf_compare
10311 if the mode supports infinities.
10312
10313 2009-03-11 Jason Merrill <jason@redhat.com>
10314
10315 PR debug/39086
10316 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
10317 end already did. Notice GIMPLE_CALL modifications of the result.
10318 Don't copy debug information from an ignored decl or a decl from
10319 another function.
10320
10321 2009-03-10 Richard Guenther <rguenther@suse.de>
10322 Nathan Froyd <froydnj@codesourcery.com>
10323
10324 PR middle-end/37850
10325 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
10326 (__divMODE3): Likewise.
10327
10328 2009-03-09 Jakub Jelinek <jakub@redhat.com>
10329
10330 PR tree-optimization/39394
10331 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
10332 DECL_SIZE_UNIT of variable length FIELD_DECLs.
10333
10334 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10335
10336 * recog.c (verfiy_changes): Disallow renaming of hard regs in
10337 inline asms for register asm ("") declarations.
10338
10339 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
10340
10341 * fold-const.c (fold_unary): Fix comment.
10342
10343 2009-03-07 Jan Hubicka <jh@suse.cz>
10344
10345 PR target/39361
10346 * tree-inline.c (setup_one_parameter): Do replacement of const
10347 argument by constant in SSA form.
10348
10349 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10350
10351 PR middle-end/38028
10352 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
10353 determine alignment passed to assign_stack_local.
10354 (assign_parms_unsplit_complex): Likewise.
10355 * except.c (sjlj_build_landing_pads): Likewise.
10356
10357 2009-03-06 Jakub Jelinek <jakub@redhat.com>
10358
10359 PR middle-end/39360
10360 * tree-flow.h (add_referenced_var): Return bool instead of void.
10361 * tree-dfa.c (add_referenced_var): Return result of
10362 referenced_var_check_and_insert call.
10363 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
10364 of referenced_var_check_and_insert.
10365
10366 PR debug/39372
10367 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
10368 (gen_variable_die): Emit DW_AT_location on abstract static variable's
10369 DIE, don't emit it if abstract origin already has it.
10370 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
10371 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
10372
10373 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10374
10375 * genpreds.c (needs_variable): Fix parentheses at variable name
10376 detection.
10377 (write_tm_constrs_h): Indent generated code.
10378
10379 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10380
10381 * doc/extend.texi (Function Attributes): Add documentation
10382 for isr attributes.
10383
10384 2009-03-06 Jakub Jelinek <jakub@redhat.com>
10385
10386 PR debug/39387
10387 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
10388 take locus from its DECL_SOURCE_LOCATION instead of input_location.
10389
10390 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
10391
10392 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
10393 the loop as bad.
10394
10395 2009-03-05 Jakub Jelinek <jakub@redhat.com>
10396
10397 PR debug/39379
10398 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
10399 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
10400
10401 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
10402
10403 * config/i386/i386.md (R8_REG, R9_REG): New constants.
10404 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
10405 constants instead of magic numbers.
10406 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
10407 (QI_REG_P): Ditto.
10408 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
10409 (x86_64_ms_abi_int_parameter_registers): Ditto.
10410 (x86_64_int_return_registers): Ditto.
10411 (ix86_maybe_switch_abi): Ditto.
10412 (ix86_expand_call): Ditto for clobbered_registers array.
10413 (ix86_hard_regno_mode_ok): Ditto.
10414 (x86_extended_QIreg_mentioned_p): Ditto.
10415
10416 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
10417
10418 PR tree-optimization/39349
10419 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
10420
10421 * combine.c (gen_lowpart_for_combine): Use omode when generating
10422 clobber.
10423
10424 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
10425
10426 PR rtl-optimization/39235
10427 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
10428
10429 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
10430
10431 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
10432
10433 2009-03-04 Richard Guenther <rguenther@suse.de>
10434
10435 PR tree-optimization/39362
10436 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
10437 that occur in abnormal PHIs should be varying.
10438
10439 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
10440
10441 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
10442 Extend comments.
10443 (simple_iv): Take loop as an argument instead of statement.
10444 * tree-scalar-evolution.h (simple_iv): Declaration changed.
10445 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
10446 to simple_iv.
10447 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
10448 Ditto.
10449 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
10450 * matrix-reorg.c (analyze_transpose): Ditto.
10451 * tree-data-ref.c (dr_analyze_innermost): Ditto.
10452 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
10453 * tree-predcom.c (ref_at_iteration): Ditto.
10454 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
10455
10456 2009-03-04 Richard Guenther <rguenther@suse.de>
10457
10458 PR tree-optimization/39358
10459 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
10460 escaped_id and callused_id.
10461 (solve_graph): Likewise.
10462
10463 2009-03-04 Richard Guenther <rguenther@suse.de>
10464
10465 PR tree-optimization/39339
10466 * tree-sra.c (try_instantiate_multiple_fields): Make it
10467 no longer ICE on the above.
10468
10469 2009-03-03 Joseph Myers <joseph@codesourcery.com>
10470
10471 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
10472 that fits within Pmode.
10473
10474 2009-03-03 Steve Ellcey <sje@cup.hp.com>
10475
10476 PR middle-end/10109
10477 * tm.texi (LIBCALL_VALUE): Update description.
10478
10479 2009-03-03 Steve Ellcey <sje@cup.hp.com>
10480
10481 PR middle-end/34443
10482 * doc/extend.texi (section): Update description.
10483
10484 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
10485
10486 PR middle-end/39345
10487 * tree-inline.c (remapped_type): New.
10488 (can_be_nonlocal): Call remapped_type instead of remap_type.
10489
10490 2009-03-03 Jakub Jelinek <jakub@redhat.com>
10491
10492 PR fortran/39354
10493 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
10494 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
10495
10496 2009-03-03 Richard Guenther <rguenther@suse.de>
10497
10498 PR middle-end/39272
10499 * tree.c (tree_nonartificial_location): New function.
10500 * tree.h (tree_nonartificial_location): Declare.
10501 * builtins.c (expand_builtin_memory_chk): Provide location
10502 of the call location for artificial function pieces.
10503 (maybe_emit_chk_warning): Likewise.
10504 (maybe_emit_sprintf_chk_warning): Likewise.
10505 (maybe_emit_free_warning): Likewise.
10506 * expr.c (expand_expr_real_1): Likewise.
10507
10508 2009-03-03 Jakub Jelinek <jakub@redhat.com>
10509
10510 PR tree-optimization/39343
10511 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
10512 COMPONENT_REF t has ARRAY_TYPE.
10513
10514 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
10515
10516 PR middle-end/39335
10517 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
10518 when the type precision of the induction variable should be
10519 larger than the type precision of nit.
10520 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
10521 * graphite.c (graphite_loop_normal_form): Same.
10522 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
10523
10524 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
10525
10526 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
10527 (*call_1_rex64_ms_sysv): Use named constants instead of magic
10528 numbers to describe clobbered registers.
10529 (*call_value_0_rex64_ms_sysv): Ditto.
10530 * config/i386/mmx.md (mmx_emms): Ditto.
10531 (mmx_femms): Ditto.
10532
10533 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
10534
10535 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
10536 of ABI_64.
10537
10538 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10539
10540 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
10541 (spu_section_type_flags): New function.
10542
10543 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
10544
10545 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
10546 reg_class_contents of FLOAT_REGS into a temporary.
10547
10548 2009-03-02 Richard Guenther <rguenther@suse.de>
10549 Ira Rosen <irar@il.ibm.com>
10550
10551 PR tree-optimization/39318
10552 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
10553 information to the vectorized statement.
10554
10555 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
10556
10557 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
10558 variable. Use defined names instead of magic constants for REX SSE
10559 registers.
10560
10561 2009-03-01 Richard Guenther <rguenther@suse.de>
10562
10563 PR tree-optimization/39331
10564 * omp-low.c (lower_send_shared_vars): Do not receive new
10565 values for the reference of DECL_BY_REFERENCE parms or results.
10566
10567 2009-03-01 Jan Hubicka <jh@suse.cz>
10568
10569 PR debug/39267
10570 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
10571 BLOCK_NONLOCALIZED_VAR): New macros.
10572 (tree_block): Add nonlocalized_vars.
10573 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
10574 gen_decl_die): Add origin argument. Allow generation of die with
10575 origin at hand only.
10576 (gen_member_die, gen_type_die_with_usage, force_decl_die,
10577 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
10578 of gen_*.
10579 (gen_block_die): Fix checking for unused blocks.
10580 (process_scope_var): Break out from .... ; work with origins only.
10581 (decls_for_scope) ... here; process nonlocalized list.
10582 (dwarf2out_ignore_block): Look for nonlocalized vars.
10583 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
10584 vars.
10585 (dump_scope_block): Dump them.
10586 * tree-inline.c (remap_decls): Handle nonlocalized vars.
10587 (remap_block): Likewise.
10588 (can_be_nonlocal): New predicate.
10589 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
10590
10591 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10592
10593 * configure: Regenerate.
10594
10595 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10596
10597 * optc-gen.awk: No need to duplicate option flags twice.
10598 Reuse help texts for duplicate options which do not have any.
10599
10600 * gcc.c (display_help): Document --version.
10601
10602 * gcc.c (main): If print_help_list and verbose_flag, ensure
10603 driver output comes before subprocess output.
10604
10605 * optc-gen.awk: Assign all remaining fields to help string,
10606 space-separated, for multi-line help in *.opt.
10607
10608 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
10609 -Wno-pedantic-ms-format is for MinGW targets only.
10610
10611 * doc/options.texi (Option file format): Fix bad indentation,
10612 restoring dropped sentence.
10613
10614 2009-02-28 Jan Hubicka <jh@suse.cz>
10615
10616 * tree-inline.c (tree_function_versioning): Output debug info.
10617
10618 2009-02-28 Jan Hubicka <jh@suse.cz>
10619
10620 PR debug/39267
10621 * tree-inline.c (setup_one_parameter): Do not copy propagate
10622 arguments when not optimizing.
10623
10624 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
10625
10626 PR target/39327
10627 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
10628 (avx_addsubv4df3): Likewise.
10629 (*avx_addsubv4sf3): Likewise.
10630 (sse3_addsubv4sf3): Likewise.
10631 (*avx_addsubv2df3): Likewise.
10632 (sse3_addsubv2df3): Likewise.
10633 (avx_unpckhps256): Correct item selectors.
10634 (avx_unpcklps256): Likewise.
10635 (avx_unpckhpd256): Likewise.
10636 (avx_unpcklpd256): Likewise.
10637
10638 2009-02-28 Jan Hubicka <jh@suse.cz>
10639
10640 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
10641 static vars.
10642 (copy_arguments_for_versioning): If var is declared don't declare it.
10643 (tree_function_versioning): First setup substitutions and then copy
10644 args.
10645
10646 2009-02-27 Jan Hubicka <jh@suse.cz>
10647
10648 PR debug/39267
10649 * cgraph.h (varpool_output_debug_info): Remove.
10650 * cgraphunit.c (varpool_output_debug_info): Remove.
10651 * dwarf2out.c (deferred_locations_struct): New struct
10652 (deferred_locations): New type.
10653 (deferred_locations_list): New static var.
10654 (deffer_location): New function.
10655 (gen_variable_die): Use it.
10656 (decls_for_scope): Output info on local static vars.
10657 (dwarf2out_finish): Process deferred locations.
10658 * varpool.c (varpool_output_debug_info): Remove.
10659
10660 2009-02-27 Jan Hubicka <jh@suse.cz>
10661
10662 PR debug/39267
10663 * tree.h (TREE_PROTECTED): Fix comment.
10664 (BLOCK_HANDLER_BLOCK): Remove.
10665 (struct tree_block): Remove handler_block add body_block.
10666 (inlined_function_outer_scope_p): New.
10667 (is_body_block): Remove.
10668 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
10669 * dwarf2out.c (is_inlined_entry_point): Remove.
10670 (add_high_low_attributes): Use inlined_function_outer_scope_p.
10671 (gen_block_die): Use is_inlined_entry_point check. Remove body block
10672 code.
10673 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
10674 * gimplify.c (gimplify_expr): Gimplify body blocks.
10675 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
10676 block with multiple subblocks.
10677 (dump_scope_block): Prettier output; dump more flags and info.
10678 (dump_scope_blocks): New.
10679 (remove_unused_locals): Use dump_scope_blocks.
10680 * tree-flow.h (dump_scope_blocks): Declare.
10681 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
10682 * stmt.c (is_body_block): Remove.
10683 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
10684 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
10685
10686 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
10687
10688 PR middle-end/39308
10689 * graphite.c (graphite_loop_normal_form): Do not call
10690 number_of_iterations_exit from a gcc_assert.
10691
10692 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10693
10694 * config/s390/s390.c (s390_swap_cmp): Look for conditional
10695 jumps if COND is NULL.
10696 (find_cond_jump): New function.
10697 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
10698 * config/s390/s390.md: Remove z10_cobra attribute value.
10699
10700 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
10701
10702 * config/alpha/alpha.h (alpha_expand_mov): Return false if
10703 force_const_mem returns NULL_RTX.
10704
10705 2009-02-26 Jan Hubicka <jh@suse.cz>
10706
10707 PR debug/39267
10708 * cgraph.h (varpool_output_debug_info): Remove.
10709 * cgraphunit.c (varpool_output_debug_info): Remove.
10710 * dwarf2out.c (deferred_locations_struct): New struct
10711 (deferred_locations): New type.
10712 (deferred_locations_list): New static var.
10713 (deffer_location): New function.
10714 (gen_variable_die): Use it.
10715 (decls_for_scope): Output info on local static vars.
10716 (dwarf2out_finish): Process deferred locations.
10717 * varpool.c (varpool_output_debug_info): Remove.
10718
10719 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
10720
10721 PR rtl-optimization/39241
10722 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
10723 to subreg_offset_representable_p.
10724
10725 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
10726
10727 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
10728 execute function prototype. Get f and nregs from max_reg_num
10729 and get_insns. Remove the first backward pass as it's dead,
10730 guard the forward pass by flag_expensive_optimizations.
10731 (rest_of_handle_regmove): Delete.
10732 (pass_regmove): Replace it with regmove_optimize.
10733
10734 2009-02-25 Martin Jambor <mjambor@suse.cz>
10735
10736 PR tree-optimization/39259
10737 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
10738 calls_alloca function flags.
10739 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
10740 calls are detected.
10741
10742 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
10743
10744 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
10745 flags_set_1_rtx, flags_set_1_set): Delete.
10746 (regmove_optimize): Do not call mark_flags_life_zones.
10747
10748 2009-02-24 Julian Brown <julian@codesourcery.com>
10749
10750 PR target/35965
10751 * config/arm/arm.c (require_pic_register): Only set
10752 cfun->machine->pic_reg once per function.
10753
10754 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
10755
10756 * doc/invoke.texi (Link Options): Document an easier way to pass
10757 options that take arguments to the GNU linker using -Xlinker and -Wl.
10758
10759 2009-02-24 Steve Ellcey <sje@cup.hp.com>
10760
10761 PR target/33785
10762 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
10763
10764 2009-02-24 Richard Guenther <rguenther@suse.de>
10765
10766 PR debug/39285
10767 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
10768
10769 2009-02-24 Richard Guenther <rguenther@suse.de>
10770 Zdenek Dvorak <ook@ucw.cz>
10771
10772 PR tree-optimization/39233
10773 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
10774 from converting them to a generic type.
10775
10776 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
10777
10778 PR tree-optimization/39260
10779 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
10780 contains a condition with a real type.
10781 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
10782
10783 2009-02-23 Jason Merrill <jason@redhat.com>
10784
10785 PR c++/38880
10786 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
10787 narrowing_initializer_constant_valid_p.
10788 (narrowing_initializer_constant_valid_p): Don't return
10789 null_pointer_node for adding a pointer to itself.
10790
10791 2009-02-23 Jan Hubicka <jh@suse.cz>
10792
10793 PR c/12245
10794 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
10795 resizing.
10796
10797 2009-02-23 Jan Hubicka <jh@suse.cz>
10798
10799 PR tree-optimization/37709
10800 * tree.c (block_ultimate_origin): Move here from dwarf2out.
10801 * tree.h (block_ultimate_origin): Declare.
10802 * dwarf2out.c (block_ultimate_origin): Move to tree.c
10803 * tree-ssa-live.c (remove_unused_scope_block_p):
10804 Eliminate blocks containig no instructions nor live variables nor
10805 nested blocks.
10806 (dump_scope_block): New function.
10807 (remove_unused_locals): Enable removal of dead blocks by default;
10808 enable dumping at TDF_DETAILS.
10809
10810 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
10811
10812 * config/i386/i386.c (classify_argument): Don't allow COImode
10813 and OImode.
10814 (function_arg_advance_32): Don't allow OImode.
10815 (function_arg_32): Likewise.
10816 (function_value_32): Likewise.
10817 (return_in_memory_32): Likewise.
10818 (function_arg_64): Remove OImode comment.
10819
10820 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
10821
10822 PR target/39261
10823 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
10824 ix86_expand_vector_set for V4DImode in 64bit mode only.
10825 (ix86_expand_vector_init_one_var): Likewise.
10826
10827 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
10828
10829 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
10830
10831 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
10832
10833 PR bootstrap/39257
10834 * loop-iv.c: Revert last change.
10835 * emit-rtl.c: Likewise.
10836
10837 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
10838
10839 PR target/39256
10840 * config/i386/i386.c (type_natural_mode): Remove an extra
10841 space in the warning message.
10842 (function_value_32): Handle 32-byte vector modes.
10843 (return_in_memory_32): Likewise.
10844
10845 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
10846
10847 * loop-iv.c (truncate_value): New function.
10848 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
10849 of lowpart_subreg.
10850 (lowpart_subreg): Move to...
10851 * emit-rtl.c: ...here.
10852
10853 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
10854
10855 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
10856 accidental and undocumented change at revision 140860.
10857
10858 2009-02-21 Joseph Myers <joseph@codesourcery.com>
10859
10860 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
10861 take gimple_seq * arguments.
10862 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
10863 types_compatible_p langhook.
10864
10865 2009-02-20 Mark Mitchell <mark@codesourcery.com>
10866 Joseph Myers <joseph@codesourcery.com>
10867
10868 * config/arm/arm.c (arm_builtin_va_list): New function.
10869 (arm_expand_builtin_va_start): Likewise.
10870 (arm_gimplify_va_arg_expr): Likewise.
10871 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
10872 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
10873 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
10874 (va_list_type): New variable.
10875 (arm_mangle_type): Mangle va_list_type appropriately.
10876
10877 2009-02-20 Jakub Jelinek <jakub@redhat.com>
10878
10879 PR middle-end/39157
10880 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
10881 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
10882 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
10883 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
10884 parameter to 1000 for -O1 by default.
10885 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
10886 parameter.
10887 * loop-invariant.c: Include params.h.
10888 (move_loop_invariants): Don't call move_single_loop_invariants on
10889 very large loops.
10890
10891 2009-02-20 Jaka Mocnik <jaka@xlab.si>
10892
10893 * calls.c (emit_library_call_value_1): Use slot_offset instead of
10894 offset when calculating bounds for indexing stack_usage_map. Fixes
10895 a buffer overflow with certain target setups.
10896
10897 2009-02-20 Jakub Jelinek <jakub@redhat.com>
10898
10899 PR target/39240
10900 * calls.c (expand_call): Clear try_tail_call if caller and callee
10901 disagree in promotion of function return value.
10902
10903 2009-02-19 Jakub Jelinek <jakub@redhat.com>
10904
10905 PR target/39175
10906 * c-common.c (c_determine_visibility): If visibility changed and
10907 DECL_RTL has been already set, call make_decl_rtl to update symbol
10908 flags.
10909
10910 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
10911
10912 PR c++/39188
10913 * varasm.c (assemble_variable): Don't check DECL_NAME when
10914 globalizing a variable.
10915
10916 2009-02-19 Joseph Myers <joseph@codesourcery.com>
10917
10918 PR c/38483
10919 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
10920 expression before any __builtin_trap call.
10921 * c-typeck.c (build_function_call): Convert and check function
10922 arguments before generating a call to a trap. Evaluate the
10923 function arguments before the trap.
10924
10925 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
10926
10927 PR target/39228
10928 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
10929 (UNSPEC_FXAM_MEM): New unspec.
10930 (fxam<mode>2_i387_with_temp): New insn and split pattern.
10931 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
10932 memory using fxam<mode>2_i387_with_temp to remove excess precision.
10933
10934 2009-02-19 Richard Guenther <rguenther@suse.de>
10935
10936 PR tree-optimization/39207
10937 PR tree-optimization/39074
10938 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
10939 storedanything_tree): New.
10940 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
10941 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
10942 (build_succ_graph): Add edges from STOREDANYTHING to all
10943 non-direct nodes.
10944 (init_base_vars): Initialize STOREDANYTHING.
10945 (compute_points_to_sets): Free substitution info after
10946 building the succ graph.
10947 (ipa_pta_execute): Likewise.
10948
10949 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
10950 field.
10951 (do_ds_constraint): Do not add to special var or non-pointer
10952 field solutions.
10953 (type_could_have_pointers): Split out from ...
10954 (could_have_pointers): ... here. For arrays use the element type.
10955 (create_variable_info_for): Initialize may_have_pointers.
10956 (new_var_info): Likewise.
10957 (handle_lhs_call): Make the HEAP variable unknown-sized.
10958 (intra_create_variable_infos): Use a type with pointers for
10959 PARM_NOALIAS, make it unknown-sized.
10960
10961 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
10962
10963 PR target/39224
10964 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
10965
10966 2009-02-18 Jason Merrill <jason@redhat.com>
10967
10968 PR target/39179
10969 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
10970 value if DECL_EXTERNAL.
10971 * tree-sra.c (sra_walk_gimple_assign): Likewise.
10972 * target.h (gcc_target::binds_local_p): Clarify "module".
10973 * tree.h (TREE_PUBLIC): Clarify "module".
10974
10975 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
10976
10977 PR target/38891
10978 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
10979 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
10980
10981 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
10982
10983 PR target/39082
10984 * c.opt (Wabi): Support C and ObjC.
10985 (Wpsabi): New.
10986
10987 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
10988
10989 * config/i386/i386.c (classify_argument): Warn once about the ABI
10990 change when passing union with long double.
10991
10992 * doc/invoke.texi: Update -Wabi for warning psABI changes.
10993
10994 2009-02-18 Joseph Myers <joseph@codesourcery.com>
10995
10996 PR c/35447
10997 * c-parser.c (c_parser_compound_statement): Always enter and leave
10998 a scope.
10999
11000 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11001
11002 PR target/34587
11003 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
11004
11005 2009-02-18 Jakub Jelinek <jakub@redhat.com>
11006
11007 PR tree-optimization/36922
11008 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
11009 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
11010 Likewise.
11011
11012 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11013
11014 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
11015 to 0 for EABI64.
11016
11017 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11018
11019 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
11020
11021 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11022
11023 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
11024 tree sharing.
11025
11026 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
11027 Richard Sandiford <rdsandiford@googlemail.com>
11028
11029 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
11030 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
11031 (loongson_biadd): ...this.
11032
11033 2009-02-17 Richard Guenther <rguenther@suse.de>
11034
11035 PR tree-optimization/39202
11036 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
11037 a var make sure to follow existing collapses.
11038
11039 2009-02-17 Richard Guenther <rguenther@suse.de>
11040
11041 PR middle-end/39214
11042 * langhooks.c (lhd_print_error_function): Check for NULL block.
11043
11044 2009-02-17 Richard Guenther <rguenther@suse.de>
11045
11046 PR tree-optimization/39204
11047 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
11048 of the PHI arg.
11049
11050 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
11051
11052 * config/soft-fp/double.h: Update from glibc CVS.
11053
11054 2009-02-17 Richard Guenther <rguenther@suse.de>
11055
11056 PR tree-optimization/39207
11057 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
11058 strict-aliasing warnings for pointers pointing to NULL.
11059
11060 2009-02-16 Joseph Myers <joseph@codesourcery.com>
11061
11062 PR c/35446
11063 * c-parser.c (c_parser_braced_init): Call pop_init_level when
11064 skipping until next close brace.
11065
11066 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
11067
11068 PR target/37049
11069 * config/i386/i386.c (ix86_expand_push): Set memory alignment
11070 to function argument boundary.
11071
11072 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
11073
11074 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
11075 in the lea_add. Reload eventually constraints it properly.
11076 * config/picochip/constraints.md: Remove the target constraint
11077 "b", since it is not needed anymore.
11078
11079 2009-02-16 Jakub Jelinek <jakub@redhat.com>
11080
11081 * gthr-dce.h: Uglify function parameter and local variable names.
11082 * gthr-gnat.h: Likewise.
11083 * gthr-mipssde.h: Likewise.
11084 * gthr-nks.h: Likewise.
11085 * gthr-posix95.h: Likewise.
11086 * gthr-posix.h: Likewise.
11087 * gthr-rtems.h: Likewise.
11088 * gthr-single.h: Likewise.
11089 * gthr-solaris.h: Likewise.
11090 * gthr-tpf.h: Likewise.
11091 * gthr-vxworks.h: Likewise.
11092 * gthr-win32.h: Likewise.
11093
11094 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
11095
11096 PR target/39196
11097 * config/i386/i386.md: Restrict the new peephole2 to move
11098 between MMX/SSE registers.
11099
11100 2009-02-15 Richard Guenther <rguenther@suse.de>
11101
11102 Revert
11103 2009-02-13 Richard Guenther <rguenther@suse.de>
11104
11105 * configure.ac: Enable LFS.
11106 * configure: Re-generate.
11107 * config.in: Likewise.
11108
11109 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11110
11111 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
11112 spu_srqwbyte, spu_srqwbytebc): Define.
11113 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
11114 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
11115 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
11116 "shrqby_<mode>"): New insn-and-split patterns.
11117 * config/spu/spu.c (expand_builtin_args): Determine and return
11118 number of operands using spu_builtin_description data.
11119 (spu_expand_builtin_1): Use it.
11120
11121 2009-02-13 Steve Ellcey <sje@cup.hp.com>
11122
11123 PR target/38056
11124 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
11125 TARGET_CONST_GP.
11126
11127 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11128
11129 PR target/39149
11130 * config/i386/i386.c (override_options): Correct warning
11131 messages for -malign-loops, -malign-jumps and -malign-functions.
11132
11133 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11134
11135 PR target/39152
11136 * config/i386/i386.md: Restrict the new peephole2 to move
11137 between the general purpose registers.
11138
11139 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11140
11141 PR target/39162
11142 * config/i386/i386.c (type_natural_mode): Add a new argument.
11143 Return the original mode and warn ABI change if vector size is 32byte.
11144 (function_arg_advance): Updated.
11145 (function_arg): Likewise.
11146 (ix86_function_value): Likewise.
11147 (ix86_return_in_memory): Likewise.
11148 (ix86_sol10_return_in_memory): Likewise.
11149 (ix86_gimplify_va_arg): Likewise.
11150 (function_arg_32): Don't warn ABX ABI change here.
11151 (function_arg_64): Likewise.
11152
11153 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
11154
11155 * loop-iv.c (implies_p): In the final case, test that operands 0
11156 of the two comparisons match.
11157
11158 * config/bfin/bfin.c (find_prev_insn_start): New function.
11159 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
11160 (find_next_insn_start): Move.
11161
11162 2009-02-13 Richard Guenther <rguenther@suse.de>
11163
11164 * configure.ac: Enable LFS.
11165 * configure: Re-generate.
11166 * config.in: Likewise.
11167
11168 2009-02-13 Joseph Myers <joseph@codesourcery.com>
11169
11170 PR c/35444
11171 * c-parser.c (c_parser_parms_list_declarator): Discard pending
11172 sizes on syntax error after some arguments have been parsed.
11173
11174 2009-02-12 Jakub Jelinek <jakub@redhat.com>
11175
11176 * doc/invoke.texi (-fira): Remove.
11177
11178 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11179
11180 * caller-save.c: Replace regclass.c with reginfo.c in comments.
11181 * recog.c: Likewise.
11182 * rtl.h: Likewise.
11183
11184 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
11185
11186 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
11187 (umul_ppmm): Likewise.
11188 (count_leading_zeros): Likewise.
11189 (count_trailing_zeros): Likewise.
11190 (UMUL_TIME): Likewise.
11191
11192 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11193
11194 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
11195 soft-fp/t-softfp to tmake_file.
11196
11197 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
11198 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
11199 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
11200 IA64_BUILTIN_INFQ]: New.
11201 (ia64_init_builtins): Initialize __builtin_infq,
11202 __builtin_fabsq and __builtin_copysignq if not HPUX.
11203 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
11204 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
11205
11206 * config/ia64/lib1funcs.asm (__divtf3): Define only if
11207 SHARED is defined.
11208 (__fixtfti): Likewise.
11209 (__fixunstfti): Likewise.
11210 (__floattitf): Likewise.
11211
11212 * config/ia64/libgcc-glibc.ver: New.
11213 * config/ia64/t-fprules-softfp: Likewise.
11214 * config/ia64/sfp-machine.h: Likewise.
11215
11216 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
11217 (LIBGCC2_TF_CEXT): Likewise.
11218 (TF_SIZE): Likewise.
11219 (TARGET_INIT_LIBFUNCS): Likewise.
11220
11221 * config/ia64/t-glibc (SHLINB_MAPFILES):
11222 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
11223
11224 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11225
11226 * config/i386/i386.c (construct_container): Rewrite processing
11227 BLKmode with X86_64_SSE_CLASS.
11228
11229 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
11230
11231 PR target/39152
11232 * config/i386/i386.md: Replace simplify_replace_rtx with
11233 replace_rtx in the new peephole2.
11234
11235 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
11236
11237 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
11238 loop unrolling do not happen at -O2.
11239
11240 2009-02-12 Michael Matz <matz@suse.de>
11241
11242 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
11243
11244 2009-02-12 Jakub Jelinek <jakub@redhat.com>
11245
11246 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
11247 for -g3.
11248
11249 2009-02-12 Ben Elliston <bje@au.ibm.com>
11250
11251 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
11252 patterns when updating the back chain. Missed in the 2009-02-10
11253 change.
11254
11255 2009-02-11 Janis Johnson <janis187@us.ibm.com>
11256
11257 * doc/extend.texi (Decimal Floating Types): Update identifier of
11258 draft TR and list of missing support.
11259
11260 2009-02-11 Jakub Jelinek <jakub@redhat.com>
11261
11262 PR middle-end/39154
11263 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
11264 bit to variable length decl's flags, add it also to its
11265 pointer replacement variable.
11266
11267 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
11268 Jakub Jelinek <jakub@redhat.com>
11269
11270 PR target/39118
11271 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
11272 (memory_blockage): New expander.
11273 (*memory_blockage): New insn pattern.
11274 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
11275 instead of general blockage at the end of function prologue when
11276 frame pointer is used to access red zone area. Do not emit blockage
11277 when profiling, it is emitted in generic code.
11278 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
11279 function epilogue when frame pointer is used to access red zone area.
11280
11281 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
11282
11283 PR target/38824
11284 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
11285 by arithmetic with memory operands.
11286 * config/i386/predicates.md (commutative_operator): New.
11287
11288 2009-02-10 Janis Johnson <janis187@us.ibm.com>
11289
11290 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
11291 bulleted lists.
11292
11293 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
11294
11295 * alias.h (record_alias_subset): Declare.
11296 * alias.c (record_alias_subset): Make global.
11297
11298 2009-02-10 Nick Clifton <nickc@redhat.com>
11299
11300 * tree-parloops.c: Change license to GPLv3.
11301 * ipa-struct-reorg.c: Change license to GPLv3.
11302 * ipa-struct-reorg.h: Change license to GPLv3.
11303
11304 2009-02-10 Steve Ellcey <sje@cup.hp.com>
11305
11306 PR c/39084
11307 * c-decl.c (start_struct): Return NULL on error.
11308
11309 2009-02-10 Jakub Jelinek <jakub@redhat.com>
11310
11311 PR middle-end/39124
11312 * cfgloopmanip.c (remove_path): Call remove_bbs after
11313 cancel_loop_tree, not before it.
11314
11315 PR target/39139
11316 * function.h (struct function): Add has_local_explicit_reg_vars bit.
11317 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
11318 VAR_DECLs were seen.
11319 * tree-ssa-live.c (remove_unused_locals): Recompute
11320 cfun->has_local_explicit_reg_vars.
11321 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
11322 copies or clearings if cfun->has_local_explicit_reg_vars.
11323
11324 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
11325
11326 PR target/39118
11327 * config/i386/i386.c (expand_prologue): Emit blockage at the end
11328 of function prologue when frame pointer is used to access
11329 red zone area.
11330
11331 2009-02-10 Richard Guenther <rguenther@suse.de>
11332
11333 PR middle-end/39127
11334 * gimplify.c (gimple_regimplify_operands): Always look if
11335 we need to create a temporary.
11336
11337 2009-02-10 Richard Guenther <rguenther@suse.de>
11338
11339 PR tree-optimization/39132
11340 * tree-loop-distribution.c (todo): New global var.
11341 (generate_memset_zero): Trigger TODO_rebuild_alias.
11342 (tree_loop_distribution): Return todo.
11343
11344 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
11345
11346 PR target/39119
11347 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
11348 (x86_64_reg_class_name): Removed.
11349 (classify_argument): Return 0 if bytes > 32. Return 0 if the
11350 first one isn't X86_64_SSE_CLASS or any other ones aren't
11351 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
11352 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
11353 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
11354 and 3 X86_64_SSEUP_CLASS.
11355 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
11356 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
11357
11358 2009-02-10 Ben Elliston <bje@au.ibm.com>
11359
11360 * config/rs6000/rs6000.md (allocate_stack): Always use an update
11361 form instruction to update the stack back chain word, even if the
11362 user has disabled the generation of update instructions.
11363 (movdi_<mode>_update_stack): New.
11364 (movsi_update_stack): Likewise.
11365 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
11366 always use an update form instruction to update the stack back
11367 chain word.
11368
11369 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
11370
11371 PR middle-end/38953
11372 * graphite.c (if_region_set_false_region): After moving a region in
11373 the false branch of a condition, remove the empty dummy basic block.
11374 (gloog): Remove wrong fix for PR38953.
11375
11376 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11377
11378 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
11379 generation due to implicit sign extension.
11380
11381 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
11382
11383 PR middle-end/38981
11384 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
11385 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
11386
11387 2009-02-09 Richard Guenther <rguenther@suse.de>
11388
11389 PR middle-end/35202
11390 * convert.c (convert_to_real): Disable (float)fn((double)x)
11391 to fnf(x) conversion if errno differences may occur and
11392 -fmath-errno is set.
11393
11394 2009-02-07 Anatoly Sokolov <aesok@post.ru>
11395
11396 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
11397 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11398 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
11399
11400 2009-02-06 Joseph Myers <joseph@codesourcery.com>
11401
11402 PR c/35434
11403 * c-common.c (handle_alias_attribute): Disallow attribute for
11404 anything not a FUNCTION_DECL or VAR_DECL.
11405
11406 2009-02-06 Janis Johnson <janis187@us.ibm.com>
11407
11408 PR c/39035
11409 * real.c (do_compare): Special-case compare of zero against
11410 decimal float value.
11411
11412 2009-02-06 Joseph Myers <joseph@codesourcery.com>
11413
11414 PR c/36432
11415 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
11416 as indicating flexible array members unless the field itself is
11417 being declarared as the incomplete array.
11418
11419 2009-02-06 Jan Hubicka <jh@suse.cz>
11420
11421 PR tree-optimization/38844
11422 * ipa-inline.c (try_inline): Stop inlining recursion when edge
11423 is already inlined.
11424
11425 2009-02-06 Richard Guenther <rguenther@suse.de>
11426
11427 PR middle-end/38977
11428 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
11429 fork because we may expand it as __gcov_fork.
11430
11431 2009-02-06 Nick Clifton <nickc@redhat.com>
11432
11433 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
11434
11435 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
11436
11437 PR tree-optimization/35659
11438 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
11439 vn_phi_eq): Shortcut if hashcode does not match.
11440 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
11441 NULL operands.
11442 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
11443 and avoid iterative_hash_expr.
11444 (FOR_EACH_VALUE_ID_IN_SET): New.
11445 (value_id_compare): Remove.
11446 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
11447 sort expressions by value id.
11448
11449 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
11450
11451 PR target/38991
11452 * config/sh/predicates.md (general_movsrc_operand): Don't check
11453 the subreg of system registers here.
11454
11455 2009-02-05 Jakub Jelinek <jakub@redhat.com>
11456
11457 PR c++/39106
11458 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
11459 on the copied decl.
11460
11461 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
11462
11463 PR rtl-optimization/39110
11464 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
11465 addresses, not aligned ones.
11466
11467 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
11468 Richard Guenther <rguenther@suse.de>
11469
11470 PR tree-optimization/39100
11471 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
11472 comment says and add edges.
11473
11474 2009-02-05 Joseph Myers <joseph@codesourcery.com>
11475
11476 PR c/35435
11477 * c-common.c (handle_tls_model_attribute): Ignore attribute for
11478 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
11479
11480 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
11481
11482 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
11483 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
11484 register_bb_in_sese, new_sese, free_sese): Moved.
11485 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
11486 outermost_loop_in_scop, build_scop_iteration_domain,
11487 expand_scalar_variables_ssa_name, get_vdef_before_scop,
11488 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
11489 Use loop_in_sese_p instead of loop_in_scop_p.
11490 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
11491 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
11492 (scopdet_basic_block_info): Fix bug in scop detection.
11493 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
11494 eq_loop_to_cloog_loop): Remove.
11495 (nb_loops_around_loop_in_scop, nb_loop
11496 ref_nb_loops): Moved here...
11497 * graphite.h (ref_nb_loops): ... from here.
11498 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
11499 (loop_domain_dim, loop_iteration_vector_dim): Remove.
11500 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
11501 * testsuite/gcc.dg/graphite/scop-19.c: New
11502
11503 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
11504 Hans-Peter Nilsson <hp@axis.com>
11505
11506 PR rtl-optimization/37889
11507 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
11508 Move offset handling from PLUS to before the switch. Use new
11509 arguments when considering SYMBOL_REFs too.
11510 (rtx_addr_can_trap_p): Pass dummy offset and size.
11511 (enum may_trap_p_flags): Remove.
11512 (may_trap_p_1): Pass size from MEM_SIZE.
11513
11514 PR rtl-optimization/38921
11515 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
11516 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
11517 * rtlanal.c (may_trap_after_code_motion_p): Delete.
11518 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
11519
11520 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
11521
11522 AVX Programming Reference (January, 2009)
11523 * config/i386/sse.md (*vpclmulqdq): New.
11524
11525 2009-02-04 Jakub Jelinek <jakub@redhat.com>
11526
11527 PR tree-optimization/38977
11528 PR gcov-profile/38292
11529 * calls.c (special_function_p): Disregard __builtin_ prefix.
11530
11531 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
11532
11533 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
11534 non-indexable addresses even before reload.
11535
11536 2009-02-03 Joseph Myers <joseph@codesourcery.com>
11537
11538 PR c/29129
11539 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
11540 as having variable size. Do not give an error for unnamed
11541 parameters with [*] declarators. Give a warning for type names
11542 with [*] declarators and mark them as variable size.
11543 * c-parser.c (c_parser_sizeof_expression): Do not give an error
11544 for sizeof applied to [*] type names.
11545
11546 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
11547
11548 PR C++/36607
11549 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
11550
11551 2009-02-03 Jakub Jelinek <jakub@redhat.com>
11552
11553 * gcc.c (process_command): Update copyright notice dates.
11554 * gcov.c (print_version): Likewise.
11555 * gcov-dump.c (print_version): Likewise.
11556 * mips-tfile.c (main): Likewise.
11557 * mips-tdump.c (main): Likewise.
11558
11559 2009-02-03 Joseph Myers <joseph@codesourcery.com>
11560
11561 PR c/35433
11562 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
11563 for composite type involving a zero-length array type.
11564
11565 2009-02-03 Jakub Jelinek <jakub@redhat.com>
11566
11567 PR target/35318
11568 * function.c (match_asm_constraints_1): Skip over
11569 initial optional % in the constraint.
11570
11571 PR inline-asm/39059
11572 * c-parser.c (c_parser_postfix_expression): If fixed point is not
11573 supported, don't accept FIXED_CSTs.
11574 * c-decl.c (finish_declspecs): Error if fixed point is not supported
11575 and _Sat is used without _Fract/_Accum. Set specs->type to
11576 integer_type_node for cts_fract/cts_accum if fixed point is not
11577 supported.
11578
11579 2009-02-02 Catherine Moore <clm@codesourcery.com>
11580
11581 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
11582
11583 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
11584
11585 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
11586 (ABI_HAS_64BIT_SYMBOLS): Use it.
11587 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
11588
11589 2009-02-02 Paul Brook <paul@codesourcery.com>
11590
11591 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
11592
11593 2009-02-02 Jakub Jelinek <jakub@redhat.com>
11594
11595 PR inline-asm/39058
11596 * recog.h (asm_operand_ok): Add constraints argument.
11597 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
11598 recurse on matching constraint.
11599 (check_asm_operands): Pass constraints as 3rd argument to
11600 asm_operand_ok. Don't look up matching constraint here.
11601 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
11602 to asm_operand_ok.
11603
11604 2009-02-02 Ben Elliston <bje@au.ibm.com>
11605
11606 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
11607 TARGET_NARROW_VOLATILE_BITFIELD macro names.
11608
11609 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11610
11611 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
11612 information. Remove some obsolete information. Reorganize.
11613
11614 * config/pa/fptr.c: Revert license to GPL 2.
11615 * config/pa/milli64.S: Likewise.
11616
11617 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
11618
11619 PR target/38904
11620 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
11621 LIBRARY name in, instead of hard-coding it.
11622 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
11623 extra target make frag to tmake_files according to EH model.
11624 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
11625 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
11626 frags that define makefile variable EH_MODEL appropriately.
11627 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
11628 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
11629 to "-sjlj" according to type of EH configured.
11630 (LIBGCC_SONAME): Concatenate it to shared library base name.
11631 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
11632 to "_sjlj" according to type of EH configured.
11633 (LIBGCC_SONAME): Concatenate it to shared library base name.
11634 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
11635 (SHLIB_LINK): Add missing semicolon to if-else construct.
11636 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
11637 string value of "pe_dll" command-line option.
11638 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
11639 (SHLIB_SONAME): Use it when overriding t-cygming default.
11640 (SHLIB_IMPLIB): Override t-cygming default.
11641 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
11642 string value of "pe_dll" command-line option.
11643
11644 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
11645
11646 PR target/38952
11647 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
11648 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
11649
11650 2009-01-31 Richard Guenther <rguenther@suse.de>
11651
11652 PR tree-optimization/38937
11653 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
11654 computing the transitive closure.
11655
11656 2009-01-30 Richard Guenther <rguenther@suse.de>
11657
11658 PR tree-optimization/39041
11659 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
11660 Propagate variable indices only if the types match for this stmt.
11661
11662 2009-01-30 Jakub Jelinek <jakub@redhat.com>
11663
11664 PR target/39013
11665 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
11666 inline but never defined.
11667
11668 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
11669
11670 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
11671 (*insv_h_di_reg_extimm): New insn.
11672 (*insv_l<mode>_reg_extimm): New insn.
11673
11674 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
11675
11676 * config/picochip/picochip.c (flag_conserve_stack): set
11677 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
11678 fconserve-stack. Reduce call-overhead used by inliner.
11679
11680 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
11681
11682 PR/38157
11683 * common.opt (flag_conserve_stack): Initialised to zero.
11684
11685 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
11686
11687 PR/39002
11688 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
11689 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
11690 method.
11691
11692 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
11693
11694 * ira-color.c (allocno_reload_assign): Update comments.
11695 * regmove.c (regmove_optimize): Likewise.
11696
11697 * ra.h: Removed.
11698
11699 2009-01-29 Robert Millan <rmh@aybabtu.com>
11700
11701 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
11702 * config/i386/kopensolaris-gnu.h: New file. Undefine
11703 `MD_UNWIND_SUPPORT'.
11704 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
11705
11706 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
11707
11708 PR tree-optimization/39007
11709 * tree-loop-distribution.c (generate_builtin): Use
11710 recompute_dominator to compute the immediate dominator of the
11711 basic block just after the loop.
11712
11713 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11714
11715 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
11716 (ASM_OUTPUT_DWARF_PCREL): Define.
11717
11718 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
11719
11720 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
11721 * doc/passes.texi: Remove entries about regclass, local-alloc, and
11722 global. Modify entries about regmove and IRA.
11723
11724 * ra-conflict.c: Remove the file.
11725
11726 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
11727
11728 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
11729 (pass_regclass_init): Rename to pass_reginfo_init.
11730
11731 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
11732
11733 * toplev.h (flag_ira): Remove.
11734
11735 * caller-save.c (setup_save_areas): Remove flag_ira.
11736
11737 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
11738
11739 * global.c: Remove the file.
11740
11741 * opts.c (decode_options): Remove flag_ira.
11742
11743 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
11744
11745 * regmove.c: Modify file description.
11746 (find_use_as_address, try_auto_increment): Define them only if
11747 AUTO_INC_DEC is defined.
11748 (replacement_quality, replace_in_call_usage, fixup_match_1,
11749 stable_and_no_regs_but_for_p): Remove.
11750 (reg_set_in_bb): Make it static.
11751 (regmove_optimize): Remove flag_ira and code which worked for
11752 !flag_ira.
11753
11754 * local-alloc.c: Remove the file.
11755
11756 * common.opt (fira): Remove.
11757
11758 * ira.c: Include except.h.
11759 (eliminable_regset): Move from global.c.
11760 (mark_elimination): Ditto. Remove flag_ira.
11761 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
11762 equiv_mem_modified, validate_equiv_mem_from_store,
11763 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
11764 contains_replace_regs, memref_referenced_p, memref_used_between_p,
11765 no_equiv, recorded_label_ref): Move from local-alloc.c.
11766 (update_equiv_regs): Ditto. Make it static.
11767 (print_insn_chain, print_insn_chains): Move it from global.c.
11768 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
11769 (build_insn_chain): Ditto. Make it static.
11770 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
11771 Rename to init_live_subregs.
11772 (gate_ira): Remove flag_ira.
11773
11774 * regclass.c: Rename reginfo.c. Change file description.
11775 (FORBIDDEN_INC_DEC_CLASSES): Remove.
11776 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
11777 (init_reg_sets_1): Remove code for evaluation of
11778 reg_class_superclasses and losing_caller_save_reg_set.
11779 (init_regs): Remove init_reg_autoinc.
11780 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
11781 ok_for_base_p_nonstrict): Remove.
11782 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
11783 (pass_regclass_init): Rename to pass_reginfo_init. Modify
11784 corresponding entries.
11785 (dump_regclass, record_operand_costs, scan_one_insn,
11786 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
11787 record_address_regs, auto_inc_dec_reg_p): Remove.
11788 (gt-regclass.h): Rename to gt-reginfo.h.
11789
11790 * rtl.h (dump_global_regs, retry_global_alloc,
11791 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
11792
11793 * Makefile.in (RA_H): Remove.
11794 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
11795 Rename regclass.o to reginfo.o.
11796 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
11797 gt-reginfo.h.
11798 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
11799 (GTFILES): Rename regclass.c to reginfo.c.
11800
11801 * passes.c (init_optimization_passes): Remove pass_local_alloc and
11802 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
11803
11804 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11805 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
11806 Remove flag_ira.
11807 (finish_spills): Ditto. Remove code for !flag_ira.
11808
11809 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
11810
11811 PR middle-end/35854
11812 * doc/invoke.texi (rtl debug options): Complete rewrite.
11813 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
11814 to auto_inc_dec".
11815 * mode-switching.c (pass_mode_switching): Rename pass from
11816 "mode-sw" to "mode_sw".
11817 * except.c (pass_convert_to_eh_ranges): Rename pass from
11818 "eh-ranges" to "eh_ranges".
11819 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
11820 to "subreg1".
11821
11822
11823 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
11824 Alexander Monakov <amonakov@ispras.ru>
11825
11826 PR middle-end/38857
11827 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
11828 register.
11829 (move_exprs_to_boundary): Change return type and pass through
11830 should_move from move_op. Relax assert. Update usage ...
11831 (schedule_expr_on_boundary): ... here. Use should_move instead of
11832 cant_move.
11833 (move_op_orig_expr_found): Indicate that insn was disconnected from
11834 stream.
11835 (code_motion_process_successors): Do not call after_merge_succs
11836 callback if original expression was not found when traversing any of
11837 the branches.
11838 (code_motion_path_driver): Change return type. Update prototype.
11839 (move_op): Update comment. Add a new parameter (should_move). Update
11840 prototype. Set *should_move based on indication provided by
11841 move_op_orig_expr_found.
11842
11843 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
11844
11845 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
11846 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
11847 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
11848 * config/rs6000/rs6000.c (rs6000_override_options): Default
11849 avoid-indexed-addresses on for Power6, off for everything else.
11850 (avoiding_indexed_address_p): New function.
11851 (rs6000_legitimize_address): Use it.
11852 (rs6000_legitimate_address): Likewise.
11853 * config/rs6000/rs6000.md (movXX_updateX): Likewise
11854
11855 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
11856
11857 PR tree-optimization/38997
11858 * tree-loop-distribution.c (generate_memset_zero): Use
11859 POINTER_PLUS_EXPR for a pointer addition.
11860
11861 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
11862
11863 * config/s390/s390.md (bswap<mode>2): New pattern added.
11864
11865 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
11866
11867 * config/s390/s390.md (*tls_load_31): Added type attribute.
11868
11869 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
11870
11871 * config/s390/s390.md: Fix a few comments.
11872
11873 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
11874
11875 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
11876 (*tm<mode>_full): Fixed z10prop attribute.
11877 (*tst<mode>_extimm): Fixed z10prop attribute.
11878 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
11879 (*tstqiCCT_cconly): Fixed z10prop attribute.
11880 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
11881 (*movsi_larl): Fixed z10prop attribute.
11882 (*movsi_zarch): Fixed z10prop attribute.
11883 (*movsi_eas): Fixed z10prop attribute.
11884 (*movhi): Fixed z10prop attribute.
11885 (*movqi): Fixed z10prop attribute.
11886 (*movstrictqi): Fixed z10prop attribute.
11887 (*mov<mode>): Fixed z10prop attribute.
11888 (*movcc): Fixed z10prop attribute.
11889 (*sethighpartdi_64): Fixed z10prop attribute.
11890 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
11891 (*negdi2_sign_cc): Fixed z10prop attribute.
11892 (*negdi2_sign): Fixed z10prop attribute.
11893 (*absdi2_sign_cc): Fixed z10prop attribute.
11894 (*absdi2_sign): Fixed z10prop attribute.
11895 (*negabsdi2_sign_cc): Fixed z10prop attribute.
11896 (*negabsdi2_sign): Fixed z10prop attribute.
11897 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
11898 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
11899 (doloop_si64): Fixed z10prop attribute.
11900 (doloop_si31): Fixed z10prop attribute.
11901 (doloop_long): Fixed z10prop attribute.
11902 (indirect_jump): Fixed z10prop attribute.
11903 (nop): Fixed z10prop attribute.
11904 (main_base_64): Fixed z10prop attribute.
11905 (reload_base_64): Fixed z10prop attribute.
11906
11907 2009-01-28 Jakub Jelinek <jakub@redhat.com>
11908
11909 PR rtl-optimization/38740
11910 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
11911 if !optimize.
11912 * config/mips/mips.c (mips_reorg): Likewise.
11913
11914 2009-01-28 Richard Guenther <rguenther@suse.de>
11915
11916 PR tree-optimization/38926
11917 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
11918 with the correct value id to a value.
11919 (do_regular_insertion): Use the value number of edoubleprime
11920 for the value number of the expr.
11921
11922 Revert
11923 2008-08-21 Richard Guenther <rguenther@suse.de>
11924
11925 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
11926 a PHI ask VN if it is already available.
11927 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
11928 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
11929
11930 2009-01-28 Jakub Jelinek <jakub@redhat.com>
11931
11932 PR middle-end/38934
11933 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
11934 set to varying whenever max has TREE_OVERFLOW set, similarly
11935 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
11936
11937 2009-01-28 Richard Guenther <rguenther@suse.de>
11938
11939 PR middle-end/38908
11940 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
11941 uninitialized aggregate uses in call arguments.
11942
11943 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
11944
11945 PR tree-optimization/38984
11946 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
11947 the nothing_id variable if -fno-delete-null-pointer-checks.
11948
11949 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
11950
11951 PR target/38988
11952 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
11953 (set_got_offset_rex64): Ditto.
11954
11955 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
11956
11957 PR target/38941
11958 * doc/extend.texi: Improve local variable with asm reg.
11959
11960 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
11961
11962 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
11963 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
11964 was not supplied then set warn_packed_bitfield_compat to the
11965 default value of 1.
11966 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
11967 against 1.
11968
11969 2009-01-27 Richard Guenther <rguenther@suse.de>
11970
11971 PR tree-optimization/38503
11972 * cfgexpand.c (expand_gimple_basic_block): Ignore
11973 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
11974 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
11975 variables that cannot have TBAA applied.
11976 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
11977 statements.
11978
11979 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
11980
11981 PR middle-end/38969
11982 * calls.c (initialize_argument_information): Do not wrap complex
11983 arguments in SAVE_EXPR.
11984
11985 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
11986
11987 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
11988 (INSTALL_LIBGCC): Revert typo commit.
11989
11990 2009-01-26 Richard Guenther <rguenther@suse.de>
11991
11992 PR tree-optimization/38745
11993 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
11994 from special handling.
11995
11996 2009-01-26 Richard Guenther <rguenther@suse.de>
11997
11998 PR tree-optimization/38745
11999 * tree-ssa.c (execute_update_addresses_taken): Do not include
12000 variables that cannot possibly be a register in not_reg_needs.
12001 Do not clear TREE_ADDRESSABLE on vars that may not become
12002 registers.
12003 * tree-ssa.c (update_alias_info_1): Include those in the set
12004 of addressable vars.
12005
12006 2009-01-26 Richard Guenther <rguenther@suse.de>
12007
12008 PR middle-end/38851
12009 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
12010 * tree-ssa-dse.c: Include langhooks.h
12011 (execute_simple_dse): Remove stores with zero size.
12012
12013 2009-01-24 Jakub Jelinek <jakub@redhat.com>
12014
12015 PR c/38957
12016 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
12017 as PLUS_EXPR.
12018
12019 2009-01-24 Julian Brown <julian@codesourcery.com>
12020
12021 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
12022 config/arm/linux-atomic.c.
12023 * config/arm/linux-atomic.c: New.
12024
12025 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
12026
12027 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
12028 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
12029 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
12030
12031 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
12032
12033 PR c/38938
12034 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
12035 properly.
12036
12037 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
12038
12039 PR tree-optimization/38953
12040 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
12041 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
12042 (gloog): Split the exit of the scop when the scop exit is a loop exit.
12043 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
12044 changed the CFG.
12045
12046 2009-01-24 Paul Brook <paul@codesourcery.com>
12047
12048 * config/arm/neon.md (neon_type): Move to arm.md.
12049 (neon_mov<VSTRUCT>): Add neon_type attribute.
12050 * config/arm/arm.md (neon_type): Move to here.
12051 (conds): Add "unconditioal" and use as default for NEON insns.
12052
12053 2009-01-24 Ben Elliston <bje@au.ibm.com>
12054
12055 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
12056 void *' warning from -Wc++-compat.
12057 * Makefile.in (dominance.o-warn): Remove.
12058
12059 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
12060
12061 PR tree-optimization/38932
12062 * fold-const.c (fold_unary_ignore_overflow): New.
12063 * tree.h (fold_unary_ignore_overflow): Declare.
12064 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
12065 * tree-ssa-sccvn.c (visit_reference_op_load,
12066 simplify_unary_expression): Likewise.
12067
12068 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
12069
12070 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
12071 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
12072 regardless of their type.
12073 * c-common.c (handle_packed_attribute): Don't ignore packed on
12074 bitfields.
12075 * c.opt (Wpacked-bitfield-compat): New warning option.
12076 * stor-layout.c (place_field): Warn if offset of a field changed.
12077 * doc/extend.texi (packed): Mention the ABI change.
12078 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
12079 (Warning Options): Add it to the list.
12080
12081 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
12082
12083 * c-opts.c (c_common_post_options): Fix a typo in comments.
12084
12085 2009-01-22 Steve Ellcey <sje@cup.hp.com>
12086
12087 PR middle-end/38615
12088 * gimplify.c (gimplify_init_constructor): Fix promotion of const
12089 variables to static.
12090 * doc/invoke.texi (-fmerge-all-constants): Update description.
12091
12092 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
12093
12094 PR target/38931
12095 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
12096 (*movdi_1_rex64): Use type "mmx" for alternative 5.
12097
12098 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
12099
12100 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
12101 a word boundary.
12102 (LOCAL_ALIGNMENT): Similarly.
12103
12104 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
12105 Joseph Myers <joseph@codesourcery.com>
12106
12107 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
12108 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
12109 * config/arm/arm-tune.md: Regenerate.
12110 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
12111 -march=iwmmxt2.
12112
12113 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
12114
12115 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
12116 version number to five.
12117
12118 2009-01-22 Dodji Seketeli <dodji@redhat.com>
12119
12120 PR c++/38930
12121 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
12122 * c-common.c (set_underlying_type): Likewise.
12123 (is_typedef_decl ): Likewise
12124 * tree.h: Likewise
12125 (set_underlying_type): Likewise.
12126 (is_typedef_type): Likewise.
12127
12128 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
12129
12130 PR middle-end/38587
12131 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
12132 crossing setjmps.
12133
12134 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
12135
12136 PR bootstrap/37660
12137 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
12138 (LIBGCC_SPEC): Don't define.
12139 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
12140
12141 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
12142
12143 PR rtl-optimization/38879
12144 * alias.c (base_alias_check): Unaligned access via AND address can
12145 alias all surrounding object types except those with sizes equal
12146 or wider than the size of unaligned access.
12147
12148 2009-01-21 Dodji Seketeli <dodji@redhat.com>
12149
12150 PR c++/26693
12151 * c-decl.c (clone_underlying_type): Move this ...
12152 * c-common.c (set_underlying_type): ... here.
12153 Also, make sure the function properly sets TYPE_STUB_DECL() on
12154 the newly created typedef variant type.
12155 (is_typedef_decl ): New entry point.
12156 * tree.h: Added a new member member_types_needing_access_check to
12157 struct tree_decl_non_common.
12158 (set_underlying_type): New entry point.
12159 (is_typedef_type): Likewise.
12160
12161 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
12162
12163 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
12164 Check whether two instructions have memory references that
12165 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
12166 are helper functions for traversing.
12167 * alias.h (insn_alias_sets_confilict_p): New prototypes.
12168 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
12169 not to draw dependency edge for instructions with non-conflicting
12170 alias sets.
12171
12172 2009-01-20 Joseph Myers <joseph@codesourcery.com>
12173
12174 PR other/38758
12175 * longlong.h: Update copyright years. Use soft-fp license notice.
12176 Sync __clz_tab declaration with glibc.
12177
12178 2009-01-20 Steve Ellcey <sje@cup.hp.com>
12179
12180 PR target/30687
12181 * doc/extend.texi (syscall_linkage): New.
12182 (version_id): Modify.
12183
12184 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
12185 Richard Guenther <rguenther@suse.de>
12186
12187 PR tree-optimization/38747
12188 PR tree-optimization/38748
12189 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
12190 conversion if the base address is an indirect reference and the
12191 aliasing sets could cause issues.
12192
12193 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
12194
12195 * common.opt (fgraphite, fgraphite-identity): Add comment for
12196 explaining why these options are not documented.
12197
12198 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
12199
12200 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
12201 gimple_call_lhs is NULL.
12202
12203 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
12204
12205 PR target/38868
12206 * emit-rtl.c (adjust_address_1): Make sure memref is never
12207 overwritten.
12208
12209 2009-01-20 Ben Elliston <bje@au.ibm.com>
12210
12211 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
12212 const qualifier from arg parameter. Remove unnecessary cast to char *.
12213 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
12214 const qualifier from arg 2.
12215
12216 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
12217
12218 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
12219
12220 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
12221
12222 PR c/38869
12223 * rtl.h (reinit_regs): New prototype.
12224 * regclass.c: Include ira.h.
12225 (reinit_regs): New.
12226 * Makefile.in (regclass.o): Add ira.h.
12227 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
12228
12229 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
12230
12231 PR target/38736
12232 * c-common.c (handle_aligned_attribute): Use
12233 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
12234 default alignment value.
12235
12236 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
12237
12238 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
12239 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
12240
12241 * doc/extend.texi: Update __attribute__ ((aligned)). Document
12242 __BIGGEST_ALIGNMENT__.
12243
12244 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
12245
12246 2009-01-18 Richard Guenther <rguenther@suse.de>
12247
12248 PR tree-optimization/38819
12249 * tree-flow.h (operation_could_trap_helper_p): Declare.
12250 * tree-eh.c (operation_could_trap_helper_p): Export.
12251 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
12252 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
12253 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
12254 are about to insert a possibly trapping instruction and fail
12255 in this case.
12256
12257 2009-01-18 Andreas Schwab <schwab@suse.de>
12258
12259 * doc/install.texi (Configuration): Remove obsolete paragraph
12260 about use of --with-gnu-ld with --with-gnu-as.
12261
12262 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
12263
12264 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
12265 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
12266 Follow spelling conventions.
12267
12268 2009-01-18 Ben Elliston <bje@au.ibm.com>
12269
12270 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
12271 C++ warning about implicit conversion from void * to struct
12272 bitmap_head_def *.
12273 (bitmap_obstack_free): Likewise for bitmap_element *.
12274 * Makefile.in (bitmap.o-warn): Remove.
12275
12276 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
12277
12278 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
12279
12280 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
12281 Tobias Grosser <tobi.grosser@amd.com>
12282
12283 * graphite.c (graphite_trans_scop_block): Do not block single
12284 nested loops.
12285
12286 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
12287
12288 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
12289 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
12290 test with assertion.
12291
12292 2009-01-16 Richard Guenther <rguenther@suse.de>
12293
12294 PR tree-optimization/38835
12295 PR middle-end/36227
12296 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
12297 and INT + PTR -> (INT)(PTR p+ INT) folding.
12298 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
12299
12300 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
12301
12302 PR target/38554
12303 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
12304 the subreg from a lowpart subreg if it is also casting the value.
12305
12306 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
12307 Tobias Grosser <tobi.grosser@amd.com>
12308
12309 * graphite.c (compare_prefix_loops): New.
12310 (build_scop_canonical_schedules): Rewritten.
12311 (graphite_transform_loops): Move build_scop_canonical_schedules
12312 after build_scop_iteration_domain.
12313
12314 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
12315 Tobias Grosser <tobi.grosser@amd.com>
12316
12317 * graphite.c (add_conditions_to_domain): Add the loops to
12318 the dimension of the iteration domain. Do copy the domain
12319 only when it exists.
12320 (build_scop_conditions_1): Do not call add_conditions_to_domain.
12321 (add_conditions_to_constraints): New.
12322 (can_generate_code_stmt, can_generate_code): Removed.
12323 (gloog): Do not call can_generate_code.
12324 (graphite_transform_loops): Call add_conditions_to_constraints
12325 after building the iteration domain.
12326
12327 2009-01-16 Jakub Jelinek <jakub@redhat.com>
12328
12329 PR tree-optimization/38789
12330 * tree-ssa-threadedge.c
12331 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
12332 __builtin_constant_p.
12333
12334 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
12335
12336 * dce.c (delete_unmarked_insns): Reversed the order that insns are
12337 examined before deleting them.
12338
12339 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
12340
12341 * function.c (aggregate_value_p): Correctly extract the function
12342 type from CALL_EXPR_FN lookup.
12343
12344 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
12345
12346 * config/picochip/picochip.c (picochip_override_options): Revert
12347 CFI asm flag disable commited previously.
12348
12349 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
12350 Tobias Grosser <tobi.grosser@amd.com>
12351 Jan Sjodin <jan.sjodin@amd.com>
12352
12353 * graphite.c (scan_tree_for_params): On substractions negate
12354 all the coefficients of the term.
12355 (clast_to_gcc_expression_red): New. Handle reduction expressions
12356 of more than two operands.
12357 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
12358 (get_vdef_before_scop): Handle also the case of default definitions.
12359
12360 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
12361
12362 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
12363 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
12364 Also use them when walking CALL_INSN_FUNCTION_USAGE.
12365
12366 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
12367 Joey Ye <joey.ye@intel.com>
12368
12369 PR middle-end/37843
12370 * cfgexpand.c (expand_stack_alignment): Don't update stack
12371 boundary nor check incoming stack boundary here.
12372 (gimple_expand_cfg): Update stack boundary and check incoming
12373 stack boundary here.
12374
12375 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
12376
12377 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
12378
12379 2009-01-14 Jakub Jelinek <jakub@redhat.com>
12380
12381 PR rtl-optimization/38245
12382 * calls.c (expand_call): Add stack arguments to
12383 CALL_INSN_FUNCTION_USAGE even for pure calls (when
12384 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
12385 in regs and partially in memory or BLKmode arguments.
12386 (emit_library_call_value_1): Add stack arguments to
12387 CALL_INSN_FUNCTION_USAGE even for pure calls (when
12388 ACCUMULATE_OUTGOING_ARGS).
12389 * dce.c: Include tm_p.h.
12390 (find_call_stack_args): New function.
12391 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
12392 argument.
12393 (mark_insn): Call find_call_stack_args for CALL_Ps.
12394 (prescan_insns_for_dce): Walk insns backwards in bb rather than
12395 forwards. Allocate and free arg_stores bitmap if needed, pass it
12396 down to deletable_insn_p, don't mark stores set in arg_stores
12397 bitmap, clear the bitmap at the beginning of each bb.
12398 * Makefile.in (dce.o): Depend on $(TM_P_H).
12399
12400 2009-01-14 Michael Meissner <gnu@the-meissners.org>
12401
12402 PR target/22599
12403 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
12404 to make sure the insn is a conditional test (bug 22599). Reformat a
12405 few long lines.
12406
12407 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
12408
12409 PR middle-end/38431
12410 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
12411 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
12412 (gloog): Do not call cleanup_tree_cfg.
12413 (graphite_transform_loops): Call cleanup_tree_cfg after all
12414 scops have been code generated.
12415
12416 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
12417 * doc/gty.texi (Invoking the garbage collector): Added new node
12418 and section documenting ggc_collect.
12419
12420 2009-01-14 Richard Guenther <rguenther@suse.de>
12421
12422 PR tree-optimization/38826
12423 PR middle-end/38477
12424 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
12425 initialization notes only if we actually emitted a warning.
12426 (intra_create_variable_infos): Add constraints for a result decl
12427 that is passed by hidden reference.
12428 (build_pred_graph): Mark all related variables non-direct on
12429 address-taking.
12430
12431 2009-01-14 Nick Clifton <nickc@redhat.com>
12432
12433 * ira-conflicts.c: Include addresses.h for the definition of
12434 base_reg_class.
12435 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
12436 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
12437
12438 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
12439
12440 PR target/38811
12441 * Makefile.in (ira-lives.o): Add except.h.
12442
12443 * ira-lives.c: Include except.h.
12444 (process_bb_node_lives): Process can_throw_internal.
12445
12446 2009-01-13 Jakub Jelinek <jakub@redhat.com>
12447
12448 PR rtl-optimization/38774
12449 * combine.c (simplify_set): When undoing cc_use change, don't do
12450 PUT_CODE on the newly created comparison, but instead put back the
12451 old comparison.
12452
12453 2009-01-13 Joseph Myers <joseph@codesourcery.com>
12454
12455 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
12456 values. Remove duplicate arm8 entry.
12457
12458 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
12459
12460 PR tree-optimization/38786
12461 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
12462 the SSA_NAME case of expand_scalar_variables_expr.
12463 Set the type of an expression to the type of its assign statement.
12464 (expand_scalar_variables_expr): Also gather the scalar computation
12465 used to index the memory access. Do not pass loop_p.
12466 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
12467 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
12468 the gimple_stmt_iterator where it inserts new code.
12469 Do not pass loop_p.
12470 (copy_bb_and_scalar_dependences): Do not pass loop_p.
12471 (translate_clast): Update call to copy_bb_and_scalar_dependences.
12472
12473 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
12474
12475 * graphite.h (debug_value): Removed.
12476 * graphite.c (debug_value): Removed.
12477
12478 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
12479
12480 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
12481 ldrd/strd with two 32-bit instructions.
12482
12483 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
12484
12485 * config/arm/arm.c (struct processors): Pass for speed down into
12486 cost helper functions.
12487 (const_ok_for_op): Handle COMPARE and inequality nodes.
12488 (arm_rtx_costs_1): Rewrite.
12489 (arm_size_rtx_costs): Update prototype.
12490 (arm_rtx_costs): Pass speed down to helper functions.
12491 (arm_slowmul_rtx_costs): Rework cost calculations.
12492 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
12493 (arm_9e_rtx_costs): Likewise.
12494
12495 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
12496
12497 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
12498 relocations of local symbols wider than UNITS_PER_WORD are not valid.
12499 (alpha_legitimize_address): Do not split local symbols wider than
12500 UNITS_PER_WORD into HIGH/LO_SUM parts.
12501
12502 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
12503
12504 PR bootstrap/38580
12505 * gcc.c (process_command): Replace call to execvp with calls
12506 to pex_one and exit.
12507
12508 2009-01-03 Anatoly Sokolov <aesok@post.ru>
12509
12510 PR target/29141
12511 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
12512 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
12513 variant for devices with 3-byte PC.
12514 (__tablejump_elpm__): New.
12515
12516 2009-01-12 Jakub Jelinek <jakub@redhat.com>
12517
12518 PR c/32041
12519 * c-parser.c (c_parser_postfix_expression): Allow `->' in
12520 offsetof member-designator, handle it as `[0].'.
12521
12522 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12523
12524 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
12525 function when not using named sections on targets with named sections
12526 if branch distance is less than 262132.
12527
12528 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
12529
12530 * combine.c (combine_instructions): Recompute
12531 optimize_this_for_speed_p for each BB in the main combine loop.
12532
12533 2009-01-12 Tomas Bily <tbily@suse.cz>
12534
12535 PR middlend/38385
12536 * tree-loop-distribution.c (prop_phis): New function.
12537 (generate_builtin): Call prop_phis.
12538 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
12539
12540 2009-01-12 Jakub Jelinek <jakub@redhat.com>
12541
12542 PR tree-optimization/38807
12543 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
12544 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
12545
12546 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
12547
12548 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
12549 subreg of op0 to the original op0.
12550
12551 2009-01-11 Laurent GUERBY <laurent@guerby.net>
12552
12553 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
12554
12555 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
12556
12557 PR debug/7055
12558 * mips-tfile.c (parse_def): Fix parsing of def strings
12559 starting with digits.
12560
12561 2009-01-10 Jakub Jelinek <jakub@redhat.com>
12562
12563 PR target/38695
12564 * config/arm/arm.c (arm_is_long_call_p): Don't call
12565 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
12566
12567 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
12568
12569 * regrename.c (regrename_optimize): Fix dumping.
12570 (find_oldest_value_reg): Preserve REG_POINTER.
12571 (copy_hardreg_forward_1): Likewise.
12572
12573 2009-01-09 Diego Novillo <dnovillo@google.com>
12574
12575 * gimple.h (struct gimple_statement_base) <uid>: Document
12576 the restrictions on its use.
12577 (gimple_uid): Tidy.
12578 (gimple_set_uid): Tidy.
12579
12580 2009-01-09 Jakub Jelinek <jakub@redhat.com>
12581
12582 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
12583 zero guard even if align_bytes != 0 and count is smaller than
12584 size_needed.
12585
12586 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
12587
12588 PR rtl-optimization/38495
12589 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
12590 (add_range_and_copies_from_move_list): Print all added ranges.
12591 Add ranges to memory optimized destination.
12592
12593 2009-01-09 Jakub Jelinek <jakub@redhat.com>
12594
12595 PR target/38686
12596 PR target/38708
12597 * config/i386/i386.c (override_options): Reject
12598 -mstringop-strategy=rep_8byte with -m32.
12599 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
12600 to 1. Do count comparison against epilogue_size_needed at compile
12601 time even when count_exp was constant forced into register. For
12602 size_needed don't jump to epilogue, instead just avoid aligning
12603 and invoke the body algorithm. If need_zero_guard, add zero guard
12604 even if count is non-zero, but smaller than size_needed + number of
12605 bytes that could be stored for alignment.
12606 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
12607 to 1. If need_zero_guard, add zero guard even if count is non-zero,
12608 but smaller than size_needed + number of bytes that could be stored
12609 for alignment. Compare size_needed with epilogue_size_needed instead
12610 of desired_align - align, don't adjust size_needed, pass
12611 epilogue_size_needed to the epilogue expanders.
12612
12613 PR c/35742
12614 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
12615
12616 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12617
12618 * pa.c (last_address): Change to unsigned.
12619 (update_total_code_bytes): Change argument to unsigned. Don't
12620 check if insn addresses are set.
12621 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
12622 addresses are not set.
12623 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
12624
12625 2009-01-09 Nick Clifton <nickc@redhat.com>
12626
12627 * config/sh/symbian.c: Replace uses of DECL_INLINE with
12628 DECL_DECLARED_INLINE_P.
12629
12630 2009-01-09 Jakub Jelinek <jakub@redhat.com>
12631
12632 PR middle-end/38347
12633 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
12634 GET_MODE (op0) in operand_subword_force calls.
12635
12636 PR middle-end/38771
12637 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
12638 fold_convert arg0 operands to TREE_TYPE (op0) first.
12639
12640 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
12641
12642 * params.def (ira-max-conflict-table-size): Decrease default value
12643 to 1000.
12644
12645 2009-01-08 Jakub Jelinek <jakub@redhat.com>
12646
12647 PR tree-optimization/37031
12648 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
12649 on parameter_set.
12650 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
12651 allocate it using gc instead of heap, use VEC_quick_push instead of
12652 VEC_safe_push.
12653 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
12654 instead of heap, use VEC_quick_push instead of VEC_safe_push.
12655 * tree-data-ref.h (struct access_matrix): Change matrix to gc
12656 allocated vector from heap allocated.
12657 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
12658 * tree-loop-linear.c (linear_transform_loops): Allocate nest
12659 vector only after perfect_loop_nest_depth call.
12660
12661 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
12662 Jan Sjodin <jan.sjodin@amd.com>
12663
12664 PR tree-optimization/38559
12665 * graphite.c (debug_value, copy_constraint,
12666 swap_constraint_variables, scale_constraint_variable, ): New.
12667 (get_lower_bound, get_upper_bound): Removed.
12668 (graphite_trans_bb_strip_mine): Clean up this code that works
12669 only for constant number of iterations. Fully copy upper and
12670 lower bound constraints, not only the constant part of them.
12671 * graphite.h (debug_value): Declared.
12672
12673 2009-01-08 Ira Rosen <irar@il.ibm.com>
12674
12675 PR tree-optimization/37194
12676 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
12677 Don't add the cost of cost model guard in prologue to scalar
12678 outside cost in case of known number of iterations.
12679
12680 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
12681 Alan Modra <amodra@bigpond.net.au>
12682
12683 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
12684 non-word-aligned REG+CONST addressing.
12685
12686 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
12687
12688 PR target/38706
12689 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
12690 free_after_compilation when outputting a thunk.
12691 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
12692 Do not call free_after_compilation here.
12693
12694 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
12695
12696 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
12697 (ix86_valid_target_attribute_inner_p): Ditto.
12698
12699 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
12700
12701 PR tree-optimization/38492
12702 PR tree-optimization/38498
12703 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
12704 * tree-chrec.h (scev_is_linear_expression): Declared.
12705 * graphite.c (graphite_cannot_represent_loop_niter): New.
12706 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
12707 (graphite_loop_normal_form): Use gcc_assert.
12708 (scan_tree_for_params): Use CASE_CONVERT.
12709 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
12710 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
12711 Use gcc_assert. Discard scops that contain unhandled cases.
12712 (build_scop_conditions): Return a boolean status for unhandled cases.
12713 (strip_mine_profitable_p): Print the loop number, not its depth.
12714 (is_interchange_valid): Pass the depth of the loop nest, don't
12715 recompute it wrongly.
12716 (graphite_trans_bb_block): Same.
12717 (graphite_trans_bb_block): Print tentative of loop blocking.
12718 (graphite_trans_scop_block): Do not print that the loop has been
12719 blocked.
12720 (graphite_transform_loops): Do not handle scops that contain condition
12721 scalar phi nodes.
12722
12723 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
12724
12725 AVX Programming Reference (December, 2008)
12726 * config/i386/avxintrin.h (_mm256_stream_si256): New.
12727 (_mm256_stream_pd): Likewise.
12728 (_mm256_stream_ps): Likewise.
12729
12730 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
12731 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
12732 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
12733 (bdesc_special_args): Add __builtin_ia32_movntdq256,
12734 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
12735 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
12736 (ix86_expand_special_args_builtin): Likewise.
12737
12738 * config/i386/sse.md (AVXMODEDI): New.
12739 (avx_movnt<mode>): Likewise.
12740 (avx_movnt<mode>): Likewise.
12741 (<sse>_movnt<mode>): Remove AVX support.
12742 (sse2_movntv2di): Likewise.
12743
12744 2009-01-07 Richard Guenther <rguenther@suse.de>
12745
12746 PR middle-end/38751
12747 * fold-const.c (extract_muldiv): Remove obsolete comment.
12748 (fold_plusminus_mult_expr): Undo MINUS_EXPR
12749 to PLUS_EXPR canonicalization for the canonicalization.
12750
12751 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
12752
12753 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
12754 hosted cross-compilers generating less efficient code.
12755
12756 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
12757
12758 * function.h (rtl_data): Add a dbr_scheduled_p field.
12759 * reorg.c (dbr_schedule): Set it.
12760 (gate_handle_delay_slots): Check it.
12761 * config/mips/mips.c (mips_base_delayed_branch): Delete.
12762 (mips_reorg): Check flag_delayed_branch instead of
12763 mips_base_delayed_branch.
12764 (mips_override_options): Don't set mips_base_delayed_branch
12765 or flag_delayed_branch.
12766
12767 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
12768
12769 PR rtl-optimization/38426.
12770 * ira.c (ira): Set current_function_is_leaf earlier.
12771
12772 2009-01-06 Jakub Jelinek <jakub@redhat.com>
12773
12774 PR rtl-optimization/38722
12775 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
12776 too early, only set a flag and modify after last possible
12777 undo_all point.
12778
12779 2009-01-06 Janis Johnson <janis187@us.ibm.com>
12780
12781 PR c/34252
12782 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
12783 * real.c (decimal_single_format): Correct values of emin and emax.
12784 (decimal_double_format): Ditto.
12785 (decimal_quad_format): Ditto.
12786 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
12787 computation of DECnn_MIN and DECnn_MAX for corrected values of
12788 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
12789 __DECnn_MIN__, and adjust its computation for the corrected value
12790 of emin.
12791
12792 2009-01-06 Jan Hubicka <jh@suse.cz>
12793
12794 PR target/38744
12795 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
12796
12797 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
12798
12799 * doc/contrib.texi (Contributors): Slightly adjust the end note.
12800 Add Robert Clark to the list of testers.
12801
12802 2009-01-06 Jan Hubicka <jh@suse.cz>
12803 Kai Tietz <kai.tietz@onevision.com>
12804
12805 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
12806 * config/i386/i386.c (ix86_expand_call): Add clobbers.
12807
12808 2009-01-06 Jan Hubicka <jh@suse.cz>
12809 Kai Tietz <kai.tietz@onevision.com>
12810
12811 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
12812 for w64 ABI.
12813 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
12814 (ix86_nsaved_regs): Count only general purpose regs.
12815 (ix86_nsaved_sseregs): New.
12816 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
12817 to 16 for w64; compute padding and size of sse reg save area.
12818 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
12819 general purpose regs.
12820 (ix86_emit_save_sse_regs_using_mov): New.
12821 (ix86_expand_prologue): Save SSE regs if needed.
12822 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
12823 (ix86_emit_restore_sse_regs_using_mov): New.
12824 (ix86_expand_epilogue): Save SSE regs if needed.
12825
12826 2009-01-06 Jan Hubicka <jh@suse.cz>
12827 Kai Tietz <kai.tietz@onevision.com>
12828
12829 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
12830 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
12831 functions when accumulate outgoing args is off.
12832
12833 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
12834
12835 PR bootstrap/38742
12836 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
12837 before using pseudos_have_intersected_live_ranges_p.
12838
12839 * ira-int.h (ira_assert): Always define.
12840
12841 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
12842
12843 AVX Programming Reference (December, 2008)
12844 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
12845 (_mm256_permute2_pd): Likewise.
12846 (_mm_permute2_ps): Likewise.
12847 (_mm256_permute2_ps): Likewise.
12848 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
12849 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
12850
12851 * config/i386/i386.c (ix86_builtins): Remove
12852 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
12853 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
12854 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
12855 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
12856 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
12857 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
12858 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
12859 __builtin_ia32_vpermil2ps256.
12860 (ix86_init_mmx_sse_builtins): Updated.
12861 (ix86_expand_args_builtin): Likewise.
12862
12863 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12864
12865 * pa.c (output_call): Relocate non-jump insns in the delay slot of
12866 long absolute calls when generating PA 2.0 code.
12867
12868 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
12869
12870 PR rtl-optimization/38583
12871 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
12872
12873 * params.def (ira-max-conflict-table-size): New.
12874
12875 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
12876
12877 * ira.h (ira_conflicts_p): New external definition.
12878
12879 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
12880 table. Report this. Return result of building.
12881 (ira_build_conflicts): Use ira_conflicts_p. Check result of
12882 building conflict table.
12883
12884 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
12885 (ira_color): Use ira_conflicts_p.
12886
12887 * global.c: Include ira.h.
12888 (pseudo_for_reload_consideration_p, build_insn_chain): Use
12889 ira_conflicts_p.
12890
12891 * Makefile.in (global.o): Add ira.h.
12892
12893 * ira-build.c (mark_all_loops_for_removal,
12894 propagate_some_info_from_allocno): New.
12895 (remove_unnecessary_allocnos): Call
12896 propagate_some_info_from_allocno.
12897 (remove_low_level_allocnos): New.
12898 (remove_unnecessary_regions): Add parameter. Call
12899 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
12900 parameter to remove_unnecessary_regions.
12901 (ira_build): Remove all regions but root if the conflict table was
12902 not built. Update conflict hard regs for allocnos crossing calls.
12903
12904 * ira.c (ira_conflicts_p): New global.
12905 (ira): Define and use ira_conflicts_p.
12906
12907 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
12908 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
12909 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
12910
12911 2009-01-06 Ben Elliston <bje@au.ibm.com>
12912
12913 * gengtype-lex.l (YY_NO_INPUT): Define.
12914
12915 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
12916
12917 PR c/34911
12918 * c-common.c (handle_vector_size_attribute): Also reject
12919 BOOLEAN_TYPE types.
12920
12921 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
12922
12923 PR tree-optimization/38492
12924 * graphite.c (rename_map_elt, debug_rename_elt,
12925 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
12926 rename_map_elt_info, eq_rename_map_elts,
12927 get_new_name_from_old_name, bb_in_sese_p): Moved around.
12928 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
12929 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
12930 (sese_build_livein_liveouts): New.
12931 (new_sese, free_sese): New.
12932 (new_scop): Call new_sese.
12933 (free_scop): Call free_sese.
12934 (rename_variables_from_edge, rename_phis_end_scop): Removed.
12935 (register_old_new_names): Renamed register_old_and_new_names.
12936 (register_scop_liveout_renames, add_loop_exit_phis,
12937 insert_loop_close_phis, struct igp,
12938 default_liveout_before_guard, add_guard_exit_phis,
12939 insert_guard_phis, copy_renames): New.
12940 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
12941 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
12942 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
12943 (scop_adjust_phis_for_liveouts): New.
12944 (gloog): Call scop_adjust_phis_for_liveouts.
12945
12946 * graphite.h (struct sese): Documented. Added fields liveout,
12947 num_ver and livein.
12948 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
12949 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
12950 (struct scop): Added field liveout_renames.
12951 (SCOP_LIVEOUT_RENAMES): New.
12952
12953 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
12954
12955 PR tree-optimization/38510
12956 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
12957 (translate_clast): Call recompute_all_dominators before
12958 graphite_verify.
12959 (gloog): Call recompute_all_dominators before graphite_verify.
12960
12961 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
12962 Jan Sjodin <jan.sjodin@amd.com>
12963
12964 PR tree-optimization/38500
12965 * graphite.c (create_sese_edges): Call fix_loop_structure after
12966 splitting blocks.
12967
12968 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
12969
12970 * config.gcc: Add m32r*-*-rtems*.
12971 * config/m32r/rtems.h: New file.
12972
12973 2009-01-05 Ben Elliston <bje@au.ibm.com>
12974
12975 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
12976 (.po.pox): Likewise.
12977 (po/gcc.pot): Likewise.
12978
12979 2009-01-04 David S. Miller <davem@davemloft.net>
12980
12981 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
12982 (STARTING_FRAME_OFFSET): Always set to zero.
12983
12984 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
12985
12986 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
12987 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
12988 fixed-point types, and vectors of the same.
12989
12990 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
12991
12992 * config/mips/sync.md (*mb_barrier): Rename to...
12993 (*memory_barrier): ...this.
12994
12995 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
12996
12997 * doc/extend.texi (Function Attributes): Move @cindex after @item
12998 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
12999 and put in alphabetical order. Fix 'target' name and put in order.
13000 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
13001 typos.
13002
13003 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
13004
13005 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
13006 (memory_barrier): Expand as unspec instead of unspec_volatile.
13007 Remove mem:BLK from insn operands. Use Pmode scratch register.
13008 (*memory_barrier): Define as unspec instead of unspec_volatile.
13009 Use (match_dup 0) as input operand.
13010
13011 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
13012 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
13013 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
13014 scratch register. Remove operand 1.
13015 (*stbar): Define as unspec instead of unspec_volatile.
13016 Use (match_dup 0) as input operand, remove (const_int 8).
13017 (*membar): Define as unspec instead of unspec_volatile.
13018 Use (match_dup 0) as input operand, remove input operand 2.
13019
13020 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
13021 (memory_barrier): Expand as unspec instead of unspec_volatile.
13022 Remove mem:BLK from insn operands. Use Pmode scratch register.
13023 (*memory_barrier): Define as unspec instead of unspec_volatile.
13024 Use (match_dup 0) as input operand.
13025
13026 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
13027 Remove mem:BLK from insn operands. Use Pmode scratch register.
13028 Set volatile flag on operand 0.
13029 (*memory_barrier): New insn pattern.
13030
13031 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
13032 insn operands.
13033 (*memory_barrier): Use (match_dup 0) as input operand.
13034
13035 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
13036 Remove mem:BLK from insn operands. Use Pmode scratch register.
13037 Set volatile flag on operand 0.
13038 (*mb_internal): New insn pattern.
13039
13040 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
13041
13042 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
13043
13044 PR middle-end/38586
13045 * function.c (struct temp_slot): Move to the section of the file
13046 that deals with temp slots. Remove field 'address'.
13047 (temp_slot_address_table): New hash table of address -> temp slot.
13048 (struct temp_slot_address_entry): New struct, items for the table.
13049 (temp_slot_address_compute_hash, temp_slot_address_hash,
13050 temp_slot_address_eq, insert_temp_slot_address): Support functions
13051 for the new table.
13052 (find_temp_slot_from_address): Rewrite to use the new hash table.
13053 (remove_unused_temp_slot_addresses): Remove addresses of temp
13054 slots that have been made available.
13055 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
13056 worker function for remove_unused_temp_slot_addresses.
13057 (assign_stack_temp_for_type): Don't clear the temp slot address list.
13058 Add the temp slot address to the address -> temp slot map.
13059 (update_temp_slot_address): Update via insert_temp_slot_address.
13060 (free_temp_slots): Call remove_unused_temp_slot_addresses.
13061 (pop_temp_slots): Likewise.
13062 (init_temp_slots): Allocate the address -> temp slot map, or empty
13063 the map if it is already allocated.
13064 (prepare_function_start): Initialize temp slot processing.
13065
13066 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
13067
13068 PR middle-end/38584
13069 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
13070 Calculate the size of all stack vars assuming no packing of stack
13071 vars will happen, replacing a quadratic algorithm with a linear one.
13072
13073 2009-01-03 Jakub Jelinek <jakub@redhat.com>
13074
13075 PR target/38707
13076 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
13077 can't be used.
13078
13079 2009-01-03 Diego Novillo <dnovillo@google.com>
13080
13081 * doc/contrib.texi: Update contributions.
13082
13083 2009-01-03 Jakub Jelinek <jakub@redhat.com>
13084
13085 PR c++/38705
13086 * builtins.c (fold_builtin_memory_op): Give up if either operand
13087 is volatile. Set srctype or desttype to non-qualified version
13088 of the other type.
13089
13090 PR c/38700
13091 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
13092 and FUNCTION_DECLs.
13093
13094 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
13095
13096 PR rtl-optimization/35805
13097 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
13098 problem if fast dce is able to remove any instructions.
13099 * dce.c (dce_process_block): Fix dump message.
13100
13101 2009-01-02 Mark Mitchell <mark@codesourcery.com>
13102
13103 PR 33649
13104 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
13105
13106 2009-01-02 Jakub Jelinek <jakub@redhat.com>
13107
13108 PR middle-end/38690
13109 * tree-flow.h (op_code_prio, op_prio): New prototypes.
13110 * tree-pretty-print.c (op_code_prio): New function.
13111 (op_prio): No longer static. Use op_code_prio.
13112 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
13113 Use op_prio and op_code_prio to determine if () should be
13114 printed around operand(s) or not.
13115
13116 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
13117 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
13118 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
13119 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
13120 pp_character instead of pp_string for single letter printing.
13121
13122 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
13123
13124 * doc/extend.texi: Fix '#pragma GCC option' typo.
13125
13126 2009-01-02 Richard Guenther <rguenther@suse.de>
13127
13128 * doc/install.texi (--enable-checking): Mention different
13129 default for stage1.
13130 (--enable-stage1-checking): Document.
13131
13132 2009-01-01 Andrew Pinski <pinskia@gmail.com>
13133
13134 PR middle-end/30142
13135 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
13136 case to be an error.
13137
13138 2009-01-02 Ben Elliston <bje@au.ibm.com>
13139
13140 * config/fp-bit.h (pack_d): Constify argument.
13141 * config/fp-bit.c (makenan): Constify return type. Remove casts.
13142 (isnan): Constify argument.
13143 (isinf): Likewise.
13144 (iszero): Likewise.
13145 (pack_d): Likewise.
13146 (_fpadd_parts): Constify return type.
13147 (_fpmul_parts): Likewise.
13148 (_fpdiv_parts): Likewise.
13149
13150 2009-01-01 Jakub Jelinek <jakub@redhat.com>
13151
13152 PR c/36489
13153 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
13154 warn about overwriting initializer with side-effects or
13155 -Woverride-init if !IMPLICIT.
13156 (output_init_element): Likewise. Pass IMPLICIT down to
13157 add_pending_init.
13158 (process_init_element): Add IMPLICIT argument. Pass it down
13159 to output_init_element.
13160 (push_init_element, pop_init_level, set_designator): Adjust
13161 process_init_element callers.
13162 (set_nonincremental_init, set_nonincremental_init_from_string):
13163 Adjust add_pending_init callers.
13164 (output_pending_init_elements): Adjust output_init_element callers.
13165 * c-tree.h (process_init_element): Adjust prototype.
13166 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
13167 process_init_element callers.
13168
13169 \f
13170 Copyright (C) 2009 Free Software Foundation, Inc.
13171
13172 Copying and distribution of this file, with or without modification,
13173 are permitted in any medium without royalty provided the copyright
13174 notice and this notice are preserved.