Tweak a few entries
[gcc.git] / gcc / ChangeLog
1 2011-04-18 Xinliang David Li <davidxl@google.com>
2
3 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4
5 2011-04-18 Jakub Jelinek <jakub@redhat.com>
6
7 PR middle-end/48661
8 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
9 if TREE_TYPE (v) is non-NULL.
10
11 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
12 gimple_get_virt_mehtod_for_binfo.
13 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
14 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
15 callers.
16 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
17
18 2011-04-18 Michael Matz <matz@suse.de>
19 Steve Ellcey <sje@cup.hp.com>
20
21 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
22 use its mode as source mode if it isn't VOIDmode.
23
24 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
25
26 * doc/passes.texi: Fill crossref nodes.
27
28 2011-04-18 Jim Meyering <meyering@redhat.com>
29
30 Fix doubled-word typos in comments and strings
31 * config/alpha/vms-unwind.h: s/for for/for/
32 * config/arm/unwind-arm.h: Likewise.
33 * config/microblaze/microblaze.c: Likewise.
34 * config/sh/constraints.md: s/in in/in/
35 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
36
37 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
38
39 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
40 (AVX_FLOAT_MODE_P): Ditto.
41 (AVX128_VEC_FLOAT_MODE_P): Ditto.
42 (AVX256_VEC_FLOAT_MODE_P): Ditto.
43 (AVX_VEC_FLOAT_MODE_P): Ditto.
44 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
45 (UNSPEC_MASKSTORE): Ditto.
46 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
47 Merge from <sse>_movmsk<ssemodesuffix> and
48 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
49 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
50 iterator.
51 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
52 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
53 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
54
55 2011-04-18 Jan Hubicka <jh@suse.cz>
56
57 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
58
59 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
60 (want_inline_function_called_once_p): Break out the logic from
61 ipa_inline.
62 (edge_badness): Ensure that profile is not misupdated.
63 (lookup_recursive_calls): Prioritize by call frequencies.
64 (inline_small_functions): Move program size estimates here;
65 actually process whole queue even when unit growth has been
66 met. (to properly compute inline_failed reasons and for the
67 case unit size decrease.) Revisit comments on recursive inlining.
68 (ipa_inline): Remove unit summary code; first inline hot calls
69 of functions called once, cold calls next.
70 (order, nnodes): Remove unused variables.
71 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
72 (GTFILES): Remove ipa-inline.c
73 * sel-sched.c (fill_insns): Silence uninitialized var warning.
74
75 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
76
77 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
78
79 2011-04-18 Jie Zhang <jie@codesourcery.com>
80 Richard Earnshaw <rearnsha@arm.com>
81
82 * arm.c (neon_builtin_type_bits): Remove.
83 (typedef enum neon_builtin_mode): New.
84 (T_MAX): Don't define.
85 (typedef enum neon_builtin_datum): Remove bits, codes[],
86 num_vars and base_fcode. Add mode, code and fcode.
87 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
88 VAR10): Change accordingly.
89 (neon_builtin_data[]): Change accordingly
90 (arm_init_neon_builtins): Change accordingly.
91 (neon_builtin_compare): Remove.
92 (locate_neon_builtin_icode): Remove.
93 (arm_expand_neon_builtin): Change accordingly.
94
95 * arm.h (enum arm_builtins): Move to ...
96 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
97
98 * arm.c (arm_builtin_decl): Declare.
99 (TARGET_BUILTIN_DECL): Define.
100 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
101 (arm_builtin_decls[]): New.
102 (arm_init_neon_builtins): Store builtin declarations in
103 arm_builtin_decls[].
104 (arm_init_tls_builtins): Likewise.
105 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
106 (arm_builtin_decl): New.
107
108 2011-04-18 Richard Guenther <rguenther@suse.de>
109
110 * tree.c (upper_bound_in_type): Build properly canonicalized
111 INTEGER_CSTs.
112 (lower_bound_in_type): Likewise.
113
114 2011-04-18 Richard Guenther <rguenther@suse.de>
115
116 * gimple.h (gimple_call_addr_fndecl): New function.
117 (gimple_call_fndecl): Use it.
118 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
119 for direct calls.
120 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
121 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
122
123 2011-04-18 Richard Guenther <rguenther@suse.de>
124
125 PR middle-end/48650
126 * tree.c (build_string): STRING_CST is now derived from tree_typed.
127
128 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
129
130 PR lto/48492
131 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
132 DECL_IN_CONSTANT_POOL without RTL.
133
134 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
135 Ira Rosen <ira.rosen@linaro.org>
136
137 PR target/48252
138 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
139 to match neon_vzip/vuzp/vtrn_internal.
140 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
141 outputs explicitly dependent on both inputs.
142 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
143
144 2011-04-18 Jakub Jelinek <jakub@redhat.com>
145
146 PR tree-optimization/48616
147 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
148 whether the shift is by scalar or vector based on whether all SLP
149 scalar stmts have the same rhs.
150
151 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
152
153 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
154 memory operands.
155
156 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
157
158 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
159 registers.
160
161 2011-04-17 Jan Hubicka <jh@suse.cz>
162
163 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
164 * cgrpahunit.c (cgraph_finalize_function): Do not set
165 finalized_by_frontend.
166 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
167 finalized_by_frontend.
168
169 2011-04-17 Jan Hubicka <jh@suse.cz>
170
171 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
172 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
173 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
174 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
175 method.
176 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
177 gimple-fold.c
178 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
179
180 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
181
182 PR lto/48538
183 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
184 is non-null before accessing it.
185 (input_cgraph): Remove trailing spaces.
186
187 2011-04-17 Revital Eres <revital.eres@linaro.org>
188
189 * params.def (sms-min-sc): New param flag.
190 * modulo-sched.c (sms_schedule): Use it.
191 * doc/invoke.texi (sms-min-sc): Document it.
192
193 2011-04-17 Jan Hubicka <jh@suse.cz>
194
195 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
196 present, also set gimple_call_set_cannot_inline.
197 * ipa-inline.c: Update toplevel comment.
198 (MAX_TIME): Remove.
199 (cgraph_clone_inlined_nodes): Fix linebreaks.
200 (cgraph_check_inline_limits): Restructure to ...
201 (caller_growth_limits): ... this one; be more tolerant
202 on growth in nested inline chains; add explanatory comment;
203 fix stack accounting thinko introduced by previous patch.
204 (cgraph_default_inline_p): Remove.
205 (report_inline_failed_reason): New function.
206 (can_inline_edge_p): New function.
207 (can_early_inline_edge_p): New function.
208 (leaf_node_p): Move upwards in file.
209 (want_early_inline_function_p): New function.
210 (want_inline_small_function_p): New function.
211 (want_inline_self_recursive_call_p): New function.
212 (cgraph_edge_badness): Rename to ...
213 (edge_badness) ... this one; fix linebreaks.
214 (update_edge_key): Update call of edge_baddness; add
215 detailed dump about queue updates.
216 (update_caller_keys): Use can_inline_edge_p and
217 want_inline_small_function_p.
218 (cgraph_decide_recursive_inlining): Rename to...
219 (recursive_inlining): Use can_inline_edge_p and
220 want_inline_self_recursive_call_p; simplify and remove no longer
221 valid FIXME.
222 (cgraph_set_inline_failed): Remove.
223 (add_new_edges_to_heap): Use can_inline_edge_p and
224 want_inline_small_function_p.
225 (cgraph_decide_inlining_of_small_functions): Rename to ...
226 (inline_small_functions): ... this one; cleanup; use
227 can/want predicates; cleanup debug ouput; work edges till fibheap
228 is exhausted and do not stop once unit growth is reached; remove
229 later loop processing remaining edges.
230 (cgraph_flatten): Rename to ...
231 (flatten_function): ... this one; use can_inline_edge_p
232 and can_early_inline_edge_p predicates.
233 (cgraph_decide_inlining): Rename to ...
234 (ipa_inline): ... this one; remove unreachable nodes before
235 inlining functions called once; simplify the pass.
236 (cgraph_perform_always_inlining): Rename to ...
237 (inline_always_inline_functions): ... this one; use
238 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
239 (cgraph_decide_inlining_incrementally): Rename to ...
240 (early_inline_small_functions): ... this one; simplify
241 using new predicates; cleanup; make dumps prettier.
242 (cgraph_early_inlining): Rename to ...
243 (early_inliner): newer inline regular functions into always-inlines;
244 fix updating of call stmt summaries.
245 (pass_early_inline): Update for new names.
246 (inline_transform): Fix formating.
247 (gate_cgraph_decide_inlining): Rename to ...
248 (pass_ipa_inline): ... this one.
249 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
250 * ipa-inline-analysis.c (dump_inline_summary): Update.
251 (compute_inline_parameters): Do not compute disregard_inline_limits;
252 look for mismatching arguments.
253 (estimate_growth): Fix handlig of non-trivial self recursion.
254 (inline_read_summary): Do not read info->disregard_inline_limits.
255 (inline_write_summary): Do not write info->disregard_inline_limits.
256 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
257 and move all checks into can_inline_edge_p predicate; re-enable code
258 comparing optimization levels.
259 (expand_call_inline): Do not test inline_forbidden_into_p.
260 * Makefile.in (ipa-inline.o): Update arguments.
261
262 2011-04-17 Revital Eres <revital.eres@linaro.org>
263
264 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
265
266 2011-04-17 Revital Eres <revital.eres@linaro.org>
267
268 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
269
270 2011-04-17 Michael Matz <matz@suse.de>
271
272 PR tree-optimization/48622
273 PR lto/48645
274 * ipa-inline-analysis.c (inline_read_summary): Read size/time
275 in same order as they're written.
276
277 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
278
279 * config/i386/sse.md (sseunpackmode): New mode attribute.
280 (ssepackmode): Ditto.
281 (vec_pack_trunc_<mode>): Macroize expander from
282 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
283 (vec_unpacks_lo_<mode>): Macroize expander from
284 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
285 (vec_unpacks_hi_<mode>): Macroize expander from
286 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
287 (vec_unpacku_lo_<mode>): Macroize expander from
288 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
289 (vec_unpacku_hi_<mode>): Macroize expander from
290 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
291 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
292 ix86_expand_sse4_unpack.
293 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
294
295 2011-04-16 Jan Hubicka <jh@suse.cz>
296
297 * cgraphbuild.c: Include ipa-inline.h.
298 (reset_inline_failed): Use initialize_inline_failed.
299 * cgraph.c: Include ipa-inline.h.
300 (cgraph_create_node_1): Do not initialize estimated_growth.
301 (initialize_inline_failed): More to ipa-inline-analysis.c
302 (dump_cgraph_node): Do not dump inline flags.
303 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
304 and disregard_inline_limits flags.
305 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
306 time, size, estimated_growth.
307 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
308 Update.
309 * cgraphunit.c (cgraph_decide_is_function_needed): Use
310 DECL_DISREGARD_INLINE_LIMITS.
311 (cgraph_analyze_function): Do not initialize
312 node->local.disregard_inline_limits.
313 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
314 inlinable, versionable and disregard_inline_limits.
315 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
316 cgraph_check_inline_limits, cgraph_default_inline_p,
317 cgraph_edge_badness, update_caller_keys, update_callee_keys,
318 add_new_edges_to_heap): Update.
319 (cgraph_decide_inlining_of_small_function): Update; set
320 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
321 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
322 cgraph_decide_inlining_incrementally): Update.
323 * ipa-inline.h (inline_summary): Add inlinable, versionable,
324 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
325 time, size and estimated_growth parameters.
326 (estimate_edge_growth): Update.
327 (initialize_inline_failed): Declare.
328 * ipa-split.c: Include ipa-inline.h
329 (execute_split_functions): Update.
330 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
331 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
332 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
333 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
334 estimated_growth to INT_MIN.
335 (inline_node_duplication_hook): Likewise.
336 (dump_inline_summary): Dump new fields.
337 (compute_inline_parameters): Update.
338 (estimate_edge_time, estimate_time_after_inlining,
339 estimate_size_after_inlining, estimate_growth, inline_read_summary,
340 inline_write_summary):
341 (initialize_inline_failed): Move here from cgraph.c.
342 * tree-sra.c: Include ipa-inline.h.
343 (ipa_sra_preliminary_function_checks): Update.
344 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
345 ipa-inline.h.
346
347 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
348
349 * config/i386/sse.md (V16): New mode iterator.
350 (VI1, VI8): Ditto.
351 (AVXMODEQI, AVXMODEDI): Remove.
352 (sse2, sse3): New mode attribute.
353 (mov<mode>): Use V16 mode iterator.
354 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
355 (push<mode>1): Use V16 mode iterator.
356 (movmisalign<mode>): Ditto.
357 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
358 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
359 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
360 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
361 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
362 avx_movdqu<avxmodesuffix>.
363 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
364 *avx_movdqu<avxmodesuffix>.
365 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
366 avx_lddqu<avxmodesuffix>.
367 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
368 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
369 avx_movnt<AVXMODEDI:mode>.
370 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
371 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
372
373 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
374
375 PR target/48629
376 * haifa-sched.c (prune_ready_list, schedule_block): Use
377 sched_pressure_p rather than flag_sched_pressure.
378
379 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
380
381 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
382 cgraph_get_node instead of cgraph_get_create_node.
383
384 2011-04-15 Jakub Jelinek <jakub@redhat.com>
385
386 * cfgexpand.c (expand_debug_expr): Use
387 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
388
389 2011-04-15 Michael Matz <matz@suse.de>
390
391 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
392 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
393 * function.c (gimplify_parameters): Ditto.
394 * gimplify.c (gimplify_vla_decl): Ditto.
395
396 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
397 (gimple_call_set_alloca_for_var): New inline function.
398 (gimple_call_alloca_for_var_p): Ditto.
399 * gimple.c (gimple_build_call_from_tree): Remember
400 CALL_ALLOCA_FOR_VAR_P state.
401 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
402
403 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
404 calls if they were for VLA objects.
405
406 2011-04-15 Martin Jambor <mjambor@suse.cz>
407
408 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
409 of ADR_EXPRs.
410
411 2011-04-15 Martin Jambor <mjambor@suse.cz>
412
413 PR middle-end/48601
414 * tree-emutls.c (lower_emutls_function_body): Call
415 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
416 result is non-NULL.
417
418 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
419
420 * c-decl.c (detect_field_duplicates): Call
421 objc_detect_field_duplicates instead of objc_get_interface_ivars.
422
423 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
424
425 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
426 * gimple.c (gimple_asm_clobbers_memory_p): Define.
427 * ipa-pure-const.c (check_stmt): Call it.
428 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
429
430 2011-04-15 Richard Guenther <rguenther@suse.de>
431
432 PR tree-optimization/48290
433 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
434 Properly decide inhibiting propagation based on the valueized
435 operand. Do loop-closed SSA form preserving here ...
436 (init_copy_prop): ... not here.
437
438 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
439
440 PR target/48612
441 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
442 (*ieee_smax<mode>3): Likewise.
443
444 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
445
446 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
447 Replace match_operand with match_dup for the third operand in
448 these expanders.
449
450 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
451
452 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
453 to track processing of conditionals. Update all callers.
454 (try_combine, simplify_if_then_else): Update.
455
456 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
457
458 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
459 -fsched-pressure.
460
461 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
462
463 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
464 instead of match_operand for operand 3.
465
466 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
467
468 * recog.h (insn_operand_data): Add an "allows_mem" field.
469 * genoutput.c (output_operand_data): Initialize it.
470 * optabs.c (maybe_legitimize_operand_same_code): New function.
471 (maybe_legitimize_operand): Use it when matching the original
472 op->value.
473
474 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
475
476 * gimplify.c: Fix issues in comments throughout.
477 (voidify_wrapper_expr): Fix long line.
478 (build_stack_save_restore): Likewise.
479 (gimplify_loop_expr): Likewise.
480 (gimplify_compound_lval): Likewise.
481 (gimplify_init_ctor_eval): Likewise.
482 (gimplify_modify_expr_rhs): Likewise.
483 (omp_notice_threadprivate_variable): Likewise.
484
485 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
486
487 * cfgexpand.c (expand_call_stmt): Convert the function type to the
488 original one if this is not a builtin function.
489
490 2011-04-14 Jakub Jelinek <jakub@redhat.com>
491
492 PR target/48605
493 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
494 offset it as needed based on top 2 bits in operands[3], change
495 MEM mode to SFmode and mask those 2 bits away from operands[3].
496
497 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
498
499 * c-parser.c (c_parser_objc_protocol_definition): Updated for
500 change from objc_declare_protocols() to objc_declare_protocol().
501
502 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
503
504 * config/i386/sse.md (sse4_1): New mode attribute.
505 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
506 avx_blend<ssemodesuffix><avxmodesuffix> and
507 sse4_1_blend<ssemodesuffix> using VF mode iterator.
508 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
509 avx_blendv<ssemodesuffix><avxmodesuffix> and
510 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
511 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
512 avx_dp<ssemodesuffix><avxmodesuffix> and
513 sse4_1_dp<ssemodesuffix> using VF mode iterator.
514 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
515 (sse4_1_packusdw): Merge with *avx_packusdw.
516 (sse4_1_pblendvb): Merge with *avx_pblendvb.
517 (sse4_1_pblendw): Merge with *avx_pblendw.
518 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
519 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
520 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
521 VF mode iterator.
522 (sse4_1_round<ssescalarmodesuffix>): Merge with
523 *avx_round<ssescalarmodesuffix>.
524 (aesenc): Merge with *avx_aesenc.
525 (aesenclast): Merge with *avx_aesenclast.
526 (aesdec): Merge with *avx_aesdec.
527 (aesdeclast): Merge with *avx_aesdeclast.
528 (pclmulqdq): Merge with *pclmulqdq.
529 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
530 New predicate.
531 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
532
533 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
534
535 PR middle-end/48608
536 * cfgexpand.c (get_decl_align_unit): Renamed to ...
537 (align_local_variable): This. Update DECL_ALIGN.
538 (add_stack_var): Updated.
539 (expand_one_stack_var): Likewise.
540
541 2011-04-14 Richard Guenther <rguenther@suse.de>
542
543 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
544 Remove.
545 (dse_initialize_block_local_data, dse_leave_block,
546 record_voperand_set, get_stmt_uid): Likewise.
547 (dse_possible_dead_store_p): Allow any kind of killing stmt.
548 (dse_optimize_stmt): Remove voperand set handling code.
549 Simplify and improve to handle any kind of killing stmt.
550 (dse_record_phi): Remove.
551 (dse_enter_block): Simplify.
552 (tree_ssa_dse): Likewise.
553 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
554
555 2011-04-14 Jan Hubicka <jh@suse.cz>
556
557 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
558 * cgraph.h (struct inline_summary): Move to ipa-inline.h
559 (cgraph_local_info): Remove inline_summary.
560 * ipa-cp.c: Include ipa-inline.h.
561 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
562 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
563 accesor.
564 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
565 (input_overwrite_node): Do not set inline summary.
566 (input_node): Do not stream inline summary.
567 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
568 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
569 growth; we do not have inline parameters computed for that anyway.
570 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
571 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
572 (inline_summary_t): New type and VECtor.
573 (debug_inline_summary, dump_inline_summaries): Declare.
574 (inline_summary): Use VOCtor.
575 (estimate_edge_growth): Kill hack computing call stmt size directly.
576 * lto-section-in.c (lto_section_name): Add inline section.
577 * ipa-inline-analysis.c: Include lto-streamer.h
578 (node_removal_hook_holder, node_duplication_hook_holder): New holders
579 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
580 (inline_summary_vec): Define.
581 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
582 dump_inline_summaries): New functions.
583 (estimate_function_body_sizes): Properly compute size/time of outgoing
584 calls.
585 (compute_inline_parameters): Alloc inline_summary; do not compute
586 size/time of incomming calls.
587 (estimate_edge_time): Avoid missing time summary hack.
588 (inline_read_summary): Read inline summary info.
589 (inline_write_summary): Write inline summary info.
590 (inline_free_summary): Free all hooks and inline summary vector.
591 * lto-streamer.h: Add LTO_section_inline_summary section.
592 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
593 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
594
595 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
596
597 * tree-vectorizer.h (vect_strided_store_supported): Add a
598 HOST_WIDE_INT argument.
599 (vect_strided_load_supported): Likewise.
600 (vect_permute_store_chain): Return void.
601 (vect_transform_strided_load): Likewise.
602 (vect_permute_load_chain): Delete.
603 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
604 count argument. Check that the count is a power of two.
605 (vect_strided_load_supported): Likewise.
606 (vect_permute_store_chain): Return void. Update after above changes.
607 Assert that the access is supported.
608 (vect_permute_load_chain): Likewise.
609 (vect_transform_strided_load): Return void.
610 * tree-vect-stmts.c (vectorizable_store): Update calls after
611 above interface changes.
612 (vectorizable_load): Likewise.
613 (vect_analyze_stmt): Don't check for strided powers of two here.
614
615 2011-04-14 Richard Guenther <rguenther@suse.de>
616
617 PR tree-optimization/48590
618 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
619 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
620 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
621 BUILT_IN_STACK_SAVE.
622 * tree-ssa-dce.c (propagate_necessity): Handle
623 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
624
625 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
626
627 * c-parser.c (c_parser_objc_class_declaration): Updated call to
628 objc_declare_class.
629
630 2011-04-14 Richard Guenther <rguenther@suse.de>
631
632 * tree.h (get_object_alignment_1): Declare.
633 * builtins.c (get_object_alignment_1): Split out worker from ...
634 (get_object_alignment): ... here.
635 * fold-const.c (get_pointer_modulus_and_residue): Use
636 get_object_alignment_1.
637
638 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
639
640 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
641 type parameter.
642 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
643 parameter. Generalise code to handle arrays as well as vectors.
644 (vect_setup_realignment): Update accordingly.
645 * tree-vect-stmts.c (vectorizable_store): Likewise.
646 (vectorizable_load): Likewise.
647
648 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
649
650 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
651 within the per-copy loop.
652
653 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
654
655 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
656 in the dump file.
657
658 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
659
660 * doc/options.texi (Negative): Explicitly mention that the
661 Negative chain must be circular.
662
663 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
664
665 * function.h (block_chainon): Declare.
666 * function.c (block_chainon): Define.
667
668 2011-04-14 Anatoly Sokolov <aesok@post.ru>
669 Eric Weddington <eric.weddington@atmel.com>
670 Georg-Johann Lay <avr@gjlay.de>
671
672 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
673 New Includes
674 (avr_init_builtins, avr_expand_builtin,
675 avr_expand_delay_cycles, avr_expand_unop_builtin,
676 avr_expand_binop_builtin ): New functions.
677 (avr_builtin_id): New enum
678 (struct avr_builtin_description): New struct
679 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
680 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
681
682 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
683 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
684 UNSPECV_DELAY_CYCLES): new enumeration values
685 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
686 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
687 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
688 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
689 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
690 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
691 "fmulsu"): New insns
692
693 * config/avr/avr-c.c: fix line endings
694 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
695 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
696 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
697 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
698 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
699
700 * doc/extend.texi (AVR Built-in Functions): New node
701 (Target Builtins): Add documentation of AVR
702 built-in functions.
703
704 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
705
706 PR target/44643
707 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
708 alone. Error if non-const data has attribute progmem.
709
710 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
711
712 * tree.h (struct tree_constructor): Include tree_typed instead of
713 tree_common.
714 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
715 TS_TYPED instead of TS_COMMON.
716
717 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
718
719 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
720 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
721 (sse2_psadbw): Merge with *avx_psadbw.
722 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
723 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
724 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
725 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
726 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
727 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
728 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
729 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
730 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
731 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
732 (ssse3_palignrti): Merge with *avx_palignrti.
733
734 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
735
736 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
737 * tree-ssanames.c (fini_ssanames): VEC_free it.
738 (make_ssa_name_fn): Update for VECness of free_ssanames.
739 (release_ssa_name, release_dead_ssa_names): Likewise.
740 * tree.h (struct tree_ssa_name): Include tree_typed instead of
741 tree_common.
742 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
743 TS_TYPED instead of TS_COMMON.
744
745 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
746
747 * postreload-gcse.c (gcse_after_reload_main): Add calls to
748 statistics_counter_event.
749 * tree-ssa-copyrename.c (stats): Define.
750 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
751 statistics_counter_event.
752 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
753 (bswap_stats, widen_mul_stats): Define.
754 (insert_reciprocals): Increment rdivs_inserted.
755 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
756 rfuncs_inserted. Add calls to statistics_counter_event.
757 (execute_cse_sincos_1): Increment inserted.
758 (execute_cse_sincos): Zeroize sincos_stats. Add call to
759 statistics_counter_event.
760 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
761 of bswap_stats. Add calls to statistics_counter_event.
762 (convert_mult_to_widen): Increment widen_mults_inserted.
763 (convert_plusminus_to_widen): Increment maccs_inserted.
764 (convert_mult_to_fma): Increment fmas_inserted.
765 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
766 calls to statistics_counter_event.
767
768 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
769
770 PR rtl-optimization/48455
771 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
772 `temp_costs->mem_cost'.
773
774 2011-04-13 Jan Hubicka <jh@suse.cz>
775
776 * ipa-inline.h: New file.
777 * ipa-inline-analysis.c: New file. Broken out of ...
778 * ipa-inline.c: ... this file; update toplevel comment;
779 include ipa-inline.h
780 (inline_summary): Move to ipa-inline.h
781 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
782 ipa-inline-analysis.c.
783 (cgraph_estimate_time_after_inlining): Rename to
784 estiamte_time_after_inlining; move to ipa-inline-analysis.c
785 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
786 to estimate_edge_growth.
787 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
788 rename to estimate_size_after_inlining.
789 (cgraph_mark_inline_edge): Update for new naming convention.
790 (cgraph_check_inline_limits): Likewise.
791 (cgraph_edge_badness): Likewise.
792 (cgraph_decide_recursive_inlining): Likewise.
793 (cgraph_decide_inlining_of_small_functions): Likewise.
794 (cgraph_decide_inlining_incrementally): Likewise.
795 (cgraph_estimate_growth): Rename to estimate_growth; move to
796 ipa-inline-analysis.c.
797 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
798 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
799 (compute_inline_parameters): Likewise.
800 (compute_inline_parameters_for_current): Likewise.
801 (pass_inline_parameters): Likewise.
802 (inline_indirect_intraprocedural_analysis): Likewise.
803 (analyze_function): Rename to inline_analyze_function; likewise.
804 (add_new_function): Move to ipa-inline-analysis.c.
805 (inline_generate_summary): Likewise.
806 (inline_read_summary): Likewise.
807 (inline_write_summary): Likewise.
808 * Makefile.in (ipa-inline-analysis.c): New file.
809
810 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
811
812 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
813 * configure: Regenerate.
814
815 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
816
817 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
818 instead of tree_common.
819 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
820 Likewise.
821 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
822 TS_TYPED rather than TS_COMMON.
823 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
824
825 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
826
827 PR target/45263
828 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
829 r20 around calls of __tablejump_elpm__
830
831 2011-04-13 Jakub Jelinek <jakub@redhat.com>
832
833 PR middle-end/48591
834 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
835 NULL.
836 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
837
838 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
839
840 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
841 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
842 (cfi_vec): New typedef.
843 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
844 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
845 (cie_cfi_vec): New static variable.
846 (cie_cfi_head): Delete.
847 (add_cfi): Accept a cfi_vec * as first argument. All callers and
848 declaration changed. Use vector rather than list operations.
849 (new_cfi): Don't initialize the dw_cfi_next field.
850 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
851 rather than list operations.
852 (lookup_cfa): Use vector rather than list operations.
853 (output_cfis): New argument upto. Accept a cfi_vec rather than
854 a dw_cfi_ref list head as argument. All callers changed.
855 Iterate over the vector using upto as a maximum index.
856 (output_all_cfis): New static function.
857 (output_fde): Use vector rather than list operations. Use the
858 new upto argument for output_cfis rather than manipulating a
859 list.
860 (dwarf2out_begin_prologue): Change initializations to match
861 new struct members.
862 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
863 from the vector length rather than searching for the end of a list.
864 Use output_all_cfis.
865 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
866
867 2011-04-13 Nick Clifton <nickc@redhat.com>
868
869 * config/rx/rx.md (movmemsi): Do not use this pattern when
870 volatile pointers are involved.
871
872 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
873
874 * config/i386/sse.md (pinsrbits): Remove.
875 (sse2_packsswb): Merge with *avx_packsswb.
876 (sse2_packssdw): Merge with *avx_packssdw.
877 (sse2_packuswb): Merge with *avx_packuswb.
878 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
879 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
880 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
881 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
882 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
883 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
884 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
885 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
886 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
887 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
888 (sse2_loadld): Merge with *avx_loadld.
889 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
890 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
891 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
892 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
893 (vec_concatv2di): Merge with *vec_concatv2di_avx.
894
895 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
896
897 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
898 calling TREE_CHAIN.
899 * print-tree.c (print_node): Likewise.
900 * tree-inline.c (copy_tree_r): Likewise.
901 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
902 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
903 instead of TS_COMMON.
904 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
905 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
906 (copy_node_stat): Zero TREE_CHAIN only if necessary.
907 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
908 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
909 ...and these...
910 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
911 * tree.h: ...here.
912 (TREE_CHAIN): Check for a TS_COMMON structure.
913 (TREE_TYPE): Check for a TS_TYPED structure.
914
915 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
916
917 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
918 cgraph_get_create_node instead of cgraph_node.
919
920 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
921
922 * c-parser.c (c_parser_initelt): Updated call to
923 objc_build_message_expr.
924 (c_parser_postfix_expression): Likewise.
925
926 2011-04-12 Kai Tietz <ktietz@redhat.com>
927
928 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
929 MASK_MS_BITFIELD_LAYOUT bit.
930
931 2011-04-12 Jakub Jelinek <jakub@redhat.com>
932
933 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
934 assert it is always true.
935 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
936 moves.
937
938 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
939
940 * c-parser.c (c_lex_one_token): Rewritten conditional used when
941 compiling Objective-C to be more efficient.
942
943 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
944
945 * opts-common.c (decode_cmdline_options_to_array): Remove variable
946 argv_copied.
947
948 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
949
950 * recog.h, genoutput.c, optabs.c: Revert last patch.
951
952 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
953
954 PR target/48090
955 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
956
957 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
958
959 * recog.h (insn_operand_data): Add an "allows_mem" field.
960 * genoutput.c (output_operand_data): Initialize it.
961 * optabs.c (maybe_legitimize_operand_same_code): New function.
962 (maybe_legitimize_operand): Use it when matching the original
963 op->value.
964
965 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
966
967 * genpreds.c (process_define_predicate): Move most processing
968 to gensupport.c. Continue to validate the expression.
969 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
970 (process_define_predicate): Move processing to gensupport.c.
971 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
972 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
973 (compute_predicate_codes): Moved from genrecog.c. Add lineno
974 argument.
975 (valid_predicate_name_p): New function, split out from old
976 genpreds.c:process_define_predicate.
977 (process_define_predicate): New function, combining code from
978 old genpreds.c and genrecog.c functions.
979 (process_rtx): Call it for DEFINE_PREDICATE and
980 DEFINE_SPECIAL_PREDICATE.
981
982 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
983
984 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
985 size of a '%A' memory reference.
986 (T_DREG, T_QREG): New neon_builtin_type_bits.
987 (arm_init_neon_builtins): Assert that the load and store operands
988 are neon_struct_operands.
989 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
990 (NEON_ARG_MEMORY): New builtin_arg.
991 (neon_dereference_pointer): New function.
992 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
993 Handle NEON_ARG_MEMORY.
994 (arm_expand_neon_builtin): Update after above interface changes.
995 Use NEON_ARG_MEMORY for loads and stores.
996 * config/arm/predicates.md (neon_struct_operand): New predicate.
997 * config/arm/iterators.md (V_two_elem): Tweak formatting.
998 (V_three_elem): Use BLKmode for accesses that have no associated mode.
999 (V_four_elem): Tweak formatting.
1000 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
1001 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
1002 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
1003 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
1004 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
1005 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
1006 (neon_vst4<mode>): Replace pointer operand with a memory operand.
1007 Use %A in the output template.
1008 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
1009 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
1010 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
1011 the width of the memory access. Remove post-increment.
1012 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
1013
1014 2011-04-12 Nick Clifton <nickc@redhat.com>
1015
1016 * config/v850/v850.c (expand_prologue): Do not use the CALLT
1017 instruction for interrupt handlers if the target is the basic V850
1018 architecture.
1019 (expand_epilogue): Likewise.
1020
1021 2011-04-12 Jakub Jelinek <jakub@redhat.com>
1022
1023 PR rtl-optimization/48549
1024 * combine.c (propagate_for_debug): Also stop after BB_END of
1025 this_basic_block. Process LAST and just stop processing after it.
1026 (combine_instructions): If last_combined_insn has been deleted,
1027 set last_combined_insn to its PREV_INSN.
1028
1029 2011-04-12 Richard Guenther <rguenther@suse.de>
1030
1031 PR tree-optimization/46076
1032 * gimple.h (struct gimple_statement_call): Add fntype field.
1033 (gimple_call_fntype): Adjust.
1034 (gimple_call_set_fntype): New function.
1035 * gimple.c (gimple_build_call_1): Set the call function type.
1036 * gimplify.c (gimplify_call_expr): Preserve the function
1037 type the frontend used for the call.
1038 (gimplify_modify_expr): Likewise.
1039 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
1040 function type.
1041 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
1042 function type.
1043 * tree-ssa.c (useless_type_conversion_p): Function pointer
1044 conversions are useless.
1045
1046 2011-04-12 Martin Jambor <mjambor@suse.cz>
1047
1048 * cgraph.h (cgraph_node): Remove function declaration.
1049 (cgraph_create_node): Declare.
1050 (cgraph_get_create_node): Likewise.
1051 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
1052 Updated all callers.
1053 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
1054 the decl does not already exist. Call cgraph_get_create_node instead
1055 of cgraph_node.
1056 (cgraph_get_create_node): New function.
1057 (cgraph_same_body_alias): Update comment.
1058 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
1059 assert it does not return NULL.
1060 (cgraph_update_edges_for_call_stmt): Likewise.
1061 (cgraph_clone_edge): Likewise.
1062 (cgraph_create_virtual_clone): Likewise.
1063 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
1064 instead of cgraph_node.
1065 (cgraph_add_new_function): Call cgraph_create_node or
1066 cgraph_get_create_node instead of cgraph_node.
1067 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
1068 instead of cgraph_node.
1069 (record_eh_tables): Likewise.
1070 (mark_address): Likewise.
1071 (mark_load): Likewise.
1072 (build_cgraph_edges): Call cgraph_get_create_node instead
1073 of cgraph_node.
1074 (rebuild_cgraph_edges): Likewise.
1075 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
1076 instead of cgraph_node.
1077 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
1078 cgraph_node.
1079 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
1080 cgraph_create_node instead of cgraph_node.
1081 * c-decl.c (finish_function): Call cgraph_get_create_node instead
1082 of cgraph_node.
1083 * lto-cgraph.c (input_node): Likewise.
1084 * lto-streamer-in.c (input_function): Likewise.
1085 * varasm.c (mark_decl_referenced): Likewise.
1086 (assemble_alias): Likewise.
1087
1088 2011-04-12 Martin Jambor <mjambor@suse.cz>
1089
1090 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
1091 instead of cgraph_node and assert it does not return NULL.
1092 * lto-streamer-in.c (lto_read_body): Likewise.
1093 * omp-low.c (new_omp_context): Likewise.
1094 (create_task_copyfn): Likewise.
1095 * tree-emutls.c (lower_emutls_function_body): Likewise.
1096 * matrix-reorg.c (transform_allocation_sites): Likewise.
1097
1098 2011-04-12 Jakub Jelinek <jakub@redhat.com>
1099
1100 PR c/48552
1101 * c-typeck.c (build_asm_expr): Error out on attempts to use
1102 void type outputs or inputs for constraints that allow reg or
1103 don't allow memory.
1104
1105 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
1106 Richard Earnshaw <rearnsha@arm.com>
1107
1108 PR target/48250
1109 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
1110 to use sign-magnitude offsets. Reject unsupported unaligned
1111 cases. Add detailed description in comments.
1112 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
1113 condition from TARGET_32BIT to TARGET_ARM.
1114
1115 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
1116
1117 * tree.h (struct typed_tree): New.
1118 (struct tree_common): Include it instead of tree_base.
1119 (TREE_TYPE): Update for new location of type field.
1120 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
1121 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
1122 (union tree_node): Add typed field.
1123 * treestruct.def (TS_TYPED): New.
1124 * lto-streamer.c (check_handled_ts_structures): Handle it.
1125 * tree.c (MARK_TS_TYPED): New macro.
1126 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
1127
1128 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
1129
1130 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
1131 (force_nonfallthru): Do not alter the loop nest if no basic block
1132 was created.
1133
1134 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
1135
1136 * config/i386/sse.md (VI): New mode iterator.
1137 (SSEMODEI): Remove.
1138 (AVX256MODEI): Ditto.
1139 (AVXMODEF4P): Ditto.
1140 (avxvecpsmode): Ditto.
1141 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
1142 (sse2_andnot<mode>3): New expander.
1143 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
1144 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
1145 (<any_logic:code><mode>3): Use VI mode iterator.
1146 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
1147 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
1148 (*andnottf3): Handle AVX three-operand constraints.
1149 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
1150
1151 2011-04-11 Joseph Myers <joseph@codesourcery.com>
1152 Robert Millan <rmh@gnu.org>
1153
1154 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
1155 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
1156 GNU_USER_DYNAMIC_LINKER64): Define.
1157 (REG_NAME): Don't undefine.
1158 (MD_UNWIND_SUPPORT): Undefine.
1159 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
1160 (REG_NAME): Don't undefine.
1161 (MD_UNWIND_SUPPORT): Undefine.
1162 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
1163
1164 2011-04-11 Joseph Myers <joseph@codesourcery.com>
1165
1166 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
1167 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
1168
1169 2011-04-11 Xinliang David Li <davidxl@google.com>
1170
1171 * value-profile.c (check_ic_target): New function.
1172 (gimple_ic_transform): Sanity check indirect call target.
1173 * gimple-low.c (gimple_check_call_args): Interface change.
1174 (gimple_check_call_matching_types): New function.
1175 * tree-inline.c (tree_can_inline_p): Call new function.
1176
1177 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
1178
1179 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
1180 tree-pretty-print.h & realmpfr.h.
1181
1182 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
1183
1184 PR middle-end/48464
1185 * ira.c (setup_pressure_classes): Fix typo in loop condition.
1186 (setup_allocno_and_important_classes): Ditto.
1187
1188 2011-04-11 Joseph Myers <joseph@codesourcery.com>
1189
1190 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
1191 GNU_USER_DYNAMIC_LINKER.
1192 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
1193 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1194 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
1195 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1196 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1197 GNU_USER_TARGET_OS_CPP_BUILTINS.
1198 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
1199 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1200 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1201 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1202 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
1203 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1204 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1205 GNU_USER_TARGET_OS_CPP_BUILTINS.
1206 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1207 GNU_USER_DYNAMIC_LINKER.
1208 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1209 GNU_USER_TARGET_OS_CPP_BUILTINS.
1210 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
1211 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1212 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
1213 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1214 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
1215 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
1216 GNU_USER_DYNAMIC_LINKER64): Remove.
1217 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
1218 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1219 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1220 GNU_USER_DYNAMIC_LINKER.
1221 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1222 GNU_USER_TARGET_OS_CPP_BUILTINS.
1223 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1224 GNU_USER_TARGET_OS_CPP_BUILTINS.
1225 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
1226 to GNU_USER_TARGET_OS_CPP_BUILTINS.
1227 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1228 GNU_USER_TARGET_OS_CPP_BUILTINS.
1229 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
1230 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
1231 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1232 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
1233 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1234 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1235 GNU_USER_DYNAMIC_LINKER.
1236 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1237 GNU_USER_TARGET_OS_CPP_BUILTINS.
1238 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
1239 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1240 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1241 GNU_USER_DYNAMIC_LINKER.
1242 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1243 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1244 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
1245 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1246 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1247 GNU_USER_DYNAMIC_LINKER.
1248 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
1249 GNU_USER_DYNAMIC_LINKERN32.
1250 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
1251 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
1252 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
1253 GNU_USER_DYNAMIC_LINKER32.
1254 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
1255 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1256 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1257 GNU_USER_DYNAMIC_LINKER.
1258 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1259 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1260 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
1261 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1262 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1263 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
1264 GNU_USER_DYNAMIC_LINKER32.
1265 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1266 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
1267 GNU_USER_DYNAMIC_LINKER.
1268 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
1269 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1270 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1271 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
1272 GNU_USER_DYNAMIC_LINKER64.
1273 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
1274 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1275 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1276 GNU_USER_DYNAMIC_LINKER.
1277 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
1278 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1279 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1280 GNU_USER_DYNAMIC_LINKER.
1281 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
1282 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1283 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1284 GNU_USER_DYNAMIC_LINKER32.
1285 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1286 GNU_USER_DYNAMIC_LINKER64.
1287 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1288 GNU_USER_DYNAMIC_LINKER64.
1289 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
1290 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1291 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
1292 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1293 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1294
1295 2011-04-11 Joseph Myers <joseph@codesourcery.com>
1296
1297 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
1298 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
1299 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
1300 GNU_USER_DYNAMIC_LINKER.
1301 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1302 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
1303 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
1304 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
1305 GNU_USER_DYNAMIC_LINKER64.
1306 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1307 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
1308 GNU_USER_LINK_EMULATION.
1309 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
1310 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
1311 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
1312 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
1313 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
1314 CPP_SPEC, CC1_SPEC): Remove.
1315 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
1316 (GNU_USER_DYNAMIC_LINKER): Define.
1317 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
1318 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
1319 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
1320 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
1321 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
1322 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
1323 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1324 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
1325 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
1326 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
1327 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
1328 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
1329 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
1330 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
1331 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
1332 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1333 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1334 GNU_USER_DYNAMIC_LINKER.
1335 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1336 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
1337 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1338 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
1339 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1340 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
1341 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
1342 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
1343 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
1344 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
1345
1346 2011-04-11 Kai Tietz <ktietz@redhat.com>
1347
1348 PR target/9601
1349 PR target/11772
1350 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
1351 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
1352 comment.
1353 (ix86_is_msabi_thiscall): Removed.
1354 (ix86_is_type_thiscall): Likewise.
1355 (ix86_get_callcvt): New function.
1356 (ix86_comp_type_attributes): Simplify check.
1357 (ix86_function_regparm): Use ix86_get_callcvt for calling
1358 convention attribute checks.
1359 (ix86_return_pops_args): Likewise.
1360 (ix86_static_chain): Likewise.
1361 (x86_this_parameter): Likewise.
1362 (x86_output_mi_thunk): Likewise.
1363 (ix86_function_type_abi): Optimize check for types without attributes.
1364 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
1365 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
1366 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
1367 by flag-values.
1368 (IX86_BASE_CALLCVT): Helper macro.
1369 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1370 Use ix86_get_callcvt for calling convention attribute checks and avoid
1371 symbol-decoration for stdcall in TARGET_RTD case.
1372 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
1373 Likewise.
1374 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
1375 for declaration.
1376
1377 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
1378
1379 * config/i386/sse.md (VI_128): New mode iterator.
1380 (VI12_128): Rename from SSEMODE12.
1381 (VI14_128): Rename from SSEMODE14.
1382 (VI124_128): New mode iterator.
1383 (VI24_128): Rename from SSEMODE248.
1384 (VI248_128): Rename from SSEMODE248.
1385 (SSEMODE124C8): Remove.
1386 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1387 (*sse2_<plusminus_insn><mode>3): Merge with
1388 *avx_<plusminus_insn><mode>3.
1389 (*mulv8hi3): Merge with *avx_mulv8hi3.
1390 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
1391 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
1392 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
1393 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
1394 (ashr<mode>3): Merge with *avx_ashr<mode>3.
1395 (lshr<mode>3): Merge with *avx_lshr<mode>3.
1396 (ashl<mode>3): Merge with *avx_ashl<mode>3.
1397 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
1398 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
1399 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1400 (*<smaxmin:code>v8hi3): Ditto.
1401 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
1402 (*<smaxmin:code>v16qi3): Ditto.
1403 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
1404 (*sse2_eq<mode>3): Ditto.
1405 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
1406 (*sse2_gt<mode>3): Ditto.
1407 (vcondv2di): Split out of vcond<mode>.
1408 (vconduv2di): Split out of vcondu<mode>.
1409
1410 2011-04-11 Richard Guenther <rguenther@suse.de>
1411
1412 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
1413 before calling tree_low_cst.
1414
1415 2011-04-11 Richard Guenther <rguenther@suse.de>
1416
1417 * stor-layout.c (layout_type): Compute all array index size operations
1418 in the original type.
1419 (initialize_sizetypes): Add comment.
1420 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
1421
1422 2011-04-11 Joseph Myers <joseph@codesourcery.com>
1423
1424 * common.opt (Tbss=, Tdata=, Ttext=): New options.
1425
1426 2011-04-11 Martin Jambor <mjambor@suse.cz>
1427
1428 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
1429 of cgraph_node, handle NULL return value.
1430 (cgraph_global_info): Likewise.
1431 (cgraph_rtl_info): Likewise.
1432 * tree-inline.c (estimate_num_insns): Likewise.
1433 * gimplify.c (unshare_body): Likewise.
1434 (unvisit_body): Likewise.
1435 (gimplify_body): Likewise.
1436 * predict.c (optimize_function_for_size_p): Likewise.
1437 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
1438 (call_may_clobber_ref_p_1): Likewise.
1439 * varasm.c (function_section_1): Likewise.
1440 (assemble_start_function): Likewise.
1441
1442 2011-04-11 Martin Jambor <mjambor@suse.cz>
1443
1444 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
1445 of cgraph_node.
1446 * final.c (rest_of_clean_state): Likewise.
1447 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
1448 * passes.c (pass_init_dump_file): Likewise.
1449 (execute_all_ipa_transforms): Likewise.
1450 (function_called_by_processed_nodes_p): Likewise.
1451 * predict.c (maybe_hot_frequency_p): Likewise.
1452 (probably_never_executed_bb_p): Likewise.
1453 (compute_function_frequency): Likewise.
1454 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
1455 (unnest_nesting_tree_1): Likewise.
1456 (lower_nested_functions): Likewise.
1457 * tree-optimize.c (execute_fixup_cfg): Likewise.
1458 (tree_rest_of_compilation): Likewise.
1459 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
1460 * tree-sra.c (ipa_early_sra): Likewise.
1461 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
1462 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
1463 * ipa.c (record_cdtor_fn): Likewise.
1464 * ipa-inline.c (cgraph_early_inlining): Likewise.
1465 (compute_inline_parameters_for_current): Likewise.
1466 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
1467 * ipa-pure-const.c (local_pure_const): Likewise.
1468 * ipa-split.c (split_function): Likewise.
1469 (execute_split_functions): Likewise.
1470 * cgraphbuild.c (build_cgraph_edges): Likewise.
1471 (rebuild_cgraph_edges): Likewise.
1472 (cgraph_rebuild_references): Likewise.
1473 (remove_cgraph_callee_edges): Likewise.
1474 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
1475 (verify_cgraph_node): Likewise.
1476 (cgraph_analyze_functions): Likewise.
1477 (cgraph_preserve_function_body_p): Likewise.
1478 (save_inline_function_body): Likewise.
1479 (save_inline_function_body): Likewise.
1480 * tree-inline.c (copy_bb): Likewise.
1481 (optimize_inline_calls): Likewise.
1482
1483 2011-04-11 Martin Jambor <mjambor@suse.cz>
1484
1485 PR tree-optimization/48195
1486 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
1487 ipa_check_create_edge_args.
1488 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
1489 ipa_check_create_edge_args.
1490 * ipa-inline.c (inline_generate_summary): Do not call
1491 ipa_check_create_node_params and ipa_check_create_edge_args.
1492 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
1493 ipa_check_create_edge_args.
1494
1495 2011-04-09 Anatoly Sokolov <aesok@post.ru>
1496
1497 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
1498 instead of loop.
1499 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1500 * function.c (record_hard_reg_sets): Likewise.
1501 * ira.c (compute_regs_asm_clobbered): Likewise.
1502 * sched-deps.c (sched_analyze_1): Likewise.
1503 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
1504
1505 2011-04-09 Xinliang David Li <davidxl@google.com>
1506
1507 PR tree-optimization/PR48484
1508 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
1509 has_valid_pred lazily
1510
1511 2011-04-09 Duncan Sands <baldrick@free.fr>
1512
1513 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
1514
1515 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
1516
1517 * combine.c (combine_validate_cost): Adjust comments. Set registered
1518 cost of I0 to zero at the end, if any.
1519
1520 2011-04-08 Xinliang David Li <davidxl@google.com>
1521
1522 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
1523 to insane profile data.
1524
1525 2011-04-08 Xinliang David Li <davidxl@google.com>
1526
1527 * final.c (dump_basic_block_info): New function.
1528 (final): Dump basic block.
1529 (final_scan_insn): Remove old dump.
1530
1531 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
1532
1533 PR target/47829
1534 * config.gcc (i386-*-freebsd): Disable unwind table generation for
1535 crtbegin/crtend.
1536
1537 2011-04-08 Michael Matz <matz@suse.de>
1538
1539 PR middle-end/48389
1540 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
1541 functions.
1542 (rebuild_jump_labels): Call rebuild_jump_labels_1.
1543 * rtl.h (rebuild_jump_labels_chain): Declare.
1544 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
1545 insns inserted on edges.
1546
1547 2011-04-08 Joseph Myers <joseph@codesourcery.com>
1548
1549 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
1550 * config/arm/arm-arches.def: New.
1551 * config/arm/arm-opts.h: New.
1552 * config/arm/genopt.sh: New.
1553 * config/arm/arm-tables.opt: New (generated).
1554 * config/arm/arm.c (arm_handle_option, arm_target_help,
1555 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
1556 (all_architectures): Get most table contents from arm-arches.def.
1557 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
1558 arm_selected_tune here.
1559 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
1560 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
1561 (march=, mcpu=, mtune=): Use Enum and Var.
1562 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
1563 (arm.o): Update dependencies.
1564
1565 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
1566
1567 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
1568 of header_file.
1569 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
1570 (write_typed_alloc_defns): Likewise.
1571 (main): Calls write_typed_alloc_defns with output_header.
1572
1573 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
1574
1575 PR inline-asm/48435
1576 * ira-color.c (setup_profitable_hard_regs): Add comments.
1577 Don't take prohibited hard regs into account.
1578 (setup_conflict_profitable_regs): Rename to
1579 get_conflict_profitable_regs.
1580 (check_hard_reg_p): Check prohibited hard regs.
1581
1582 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
1583
1584 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
1585 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
1586 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
1587
1588 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1589
1590 PR target/48366
1591 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
1592 move from floating point to shift amount register .
1593 (emit_move_sequence): Remove secondary reload support for floating
1594 point to shift amount amount register copies.
1595 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
1596 amount register copies.
1597 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
1598 register, return false if mode isn't a scalar integer mode.
1599 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
1600
1601 2011-04-08 Richard Guenther <rguenther@suse.de>
1602
1603 * gimple.c (gimple_call_flags): Remove kludge.
1604
1605 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
1606
1607 * sel-sched.c (sel_region_init): Move call to
1608 sel_setup_region_sched_flags after setup_current_loop_nest.
1609
1610 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
1611
1612 PR rtl-optimization/48272
1613 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
1614 init_insn_reg_pressure_info. Adjust a caller.
1615 * sched-int.h (init_insn_reg_pressure_info): Declare.
1616 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
1617 when sched-pressure is enabled.
1618
1619 2011-04-08 Richard Guenther <rguenther@suse.de>
1620
1621 * gimple.c (gimple_set_modified): Do not queue calls to
1622 MODIFIED_NORETURN_CALLS here ...
1623 * tree-ssa-operands.c (update_stmt_operands): ... but here.
1624
1625 2011-04-08 Richard Guenther <rguenther@suse.de>
1626
1627 PR lto/48467
1628 * toplev.c (lang_dependent_init): Do not open asm_out_file
1629 in WPA mode, nor perform debug machinery initialization.
1630 (finalize): Do not unlink asm_out_file in WPA mode.
1631
1632 2011-04-08 Richard Guenther <rguenther@suse.de>
1633
1634 * gimple.h (gimple_call_fntype): New function.
1635 (gimple_call_return_type): Use it.
1636 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
1637 * gimple-low.c (gimple_check_call_args): Likewise.
1638 * gimple.c (gimple_call_flags): Likewise.
1639 (gimple_call_arg_flags): Likewise.
1640 (gimple_call_return_flags): Likewise.
1641 * tree-cfg.c (verify_gimple_call): Likewise.
1642 (do_warn_unused_result): Likewise.
1643 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1644 * value-prof.c (gimple_ic_transform): Fix fndecl check.
1645
1646 2011-04-08 Dmitry Melnik <dm@ispras.ru>
1647
1648 PR rtl-optimization/48235
1649 * sel-sched.c (code_motion_process_successors): Recompute the last
1650 insn in basic block if control flow changed.
1651 (code_motion_path_driver): Ditto. Recompute the first insn as well.
1652 Update condition for ilist_remove.
1653
1654 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
1655
1656 PR rtl-optimization/48302
1657 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
1658 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
1659 it to record added preheader blocks.
1660 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
1661 on to sel_add_loop_preheaders.
1662 (sel_region_init): Move call to setup_current_loop_nest after
1663 sel_init_bbs.
1664
1665 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
1666
1667 PR target/48273
1668 * cfgloop.h (loop_has_exit_edges): New helper.
1669 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
1670 non-clonable.
1671 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
1672 that have no exit edges.
1673
1674 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
1675
1676 PR rtl-optimization/48442
1677 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
1678 all callers. Adjust assert.
1679
1680 2011-04-08 Jakub Jelinek <jakub@redhat.com>
1681
1682 PR tree-optimization/48377
1683 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
1684 is_packed to true even for types with smaller TYPE_ALIGN than
1685 TYPE_SIZE.
1686
1687 2011-04-08 Richard Guenther <rguenther@suse.de>
1688
1689 PR bootstrap/48513
1690 * doc/tm.texi: Re-generate.
1691
1692 2011-04-08 Wei Guozhi <carrot@google.com>
1693
1694 PR target/47855
1695 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
1696 * config/arm/arm.c (arm_attr_length_push_multi): New function.
1697 * config/arm/arm.md (*push_multi): Change the length computation to
1698 call a C function.
1699
1700 2011-04-08 Anatoly Sokolov <aesok@post.ru>
1701
1702 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
1703 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
1704 * doc/tm.texi: Regenerate.
1705 * system.h (ASM_OUTPUT_BSS): Poison.
1706 * varasm.c (asm_output_bss): Remove function.
1707 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
1708
1709 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
1710 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
1711 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
1712 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1713 Likewise.
1714 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1715 Likewise.
1716 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1717 Likewise.
1718 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1719
1720 2011-04-07 Joseph Myers <joseph@codesourcery.com>
1721
1722 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
1723 EnumValue lines.
1724
1725 2011-04-07 Joseph Myers <joseph@codesourcery.com>
1726
1727 * config/m68k/m68k.c (m68k_handle_option): Don't handle
1728 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
1729 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
1730 OPT_mcpu32.
1731 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
1732 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
1733 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
1734 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
1735 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
1736 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
1737 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1738 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
1739 options. Don't map other m68k options manually. Don't handle
1740 old-style options as canonical.
1741 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1742 * doc/install.texi (m68k-*-*): Document binutils version requirement.
1743
1744 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
1745
1746 * basic-block.h (force_nonfallthru): Move to...
1747 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
1748 (force_nonfallthru): ...here.
1749 * cfghooks.c (force_nonfallthru): New function.
1750 * cfgrtl.c (force_nonfallthru): Rename into...
1751 (rtl_force_nonfallthru): ...this.
1752 (commit_one_edge_insertion): Do not set AUX field.
1753 (commit_edge_insertions): Do not discover new basic blocks.
1754 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
1755 (cfg_layout_rtl_cfg_hooks): Likewise.
1756 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
1757 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
1758 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
1759
1760 2011-04-07 Anatoly Sokolov <aesok@post.ru>
1761
1762 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
1763 Remove macros.
1764
1765 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
1766
1767 * config/i386/sse.md: Update copyright year.
1768 (avxcvtvecmode): Remove.
1769 (sse_movhlps): Merge with *avx_movhlps.
1770 (sse_movlhps): Merge with *avx_movlhps.
1771 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
1772 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
1773 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
1774 (sse_loadhps): Merge with *avx_loadhps.
1775 (sse_storelps): Merge with *avx_storelps.
1776 (sse_loadlps): Merge with *avx_loadlps.
1777 (sse_movss): Merge with *avx_movss.
1778 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
1779 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
1780 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
1781 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
1782 (vec_set<mode>_0): Ditto.
1783 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
1784 (sse4_1_insertps): Merge with *avx_insertps.
1785 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
1786 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
1787 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
1788 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
1789 (sse2_storehpd): Merge with *avx_storehpd.
1790 (sse2_loadhpd): Merge with *avx_loadhpd.
1791 (sse2_loadlpd): Merge with *avx_loadlpd.
1792 (sse2_movsd): Merge with *avx_movsd.
1793 (*vec_concatv2df): Merge with *vec_concatv2df.
1794
1795 2011-04-07 Jakub Jelinek <jakub@redhat.com>
1796
1797 PR debug/48343
1798 * combine.c (combine_instructions): Add last_combined_insn,
1799 update it if insn is after it, pass it to all try_combine calls.
1800 (try_combine): Add last_combined_insn parameter, pass it instead of
1801 i3 to propagate_for_debug.
1802
1803 2011-04-07 Nick Clifton <nickc@redhat.com>
1804
1805 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
1806 to handle MDR <-> data register transfers.
1807 (movhi_internal): Likewise.
1808
1809 2011-04-07 Alan Modra <amodra@gmail.com>
1810
1811 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
1812 previous stack info.
1813
1814 2011-04-07 Tom de Vries <tom@codesourcery.com>
1815
1816 PR target/43920
1817 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
1818 flow_find_cross_jump. Swap variables to implement backward replacement.
1819 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
1820
1821 2011-04-07 Tom de Vries <tom@codesourcery.com>
1822
1823 PR target/43920
1824 * cfgcleanup.c (walk_to_nondebug_insn): New function.
1825 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
1826 and bb2.
1827 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
1828 src1 or src2. Redirect edges to the last basic block. Update
1829 frequency and count on multiple basic blocks in case of fallthru.
1830
1831 2011-04-07 Tom de Vries <tom@codesourcery.com>
1832
1833 PR target/43920
1834 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
1835 function.
1836 (old_insns_match_p): Change return type. Replace return false/true
1837 with return dir_none/dir_both. Use can_replace_by.
1838 (flow_find_cross_jump): Add dir_p parameter. Init replacement
1839 direction from dir_p. Register replacement direction in dir, last_dir
1840 and afterlast_dir. Handle new return type of old_insns_match_p using
1841 merge_dir. Return replacement direction in dir_p.
1842 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
1843 return type of old_insns_match_p.
1844 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
1845 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
1846 flow_find_cross_jump.
1847 * basic-block.h (enum replace_direction): New type.
1848 (flow_find_cross_jump): Add parameter to declaration.
1849
1850 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
1851
1852 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
1853 (AVXMODEDCVTPS2DQ): Ditto.
1854 (VEC_FLOAT_MODE): Ditto.
1855 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
1856 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1857 (<any_logic:code><mode>3): Use VF mode iterator.
1858 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
1859 Use VF mode iterator.
1860 (copysign<mode>3): Use VF mode iterator.
1861 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
1862 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1863 (*<any_logic:code><MODEF:mode>3): Merge with
1864 *avx_<any_logic:code><MODEF:mode>3.
1865 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
1866 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
1867 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
1868 (avx_cvtdq2ps<avxmodesuffix>): Remove.
1869 (sse2_cvtdq2ps): Use %v modifier.
1870 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
1871 (avx_cvtps2dq<avxmodesuffix>): Remove.
1872 (sse2_cvtps2dq): Use %v modifier.
1873 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
1874 (avx_cvttps2dq<avxmodesuffix>): Remove.
1875 (sse2_cvttps2dq): Use %v modifier.
1876 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
1877 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
1878 (sse2_cvtsd2siq): Fix insn template.
1879 (sse2_cvtsd2siq_2): Ditto.
1880 (sse2_cvttsd2siq): Ditto.
1881 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
1882 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
1883
1884 2011-04-06 Joseph Myers <joseph@codesourcery.com>
1885
1886 * gcov-io.c: Use GCC Runtime Library Exception.
1887
1888 2011-04-06 Jakub Jelinek <jakub@redhat.com>
1889
1890 PR debug/48466
1891 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
1892 as base_reg whatever register reg has been eliminated to, instead
1893 of hardcoding STACK_POINTER_REGNUM.
1894
1895 2011-04-06 Joseph Myers <joseph@codesourcery.com>
1896
1897 * doc/tm.texi.in: Document C target hooks as separate from general
1898 target hooks.
1899 * doc/tm.texi: Regenerate.
1900 * genhooks.c (struct hook_desc): Add docname field.
1901 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
1902 docname field.
1903 (hook_array): Include c-target.def.
1904 (emit_documentation): Use docname field in output.
1905 (emit_init_macros): Take docname argument. Only emit definitions
1906 for hooks matching docname.
1907 (main): Expect additional arguments in all cases. Pass argument
1908 to emit_init_macros.
1909 * target.def: Move initial macro definitions and comments to
1910 target-hooks-macros.h.
1911 (gcc_targetcm): Move to c-family/c-target.def.
1912 * target.h (targetcm): Move declaration to c-family/c-target.h.
1913 * targhooks.c (default_handle_c_option): Move to
1914 c-family/c-opts.c.
1915 * targhooks.h (default_handle_c_option): Move declaration to
1916 c-family/c-common.h.
1917 * target-hooks-macros.h: New file.
1918 * config.gcc (target_has_targetcm): Define and use to add to
1919 c_target_objs and cxx_target_objs.
1920 * config/default-c.c: New file.
1921 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
1922 of target.h and target-def.h.
1923 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
1924 (darwin_objc_construct_string, darwin_cfstring_ref_p,
1925 darwin_check_cfstring_format_arg): Make static.
1926 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1927 TARGET_STRING_OBJECT_REF_TYPE_P,
1928 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
1929 * config/darwin-protos.h (darwin_objc_construct_string,
1930 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
1931 declare.
1932 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1933 TARGET_STRING_OBJECT_REF_TYPE_P,
1934 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
1935 * config/t-darwin (darwin-c.o): Update dependencies.
1936 * system.h (TARGET_HAS_TARGETCM): Poison.
1937 * Makefile.in (TARGET_H): Update.
1938 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
1939 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
1940 (default-c.o): New target.
1941 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
1942 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
1943 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
1944 c-target.def.
1945 (build/genhooks.o): Update dependencies.
1946
1947 2011-04-06 Richard Guenther <rguenther@suse.de>
1948
1949 * ipa-inline.c (enum inlining_mode): Remove.
1950 (cgraph_flatten): Use some other token.
1951 (cgraph_edge_early_inlinable_p): New function, split out from ...
1952 (cgraph_perform_always_inlining): New function, split out from ...
1953 (cgraph_decide_inlining_incrementally): ... here.
1954 (cgraph_mark_inline_edge): Adjust.
1955 (cgraph_early_inlining): Re-structure.
1956 (pass_early_inline): Require SSA form.
1957
1958 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
1959 Julian Brown <julian@codesourcery.com>
1960 Mark Shinwell <shinwell@codesourcery.com>
1961
1962 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
1963 LO_REGS only for Thumb-1.
1964 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
1965 be used in short instructions when optimising for size on Thumb-2.
1966
1967 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
1968
1969 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
1970 associated with user returns to be preserved.
1971
1972 2011-04-06 Tristan Gingold <gingold@adacore.com>
1973
1974 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
1975 symbol_queue_size, DBXOUT_DECR_NESTING,
1976 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
1977 if XCOFF_DEBUGGING_INFO.
1978
1979 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
1980
1981 * config/i386/i386.md (attribute isa): New.
1982 (attribute enabled): New.
1983 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
1984 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
1985 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
1986 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
1987 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
1988 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1989 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
1990 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
1991
1992 * config/i386/sse.md (VF): New mode iterator.
1993 (VF1): Ditto.
1994 (VF2): Ditto.
1995 (VF_128): Ditto.
1996 (SSEMODEF4): Remove.
1997 (attribute sse): Handle V8SF and V4DF modes.
1998 (<absneg:code><mode>2): Use VF mode iterator.
1999 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
2000 mode iterator.
2001 (<plusminus_insn><mode>3): Use VF mode iterator.
2002 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
2003 Use VF mode iterator.
2004 (<sse>_vm<plusminus_insn><mode>3): Merge with
2005 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
2006 (mul<mode>3): Use VF mode iterator.
2007 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
2008 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
2009 mode iterator.
2010 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
2011 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
2012 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
2013 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
2014 mode iterator.
2015 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
2016 Use VF1 mode iterator.
2017 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
2018 (sqrt<VF2:mode>2): New expander.
2019 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
2020 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
2021 and sqrtv2df2. Use VF mode iterator.
2022 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
2023 mode iterator.
2024 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
2025 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
2026 Use VF1 mode iterator.
2027 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
2028 (<smaxmin:code><mode>3): Use VF mode iterator.
2029 (*<smaxmin:code><mode>3_finite): Merge with
2030 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
2031 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2032 (<sse>_vm<smaxmin:code><mode>2): Merge with
2033 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
2034 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
2035 mode iterator.
2036 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
2037 mode iterator.
2038 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
2039 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
2040 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
2041 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
2042 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
2043 VF mode iterator.
2044 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
2045 Use VF_128 mode iterator.
2046 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
2047 mode iterator.
2048 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
2049 VF_128 mode iterator.
2050 (vcond<mode>): Use VF mode iterator.
2051 * config/i386/predicates.md (sse_comparison_operator): Merge with
2052 avx_comparison_float_operator. Do not declare as special_predicate.
2053 * config/i386/i386.c (struct builtin_description): Update for renamed
2054 compare patterns.
2055 (ix86_expand_args_builtin): Ditto.
2056 (ix86_expand_sse_compare_mask): Ditto.
2057
2058 2011-04-06 Richard Guenther <rguenther@suse.de>
2059
2060 * tree-inline.c (estimate_num_insns): For calls simply account
2061 for all passed arguments and a used return value.
2062
2063 2011-04-06 Richard Guenther <rguenther@suse.de>
2064
2065 PR tree-optimization/47663
2066 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
2067 call_stmt_time fields.
2068 (cgraph_edge_inlinable_p): Declare.
2069 (cgraph_edge_recursive_p): New inline function.
2070 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
2071 (cgraph_clone_edge): Copy it.
2072 * ipa-inline.c (cgraph_estimate_edge_time): New function.
2073 Account for call stmt time.
2074 (cgraph_estimate_time_after_inlining): Take edge argument.
2075 (cgraph_estimate_edge_growth): Account call stmt size.
2076 (cgraph_estimate_size_after_inlining): Take edge argument.
2077 (cgraph_mark_inline_edge): Adjust.
2078 (cgraph_check_inline_limits): Likewise.
2079 (cgraph_recursive_inlining_p): Remove.
2080 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
2081 (cgraph_decide_recursive_inlining): Take edge argument and
2082 adjust.
2083 (cgraph_decide_inlining_of_small_functions): Do not avoid
2084 diags for recursive inlining here.
2085 (cgraph_flatten): Adjust.
2086 (cgraph_decide_inlining_incrementally): Likewise.
2087 (estimate_function_body_sizes): Remove call cost handling.
2088 (compute_inline_parameters): Initialize caller edge call costs.
2089 (cgraph_estimate_edge_growth): New function.
2090 (cgraph_estimate_growth): Use it.
2091 (cgraph_edge_badness): Likewise.
2092 (cgraph_check_inline_limits): Take an edge argument.
2093 (cgraph_decide_inlining_of_small_functions): Adjust.
2094 (cgraph_decide_inlining): Likewise.
2095 * tree-inline.c (estimate_num_insns): Only account for call
2096 return value if it is used.
2097 (expand_call_inline): Avoid diagnostics on recursive inline
2098 functions here.
2099 * lto-cgraph.c (lto_output_edge): Output edge call costs.
2100 (input_edge): Input edge call costs.
2101
2102 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2103
2104 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
2105
2106 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
2107
2108 * doc/invoke.texi (Spec Files): Fix typo.
2109
2110 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
2111
2112 * profile.c (branch_prob): Move declaration of local variable. Remove
2113 obsolete ??? comment. Expand the location explicitly instead of using
2114 the LOCATION_FILE and LOCATION_LINE macros.
2115
2116 2011-04-06 Wei Guozhi <carrot@google.com>
2117
2118 PR target/47855
2119 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
2120 (arm_cond_branch): Likewise.
2121 (arm_cond_branch_reversed): Likewise.
2122 (arm_jump): Likewise.
2123 (push_multi): Likewise.
2124 * config/arm/constraints.md (Py): New constraint.
2125
2126 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2127
2128 PR bootstrap/48471
2129 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
2130 Move these...
2131 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
2132 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
2133 #ifdef DBX_DEBUGGING_INFO.
2134
2135 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
2136
2137 PR bootstrap/48403
2138 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2139 if old and new states differ.
2140
2141 2011-04-05 Joseph Myers <joseph@codesourcery.com>
2142
2143 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
2144 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
2145 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
2146 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
2147 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
2148 mcfv4e): Use Alias.
2149 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
2150 ColdFire options to -mcpu= options.
2151
2152 2011-04-05 Jeff Law <law@redhat.com>
2153
2154 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
2155 check if BB is a successor of LOOP->header and return
2156 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
2157
2158 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
2159
2160 * cprop.c (struct reg_use): Remove.
2161 (reg_use_table): Make an array of RTX.
2162 (find_used_regs, constprop_register, local_cprop_pass,
2163 bypass_block): Simplify users of reg_use_table.
2164 (cprop_insn): Likewise. Iterate if copy propagation succeeded
2165 on one of the uses found by find_used_regs.
2166
2167 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2168
2169 PR bootstrap/48469
2170 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
2171 declaration.
2172
2173 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2174
2175 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
2176 as an rtx.
2177 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
2178
2179 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
2180
2181 PR middle-end/48441
2182 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
2183
2184 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2185
2186 * combine.c: Include obstack.h.
2187 (struct insn_link): Define.
2188 (uid_log_links): Adjust type.
2189 (FOR_EACH_LOG_LINK): New macro.
2190 (insn_link_obstack): Declare.
2191 (alloc_insn_link): Define.
2192 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
2193 type of link variables.
2194 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
2195 (try_combine, record_promoted_values, distribute_notes): Likewise.
2196 (distribute_links): Likewise. Tweak prototype.
2197 (clear_log_links): Delete.
2198 (adjust_for_new_dest): Call alloc_insn_link.
2199 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
2200
2201 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2202
2203 * gcse.c (modify_mem_list): Convert to an array of VECs.
2204 (canon_modify_mem_list, compute_transp): Tweak formatting.
2205 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
2206 (load_killed_in_block_p): Likewise.
2207 (record_last_mem_set_info): Likewise.
2208 (clear_modify_mem_tables): Likewise.
2209
2210 2011-04-05 Tom de Vries <tom@codesourcery.com>
2211
2212 PR middle-end/48461
2213 * function.c (emit_use_return_register_into_block): Only define if
2214 HAVE_return.
2215
2216 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
2217
2218 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
2219
2220 2011-04-05 Joseph Myers <joseph@codesourcery.com>
2221
2222 * config/rx/rx-opts.h: New.
2223 * config/rx/rx.c (rx_cpu_type): Remove.
2224 (rx_handle_option): Don't assert that global structures are in
2225 use. Access variables via opts pointer. Defer most handling of
2226 OPT_mint_register_. Use error_at.
2227 (rx_option_override): Handle deferred OPT_mint_register_ here.
2228 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
2229 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
2230 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
2231 (rx_cpu_types): New Enum and EnumValue entries.
2232 (mint-register=): Use Defer and use Var accordingly.
2233
2234 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2235
2236 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
2237 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
2238 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
2239 Move these...
2240 (debug_free_queue, debug_nesting, symbol_queue_index):
2241 ...and these...
2242 * dbxout.c: ...to here. Make static.
2243
2244 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2245
2246 * gcse.c (modify_pair): Define. Define a VEC of it.
2247 (canon_modify_mem_list): Convert to an array of VECs.
2248 (free_insn_expr_list_list): Delete.
2249 (clear_modify_mem_tables): Call VEC_free instead.
2250 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
2251 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
2252 (canon_list_insert, compute_transp): Likewise.
2253
2254 2011-04-05 Tom de Vries <tom@codesourcery.com>
2255
2256 PR target/43920
2257 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
2258 for size.
2259
2260 2011-04-05 Tom de Vries <tom@codesourcery.com>
2261
2262 PR target/43920
2263 * function.c (emit_use_return_register_into_block): New function.
2264 (thread_prologue_and_epilogue_insns): Use
2265 emit_use_return_register_into_block.
2266
2267 2011-04-05 Tom de Vries <tom@codesourcery.com>
2268
2269 PR target/43920
2270 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
2271 insn.
2272
2273 2011-04-05 Tom de Vries <tom@codesourcery.com>
2274
2275 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
2276
2277 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
2278
2279 * config/arm/arm.md (define_constants for unspec): Replace with
2280 define_c_enum.
2281 (define_constants for unspecv): Replace with define_c_enum.
2282 * config/arm/neon.md (define_constants for unspec): Replace with
2283 define_c_enum.
2284
2285 2011-04-04 Richard Henderson <rth@redhat.com>
2286
2287 PR bootstrap/48400
2288 * dwarf2out.c (output_line_info): Always emit line info from
2289 at least one section.
2290 (dwarf2out_init): Create text_section_line_info here ...
2291 (set_cur_line_info_table): ... not here.
2292
2293 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
2294
2295 PR target/48380
2296 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
2297 not called.
2298
2299 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
2300
2301 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
2302
2303 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
2304 (expr_equiv_p): Remove.
2305 (insert_set_in_table): Look at <dest, src> pair instead of expr.
2306 (hash_scan_set): Update call to insert_set_in_table.
2307 (dump_hash_table): Dump <dest, src> pair.
2308 (lookup_set): Simplify. Lookup <dest, src> pair.
2309 (compute_transp): Remove, fold heavily simplified code into...
2310 (compute_local_properties): ...here. Expect COMP and TRANSP
2311 unconditionally.
2312 (find_avail_set): Take set directly from struct expr.
2313 (find_bypass-set): Likewise.
2314 (bypass_block): Likewise.
2315 (cprop_insn): Likewise. Remove redundant INSN_P test.
2316
2317 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
2318 checks on form of COND from find_implicit_sets to here.
2319 (find_implicit_sets): Cleanup control flow. Split critical edges
2320 if it exposes implicit sets. Allocate/resize implicit_sets as
2321 necessary.
2322 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
2323 changed something. Run df_analyze after find_implicit_sets if any
2324 edges were split. Do not allocate implicit_sets here.
2325
2326 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
2327 (gcse_obstack): Renamed to cprop_obstack.
2328 (GNEW, GNEWVEC, GNEWVAR): Remove.
2329 (gmalloc): Remove.
2330 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
2331 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
2332 (gcse_alloc): Likewise, and rename to cprop_alloc.
2333 (alloc_gcse_men, free_gcse_mem): Remove.
2334 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
2335 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
2336 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
2337
2338 * cprop.c (oprs_not_set_p): Remove.
2339 (mark_set, mark_clobber): Remove.
2340 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
2341 (reg_not_set_p): New function.
2342 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
2343 (cprop_insn): Likewise.
2344 (cprop_jump): Use FOR_EACH_EDGE.
2345
2346 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
2347
2348 PR bootstrap/48403
2349 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
2350 (rank_for_schedule): Use scheduled_insns vector instead of
2351 last_scheduled_insn.
2352 (ok_for_early_queue_removal): Likewise.
2353 (queue_to_ready): Search forward in nonscheduled_insns_begin if
2354 we have a dbg_cnt.
2355 (choose_ready): Likewise.
2356 (commit_schedule): Use VEC_iterate.
2357 (schedule_block): Initialize nonscheduled_insns_begin. If we have
2358 a dbg_cnt, use it and ensure the first insn is in the ready list.
2359 (haifa_sched_init): Allocate scheduled_insns.
2360 (sched_extend_ready_list): Don't allocate it; reserve space.
2361 (haifa_sched_finish): Free it.
2362
2363 2011-04-04 Joseph Myers <joseph@codesourcery.com>
2364
2365 * optc-gen.awk: Always remove type from Variable entry before
2366 recording in var_seen.
2367
2368 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
2369
2370 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
2371 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
2372 call to tidy_fallthru_edges.
2373
2374 2011-04-04 Joseph Myers <joseph@codesourcery.com>
2375
2376 * doc/options.texi (ToLower): Document.
2377 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
2378 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
2379 * opts.h (cl_option): Add cl_tolower field.
2380 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
2381 arguments with lowercase strings.
2382 * config/rx/rx.opt (mcpu=): Add ToLower.
2383 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
2384 argument.
2385
2386 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
2387
2388 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
2389
2390 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
2391
2392 * config/vax/vax.c: Include reload.h.
2393
2394 2011-04-04 Anatoly Sokolov <aesok@post.ru>
2395
2396 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
2397 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
2398 (sparc_preferred_reload_class): New function.
2399
2400 2011-04-04 Jakub Jelinek <jakub@redhat.com>
2401
2402 PR debug/48401
2403 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2404 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
2405
2406 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
2407
2408 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
2409 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
2410
2411 2011-04-03 Anatoly Sokolov <aesok@post.ru>
2412
2413 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
2414 (ASM_OUTPUT_ALIGNED_BSS): Define.
2415
2416 2011-04-03 Michael Matz <matz@suse.de>
2417
2418 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
2419 and next_slot members.
2420 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
2421 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
2422 (lto_streamer_cache_append): Declare.
2423 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
2424 unsigned index, remove offset parameter, ensure that we append
2425 or update existing entries.
2426 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
2427 parameter, update next_slot for append.
2428 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
2429 parameter.
2430 (lto_streamer_cache_insert_at): Likewise.
2431 (lto_streamer_cache_append): New function.
2432 (lto_streamer_cache_lookup): Use unsigned index.
2433 (lto_streamer_cache_get): Likewise.
2434 (lto_record_common_node): Don't test tree_node_can_be_shared.
2435 (preload_common_node): Adjust call to lto_streamer_cache_insert.
2436 (lto_streamer_cache_delete): Don't free offsets member.
2437 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
2438 (lto_output_string_with_length): Use lto_output_data_stream.
2439 (lto_output_tree_header): Remove ix parameter, don't write it.
2440 (lto_output_builtin_tree): Likewise.
2441 (lto_write_tree): Adjust callers to above, don't track and write
2442 offset, write unsigned index.
2443 (output_unreferenced_globals): Don't emit all global vars.
2444 (write_global_references): Use unsigned indices.
2445 (lto_output_decl_state_refs): Likewise.
2446 (write_symbol): Likewise.
2447 * lto-streamer-in.c (lto_input_chain): Move earlier.
2448 (input_function): Use unsigned index.
2449 (input_alias_pairs): Don't read and then ignore all global vars.
2450 (lto_materialize_tree): Remove ix_p parameter, don't read index,
2451 don't pass it back, use lto_streamer_cache_append.
2452 (lto_register_var_decl_in_symtab): Use unsigned index.
2453 (lto_register_function_decl_in_symtab): Likewise.
2454 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
2455 index.
2456 (lto_get_builtin_tree): Don't read index, use
2457 lto_streamer_cache_append.
2458 (lto_read_tree): Adjust call to lto_materialize_tree.
2459
2460 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
2461 don't use function calls in arguments to MIN.
2462
2463 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
2464 twice.
2465
2466 * gimple.c (gimple_type_leader_entry): Mark deletable.
2467
2468 2011-04-03 Alan Modra <amodra@gmail.com>
2469
2470 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
2471
2472 2011-04-03 Michael Matz <matz@suse.de>
2473
2474 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
2475 an integer.
2476 * tree.h (tree_decl_non_common.vindex): Adjust comment.
2477
2478 2011-04-03 Michael Matz <matz@suse.de>
2479
2480 * cgraphbuild.c (record_reference): Canonicalize constructor values.
2481 * gimple-fold.c (canonicalize_constructor_val): Accept being called
2482 without function context.
2483 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
2484 current_function_decl and cfun.
2485
2486 2011-04-03 Michael Matz <matz@suse.de>
2487
2488 * tree.c (decl_init_priority_insert): Don't create entry for
2489 default priority.
2490 (decl_fini_priority_insert): Ditto.
2491 (fields_compatible_p, find_compatible_field): Remove.
2492 * tree.h (fields_compatible_p, find_compatible_field): Remove.
2493 * gimple.c (gimple_compare_field_offset): Adjust block comment.
2494
2495 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
2496
2497 * combine.c (try_combine): Remove useless local variable.
2498
2499 2011-04-03 Richard Guenther <rguenther@suse.de>
2500 Ira Rosen <ira.rosen@linaro.org>
2501
2502 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
2503 non-variable offsets and compare the remaining bases of the two
2504 accesses instead of looking for exact same data-ref.
2505
2506 2011-04-02 Kai Tietz <ktietz@redhat.com>
2507
2508 PR target/48416
2509 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
2510
2511 * i386.c (ix86_is_msabi_thiscall): New helper function.
2512 (ix86_is_type_thiscall): New helper function.
2513 (ix86_comp_type_attributes): Handle thiscall for method-functions
2514 special.
2515 (init_cumulative_args): Likewise.
2516 (find_drap_reg): Likewise.
2517 (ix86_static_chain): Likewise.
2518 (x86_this_parameter): Likewise.
2519 (x86_output_mi_thunk): Likewise.
2520
2521 2011-04-01 Olivier Hainque <hainque@adacore.com>
2522 Nicolas Setton <setton@adacore.com>
2523 Eric Botcazou <ebotcazou@adacore.com>
2524
2525 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
2526 (add_gnat_descriptive_type_attribute): New function.
2527 (gen_array_type_die): Call it.
2528 (gen_enumeration_type_die): Likewise.
2529 (gen_struct_or_union_type_die): Likewise.
2530 (modified_type_die): Likewise.
2531 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
2532 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
2533 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
2534
2535 2011-04-01 Jakub Jelinek <jakub@redhat.com>
2536
2537 PR bootstrap/48148
2538 * dwarf2out.c (resolve_addr): Don't call force_decl_die
2539 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
2540
2541 Revert:
2542 2011-03-17 Richard Guenther <rguenther@suse.de>
2543
2544 PR bootstrap/48148
2545 * lto-cgraph.c (input_overwrite_node): Clear the abstract
2546 origin for decls in other ltrans units.
2547 (input_varpool_node): Likewise.
2548
2549 2011-04-01 Jakub Jelinek <jakub@redhat.com>
2550
2551 PR middle-end/48335
2552 * expr.c (expand_assignment): Handle all possibilities
2553 if TO_RTX is CONCAT.
2554 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
2555 (store_split_bit_field): If SUBREG_REG (op0) or
2556 op0 itself has smaller mode than word, return it
2557 for offset 0 and const0_rtx for out-of-bounds stores.
2558 If word is const0_rtx, skip it.
2559
2560 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
2561
2562 * config/h8300/h8300.c (print_operand_address): Rename to...
2563 (h8300_print_operand_address): ...this. Make static. Adjust comments.
2564 Call h8300_print_operand and h8300_print_operand_address instead of
2565 print_operand and print_operand_address. Declare.
2566 (print_operand): Renake to...
2567 (h8300_print_operand): ...this. Make static. Adjust comments.
2568 Call h8300_print_operand instead of print_operand. Declare.
2569 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
2570 (h8300_register_move_cost): Likewise.
2571 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
2572 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
2573 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
2574 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
2575 * config/h8300/h8300-protos.h (print_operand): Delete.
2576 (print_operand_address): Delete.
2577
2578 2011-04-01 Richard Henderson <rth@redhat.com>
2579
2580 PR 48400
2581 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
2582 in strict mode before dwarf4. Re-order tests to early out
2583 before switching sections.
2584
2585 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
2586
2587 * config/h8300/constraints.md: New file.
2588 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
2589 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
2590 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
2591 * config/h8300/predicates.md (bit_operand): Likewise.
2592 (incdec_operand): Use satisfies_constraint_M and
2593 satisfies_constraint_O. Don't use C code block.
2594 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
2595 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
2596 (compute_mov_length): Use satisfies_constraint_G.
2597 (fix_bit_operand): Use satisfies_constraint_U.
2598 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
2599 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
2600 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
2601 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
2602 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
2603 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
2604 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2605 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
2606 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
2607 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
2608 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
2609 (EXTRA_MEMORY_CONSTRAINT): Delete.
2610
2611 2011-04-01 Andrew Pinski <pinskia@gmail.com>
2612 Michael Meissner <meissner@linux.vnet.ibm.com>
2613
2614 PR target/48262
2615 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
2616 operands, as per the specifications.
2617
2618 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
2619 (vec_extract_evenv4sf): Ditto.
2620 (vec_extract_evenv8hi): Ditto.
2621 (vec_extract_evenv16qi): Ditto.
2622 (vec_extract_oddv4si): Ditto.
2623
2624 2011-03-31 Mark Wielaard <mjw@redhat.com>
2625
2626 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
2627 high_pc attribute if the CU has no associated code. Only output
2628 DW_AT_entry_pc for CU if not generating strict dwarf and
2629 dwarf_version < 4.
2630
2631 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
2632
2633 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
2634 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
2635 out of ...
2636 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
2637 * final.c (final_start_function): Call the new function rather
2638 than using a NULL argument for dwarf2out_frame_debug.
2639
2640 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
2641 that contains the prologue.
2642
2643 * haifa-sched.c (queue_insn): New arg REASON. All callers
2644 changed. Print it in debugging output.
2645
2646 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
2647
2648 * sched-ebb.c (begin_schedule_ready): Remove second argument.
2649 Split most of the code into...
2650 (begin_move_insn): ... here. New function.
2651 (ebb_sched_info): Add a pointer to it.
2652 * haifa-sched.c (scheduled_insns): New static variable.
2653 (sched_extend_ready_list): Allocate it.
2654 (schedule_block): Use it to record the order of scheduled insns.
2655 Perform RTL changes to move insns only after all scheduling
2656 decisions have been made.
2657 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
2658 begin_move_insn field.
2659 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2660 * sched-int.h (struct haifa_sched_info): Remove second argument
2661 from begin_schedule_ready hook. Add new member begin_move_insn.
2662 * sched-rgn.c (begin_schedule_ready): Remove second argument.
2663 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
2664
2665 * haifa-sched.c (prune_ready_list): New function, broken out of
2666 schedule_block.
2667 (schedule_block): Use it.
2668
2669 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2670
2671 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
2672
2673 2011-04-01 Kai Tietz <ktietz@redhat.com>
2674
2675 * config.gcc (*-*-mingw*): Allow as option the
2676 posix threading model.
2677 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
2678 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
2679 definition.
2680 (CPP_SPEC): Add pthread/no-pthread handling.
2681 (LIB_SPEC): Likewise.
2682 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
2683 (LIB_SPEC): Likewise.
2684 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
2685 flag to pass -pthread option for shared libgcc build.
2686 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
2687 for shared libgcc build.
2688 * config/i386/t-mingw-pthread: New file.
2689 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
2690 New define to enable use of library pthread by default.
2691 * config/i386/mingw.opt (pthread): New driver option.
2692 (no-pthread): New driver option.
2693 * config/i386/cygming.opt: Make sure trailing empty line is retained.
2694 * config/i386/mingw-w64.opt: Likewise.
2695
2696 2011-04-01 Gary Funck <gary@intrepid.com>
2697
2698 * c-decl.c (grokdeclarator): Fix formatting.
2699
2700 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
2701
2702 * expr.c (emit_block_move_via_movmem): Use n_generator_args
2703 instead of n_operands.
2704 (set_storage_via_setmem): Likewise.
2705 * optabs.c (maybe_gen_insn): Likewise.
2706 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
2707 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
2708 (mips_expand_builtin_direct): Likewise.
2709 * config/spu/spu.c (expand_builtin_args): Likewise.
2710
2711 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
2712
2713 * recog.h (insn_data_d): Add n_generator_args.
2714 * genoutput.c (data): Likewise.
2715 (output_insn_data): Print it.
2716 (max_opno, num_dups): Delete.
2717 (scan_operands): Just fill in "d->operand[...]".
2718 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
2719
2720 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
2721
2722 * gensupport.h (pattern_stats): New structure.
2723 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
2724 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
2725 (max_operand_1, max_operand_vec): Delete.
2726 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
2727
2728 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
2729
2730 * emit-rtl.c (emit_pattern_after_setloc): New function.
2731 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
2732 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
2733 (emit_pattern_after): New function.
2734 (emit_insn_after, emit_jump_insn_after): Call it.
2735 (emit_call_insn_after, emit_debug_insn_after): Likewise.
2736 (emit_pattern_before_setloc): New function.
2737 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
2738 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
2739 Likewise.
2740 (emit_pattern_before): New function.
2741 (emit_insn_before, emit_jump_insn_before): Call it.
2742 (emit_call_insn_before, emit_debug_insn_before): Likewise.
2743
2744 2011-03-31 Richard Henderson <rth@redhat.com>
2745
2746 * dwarf2out.c (dw_separate_line_info_ref): Remove.
2747 (dw_separate_line_info_entry): Remove.
2748 (enum dw_line_info_opcode): New.
2749 (dw_line_info_entry): Use it.
2750 (dw_line_info_table, dw_line_info_table_p): New.
2751 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
2752 (line_info_table, line_info_label_num): Remove.
2753 (line_info_table_in_use): Remove.
2754 (separate_line_info_table): Remove.
2755 (separate_line_info_table_allocated): Remove.
2756 (separate_line_info_table_in_use): Remove.
2757 (LINE_INFO_TABLE_INCREMENT): Remove.
2758 (line_info_label_num): New.
2759 (cur_line_info_table): New.
2760 (text_section_line_info, cold_text_section_line_info): New.
2761 (separate_line_info): New.
2762 (SEPARATE_LINE_CODE_LABEL): Remove.
2763 (print_dwarf_line_table): Remove.
2764 (debug_dwarf): Don't dump it.
2765 (output_one_line_info_table): New.
2766 (output_line_info): Use it.
2767 (new_line_info_table): New.
2768 (set_cur_line_info_table): New.
2769 (dwarf2out_switch_text_section): Use it.
2770 (dwarf2out_begin_function): Likewise.
2771 (push_dw_line_info_entry): New.
2772 (dwarf2out_source_line): Rewrite for new line info tables.
2773 (dwarf2out_init): Remove dead initailizations.
2774
2775 2011-03-31 Joseph Myers <joseph@codesourcery.com>
2776
2777 * opts.h (cl_option): Add comments to fields. Add bit-fields for
2778 various flags.
2779 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
2780 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
2781 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
2782 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
2783 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
2784 * opt-functions.awk (flag_init, switch_bit_fields): New.
2785 (switch_flags): Don't handle flags moved to bit-fields. Don't
2786 generate CL_MISSING_OK or CL_SAVE.
2787 * optc-gen.awk: Update to generate bit-field output as well as
2788 flags field.
2789 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
2790 bit-field instead of CL_REJECT_DRIVER flag.
2791 * opts-common.c (generate_canonical_option,
2792 decode_cmdline_option): Use bit-fields instead of CL_* flags.
2793 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
2794 instead of CL_REJECT_NEGATIVE flag.
2795 * toplev.c (print_switch_values): Use cl_report bit-field instead
2796 of CL_REPORT flag.
2797
2798 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
2799
2800 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
2801 a zero minimum index only if it is redundant.
2802
2803 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
2804
2805 PR rtl-optimization/48381
2806 * ira-color.c (assign_hard_reg): Use hard reg set intersection
2807 instead of ira_class_hard_reg_index for calculating conflicting
2808 hard registers.
2809
2810 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
2811
2812 * cprop.c: Clean up hash table building.
2813 (reg_avail_info): Remove.
2814 (oprs_available_p): Remove.
2815 (record_last_reg_set_info): Remove.
2816 (record_last_set_info): Remove.
2817 (reg_available_p): New function.
2818 (gcse_constant_p): Do not treat unfolded conditions as constants.
2819 (make_set_regs_unavailable): New function.
2820 (hash_scan_set): Simplify with new reg_available_p.
2821 (compute_hash_table_work): Traverse insns stream only once.
2822 Do not compute reg_avail_info. Traverse insns in reverse order.
2823 Record implicit sets after recording explicit sets from the block.
2824
2825 2011-03-31 Michael Matz <matz@suse.de>
2826
2827 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
2828
2829 2011-03-31 Anatoly Sokolov <aesok@post.ru>
2830
2831 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
2832 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
2833 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2834 (h8300_mode_dependent_address_p): New function.
2835 (h8300_get_index): Make static.
2836
2837 2011-03-31 Jeff Law <law@redhat.com>
2838
2839 * reload1.c (elimination_effects): Fix typo in recent change.
2840
2841 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
2842 typo potentially leading to null pointer dereference.
2843
2844 * caller-save.c (new_saved_hard_reg): Eliminate return value.
2845 (setup_save_areas): Corresponding changes to avoid useless
2846 assignments.
2847
2848 * jump.c (reversed_comparison_code_parts): Avoid successive return
2849 statements when REVERSE_CONDITION is defined.
2850
2851 * expr.c (expand_assignment): Avoid useless assignments.
2852 (expand_expr_real_1): Likewise.
2853 (expand_expr_real_2): Avoid useless statements.
2854
2855 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
2856
2857 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2858
2859 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
2860 statements.
2861
2862 * stmt.c (expand_expr_stmt): Avoid useless assignment.
2863
2864 2011-03-31 Joseph Myers <joseph@codesourcery.com>
2865
2866 PR target/47109
2867 * doc/tm.texi.in (TARGET_VERSION): Remove.
2868 * doc/tm.texi: Regenerate.
2869 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
2870 * collect2.c (main): Don't use TARGET_VERSION.
2871 * mips-tdump.c (main): Don't use TARGET_VERSION.
2872 * mips-tfile.c (main): Don't use TARGET_VERSION.
2873 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
2874 * config/rs6000/vxworksae.h: Remove.
2875 * config/alpha/alpha.h (TARGET_VERSION): Remove.
2876 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
2877 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
2878 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
2879 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
2880 * config/arm/arm.h (TARGET_VERSION): Remove.
2881 * config/arm/coff.h (TARGET_VERSION): Remove.
2882 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
2883 * config/arm/elf.h (TARGET_VERSION): Remove.
2884 * config/arm/freebsd.h (TARGET_VERSION): Remove.
2885 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
2886 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
2887 * config/arm/pe.h (TARGET_VERSION): Remove.
2888 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
2889 * config/arm/semi.h (TARGET_VERSION): Remove.
2890 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
2891 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
2892 * config/arm/vxworks.h (TARGET_VERSION): Remove.
2893 * config/avr/avr.h (TARGET_VERSION): Remove.
2894 * config/bfin/bfin.h (TARGET_VERSION): Remove.
2895 * config/fr30/fr30.h (TARGET_VERSION): Remove.
2896 * config/frv/frv.h (TARGET_VERSION): Remove.
2897 * config/h8300/h8300.h (TARGET_VERSION): Remove.
2898 * config/i386/cygwin.h (TARGET_VERSION): Remove.
2899 * config/i386/darwin.h (TARGET_VERSION): Remove.
2900 * config/i386/darwin64.h (TARGET_VERSION): Remove.
2901 * config/i386/djgpp.h (TARGET_VERSION): Remove.
2902 * config/i386/freebsd.h (TARGET_VERSION): Remove.
2903 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
2904 * config/i386/gnu.h (TARGET_VERSION): Remove.
2905 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
2906 * config/i386/i386elf.h (TARGET_VERSION): Remove.
2907 * config/i386/linux.h (TARGET_VERSION): Remove.
2908 * config/i386/linux64.h (TARGET_VERSION): Remove.
2909 * config/i386/lynx.h (TARGET_VERSION): Remove.
2910 * config/i386/mingw32.h (TARGET_VERSION): Remove.
2911 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
2912 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
2913 * config/i386/netware.h (TARGET_VERSION): Remove.
2914 * config/i386/nto.h (TARGET_VERSION): Remove.
2915 * config/i386/openbsd.h (TARGET_VERSION): Remove.
2916 * config/i386/vxworks.h (TARGET_VERSION): Remove.
2917 * config/ia64/elf.h (TARGET_VERSION): Remove.
2918 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
2919 * config/ia64/hpux.h (TARGET_VERSION): Remove.
2920 * config/ia64/linux.h (TARGET_VERSION): Remove.
2921 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
2922 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
2923 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2924 * config/lm32/lm32.h (TARGET_VERSION): Remove.
2925 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
2926 * config/m32c/m32c.h (TARGET_VERSION): Remove.
2927 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
2928 * config/m32r/m32r.h (TARGET_VERSION): Remove.
2929 * config/m68k/linux.h (TARGET_VERSION): Remove.
2930 * config/m68k/m68k.h (TARGET_VERSION): Remove.
2931 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
2932 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
2933 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
2934 * config/mep/mep.h (TARGET_VERSION): Remove.
2935 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
2936 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2937 * config/mips/iris6.h (MACHINE_TYPE): Remove.
2938 * config/mips/linux.h (TARGET_VERSION): Remove.
2939 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
2940 * config/mips/vxworks.h (TARGET_VERSION): Remove.
2941 * config/mmix/mmix.h (TARGET_VERSION): Remove.
2942 * config/mn10300/linux.h (TARGET_VERSION): Remove.
2943 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
2944 * config/pa/pa.h (TARGET_VERSION): Remove.
2945 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
2946 * config/picochip/picochip.h (TARGET_VERSION): Remove.
2947 * config/rs6000/aix.h (TARGET_VERSION): Remove.
2948 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
2949 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
2950 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
2951 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
2952 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
2953 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
2954 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
2955 * config/rs6000/linux.h (TARGET_VERSION): Remove.
2956 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
2957 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
2958 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
2959 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
2960 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
2961 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
2962 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
2963 * config/s390/linux.h (TARGET_VERSION): Remove.
2964 * config/s390/s390.h (TARGET_VERSION): Remove.
2965 * config/s390/tpf.h (TARGET_VERSION): Remove.
2966 * config/score/score.h (TARGET_VERSION): Remove.
2967 * config/sh/linux.h (TARGET_VERSION): Remove.
2968 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
2969 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
2970 * config/sh/sh.h (TARGET_VERSION): Remove.
2971 * config/sh/sh64.h (TARGET_VERSION): Remove.
2972 * config/sh/superh.h (TARGET_VERSION): Remove.
2973 * config/sh/vxworks.h (TARGET_VERSION): Remove.
2974 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
2975 * config/sparc/linux.h (TARGET_VERSION): Remove.
2976 * config/sparc/linux64.h (TARGET_VERSION): Remove.
2977 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
2978 TARGET_NAME32, TARGET_NAME): Remove.
2979 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
2980 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
2981 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
2982 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
2983 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
2984 * config/spu/spu.h (TARGET_VERSION): Remove.
2985 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
2986 * config/v850/v850.h (TARGET_VERSION): Remove.
2987 * config/vax/linux.h (TARGET_VERSION): Remove.
2988 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
2989 * config/xtensa/elf.h (TARGET_VERSION): Remove.
2990 * config/xtensa/linux.h (TARGET_VERSION): Remove.
2991
2992 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
2993
2994 PR target/48142
2995 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
2996 frame-related from frame-unrelated adjustments to the stack pointer.
2997
2998 2011-03-31 Jakub Jelinek <jakub@redhat.com>
2999
3000 * common.opt (fdebug-types-section): Move earlier.
3001 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
3002
3003 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
3004
3005 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
3006 var.
3007
3008 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
3009
3010 * tree.h (CASE_CHAIN): Define.
3011 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
3012 (gimple_redirect_edge_and_branch): Likewise.
3013
3014 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
3015
3016 PR middle-end/48367
3017 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
3018 calculation.
3019
3020 2011-03-30 Jeff Law <law@redhat.com>
3021
3022 * PR bootstrap/48371
3023 * reload1.c (reload): Fix botch in last change.
3024
3025 * reload.h (struct reload): Fix typo introduced in last change.
3026
3027 2011-03-30 Joseph Myers <joseph@codesourcery.com>
3028
3029 * config/arm/arm.opt (mhard-float, msoft-float): Mark
3030 Undocumented. Remove help text.
3031 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
3032 -mhard-float.
3033
3034 2011-03-30 Joseph Myers <joseph@codesourcery.com>
3035
3036 * doc/options.texi (NegativeAlias): Document.
3037 (Alias): Mention NegativeAlias.
3038 * opt-functions.awk: Handle NegativeAlias.
3039 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
3040 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
3041 * opts.h (CL_NEGATIVE_ALIAS): Define.
3042 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
3043 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
3044 OPT_mspe_.
3045 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
3046 Alias entries.
3047 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
3048 mno-spe and mno-isel instead of mspe=no and -misel=no.
3049
3050 2011-03-29 Mark Wielaard <mjw@redhat.com>
3051
3052 * common.opt (fdebug-types-section): New flag.
3053 * doc/invoke.texi: Document new -fno-debug-types-section flag.
3054 * dwarf2out.c (use_debug_types): New define.
3055 (struct die_struct): Mark die_id with GTY desc use_debug_types.
3056 (print_die): Guard output of type unit signatures using
3057 use_debug_types.
3058 (build_abbrev_table): Replace assert of dwarf_version >= 4
3059 with assert on use_debug_types.
3060 (size_of_die): Likewise.
3061 (unmark_dies): Likewise.
3062 (value_format): Decide AT_ref_external form on use_debug_types.
3063 (output_die): Replace dwarf_version version check guard with
3064 use_debug_types where appropriate.
3065 (modified_type_die): Likewise.
3066 (gen_reference_type_die): Likewise.
3067 (dwarf2out_start_source_file): Likewise.
3068 (dwarf2out_end_source_file): Likewise.
3069 (prune_unused_types_walk_attribs): Likewise.
3070 (dwarf2out_finish): Likewise.
3071
3072 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
3073
3074 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
3075
3076 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
3077
3078 PR rtl-optimization/48332
3079 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
3080 mode of input operand N and modeN to its actual mode.
3081
3082 2011-03-30 Jeff Law <law@redhat.com>
3083
3084 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
3085 define accessor macro.
3086 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
3087 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
3088 (reg_equiv_init): Likewise.
3089 (reg_equivs_size): New variable.
3090 (reg_equiv_init_size): Remove.
3091 (allocate_initial_values): Move prototype to here from....
3092 * integrate.h (allocate_initial_values): Remove prototype.
3093 * integrate.c: Include reload.h.
3094 (allocate_initial_values): Corresponding changes.
3095 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
3096 (fix_reg_equiv_init, no_equiv): Corresponding changes.
3097 (update_equiv_regs): Corresponding changes.
3098 (ira): Corresponding changes.
3099 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
3100 (push_secondary_reload): Corresponding changes.
3101 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
3102 (make_memloc, find_reloads_address): Corresponding changes.
3103 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
3104 (find_reloads_address_1): Corresponding changes.
3105 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
3106 (refers_to_regno_for_reload_p): Corresponding changes.
3107 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
3108 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
3109 * reload1.c: Include ggc.h.
3110 (grow_reg_equivs): New function.
3111 (replace_pseudos_in, reload): Corresponding changes.
3112 (calculate_needs_all_insns, alter_regs): Corresponding changes.
3113 (eliminate_regs_1, elimination_effects): Corresponding changes.
3114 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
3115 (delete_output_reload): Likewise.
3116 * caller-save.c (mark_referenced_regs): Corresponding changes.
3117 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
3118 * frv/predicates.md (frv_load_operand): Corresponding changes.
3119 * microblaze/microblaze.c (double_memory_operand): Corresponding
3120 changes.
3121 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
3122 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
3123 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
3124 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
3125 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
3126 changes.
3127 * pa/pa.c (emit_move_sequence): Corresponding changes.
3128 * vax/vax.c (nonindexed_address_p): Corresponding changes.
3129
3130 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
3131
3132 PR target/47551
3133 * config/arm/arm.c (coproc_secondary_reload_class): Handle
3134 structure modes. Don't check neon_vector_mem_operand for
3135 vector or structure modes.
3136
3137 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
3138 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3139
3140 PR target/43590
3141 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
3142 operand 1 and reshuffle the operands to match.
3143 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
3144
3145 2011-03-30 Christian Schüler <cschueler@gmx.de>
3146
3147 PR driver/48208
3148 * config/c.opt (F): Added 'Driver' to -F option.
3149
3150 PR driver/48260
3151 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
3152 handler function.
3153 * config/darwin.opt: Added '-arch' option.
3154
3155 2011-03-30 Nick Clifton <nickc@redhat.com>
3156
3157 * config/rx/rx.md: Add peepholes and patterns to combine
3158 extending loads and simple arithmetic instructions.
3159 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
3160 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
3161 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
3162 modes to use pre-decrement and post-increment addressing.
3163 (rx_is_restricted_memory_address): Add range checking of REG+INT
3164 addresses.
3165 (rx_print_operand): Add support for %Q. Fix handling of %Q.
3166 (rx_memory_move_cost): Adjust cost of stores.
3167 (rx_adjust_insn_length): New function.
3168
3169 2011-03-30 Jakub Jelinek <jakub@redhat.com>
3170
3171 PR c/48305
3172 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
3173 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
3174 matching arg00/arg01 types.
3175
3176 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
3177
3178 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
3179 last_location to UNKNOWN_LOCATION.
3180
3181 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
3182
3183 PR target/48349
3184 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
3185 FLOAT_SSE_REGS.
3186
3187 2011-03-30 Joseph Myers <joseph@codesourcery.com>
3188 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3189
3190 PR bootstrap/48337
3191 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
3192 Init(PROCESSOR_V7).
3193 (sparc_cpu): Likewise.
3194 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
3195 PROCESSOR_V7.
3196
3197 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
3198
3199 PR target/48336
3200 PR middle-end/48342
3201 PR rtl-optimization/48345
3202 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
3203 hard regs for given mode from profitable regs when doing secondary
3204 allocation.
3205
3206 2011-03-29 Jeff Law <law@redhat.com>
3207
3208 PR bootstrap/48327
3209 * tree-ssa-threadupdate.c (struct redirection_data): Remove
3210 do_not_duplicate field.
3211 (lookup_redirection_data): Corresponding changes.
3212 (create_duplicates): Always create a template block.
3213 (redirect_edges): Remove code which reused the original block
3214 when it was going to become unreachable code.
3215 (thread_block): Don't set do_not_duplicate field.
3216
3217 2011-03-29 Joseph Myers <joseph@codesourcery.com>
3218
3219 * lto-opts.c (register_user_option_p, lto_register_user_option):
3220 Make type argument unsigned.
3221 * lto-streamer.h (lto_register_user_option): Make type argument
3222 unsigned.
3223 * opth-gen.awk: Make CL_* macros unsigned.
3224 * opts-common.c (find_opt): Make lang_mask argument unsigned.
3225 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
3226 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
3227 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
3228 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
3229 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
3230 (find_opt): Make lang_mask argument unsigned.
3231
3232 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
3233
3234 PR rtl-optimization/48331
3235 PR rtl-optimization/48334
3236 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
3237 for any used algorithm.
3238
3239 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
3240
3241 * ira-conflicts.c (build_object_conflicts): Add unused attribute
3242 to parent_max.
3243
3244 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
3245
3246 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
3247 (alpha_option_override): Don't set alpha_sr_alias_set.
3248 (emit_frame_store_1): Use gen_frame_mem rather than calling
3249 set_mem_alias_set.
3250 (alpha_expand_epilogue): Ditto.
3251
3252 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
3253
3254 PR tree-optimization/48290
3255 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
3256 vectorization, check that relevant phis in the basic block after
3257 the inner loop are really inner loop's exit phis.
3258
3259 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
3260
3261 PR debug/48190
3262 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
3263 (cached_dw_loc_list_def): New structure.
3264 (cached_dw_loc_list): New typedef.
3265 (cached_dw_loc_list_table): New variable.
3266 (cached_dw_loc_list_table_hash): New function.
3267 (cached_dw_loc_list_table_eq): Likewise.
3268 (add_location_or_const_value_attribute): Take a bool cache_p.
3269 Cache the list when the parameter is true.
3270 (gen_formal_parameter_die): Update caller.
3271 (gen_variable_die): Likewise.
3272 (dwarf2out_finish): Likewise.
3273 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
3274 while generating debug info for the decl.
3275 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
3276 (dwarf2out_init): Initialize cached_dw_loc_list_table.
3277 (resolve_addr): Cache the result of resolving a chain of
3278 location lists.
3279
3280 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
3281
3282 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
3283 conflict object hard regset nodes have intersecting hard reg sets.
3284
3285 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
3286 after regstat_init_n_sets_and_refs.
3287
3288 * ira.c: Add more comments at the top.
3289 (setup_stack_reg_pressure_class, setup_pressure_classes):
3290 Add comments how we compute the register pressure classes.
3291 (setup_allocno_and_important_classes): Add more comments.
3292 (setup_class_translate_array, reorder_important_classes)
3293 (setup_reg_class_relations): Add comments.
3294
3295 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
3296 start of the file.
3297
3298 * ira-color.c: Add 2011 to the Copyright line.
3299 (assign_hard_reg): Add more comments.
3300 (improve_allocation): Ditto.
3301
3302 * ira-costs.c: Add 2011 to the Copyright line.
3303 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
3304 comments.
3305 (setup_regno_cost_classes_by_mode): Ditto.
3306
3307 Initial patches from ira-improv branch:
3308
3309 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
3310
3311 * ira-build.c (ira_create_object): Remove initialization of
3312 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
3313 (ira_create_allocno): Remove initialization of
3314 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
3315 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
3316 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
3317 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
3318 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
3319 Initialize ALLOCNO_ADD_DATA.
3320 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
3321 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
3322 ALLOCNO_REG.
3323 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
3324 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
3325
3326 * ira.c (ira_reallocate): Remove.
3327 (setup_pressure_classes): Call
3328 ira_init_register_move_cost_if_necessary. Use
3329 ira_register_move_cost instead of ira_get_register_move_cost.
3330 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
3331 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
3332
3333 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
3334 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
3335 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
3336 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
3337 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
3338 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
3339 Fix formatting.
3340 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
3341 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
3342 (struct allocno_color_data): New.
3343 (allocno_color_data_t): New typedef.
3344 (allocno_color_data): New definition.
3345 (ALLOCNO_COLOR_DATA): New macro.
3346 (struct object_color_data): New.
3347 (object_color_data_t): New typedef.
3348 (object_color_data): New definition.
3349 (OBJECT_COLOR_DATA): New macro.
3350 (update_copy_costs, calculate_allocno_spill_cost): Call
3351 ira_init_register_move_cost_if_necessary. Use
3352 ira_register_move_cost instead of ira_get_register_move_cost.
3353 (move_spill_restore, update_curr_costs): Ditto.
3354 (allocno_spill_priority): Make it inline.
3355 (color_pass): Allocate and free allocno_color_dat and object_color_data.
3356 (struct coalesce_data, coalesce_data_t): New.
3357 (allocno_coalesce_data): New definition.
3358 (ALLOCNO_COALESCE_DATA): New macro.
3359 (merge_allocnos, coalesced_allocno_conflict_p): Use
3360 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
3361 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
3362 (coalesce_allocnos): Ditto.
3363 (setup_coalesced_allocno_costs_and_nums): Ditto.
3364 (collect_spilled_coalesced_allocnos): Ditto.
3365 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
3366 (setup_slot_coalesced_allocno_live_ranges): Ditto.
3367 (coalesce_spill_slots): Ditto.
3368 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
3369 free allocno_coalesce_data.
3370
3371 * ira-conflicts.c: Fix formatting.
3372 (process_regs_for_copy): Call
3373 ira_init_register_move_cost_if_necessary. Use
3374 ira_register_move_cost instead of ira_get_register_move_cost.
3375 (build_object_conflicts): Optimize.
3376
3377 * ira-costs.c (record_reg_classes): Optimize. Call
3378 ira_init_register_move_cost_if_necessary. Use
3379 ira_register_move_cost, ira_may_move_in_cost, and
3380 ira_may_move_out_cost instead of ira_get_register_move_cost and
3381 ira_get_may_move_cost.
3382 (record_address_regs): Ditto.
3383 (scan_one_insn): Optimize.
3384 (find_costs_and_classes): Optimize.
3385 (process_bb_node_for_hard_reg_moves): Call
3386 ira_init_register_move_cost_if_necessary. Use
3387 ira_register_move_cost instead of ira_get_register_move_cost.
3388
3389 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
3390 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
3391 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
3392 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
3393 definitions.
3394 (ira_initiate_emit_data, ira_finish_emit_data)
3395 (create_new_allocno): New functions.
3396 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
3397 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
3398 Use ira_register_move_cost instead of ira_get_register_move_cost.
3399
3400 * ira-int.h: Fix some comments.
3401 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
3402 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
3403 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
3404 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
3405 add_data.
3406 (struct ira_allocno): Make mode and aclass a bitfield. Move other
3407 bitfield after mode. Make hard_regno a short int. Make
3408 hard_regno short. Remove first_coalesced_allocno and
3409 next_coalesced_allocno. Move mem_optimized_dest_p,
3410 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
3411 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
3412 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
3413 temp, colorable_p. Add new member add_data.
3414 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
3415 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
3416 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
3417 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
3418 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
3419 (ALLOCNO_ADD_DATA): New macro.
3420 (ira_emit_data_t): New typedef.
3421 (struct ira_emit_data): New. Move mem_optimized_dest_p,
3422 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
3423 from struct ira_allocno.
3424 (ALLOCNO_EMIT_DATA): New macro.
3425 (ira_allocno_emit_data, allocno_emit_reg): New.
3426 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
3427 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
3428 (OBJECT_ADD_DATA): New macro.
3429 (ira_reallocate): Remove.
3430 (ira_initiate_emit_data, ira_finish_emit_data): New.
3431 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
3432 (ira_init_register_move_cost_if_necessary): New.
3433 (ira_object_conflict_iter_next): Merge into
3434 ira_object_conflict_iter_cond.
3435 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
3436
3437 * ira-live.c (process_single_reg_class_operands): Call
3438 ira_init_register_move_cost_if_necessary. Use
3439 ira_register_move_cost instead of ira_get_register_move_cost.
3440
3441 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
3442
3443 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
3444
3445 * ira-costs.c: Fix formatting.
3446 (cost_classes, cost_classes_num): Remove.
3447 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
3448 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
3449 (cost_classes_del, cost_classes_htab): New.
3450 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
3451 (initiate_regno_cost_classes, setup_cost_classes): New.
3452 (setup_regno_cost_classes_by_aclass): New.
3453 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
3454 (record_reg_classes): Use regno_cost_classes instead of
3455 cost_classes. Move checking opposite operand up.
3456 (record_address_regs): Use regno_cost_classes
3457 instead of cost_classes.
3458 (scan_one_insn): Ditto. Use always general register.
3459 (print_allocno_costs): Use regno_cost_classes instead of
3460 cost_classes.
3461 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
3462 (find_costs_and_classes): Set up cost classes for each registers.
3463 Use also their mode for this. Use regno_cost_classes instead of
3464 cost_classes.
3465 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
3466 cost_classes.
3467 (free_ira_costs, ira_init_costs): Don't use cost_classes.
3468 (ira_costs, ira_set_pseudo_classes): Call
3469 initiate_regno_cost_classes and finish_regno_cost_classes.
3470
3471 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
3472
3473 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
3474
3475 * target.def (ira_cover_classes): Remove.
3476
3477 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
3478
3479 * doc/tm.texi.in: Ditto.
3480
3481 * ira-conflicts.c: Remove mentioning cover classes from the file.
3482 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
3483 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
3484
3485 * targhooks.c (default_ira_cover_classes): Remove.
3486
3487 * targhooks.h (default_ira_cover_classes): Ditto.
3488
3489 * haifa-sched.c: Remove mentioning cover classes from the file.
3490 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
3491 ira_pressure_classes and ira_pressure_classes_num instead of
3492 ira_reg_class_cover_size and ira_reg_class_cover. Use
3493 sched_regno_pressure_class instead of sched_regno_cover_class.
3494 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
3495 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3496
3497 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
3498 classes from the file.
3499 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
3500 (struct object_hard_regs, struct object_hard_regs_node): New.
3501 (struct ira_object): New members profitable_hard_regs,
3502 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
3503 (struct ira_allocno): Rename cover_class to aclass. Rename
3504 cover_class_cost and updated_cover_class_cost to class_cost and
3505 updated_class_cost. Remove splay_removed_p and
3506 left_conflict_size. Add new members colorable_p.
3507 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
3508 (ALLOCNO_COLORABLE_P): New macro.
3509 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
3510 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
3511 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
3512 (OBJECT_...): Rename parameter C to O.
3513 (OBJECT_PROFITABLE_HARD_REGS): New macro.
3514 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
3515 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
3516 (struct target_ira_int): New members x_ira_max_memory_move_cost,
3517 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
3518 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
3519 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
3520 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
3521 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
3522 x_ira_reg_class_subunion.
3523 (ira_max_memory_move_cost, ira_max_register_move_cost)
3524 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
3525 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
3526 (ira_important_class_nums, ira_reg_class_superunion): New macros.
3527 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
3528 (ira_reg_class_union): Rename to ira_reg_class_subunion.
3529 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3530 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3531 (ira_tune_allocno_costs_and_cover_classes): Rename to
3532 ira_tune_allocno_costs.
3533 (ira_debug_hard_regs_forest): New.
3534 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
3535 (ira_object_conflict_iter_next): Fix comments.
3536 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
3537 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
3538 cover_class to aclass.
3539 (ira_allocate_and_accumulate_costs): Ditto.
3540 (ira_allocate_and_set_or_copy_costs): Ditto.
3541
3542 * opts.c (decode_options): Remove ira_cover_class check.
3543
3544 * ira-color.c: Remove mentioning cover classes from the file. Use
3545 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
3546 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
3547 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
3548 (splay-tree.h): Remove include.
3549 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
3550 before copy_freq_compare_func.
3551 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
3552 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
3553 New definitions.
3554 (hard_regs_roots, hard_regs_node_vec): Ditto.
3555 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
3556 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
3557 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
3558 (create_new_object_hard_regs_node): Ditto.
3559 (add_new_object_hard_regs_node_to_forest): Ditto.
3560 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
3561 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
3562 Ditto.
3563 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
3564 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
3565 (remove_unused_object_hard_regs_nodes): Ditto.
3566 (enumerate_object_hard_regs_nodes): Ditto.
3567 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
3568 (object_hard_regs_subnode_t): Ditto.
3569 (struct object_hard_regs_subnode): Ditto.
3570 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
3571 (setup_object_hard_regs_subnode_index): Ditto.
3572 (get_object_hard_regs_subnodes_num): Ditto.
3573 (form_object_hard_regs_nodes_forest): Ditto.
3574 (finish_object_hard_regs_nodes_tree): Ditto.
3575 (finish_object_hard_regs_nodes_forest): Ditto.
3576 (allocnos_have_intersected_live_ranges_p): Rename to
3577 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
3578 (pseudos_have_intersected_live_ranges_p): Rename to
3579 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
3580 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
3581 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
3582 (update_copy_costs): Remove assert. Skip cost update if the hard
3583 reg does not belong the class.
3584 (assign_hard_reg): Process only profitable hard regs.
3585 (uncolorable_allocnos_num): Make it scalar.
3586 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
3587 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
3588 and ira_reg_class_max_nregs.
3589 (bucket_allocno_compare_func): Check frequency first.
3590 (sort_bucket): Add compare function as a parameter.
3591 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
3592 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
3593 (push_allocno_to_stack): Rewrite for checking new allocno
3594 colorability.
3595 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
3596 (push_only_colorable): Pass new parameter to sort_bucket.
3597 (push_allocno_to_spill): Remove.
3598 (allocno_spill_priority_compare): Make it inline and rewrite.
3599 (splay_tree_allocate, splay_tree_free): Remove.
3600 (allocno_spill_sort_compare): New function.
3601 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
3602 build and use splay tree. Choose first allocno in uncolorable
3603 allocno bucket to spill. Remove setting spill cost.
3604 (all_conflicting_hard_regs): Remove.
3605 (setup_allocno_available_regs_num): Check only profitable hard
3606 regs. Print info about hard regs nodes.
3607 (setup_allocno_left_conflicts_size): Remove.
3608 (put_allocno_into_bucket): Don't call
3609 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
3610 (improve_allocation): New.
3611 (color_allocnos): Call setup_profitable_hard_regs,
3612 form_object_hard_regs_nodes_forest, improve_allocation,
3613 finish_object_hard_regs_nodes_forest. Setup spill cost.
3614 (print_loop_title): Use pressure classes.
3615 (color_allocnso): Ditto.
3616 (do_coloring): Remove allocation and freeing splay_tree_node_pool
3617 and allocnos_for_spilling.
3618 (ira_sort_regnos_for_alter_reg): Don't setup members
3619 {first,next}_coalesced_allocno.
3620 (color): Remove allocating and freeing removed_splay_allocno_vec.
3621 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
3622 prohibited_class_mode_regs.
3623
3624 * ira-lives.c: Remove mentioning cover classes from the file. Fix
3625 formatting.
3626 (update_allocno_pressure_excess_length): Use pressure classes.
3627 (inc_register_pressure, dec_register_pressure): Check for pressure
3628 class.
3629 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
3630 pressure class. Use ira_reg_class_nregs instead of
3631 ira_reg_class_max_nregs.
3632 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
3633 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
3634 (single_reg_class): Use ira_reg_class_nregs instead of
3635 ira_reg_class_max_nregs.
3636 (process_bb_node_lives): Use pressure classes.
3637
3638 * ira-emit.c: Remove mentioning cover classes from the file. Use
3639 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
3640 (change_loop): Use pressure classes.
3641 (modify_move_list): Call ira_set_allocno_class instead of
3642 ira_set_allocno_cover_class.
3643
3644 * ira-build.c: Remove mentioning cover classes from the file. Use
3645 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
3646 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
3647 ALLOCNO_UPDATED_CLASS_COST instead of
3648 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
3649 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
3650 (ira_create_allocno): Remove initialization of
3651 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
3652 ALLOCNO_COLORABLE_P.
3653 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3654 Update conflict regs for the objects.
3655 (create_cap_allocno): Remove assert. Don't propagate
3656 ALLOCNO_AVAILABLE_REGS_NUM.
3657 (ira_free_allocno_costs): New function.
3658 (finish_allocno): Change a part of code into call of
3659 ira_free_allocno_costs.
3660 (low_pressure_loop_node_p): Use pressure classes.
3661 (object_range_compare_func): Don't compare classes.
3662 (setup_min_max_conflict_allocno_ids): Ditto.
3663
3664 * loop-invariant.c: Remove mentioning cover classes from the file.
3665 Use ira_pressure_classes and ira_pressure_classes_num instead of
3666 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
3667 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
3668 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3669 Use reg_allocno_class instead of reg_cover_class.
3670 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
3671 STACK_REG_COVER_CLASS.
3672 (get_regno_cover_class): Rename to get_regno_pressure_class.
3673 (move_loop_invariants): Initialize and finalize regstat.
3674
3675 * ira.c: Remove mentioning cover classes from the file. Add
3676 comments about coloring without cover classes. Use ALLOCNO_CLASS
3677 instead of ALLOCNO_COVER_CLASS. Fix formatting.
3678 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
3679 setup_class_subset_and_memory_move_costs.
3680 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
3681 (setup_cover_and_important_classes): Rename to
3682 setup_allocno_and_important_classes.
3683 (setup_class_translate_array): New.
3684 (setup_class_translate): Call it for allocno and pressure classes.
3685 (cover_class_order): Rename to allocno_class_order.
3686 (comp_reg_classes_func): Use ira_allocno_class_translate instead
3687 of ira_class_translate.
3688 (reorder_important_classes): Set up ira_important_class_nums.
3689 (setup_reg_class_relations): Set up ira_reg_class_superunion.
3690 (print_class_cover): Rename to print_classes. Add parameter.
3691 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3692 Print pressure classes too.
3693 (find_reg_class_closure): Rename to find_reg_classes. Don't call
3694 setup_reg_subclasses.
3695 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3696 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3697 (setup_prohibited_class_mode_regs): Use
3698 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
3699 (clarify_prohibited_class_mode_regs): New function.
3700 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
3701 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
3702 (ira_init_once): Initialize them.
3703 (free_register_move_costs): Process them.
3704 (ira_init): Move calls of find_reg_classes and
3705 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
3706 Call clarify_prohibited_class_mode_regs.
3707 (ira_no_alloc_reg): Remove.
3708 (too_high_register_pressure_p): Use pressure classes.
3709
3710 * sched-deps.c: Remove mentioning cover classes from the file.
3711 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
3712 ira_pressure_classes and ira_pressure_classes_num instead of
3713 ira_reg_class_cover_size and ira_reg_class_cover.
3714 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
3715 sched_regno_pressure_class instead of sched_regno_cover_class.
3716 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
3717 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3718
3719 * ira.h: Add 2010 to Copyright.
3720 (ira_no_alloc_reg): Remove external.
3721 (struct target_ira): Rename x_ira_hard_regno_cover_class,
3722 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
3723 x_ira_class_translate to x_ira_hard_regno_allocno_class,
3724 x_ira_allocno_classes_num, x_ira_allocno_classes, and
3725 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
3726 x_ira_pressure_classes, x_ira_pressure_class_translate, and
3727 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
3728 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
3729 x_ira_no_alloc_regs.
3730 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3731 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
3732 ira_allocno_classes_num and ira_allocno_classes.
3733 (ira_class_translate): Rename to ira_allocno_class_translate.
3734 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
3735 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
3736 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3737 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
3738 (ira_no_alloc_regs): New.
3739
3740 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
3741 classes from the file. Use ALLOCNO_CLASS instead of
3742 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
3743 ALLOCNO_COVER_CLASS_COST.
3744 (regno_cover_class): Rename to regno_aclass.
3745 (record_reg_classes): Use ira_reg_class_subunion instead of
3746 ira_reg_class_union.
3747 (record_address_regs): Check overflow.
3748 (scan_one_insn): Ditto.
3749 (print_allocno_costs): Print total mem cost fore regional allocation.
3750 (print_pseudo_costs): Use REG_N_REFS.
3751 (find_costs_and_classes): Use classes intersected with them on the
3752 1st pass. Check overflow. Use ira_reg_class_subunion instead of
3753 ira_reg_class_union. Use ira_allocno_class_translate and
3754 regno_aclass instead of ira_class_translate and regno_cover_class.
3755 Modify code for finding regno_aclass. Setup preferred classes for
3756 the next pass.
3757 (setup_allocno_cover_class_and_costs): Rename to
3758 setup_allocno_class_and_costs. Use regno_aclass instead of
3759 regno_cover_class. Use ira_set_allocno_class instead of
3760 ira_set_allocno_cover_class.
3761 (init_costs, finish_costs): Use regno_aclass instead of
3762 regno_cover_class.
3763 (ira_costs): Use setup_allocno_class_and_costs instead of
3764 setup_allocno_cover_class_and_costs.
3765 (ira_tune_allocno_costs_and_cover_classes): Rename to
3766 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
3767 by processing objects. Use ira_reg_class_max_nregs instead of
3768 ira_reg_class_nregs.
3769
3770 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
3771
3772 * sched-int.h: Remove mentioning cover classes from the file.
3773 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
3774
3775 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
3776 classes from the file.
3777 (struct reg_pref): Rename coverclass into allocnoclass.
3778 (reg_cover_class): Rename to reg_allocno_class.
3779
3780 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
3781
3782 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
3783
3784 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
3785
3786 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
3787
3788 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
3789
3790 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
3791
3792 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
3793
3794 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
3795
3796 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
3797
3798 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
3799
3800 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
3801 (i386_ira_cover_classes): Ditto.
3802
3803 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
3804
3805 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
3806
3807 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
3808
3809 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
3810
3811 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
3812
3813 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
3814
3815 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
3816 (mips_ira_cover_classes): Ditto.
3817
3818 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
3819
3820 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
3821
3822 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
3823
3824 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
3825
3826 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
3827
3828 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
3829 (IRA_COVER_CLASSES_VSX): Ditto.
3830
3831 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
3832 (rs6000_ira_cover_classes): Ditto.
3833
3834 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
3835
3836 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
3837
3838 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
3839
3840 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
3841
3842 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
3843
3844 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
3845
3846 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
3847
3848 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
3849
3850 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
3851
3852 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
3853
3854 2011-03-29 Jakub Jelinek <jakub@redhat.com>
3855
3856 PR debug/48253
3857 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
3858 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
3859 dw_fde_unlikely_section_end_label, cold_in_std_section,
3860 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
3861 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
3862 fields.
3863 (output_fde): Use dw_fde_second_{begin,end} if second is
3864 true, otherwise dw_fde_{begin,end}.
3865 (output_call_frame_info): Test dw_fde_second_begin != NULL
3866 instead of dw_fde_switched_sections.
3867 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
3868 fields, initialize new fields. Initialize in_std_section
3869 unconditionally from the first partition.
3870 (dwarf2out_end_epilogue): Don't override dw_fde_end when
3871 dw_fde_second_begin is non-NULL.
3872 (dwarf2out_switch_text_section): Stop initializing removed
3873 dw_fde_struct fields, initialize new fields, initialize
3874 also dw_fde_end here. Set dw_fde_switch_cfi even when
3875 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
3876 (struct var_loc_list_def): Add last_before_switch field.
3877 (arange_table, arange_table_allocated, arange_table_in_use,
3878 ARANGE_TABLE_INCREMENT, add_arange): Removed.
3879 (size_of_aranges): Count !in_std_section and !second_in_std_section
3880 hunks in fdes, instead of looking at arange_table_in_use.
3881 (output_aranges): Add aranges_length argument, don't call
3882 size_of_aranges here. Instead of using aranges_table*
3883 emit ranges for fdes when !in_std_section resp.
3884 !second_in_std_section.
3885 (dw_loc_list): Break ranges crossing section switch.
3886 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
3887 use dw_fde_second_end instead of dw_fde_end as end of last range.
3888 (gen_subprogram_die): Don't call add_arange. Use
3889 dw_fde_{begin,end} for first partition and if switched
3890 section dw_fde_second_{begin,end} for the second.
3891 (var_location_switch_text_section_1,
3892 var_location_switch_text_section): New functions.
3893 (dwarf2out_begin_function): Initialize cold_text_section even
3894 when function_section () isn't text_section.
3895 (prune_unused_types): Don't walk arange_table.
3896 (dwarf2out_finish): Don't needlessly test
3897 flag_reorder_blocks_and_partition when testing cold_text_section_used.
3898 If info_section_emitted, call size_of_aranges and if it indicates
3899 non-empty .debug_aranges, call output_aranges with the computed
3900 size. Stop using removed dw_fde_struct fields, use
3901 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
3902 for second.
3903
3904 PR debug/48203
3905 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
3906 create ENTRY_VALUE if incoming or address of incoming's MEM
3907 is a hard REG.
3908 * dwarf2out.c (mem_loc_descriptor): Don't emit
3909 DW_OP_GNU_entry_value of DW_OP_fbreg.
3910 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
3911 on ENTRY_VALUE is able to find the canonical parameter VALUE.
3912 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
3913 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
3914 ENTRY_VALUE_EXPs.
3915 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
3916 is a REG_P or MEM_P with REG_P address, compute hash directly
3917 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
3918 (preserve_only_constants): Don't clear VALUES forwaring
3919 ENTRY_VALUE to some other VALUE.
3920
3921 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
3922
3923 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
3924 instead of GEN_INT.
3925
3926 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
3927
3928 * cfgexpand.c (expand_gimple_cond): Always set the source location and
3929 block before expanding the statement.
3930 (expand_gimple_stmt_1): Likewise. Set them here...
3931 (expand_gimple_stmt): ...and not here. Tidy.
3932 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
3933 unknown.
3934
3935 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
3936
3937 * Makefile.in: New rule for cprop.o.
3938 * gcse.c: Move constant/copy propagation to cprop.c.
3939 (compute_local_properties): Only handle expression tables.
3940 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
3941 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
3942 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
3943 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
3944 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
3945 compute_cprop_data, find_used_regs, try_replace_reg,
3946 find_avail_set, cprop_jump, constprop_register, cprop_insn,
3947 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
3948 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
3949 find_bypass_set, reg_killed_on_edge, bypass_block,
3950 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
3951 execute_rtl_cprop, pass_rtl_cprop): Move to...
3952 * cprop.c: ...here. New file, constant/copy propagation for RTL
3953 moved from gcse.c to here with minor cleanups in duplicated code.
3954
3955 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
3956
3957 * config/i386/i386.c (flag_opts): Fix a typo in
3958 -mavx256-split-unaligned-store.
3959
3960 2011-03-28 Anatoly Sokolov <aesok@post.ru>
3961
3962 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3963 LIBCALL_VALUE): Remove macros.
3964 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3965 TARGET_FUNCTION_VALUE_REGNO_P): Define.
3966 (h8300_function_value, h8300_libcall_value,
3967 h8300_function_value_regno_p): New functions.
3968
3969 2011-03-28 Anatoly Sokolov <aesok@post.ru>
3970
3971 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
3972
3973 2011-03-28 Jeff Law <law@redhat.com>
3974
3975 * tree-ssa-threadupdate.c (redirect_edges): Call
3976 create_edge_and_update_destination_phis as needed.
3977 (create_edge_and_update_destination_phis): Accept new BB argument.
3978 All callers updated.
3979 (thread_block): Do not update the profile when threading around
3980 intermediate blocks.
3981 (thread_single_edge): Likewise.
3982 (determine_bb_domination_status): If BB is not a successor of the
3983 loop header, return NONDOMINATING.
3984 (register_jump_thread): Note when we register a jump thread around
3985 an intermediate block.
3986 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
3987 (thread_across_edge): Use it.
3988
3989 2011-03-28 Tristan Gingold <gingold@adacore.com>
3990
3991 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
3992 when for_return is 2.
3993
3994 2011-03-28 Jeff Law <law@redhat.com>
3995
3996 * var-tracking.c (canonicalize_values_mark): Delete unused
3997 lhs assignment.
3998 (canonicalize_values_star, set_variable_part): Likewise.
3999 (clobber_variable_part, delete_variable_part): Likewise.
4000
4001 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
4002
4003 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
4004
4005 2011-03-28 Martin Jambor <mjambor@suse.cz>
4006
4007 * tree-inline.c (expand_call_inline): Do not check that destination
4008 node is analyzed.
4009 (optimize_inline_calls): Assert that destination node is analyzed.
4010 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
4011 not call tree_lowering_passes.
4012 * cgraph.h (cgraph_analyze_function): Declare.
4013 * cgraphunit.c (cgraph_analyze_function): Make public.
4014
4015 2011-03-28 Joseph Myers <joseph@codesourcery.com>
4016
4017 * config/sparc/sparc-opts.h: New.
4018 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
4019 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
4020 (sparc_option_override): Store processor_type enumeration rather
4021 than string in cpu_default. Remove name and enumeration from
4022 cpu_table. Directly default -mcpu then default -mtune from -mcpu
4023 without using sparc_select. Use target_flags_explicit instead of
4024 fpu_option_set.
4025 * config/sparc/sparc.h (enum processor_type): Move to
4026 sparc-opts.h.
4027 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
4028 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
4029 HeaderInclude entry.
4030 (mcpu=, mtune=): Use Var and Enum.
4031 (sparc_processor_type): New Enum and EnumValue entries.
4032
4033 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4034 Iain Sandoe <iains@gcc.gnu.org>
4035
4036 PR target/48245
4037 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
4038
4039 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
4040
4041 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
4042 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
4043 Insert new statements at it in lieu of STMT.
4044 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
4045 * tree-vect-stmts.c (vectorizable_store): Likewise.
4046 (vectorizable_load): Likewise.
4047
4048 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
4049
4050 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
4051 (divtf3): Ditto.
4052 (multf3): Ditto.
4053 (subtf3): Ditto.
4054
4055 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
4056
4057 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
4058 unaligned 256bit load/store.
4059 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
4060 (*avx_movdqu<avxmodesuffix>): Likewise.
4061
4062 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4063
4064 PR target/48288
4065 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
4066 * config/pa/pa.md (iordi3): Use new predicate in expander.
4067 (iorsi3): Likewise.
4068
4069 2011-03-27 Anatoly Sokolov <aesok@post.ru>
4070
4071 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
4072 FUNCTION_VALUE_REGNO_P): Remove macros.
4073 * config/mips/mips-protos.h (mips_function_value): Remove.
4074 * config/mips/mips.c (mips_function_value): Rename to...
4075 (mips_function_value_1): ... this. Make static. Handle receiving
4076 the function type in 'fn_decl_or_type' argument.
4077 (mips_function_value, mips_libcall_value,
4078 mips_function_value_regno_p): New function.
4079 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4080 TARGET_FUNCTION_VALUE_REGNO_P): Define.
4081
4082 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
4083
4084 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
4085 and -mavx256-split-unaligned-store.
4086 (ix86_option_override_internal): Split 32-byte AVX unaligned
4087 load/store by default.
4088 (ix86_avx256_split_vector_move_misalign): New.
4089 (ix86_expand_vector_move_misalign): Use it.
4090
4091 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
4092 -mavx256-split-unaligned-store.
4093
4094 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
4095 256bit load/store. Generate unaligned store on misaligned memory
4096 operand.
4097 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
4098 256bit load/store.
4099 (*avx_movdqu<avxmodesuffix>): Likewise.
4100
4101 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
4102 -mavx256-split-unaligned-store.
4103
4104 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
4105
4106 PR target/38598
4107 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
4108 Update commentary.
4109
4110 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
4111
4112 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
4113 opno arguments with an expand_operand. Use create_input_operand.
4114 (mips_prepare_builtin_target): Delete.
4115 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
4116 functions.
4117 (mips_expand_builtin_direct): Use create_output_operand and
4118 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
4119 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
4120 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
4121
4122 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
4123
4124 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
4125 function.
4126 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
4127
4128 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
4129
4130 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
4131 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
4132 basic blocks and call commit_edge_insertions directly.
4133 (fixup_abnormal_edges): Move from here to...
4134 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
4135 on the edges and return whether some have actually been inserted.
4136 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
4137 compensation code.
4138
4139 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
4140
4141 PR rtl-optimization/48144
4142 * sel-sched-ir.c (merge_history_vect): Factor out from ...
4143 (merge_expr_data): ... here.
4144 (av_set_intersect): Rename to av_set_code_motion_filter.
4145 Update all callers. Call merge_history_vect when an expression
4146 is found in both sets.
4147 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
4148
4149 2011-03-26 Alan Modra <amodra@gmail.com>
4150
4151 * config/rs6000/predicates.md (word_offset_memref_op): Handle
4152 cmodel medium addresses.
4153 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
4154 64-bit gpr loads and stores.
4155 (rs6000_secondary_reload_ppc64): New function.
4156 * config/rs6000/rs6000-protos.h: Declare it.
4157 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
4158
4159 2011-03-26 Alan Modra <amodra@gmail.com>
4160
4161 PR target/47487
4162 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
4163 GNU Go in traceback table.
4164
4165 2011-03-25 Richard Henderson <rth@redhat.com>
4166
4167 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
4168 if there are exactly 6 operands.
4169 (set_storage_via_setmem): Similarly.
4170
4171 2011-03-25 Kai Tietz <ktietz@redhat.com>
4172
4173 * collect2.c (write_c_file_stat): Handle backslash
4174 as right-hand directory separator.
4175 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
4176 checking just for slash.
4177 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
4178 instead of checking for trailing slash.
4179 * gcc.c (record_temp_file): Use filename_cmp instead
4180 of strcmp.
4181 (do_spec_1): Likewise.
4182 (replace_outfile_spec_function): Likewise.
4183 (is_directory): Use filename_ncmp instead of strncmp.
4184 (print_multilib_info): Likewise.
4185 * gcov.c (find_source): Use filename_cmp instead
4186 instead of strcmp.
4187 (make_gcov_file_name): Fix order of slash/backslash
4188 checks.
4189 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
4190 (add_standard_paths): Likewise.
4191 * mips-tfile.c (saber_stop): Handle backslash.
4192 * prefix.c (update_path): Use filename_ncmp instead of
4193 strncmp.
4194 * profile.c (output_location): Use filename_cmp instead
4195 of strcmp.
4196 * read-md.c (handle_toplevel_file): Handle backslash.
4197 * tlink.c (frob_extension): Likewise.
4198 * tree-cfg.c (same_line_p): Use filename_cmp instead of
4199 strcmp.
4200 * tree-dump.c (dequeue_and_dump): Handle backslash.
4201 * tree.c (get_file_function_name): Likewise.
4202 * gengtype.c (read_input_list): Likewise.
4203 (get_file_realbasename): Likewise.
4204 (get_output_file_with_visibility): Use filename_cmp
4205 instead of strcmp.
4206
4207 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
4208
4209 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
4210 case to VFPv1.
4211
4212 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
4213
4214 * fold-const.c (expr_location_or): New function.
4215 (fold_truth_not_expr): Call it.
4216
4217 2011-03-25 Jeff Law <law@redhat.com>
4218
4219 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
4220 va_end.
4221 * c-family/c-common.c (def_fn_type): Likewise.
4222 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
4223 * emit-rtl.c (gen_rtvec): Likewise.
4224 * lto/lto-lang.c (def_fn_type): Likewise.
4225
4226 2011-03-25 Richard Guenther <rguenther@suse.de>
4227
4228 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
4229 also generate copies.
4230 (fini_copy_prop): Handle constant values properly.
4231
4232 2011-03-25 Jakub Jelinek <jakub@redhat.com>
4233
4234 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
4235 mode size instead of bitsize with DWARF2_ADDR_SIZE.
4236 (hash_loc_operands, compare_loc_operands): Handle
4237 DW_OP_GNU_entry_value.
4238
4239 2011-03-25 Kai Tietz <ktietz@redhat.com>
4240
4241 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
4242 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
4243 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
4244 comment and use macro TARGET_64BIT_MS_ABI instead.
4245 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
4246 and change default behavior for 32-bit MS_ABI.
4247 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
4248 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
4249 32-bit, too.
4250 (ix86_cfun_abi): Likewise.
4251 (ix86_maybe_switch_abi): Adjust comment.
4252 (init_cumulative_args): Check for bit-ness in MS_ABI case.
4253 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
4254 instead of checking for SYSV_ABI.
4255 (ix86_nsaved_sseregs): Likewise.
4256 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
4257 to 16 bytes.
4258 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
4259 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
4260 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
4261 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
4262 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
4263
4264 2011-03-25 Richard Guenther <rguenther@suse.de>
4265
4266 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
4267 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
4268 (verify_gimple): Remove.
4269 * tree-cfg.c (verify_gimple_call): Merge verification
4270 from verify_stmts.
4271 (verify_gimple_phi): Merge verification from verify_stmts.
4272 (verify_gimple_label): New function.
4273 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
4274 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
4275 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
4276 (verify_stmts): Rename to verify_gimple_in_cfg.
4277 (verify_gimple_in_cfg): New function.
4278 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
4279 * tree-ssa.c (verify_ssa): Likewise.
4280 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
4281
4282 2011-03-25 Richard Guenther <rguenther@suse.de>
4283
4284 * passes.c (init_optimization_passes): Add FRE pass after
4285 early SRA.
4286
4287 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
4288 Andrew Stubbs <ams@codesourcery.com>
4289
4290 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
4291 for Cortex-A8.
4292 (arm_movdi_vfp_cortexa8): New pattern.
4293 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
4294 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
4295 instructions when tuning for Cortex-A8. Set attribute "arch".
4296 * config/arm/arm.md: Move include arm-tune.md up a bit.
4297 (define_attr "arch"): Add "onlya8" and "nota8" values.
4298 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
4299
4300 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
4301
4302 PR bootstrap/48282
4303 Revert:
4304 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
4305
4306 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
4307 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
4308 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
4309 * passes.c (init_optimization_passes): Move
4310 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
4311
4312 2011-03-25 Kai Tietz <ktietz@redhat.com>
4313
4314 * c-typeck.c (comptypes_internal): Replace target
4315 hook call of comp_type_attributes by version in tree.c file.
4316 * gimple.c (gimple_types_compatible_p_1): Likewise.
4317 * tree-ssa.c (useless_type_conversion_p): Likewise.
4318 * tree.c (build_type_attribute_qual_variant): Likewise.
4319 (attribute_value_equal): New static helper function.
4320 (comp_type_attributes): New function.
4321 (merge_attributes): Use attribute_value_equal for comparison.
4322 (attribute_list_contained): Likewise.
4323 * tree.h (comp_type_attributes): New prototype.
4324
4325 2011-03-25 Richard Guenther <rguenther@suse.de>
4326
4327 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
4328 of complex types at -O0.
4329 (verify_gimple_assign_binary): Likewise.
4330 (verify_gimple_assign_ternary): Likewise.
4331
4332 2011-03-24 Mark Wielaard <mjw@redhat.com>
4333
4334 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
4335 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
4336
4337 2011-03-24 Mark Wielaard <mjw@redhat.com>
4338
4339 PR debug/48041
4340 * dwarf2out.c (output_abbrev_section): Only write table when
4341 abbrev_die_table_in_use > 1.
4342
4343 2011-02-24 Richard Henderson <rth@redhat.com>
4344
4345 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
4346 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
4347 (alpha_expand_unaligned_load_words): Use extql.
4348 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
4349 (emit_insxl): Handle all modes for consistency.
4350
4351 2011-02-24 Richard Henderson <rth@redhat.com>
4352
4353 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
4354 (alpha_expand_unaligned_load): Likewise.
4355 (alpha_expand_unaligned_store): Likewise.
4356 (alpha_expand_unaligned_load_words): Likewise.
4357 (alpha_expand_unaligned_store_words): Likewise.
4358 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
4359 (alpha_split_lock_test_and_set_12): Likewise.
4360 (print_operand, alpha_fold_builtin_extxx): Likewise.
4361 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
4362 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
4363 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
4364 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
4365 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
4366 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
4367 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
4368 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
4369 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
4370 (extwl, extll, extql): Similarly.
4371 (inswh, inslh, insqh): Similarly.
4372 (mskbl, mskwl, mskll, mskql): Similarly.
4373 (mskwh, msklh, mskqh): Similarly.
4374
4375 2011-02-24 Richard Henderson <rth@redhat.com>
4376
4377 * config/alpha/alpha.md (attribute isa): Add er, ner.
4378 (attribute enabled): Handle them.
4379 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
4380
4381 2011-02-24 Richard Henderson <rth@redhat.com>
4382
4383 * config/alpha/alpha.md (attribute isa): Add vms.
4384 (attribute enabled): Handle it.
4385 (*movsf): Merge *movsf_{nofix,fix,nofp}.
4386 (*movdf): Merge *movdf_{nofix,fix,nofp}.
4387 (*movtf): Rename from *movtf_internal for consistency.
4388 (*movsi): Merge with *movsi_nt_vms.
4389 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
4390 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
4391 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
4392 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
4393
4394 2011-02-24 Richard Henderson <rth@redhat.com>
4395
4396 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
4397 (extendqisi2, extendhisi2): Likewise.
4398 (extendqidi2): Simplify BWX/non-BWX expansions.
4399 (extendhidi2): Similarly.
4400
4401 2011-02-24 Richard Henderson <rth@redhat.com>
4402
4403 * config/alpha/alpha.md (attribute isa): New.
4404 (attribute enabled): New.
4405 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
4406 (zero_extendqisi2, zero_extendqidi2): Similarly.
4407 (zero_extendhisi2, zero_extendhidi2): Similarly.
4408 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
4409
4410 2011-02-24 Richard Henderson <rth@redhat.com>
4411
4412 * config/alpha/predicates.md (input_operand): Revert last change;
4413 update comment to mention 32-bit VMS rather than Windows.
4414
4415 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
4416
4417 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
4418 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
4419 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
4420 * passes.c (init_optimization_passes): Move
4421 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
4422
4423 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
4424
4425 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
4426
4427 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
4428
4429 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
4430 correctly.
4431
4432 2011-03-24 Jakub Jelinek <jakub@redhat.com>
4433
4434 PR debug/48204
4435 * simplify-rtx.c (simplify_const_unary_operation): Call
4436 real_convert when changing mode class with FLOAT_EXTEND.
4437
4438 2011-03-24 Nick Clifton <nickc@redhat.com>
4439
4440 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
4441 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
4442 * config/rx/rx.c (rx_option_override): Set align_jumps,
4443 align_loops and align_labels if not set by the user.
4444 (rx_align_for_label): New function.
4445 (rx_max_skip_for_label): New function.
4446 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
4447 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
4448 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
4449 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
4450 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
4451
4452 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
4453
4454 PR rtl-optimization/48263
4455 * optabs.c (expand_binop_directly): Reinstate convert_modes code
4456 and original commutative_p handling. Use maybe_gen_insn.
4457
4458 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4459
4460 * reload.c (find_reloads_subreg_address): Add address_reloaded
4461 parameter and return true there if the full address has been
4462 reloaded.
4463 (find_reloads_toplev): Pass address_reloaded flag.
4464 (find_reloads_address_1): Don't use address_reloaded parameter.
4465
4466 2011-03-24 Jeff Law <law@redhat.com>
4467
4468 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
4469 unused variable "ann".
4470 (remove_unused_locals): Likewise.
4471
4472 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
4473 statement.
4474
4475 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
4476 after it is freed.
4477
4478 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4479
4480 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
4481 for invalid symbolic addresses.
4482 (s390_secondary_reload): Don't use s390_check_symref_alignment for
4483 larl operands.
4484
4485 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
4486
4487 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
4488 the argument in calls to fold_truth_not_expr.
4489
4490 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
4491
4492 * tree.c (record_node_allocation_statistics): New function.
4493 (make_node_stat, copy_node_stat, build_string): Call it.
4494 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
4495 (build1_stat, build_omp_clause): Likewise.
4496
4497 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
4498
4499 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
4500 last commit.
4501
4502 2011-03-24 Richard Guenther <rguenther@suse.de>
4503
4504 PR tree-optimization/48271
4505 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
4506 blocks that still exist.
4507
4508 2011-03-24 Richard Guenther <rguenther@suse.de>
4509
4510 PR tree-optimization/48270
4511 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
4512 not free datarefs before ddrs.
4513
4514 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
4515
4516 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
4517 from the address built for a reference with variable offset.
4518
4519 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
4520
4521 PR target/48237
4522 * config/i386/i386.md (*movdf_internal_rex64): Do not split
4523 alternatives that can be handled with movq or movabsq insn.
4524 (*movdf_internal): Disable for !TARGET_64BIT.
4525 (*movdf_internal_nointeger): Ditto.
4526 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
4527
4528 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
4529
4530 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
4531 (FUNCTION_ARG_ADVANCE): Likewise.
4532 * tm.texi.in: Change references to them to hook references.
4533 * tm.texi: Regenerate.
4534 * targhooks.c (default_function_arg): Eliminate check for target macro.
4535 (default_function_incoming_arg): Likewise.
4536 (default_function_arg_advance): Likewise.
4537 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
4538 (function_arg_advance): Likewise.
4539 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
4540
4541 2011-03-24 Richard Guenther <rguenther@suse.de>
4542
4543 PR middle-end/48269
4544 * tree-object-size.c (addr_object_size): Do not double-account
4545 for MEM_REF offsets.
4546
4547 2011-03-24 Diego Novillo <dnovillo@google.com>
4548
4549 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
4550 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
4551 (lto_input_data_block): Move from lto-opts.c. Make extern.
4552 Update all users.
4553 (lto_input_string): Rename from input_string. Make extern.
4554 Update all users.
4555 * lto-streamer-out.c (lto_output_string_with_length): Rename from
4556 output_string_with_length.
4557 Output 0 to indicate a non-NULL string. Update all callers to
4558 not emit 0.
4559 (lto_output_string): Rename from output_string. Make extern.
4560 Update all users.
4561 (lto_output_decl_state_streams): Make extern.
4562 (lto_output_decl_state_refs): Make extern.
4563 * lto-streamer.h (lto_input_string): Declare.
4564 (lto_input_data_block): Declare.
4565 (lto_output_string): Declare.
4566 (lto_output_string_with_length): Declare.
4567 (lto_output_decl_state_streams): Declare.
4568 (lto_output_decl_state_refs): Declare.
4569
4570 2011-03-24 Richard Guenther <rguenther@suse.de>
4571
4572 PR tree-optimization/46562
4573 * tree.c (build_invariant_address): New function.
4574 * tree.h (build_invariant_address): Declare.
4575 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
4576 a renamed function moved ...
4577 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
4578 Take valueization callback parameter.
4579 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
4580 * gimple-fold.h: New file.
4581 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
4582 (ccp_fold, fold_const_aggregate_ref,
4583 fold_ctor_reference, fold_nonarray_ctor_reference,
4584 fold_array_ctor_reference, fold_string_cst_ctor_reference,
4585 get_base_constructor): Move ...
4586 * gimple-fold.c: ... here.
4587 (gimple_fold_stmt_to_constant_1): New function
4588 split out from ccp_fold. Take a valueization callback parameter.
4589 Valueize all operands.
4590 (gimple_fold_stmt_to_constant): New wrapper function.
4591 (fold_const_aggregate_ref_1): New function split out from
4592 fold_const_aggregate_ref. Take a valueization callback parameter.
4593 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
4594 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
4595 invariant POINTER_PLUS_EXPRs to invariant form.
4596 (vn_valueize): New function.
4597 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
4598 * tree-vrp.c (vrp_valueize): New function.
4599 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
4600 to fold statements to constants.
4601 * tree-ssa-pre.c (eliminate): Properly guard propagation of
4602 function declarations.
4603 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
4604 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
4605
4606 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
4607
4608 * config/h8300/predicates.md (jump_address_operand): Fix register
4609 mode check.
4610
4611 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
4612
4613 * doc/invoke.texi (max-stores-to-sink): Document.
4614 * params.h (MAX_STORES_TO_SINK): Define.
4615 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
4616 if either vectorization or if-conversion is disabled.
4617 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
4618 tree-vect-data-refs.c vect_equal_offsets.
4619 (dr_equal_offsets_p): New function.
4620 (find_data_references_in_bb): Remove static.
4621 * tree-data-ref.h (find_data_references_in_bb): Declare.
4622 (dr_equal_offsets_p): Likewise.
4623 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
4624 (vect_drs_dependent_in_basic_block): Update calls to
4625 vect_equal_offsets.
4626 (vect_check_interleaving): Likewise.
4627 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
4628 (cond_if_else_store_replacement): Rename to...
4629 (cond_if_else_store_replacement_1): ... this. Change arguments and
4630 documentation.
4631 (cond_if_else_store_replacement): New function.
4632 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
4633 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
4634
4635 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
4636
4637 PR target/46934
4638 * config/arm/arm.md (casesi): Use the gen_int_mode() function
4639 to subtract lower bound instead of GEN_INT().
4640
4641 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
4642
4643 PR other/48179
4644 PR other/48221
4645 PR other/48234
4646 * doc/extend.texi (Alignment): Move section to match order in TOC.
4647 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
4648 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
4649
4650 2011-03-23 Jeff Law <law@redhat.com>
4651
4652 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
4653 before removing the edge.
4654
4655 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
4656 it may have been freed by redirect_branch_edge or
4657 redirect_edge_succ_nodup.
4658
4659 2011-03-23 Richard Guenther <rguenther@suse.de>
4660
4661 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
4662 (check_va_list_escapes): Likewise.
4663 (check_all_va_list_escapes): Likewise.
4664
4665 2011-03-23 Richard Guenther <rguenther@suse.de>
4666
4667 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
4668 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
4669 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
4670 (alias.o): Likewise.
4671 (ipa-type-escape.o): Remove.
4672 (ipa-struct-reorg.o): Likewise.
4673 (GTFILES): Remove ipa-struct-reorg.c.
4674 * alias.c: Do not include ipa-type-escape.h.
4675 * tree-ssa-alias.c: Likewise.
4676 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
4677 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
4678 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
4679 and ipa-type-escape passes.
4680 * tree-pass.h (pass_ipa_type_escape): Remove.
4681 (pass_ipa_struct_reorg): Likewise.
4682 * ipa-struct-reorg.h: Remove.
4683 * ipa-struct-reorg.c: Likewise.
4684 * ipa-type-escape.h: Likewise.
4685 * ipa-type-escape.c: Likewise.
4686 * doc/invoke.texi (-fipa-struct-reorg): Remove.
4687 (--param struct-reorg-cold-struct-ratio): Likewise.
4688 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
4689 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
4690 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
4691
4692 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4693
4694 * config/s390/2084.md: Enable all insn reservations also for z9_ec
4695 cpu attribute value.
4696 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
4697 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
4698 * config/s390/s390.c (processor_flags_table): New constant array.
4699 (s390_handle_arch_option): Remove.
4700 (s390_handle_option): Remove s390_handle_arch_option invocations
4701 and OPT_mwarn_framesize_ handling.
4702 (s390_option_override): Remove s390_handle_arch_option invocation.
4703 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
4704 warnings.
4705 * config/s390/s390.md (cpu attribute): Add z9_ec value.
4706 * config/s390/s390.opt (s390_tune, s390_arch)
4707 (march=): Replace s390_arch_option enum and values with
4708 processor_type. Set variable name to s390_arch. Set
4709 initialization value.
4710 (mtune=): Replace s390_arch_option with processor_type. Set
4711 variable name to s390_tune. Set initialization value.
4712
4713 2011-03-23 Julian Brown <julian@codesourcery.com>
4714
4715 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
4716 accesses which are not naturally aligned.
4717
4718 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
4719
4720 PR target/47553
4721 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
4722
4723 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
4724
4725 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
4726 parameter from "int" to "enum insn_code".
4727 (expand_operand_type): New enum.
4728 (expand_operand): New structure.
4729 (create_expand_operand): New function.
4730 (create_fixed_operand, create_output_operand): Likewise
4731 (create_input_operand, create_convert_operand_to): Likewise.
4732 (create_convert_operand_from, create_address_operand): Likewise.
4733 (create_integer_operand): Likewise.
4734 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
4735 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
4736 (expand_insn, expand_jump_insn): Likewise.
4737 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
4738 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
4739 (expand_movstr, expand_builtin___clear_cache): Likewise.
4740 (expand_builtin_lock_release): Likewise.
4741 * explow.c (allocate_dynamic_stack_space): Likewise.
4742 (probe_stack_range): Likewise. Allow check_stack to FAIL,
4743 and use the default handling in that case.
4744 * expmed.c (check_predicate_volatile_ok): Delete.
4745 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
4746 (emit_cstore): Likewise.
4747 * expr.c (emit_block_move_via_movmem): Likewise.
4748 (set_storage_via_setmem, expand_assignment): Likewise.
4749 (emit_storent_insn, try_casesi): Likewise.
4750 (emit_single_push_insn): Likewise. Allow the expansion to fail.
4751 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
4752 (expand_vec_shift_expr, expand_binop_directly): Likewise.
4753 (expand_twoval_unop, expand_twoval_binop): Likewise.
4754 (expand_unop_direct, emit_indirect_jump): Likewise.
4755 (emit_conditional_move, vector_compare_rtx): Likewise.
4756 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
4757 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
4758 (expand_sync_lock_test_and_set): Likewise.
4759 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
4760 (emit_unop_insn): Likewise.
4761 (expand_copysign_absneg): Change icode to an insn_code.
4762 (create_convert_operand_from_type): New function.
4763 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
4764 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
4765 (expand_insn, expand_jump_insn): Likewise.
4766 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
4767 than const_int_operand for operand 2.
4768
4769 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4770
4771 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
4772 if possible.
4773
4774 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
4775
4776 * emit-rtl.c (emit_pattern_before_noloc): New function.
4777 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
4778 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
4779 (emit_pattern_after_noloc): New function.
4780 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
4781 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
4782
4783 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
4784
4785 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
4786 (__ffsDI2): Likewise.
4787
4788 2011-03-22 Richard Henderson <rth@redhat.com>
4789
4790 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
4791 of !TARGET_ABI_OPEN_VMS.
4792 (alpha_trampoline_init, alpha_start_function): Likewise.
4793 (alpha_expand_epilogue, alpha_file_start): Likewise.
4794 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
4795 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
4796 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
4797 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
4798 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
4799
4800 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4801
4802 * config/s390/s390-opts.h: New.
4803 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
4804 s390_arch_flags, s390_warn_framesize, s390_stack_size,
4805 s390_stack_guard): Remove.
4806 (s390_handle_arch_option): Return void. Take enum
4807 s390_arch_option value instead of string and searching array.
4808 (s390_handle_option): Don't assert that global structures are in
4809 use. Access variables via opts pointer. Use error_at. Don't use
4810 sscanf for -mstack-guard= or -mstack-size=. Update call to
4811 s390_handle_arch_option.
4812 (s390_option_override): Update call to s390_handle_arch_option.
4813 (s390_emit_prologue): Use %d format for s390_stack_size in
4814 diagnostic. Use %wd for HOST_WIDE_INT.
4815 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
4816 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
4817 * config/s390/s390.opt (config/s390/s390-opts.h): New
4818 HeaderInclude entry.
4819 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
4820 s390_arch_flags, s390_warn_framesize): New Variable entries.
4821 (s390_arch_option): New Enum and EnumValue entries.
4822 (march=): Use Enum instead of Var.
4823 (mstack-guard=, mstack-size=): Use UInteger and Var.
4824 (mtune=): Use Enum.
4825
4826 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4827
4828 * config/score/score.c (score_handle_option): Don't assert that
4829 global structures are in use. Access target_flags via opts
4830 pointer. Use value of -march= option to determine target_flags
4831 settings.
4832 * config/score/score.opt (march=): Use Enum.
4833 (score_arch): New Enum and EnumValue entries.
4834
4835 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4836
4837 * config/mep/mep.c (option_mtiny_specified): Remove.
4838 (mep_option_override): Move register handling for -mivc2 from
4839 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
4840 instead of option_mtiny_specified.
4841 (mep_handle_option): Access target_flags via opts pointer. Don't
4842 assert that global structures are in use. Defer part of -mivc2
4843 handling and move it to mep_option_override.
4844 * config/mep/mep.opt (IVC2): New Mask entry.
4845 (mivc2): Use Var and Defer instead of Mask.
4846
4847 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4848
4849 * config/v850/v850-opts.h: New.
4850 * config/v850/v850.c (small_memory): Replace with
4851 small_memory_physical_max array. Make that array static const.
4852 (v850_handle_memory_option): Take integer value of argument. Take
4853 gcc_options pointer, option text and location. Return void.
4854 Update for changes to small memory structures.
4855 (v850_handle_option): Access target_flags via opts pointer. Don't
4856 assert that global structures are in use. Update calls to
4857 v850_handle_memory_option.
4858 (v850_encode_data_area): Update references to small memory settings.
4859 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4860 (enum small_memory_type): Move to v850-opts.h.
4861 * config/v850/v850.opt (config/v850/v850-opts.h): New
4862 HeaderInclude entry.
4863 (small_memory_max): New Variable entry.
4864 (msda): Replace by pair of options msda= and msda-. Use UInteger.
4865 (mtda, mzda): Likewise.
4866
4867 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4868
4869 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
4870 pointer. Don't assert that global structures are in use.
4871
4872 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4873
4874 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
4875 via opts pointer. Don't assert that global structures are in use.
4876
4877 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4878
4879 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
4880 (munix=93): Use Var.
4881 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
4882 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
4883 * config/pa/pa-opts.h: New.
4884 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
4885 (pa_handle_option): Don't assert that global structures are in
4886 use. Access target_flags via opts pointer. Don't handle
4887 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
4888 OPT_munix_98 here.
4889 (pa_option_override): Handle deferred OPT_mfixed_range_.
4890
4891 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4892
4893 * config/mn10300/mn10300-opts.h: New.
4894 * config/mn10300/mn10300.c (mn10300_processor,
4895 mn10300_tune_string): Remove.
4896 (mn10300_handle_option): Don't assert that global structures are
4897 in use. Access mn10300_processor via opts pointer. Don't handle
4898 OPT_mtune_ here.
4899 * config/mn10300/mn10300.h (enum processor_type): Move to
4900 mn10300-opts.h.
4901 (mn10300_processor): Remove.
4902 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
4903 HeaderInclude entry.
4904 (mn10300_processor): New Variable entry.
4905 (mtune=): Use Var.
4906
4907 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4908
4909 * config/microblaze/microblaze.c: Don't include opts.h.
4910 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
4911 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
4912 (mno-clearbss): Use Var and Warn.
4913
4914 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4915
4916 * config/m32r/m32r-opts.h: New.
4917 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
4918 (m32r_handle_option): Don't assert that global structures are in
4919 use. Access target_flags and m32r_cache_flush_func via opts
4920 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
4921 OPT_mno_flush_trap here.
4922 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
4923 include of m32r-opts.h.
4924 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
4925 HeaderInclude entry.
4926 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
4927 (mmodel=): Use Enum and Var.
4928 (m32r_model): New Enum and EnumValue entries.
4929 (mno-flush-trap): Use Var.
4930 (msdata=): Use Enum and Var.
4931 (m32r_sdata): New Enum and EnumValue entries.
4932
4933 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4934
4935 * config/m32c/m32c.c: Don't include opts.h.
4936 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
4937 m32c_handle_option): Remove.
4938 (m32c_option_override): Check global_options_set.x_target_memregs
4939 instead of target_memregs_set.
4940 * config/m32c/m32c.h (target_memregs): Remove.
4941 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
4942 variable.
4943
4944 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4945
4946 * config/iq2000/iq2000-opts.h: New.
4947 * config/iq2000/iq2000.c: Don't include opts.h.
4948 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
4949 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
4950 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
4951 HeaderInclude entry.
4952 (iq2000_tune): New Variable entry.
4953 (march=): Add comment. Use Enum.
4954 (iq2000_arch): New Enum and EnumValue entries.
4955 (mcpu=): Use Enum and Var.
4956 (iq2000_tune): New Enum and EnumValue entries.
4957
4958 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4959
4960 * config/ia64/ia64-opts.h: New.
4961 * config/ia64/ia64.c (ia64_tune): Remove.
4962 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
4963 here. Use error_at.
4964 (ia64_option_override): Handle deferred OPT_mfixed_range_.
4965 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
4966 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
4967 HeaderInclude entry.
4968 (ia64_tune): New Variable entry.
4969 (mfixed-range=): Use Defer and Var.
4970 (mtune=): Use Enum and Var.
4971 (ia64_tune): New Enum and EnumValue entries.
4972
4973 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4974
4975 * config/frv/frv-opts.h: New.
4976 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
4977 frv-opts.h.
4978 (frv_cpu_type): Remove.
4979 * config/frv/frv.c: Don't include opts.h.
4980 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
4981 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
4982 (frv_cpu_type): New Variable entry.
4983 (frv_cpu): New Enum and EnumValue entries.
4984
4985 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4986
4987 * config/cris/cris.c (cris_handle_option): Access target_flags via
4988 opts pointer. Don't assert that global structures are in use.
4989 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
4990 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
4991
4992 2011-03-22 Joseph Myers <joseph@codesourcery.com>
4993
4994 * config/bfin/bfin-opts.h: New.
4995 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
4996 bfin_si_revision, bfin_workarounds): Remove.
4997 (bfin_cpus): Make static const.
4998 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
4999 not bfin_lib_id_given.
5000 (bfin_handle_option): Don't set bfin_lib_id_given. Access
5001 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
5002 pointer. Use error_at. Don't assert that global structures are in use.
5003 * config/bfin/bfin.h: Include bfin-opts.h.
5004 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
5005 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
5006 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
5007 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
5008 entries.
5009
5010 2011-03-22 Joseph Myers <joseph@codesourcery.com>
5011
5012 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
5013 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
5014 or -msoft-float here.
5015 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
5016 -msoft-float and -mhard-float.
5017 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5018 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
5019 msoft-float.
5020 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
5021 -msoft-float.
5022 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
5023 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
5024 not mhard-float.
5025 (LIBGCC_SPEC): Don't handle -msoft-float.
5026 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
5027 -mhard-float.
5028 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
5029 msoft-float.
5030 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
5031 -mfloat-abi=*, not -msoft-float and -mhard-float.
5032 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
5033 -msoft-float.
5034 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
5035 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
5036 mhard-float and msoft-float.
5037 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
5038 mfloat-abi=soft in comments, not mhard-float and msoft-float.
5039 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
5040 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
5041 mhard-float.
5042 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
5043 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
5044 msoft-float.
5045 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
5046 not mhard-float.
5047 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
5048 not msoft-float.
5049
5050 2011-03-22 Richard Henderson <rth@redhat.com>
5051
5052 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
5053 TARGET_ABI_WINDOWS_NT.
5054 (alpha_output_function_end_prologue): Likewise.
5055 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
5056 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
5057 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
5058 (trap, *movsi_nt_vms): Likewise.
5059 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
5060 (*tablejump_osf_nt_internal): Remove.
5061 * config/alpha/predicates.md (input_operand): Only test Pmode.
5062
5063 2011-03-22 Joseph Myers <joseph@codesourcery.com>
5064
5065 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
5066 via opts pointer. Use error_at. Don't assert that global
5067 structures are in use.
5068
5069 2011-03-22 Joseph Myers <joseph@codesourcery.com>
5070
5071 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
5072 (ix86_handle_option): Access ix86_isa_flags and
5073 ix86_isa_flags_explicit via opts pointer. Don't assert that
5074 global structures are in use.
5075 (ix86_function_specific_save, ix86_function_specific_restore):
5076 Update ix86_isa_flags_explicit field name.
5077 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
5078 (ix86_isa_flags_explicit): Rename TargetSave entry to
5079 x_ix86_isa_flags_explicit.
5080
5081 2011-03-22 Richard Henderson <rth@redhat.com>
5082
5083 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
5084 (alpha_option_override, direct_return): Likewise.
5085 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
5086 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
5087 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
5088 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
5089 (alpha_expand_epilogue, alpha_end_function): Likewise.
5090 (alpha_init_libfuncs): Likewise.
5091 (struct machine_function): Remove unicosmk members.
5092 (print_operand) ['t']: Remove.
5093 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
5094 unicosmk_output_module_name, unicosmk_output_common,
5095 current_section_align, unicosmk_output_text_section_asm_op,
5096 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
5097 unicosmk_section_type_flags, unicosmk_unique_section,
5098 unicosmk_asm_named_section, unicosmk_insert_attributes,
5099 unicosmk_output_align, unicosmk_defer_case_vector,
5100 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
5101 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
5102 unicosmk_output_ssib, unicosmk_add_call_info_word,
5103 unicosmk_extern_head, unicosmk_output_default_externs,
5104 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
5105 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
5106 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
5107 * config/alpha/alpha-protos.h: Update.
5108 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
5109 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
5110 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
5111 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
5112 (*mulsi_se, mulvsi3): Likewise.
5113 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
5114 (*divmodsi_internal, call, call_value, realign): Likewise.
5115 (moddi3, umoddi3): Likewise; remove duplicate expander.
5116 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
5117 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
5118 (*movdi_nofix): Remove r/U alternative.
5119 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
5120 * config/alpha/constraints.md ("U"): Remove.
5121 * config/alpha/predicates.md (call_operand"): Don't test
5122 TARGET_ABI_UNICOSMK.
5123
5124 2011-03-22 Joseph Myers <joseph@codesourcery.com>
5125
5126 * target.def (handle_option): Take gcc_options and
5127 cl_decoded_option pointers and location_t.
5128 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
5129 * doc/tm.texi: Regenerate.
5130 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
5131 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
5132 * lto-opts.c (lto_reissue_options): Generate option structure for
5133 targetm.handle_option call.
5134 * opts.c (target_handle_option): Update call to
5135 targetm.handle_option. Remove assertions about values now passed
5136 down to hook.
5137 * targhooks.c (default_target_handle_option): New.
5138 * targhooks.h (default_target_handle_option): Declare.
5139 * config/alpha/alpha.c: Include opts.h.
5140 (alpha_handle_option): Update to new hook interface.
5141 * config/arm/arm.c: Include opts.h.
5142 (arm_handle_option): Update to new hook interface.
5143 * config/arm/t-arm (arm.o): Update dependencies.
5144 * config/bfin/bfin.c: Include opts.h.
5145 (bfin_handle_option): Update to new hook interface.
5146 * config/cris/cris.c: Include opts.h.
5147 (cris_handle_option): Update to new hook interface.
5148 * config/frv/frv.c: Include opts.h.
5149 (frv_handle_option): Update to new hook interface.
5150 * config/i386/i386.c: Include opts.h.
5151 (ix86_handle_option): Update to new hook interface.
5152 (ix86_valid_target_attribute_inner_p): Generate option structure
5153 for call to ix86_handle_option.
5154 * config/i386/t-i386 (i386.o): Update dependencies.
5155 * config/ia64/ia64.c: Include opts.h.
5156 (ia64_handle_option): Update to new hook interface.
5157 * config/ia64/t-ia64 (ia64.o): Update dependencies.
5158 * config/iq2000/iq2000.c: Include opts.h.
5159 (iq2000_handle_option): Update to new hook interface.
5160 * config/m32c/m32c.c: Include opts.h.
5161 (m32c_handle_option): Update to new hook interface.
5162 * config/m32r/m32r.c: Include opts.h.
5163 (m32r_handle_option): Update to new hook interface.
5164 * config/m68k/m68k.c: Include opts.h.
5165 (m68k_handle_option): Update to new hook interface.
5166 * config/mep/mep.c: Include opts.h.
5167 (mep_handle_option): Update to new hook interface.
5168 * config/microblaze/microblaze.c: Include opts.h.
5169 (microblaze_handle_option): Update to new hook interface.
5170 * config/mips/mips.c: Include opts.h.
5171 (mips_handle_option): Update to new hook interface.
5172 * config/mn10300/mn10300.c: Include opts.h.
5173 (mn10300_handle_option): Update to new hook interface.
5174 * config/pa/pa.c: Include opts.h.
5175 (pa_handle_option): Update to new hook interface.
5176 * config/pdp11/pdp11.c: Include opts.h.
5177 (pdp11_handle_option): Update to new hook interface.
5178 * config/rs6000/rs6000.c: Include opts.h.
5179 (rs6000_handle_option): Update to new hook interface.
5180 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5181 * config/rx/rx.c: Include opts.h.
5182 (rx_handle_option): Update to new hook interface.
5183 * config/s390/s390.c: Include opts.h.
5184 (s390_handle_option): Update to new hook interface.
5185 * config/score/score.c: Include opts.h.
5186 (score_handle_option): Update to new hook interface.
5187 * config/sh/sh.c: Include opts.h.
5188 (sh_handle_option): Update to new hook interface.
5189 * config/sparc/sparc.c: Include opts.h.
5190 (sparc_handle_option): Update to new hook interface.
5191 * config/v850/v850.c: Include opts.h.
5192 (v850_handle_option): Update to new hook interface.
5193
5194 2011-03-22 Joseph Myers <joseph@codesourcery.com>
5195
5196 * gcc.c (driver_unknown_option_callback): Only permit and save
5197 unknown -Wno- options.
5198 (driver_wrong_lang_callback): Save options directly instead of via
5199 driver_unknown_option_callback.
5200
5201 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
5202
5203 * combine.c (simplify_set): Try harder to find the best CC mode when
5204 simplifying a nested COMPARE on the RHS.
5205
5206 2011-03-22 Joseph Myers <joseph@codesourcery.com>
5207
5208 * config/alpha/gnu.h: Remove.
5209 * config/arc: Remove directory.
5210 * config/arm/netbsd.h: Remove.
5211 * config/arm/t-pe: Remove.
5212 * config/crx: Remove directory.
5213 * config/i386/netbsd.h: Remove.
5214 * config/m68hc11: Remove directory.
5215 * config/m68k/uclinux-oldabi.h: Remove.
5216 * config/mcore/mcore-pe.h: Remove.
5217 * config/mcore/t-mcore-pe: Remove.
5218 * config/netbsd-aout.h: Remove.
5219 * config/rs6000/gnu.h: Remove.
5220 * config/sh/sh-symbian.h: Remove.
5221 * config/sh/symbian-base.c: Remove.
5222 * config/sh/symbian-c.c: Remove.
5223 * config/sh/symbian-cxx.c: Remove.
5224 * config/sh/symbian-post.h: Remove.
5225 * config/sh/symbian-pre.h: Remove.
5226 * config/sh/t-symbian: Remove.
5227 * config/svr3.h: Remove.
5228 * config/vax/netbsd.h: Remove.
5229 * config.build: Don't handle i[34567]86-*-pe.
5230 * config.gcc: Remove handling of deprecations for most deprecated
5231 targets.
5232 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
5233 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
5234 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
5235 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
5236 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
5237 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
5238 Remove cases.
5239 * config.host: Don't handle i[34567]86-*-pe.
5240 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
5241 (ASM_SPEC32): Don't handle -mcall-gnu.
5242 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
5243 -mcall-gnu.
5244 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
5245 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
5246 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
5247 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
5248 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
5249 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
5250 conditional on SYMBIAN.
5251 * configure.ac: Don't handle powerpc*-*-gnu*.
5252 * configure: Regenerate.
5253 * doc/extend.texi (interrupt attribute): Don't mention CRX.
5254 * doc/install-old.texi (m6811, m6812): Don't mention.
5255 * doc/install.texi (arc-*-elf*): Don't document multilib option.
5256 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
5257 (m68k-uclinuxoldabi): Don't mention.
5258 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
5259 Remove.
5260 (-mcall-gnu): Remove.
5261 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
5262 families): Remove constraint documentation.
5263
5264 2011-03-22 Marius Strobl <marius@FreeBSD.org>
5265
5266 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
5267 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
5268 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
5269
5270 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
5271
5272 * config/avr/avr-protos.h (expand_epilogue): Change prototype
5273 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
5274 * config/avr/avr.c (init_cumulative_args)
5275 (avr_function_arg_advance): Use it.
5276 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
5277 sibcall epilogues.
5278 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
5279 (avr_function_ok_for_sibcall): ...this new function.
5280 (avr_lookup_function_attribute1): New static Function.
5281 (avr_naked_function_p, interrupt_function_p)
5282 (signal_function_p, avr_OS_task_function_p)
5283 (avr_OS_main_function_p): Use it.
5284 * config/avr/avr.md ("sibcall", "sibcall_value")
5285 ("sibcall_epilogue"): New expander.
5286 ("*call_insn", "*call_value_insn"): New insn.
5287 ("call_insn", "call_value_insn"): Remove
5288 ("call", "call_value", "epilogue"): Change expander to handle
5289 sibling calls.
5290
5291 2011-03-21 Nick Clifton <nickc@redhat.com>
5292
5293 * doc/invoke.texi (Overall Options): Move closing brace to end of
5294 options list.
5295 (Optimization Options): Add missing @gol.
5296 (Directory Options): Likewise.
5297 (i386 and x86-64 Options): Likewise.
5298 (RS6000 and PowerPC Options): Likewise.
5299 (i386 and x86-64 Windows Options): Likewise.
5300 (V850 Options): Add text missing from descriptions.
5301
5302 2011-03-22 Richard Henderson <rth@redhat.com>
5303
5304 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
5305 (avr_incoming_return_addr_rtx): New.
5306 (emit_push_byte): New.
5307 (expand_prologue): Use it. Remove incorrect dwarf annotation for
5308 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
5309 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
5310 (emit_pop_byte): New.
5311 (expand_epilogue): Use it. Pop frame pointer by bytes.
5312 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
5313 (INCOMING_RETURN_ADDR_RTX): New.
5314 (INCOMING_FRAME_SP_OFFSET): New.
5315 (ARG_POINTER_CFA_OFFSET): New.
5316 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
5317 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
5318 (pophi): Remove.
5319
5320 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
5321
5322 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
5323
5324 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
5325 (FUNCTION_ARG_ADVANCE): Likewise.
5326 * tm.texi.in: Change references to them to hook references.
5327 * tm.texi: Regenerate.
5328 * targhooks.c (default_function_arg): Eliminate check for target
5329 macro.
5330 (default_function_incoming_arg): Likewise.
5331 (default_function_arg_advance): Likewise.
5332 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
5333 (function_arg_advance): Likewise.
5334 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
5335
5336 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
5337
5338 * tree.c (build_call_1): New function.
5339 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
5340
5341 2011-03-22 Richard Guenther <rguenther@suse.de>
5342
5343 PR tree-optimization/48228
5344 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
5345 for single-arg PHIs.
5346
5347 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
5348
5349 PR rtl-optimization/48143
5350 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
5351 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
5352 sse2_cvtps2pd): Likewise.
5353
5354 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5355
5356 * recog.c (canonicalize_change_group): Use validate_unshare_change.
5357
5358 2011-03-22 Richard Guenther <rguenther@suse.de>
5359
5360 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
5361 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
5362 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
5363 and REALIGN_LOAD_EXPR.
5364 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
5365 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
5366 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
5367 DOT_PROD_EXPR case ...
5368 (expand_expr_real_2): ... here.
5369 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
5370 and REALIGN_LOAD_EXPR.
5371 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
5372 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
5373 (vect_create_epilog_for_reduction): Likewise.
5374 (vectorizable_reduction): Likewise.
5375 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
5376 * tree-vect-stmts.c (vectorizable_load): Likewise.
5377
5378 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
5379
5380 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
5381
5382 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5383
5384 * config/s390/s390.c (s390_delegitimize_address): Fix offset
5385 handling for PLTOFF/GOTOFF.
5386
5387 2011-03-22 Nick Clifton <nickc@redhat.com>
5388
5389 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
5390 trailing backslash from the end of the macro definition.
5391
5392 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5393
5394 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
5395 and PLT unspecs.
5396
5397 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
5398
5399 * expr.h (prepare_operand): Move to...
5400 * optabs.h (prepare_operand): ...here and change the insn code
5401 parameter from "int" to "enum insn_code".
5402 (insn_operand_matches): Declare.
5403 * expr.c (init_expr_target): Use insn_operand_matches.
5404 (compress_float_constant): Likewise.
5405 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
5406 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
5407 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
5408 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
5409 Likewise.
5410 (gen_cond_trap): Likewise.
5411 (prepare_operand): Likewise. Change icode to an insn_code.
5412 (insn_operand_matches): New function.
5413 * reload.c (find_reloads_address_1): Use insn_operand_matches.
5414 * reload1.c (gen_reload): Likewise.
5415 * targhooks.c (default_secondary_reload): Likewise.
5416
5417 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
5418
5419 * config/alpha/alpha.md (unspec): New define_c_enum.
5420 (unspecv): Ditto.
5421
5422 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
5423
5424 PR debug/48214
5425 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
5426 between a call and its CALL_ARG_LOCATION note.
5427
5428 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
5429
5430 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
5431
5432 2011-03-21 Jakub Jelinek <jakub@redhat.com>
5433
5434 PR c/42544
5435 PR c/48197
5436 * c-common.c (shorten_compare): If primopN is first sign-extended
5437 to opN and then zero-extended to result type, set primopN to opN.
5438
5439 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
5440
5441 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
5442 for barrier handlers.
5443
5444 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
5445
5446 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
5447 UNSPEC constants to be in the unspec enumeration, and redefine
5448 all UNSPECV constants to be in the unspecv enumeration, so that
5449 dumps print which unspec/unspec_volatile this is.
5450 * config/rs6000/vector.md (UNSPEC_*): Ditto.
5451 * config/rs6000/paired.md (UNSPEC_*): Ditto.
5452 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
5453 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
5454 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
5455
5456 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
5457 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
5458 UNSPECV_LWSYNC, since these are used as unspec_volatile.
5459 * config/rs6000/sync.md (isync, lwsync): Ditto.
5460
5461 2011-03-21 Richard Guenther <rguenther@suse.de>
5462
5463 * params.def (lto-min-partition): Fix typo.
5464
5465 2011-03-21 Richard Guenther <rguenther@suse.de>
5466
5467 PR c/47939
5468 * c-decl.c (grokdeclarator): Drop to the main variant only
5469 for array types. Drop flag_gen_aux_info check.
5470
5471 2011-03-21 Richard Guenther <rguenther@suse.de>
5472
5473 PR translation/47911
5474 * params.def (lto-partitions): Fix typo.
5475 (lto-min-partition): Fix wording.
5476
5477 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
5478
5479 * config/rs6000/t-freebsd: Remove duplication from file.
5480
5481 2011-03-21 Richard Guenther <rguenther@suse.de>
5482
5483 PR middle-end/47661
5484 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
5485
5486 2011-03-21 Richard Guenther <rguenther@suse.de>
5487
5488 PR lto/48210
5489 * params.def (lto-partitions): Require at least 1 partition.
5490
5491 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5492
5493 * gthr-solaris.h: Remove.
5494 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
5495 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
5496 (LIB_SPEC): Likewise.
5497 * config/sol2.opt (threads): Remove.
5498 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
5499 (sparc*-*-solaris2*): Likewise.
5500 * configure.ac (enable_threads): Enable solaris support.
5501 * configure: Regenerate.
5502 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
5503 * doc/install.texi (Configuration, --enable-threads=lib): Remove
5504 solaris.
5505
5506 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5507
5508 * config.gcc: Obsolete *-*-solaris2.8*.
5509 * doc/install.texi (Specific, *-*-solaris2*): Document it.
5510
5511 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5512
5513 PR bootstrap/48135
5514 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
5515 reference. Solaris 8 perl works.
5516
5517 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5518
5519 PR bootstrap/48135
5520 * doc/install.texi (Prerequisites): Move jar etc. up.
5521 Explain support library version requirements.
5522
5523 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5524
5525 PR bootstrap/48135
5526 * doc/install.texi (Prerequisites): Move Perl to build
5527 requirements. Always necessary on Solaris 2 with Sun ld.
5528
5529 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5530
5531 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
5532 binutils 2.21.
5533 (Specific, i?86-*-solaris2.[89]): Likewise.
5534 (Specific, i?86-*-solaris2.10): Likewise.
5535 (Specific, mips-sgi-irix6): Likewise.
5536 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
5537 Update for binutils 2.21.
5538
5539 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5540
5541 * configure.ac (gcc_cv_lto_plugin): Fix typo.
5542 Allow -fuse-linker-plugin for non-default plugin linker.
5543 * configure: Regenerate.
5544
5545 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
5546
5547 PR bootstrap/48167
5548 * gengtype.c (files_rules): Added rule for cp/parser.h.
5549
5550 2011-03-21 Jakub Jelinek <jakub@redhat.com>
5551
5552 PR target/48213
5553 * config/s390/s390.c (s390_delegitimize_address): Don't call
5554 lowpart_subreg if orig_x has BLKmode.
5555
5556 2011-03-21 Kai Tietz <ktietz@redhat.com>
5557
5558 PR target/12171
5559 * doc/plugins.texi: Adjust documentation for plugin register_callback.
5560 * tree.h (attribute_spec): Add new member affects_type_identity.
5561 * attribs.c (empty_attribute_table): Adjust attribute_spec
5562 initializers.
5563 * config/alpha/alpha.c: Likewise.
5564 * config/arc/arc.c: Likewise.
5565 * config/arm/arm.c: Likewise.
5566 * config/avr/avr.c: Likewise.
5567 * config/bfin/bfin.c: Likewise.
5568 * config/crx/crx.c: Likewise.
5569 * config/darwin.h: Likewise.
5570 * config/h8300/h8300.c: Likewise.
5571 * config/i386/cygming.h: Likewise.
5572 * config/i386/i386.c: Likewise.
5573 * config/ia64/ia64.c: Likewise.
5574 * config/m32c/m32c.c: Likewise.
5575 * config/m32r/m32r.c: Likewise.
5576 * config/m68hc11/m68hc11.c: Likewise.
5577 * config/m68k/m68k.c: Likewise.
5578 * config/mcore/mcore.c: Likewise.
5579 * config/mep/mep.c: Likewise.
5580 * config/microblaze/microblaze.c: Likewise.
5581 * config/mips/mips.c: Likewise.
5582 * config/rs6000/rs6000.c: Likewise.
5583 * config/rx/rx.c: Likewise.
5584 * config/sh/sh.c: Likewise.
5585 * config/sol2.h: Likewise.
5586 * config/sparc/sparc.c: Likewise.
5587 * config/spu/spu.c: Likewise.
5588 * config/stormy16/stormy16.c: Likewise.
5589 * config/v850/v850.c: Likewise.
5590
5591 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
5592
5593 * simplify-rtx.c (simplify_binary_operation_1): Handle
5594 (xor (and A B) C) case when B and C are both constants.
5595
5596 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
5597
5598 * tree-dfa.c (add_referenced_var): Fix typo in comment.
5599
5600 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
5601
5602 PR bootstrap/48168
5603 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
5604
5605 2011-03-20 Jakub Jelinek <jakub@redhat.com>
5606
5607 PR rtl-optimization/48156
5608 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
5609 assume df and df_lr are not NULL.
5610
5611 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5612
5613 PR debug/48023
5614 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
5615 between a call and its CALL_ARG_LOCATION note.
5616
5617 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
5618
5619 PR debug/48178
5620 * config/sh/sh.c (find_barrier): Don't emit a constant pool
5621 between a call and its corresponding CALL_ARG_LOCATION note.
5622
5623 2011-03-19 Anatoly Sokolov <aesok@post.ru>
5624
5625 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
5626 instead of loop. Use HARD_REGISTER_NUM_P predicate.
5627 * haifa-sched.c (setup_ref_regs): Ditto.
5628 * caller-save.c (add_used_regs_1): Ditto.
5629 * dse.c (look_for_hardregs): Ditto.
5630 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
5631 * sched-rgn.c (check_live_1): Ditto.
5632
5633 2011-03-18 Joseph Myers <joseph@codesourcery.com>
5634
5635 * c-decl.c (diagnose_mismatched_decls): Give an error for
5636 redefining a typedef with variably modified type.
5637
5638 2011-03-18 Joseph Myers <joseph@codesourcery.com>
5639
5640 * c-decl.c (grokfield): Don't allow typedefs for structures or
5641 unions with no tag by default.
5642 * doc/extend.texi (Unnamed Fields): Update.
5643
5644 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
5645
5646 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
5647 Rewrite using indirect functions.
5648 (lwp_slwpcb): Ditto.
5649 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
5650 (avx_vinsertf128<mode>): Ditto.
5651
5652 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5653
5654 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
5655 unspecs.
5656
5657 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5658
5659 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
5660 splitting between a call and its corresponding CALL_ARG_LOCATION note.
5661
5662 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
5663
5664 PR rtl-optimization/48170
5665 * gcse.c (hoist_code): Remove bogus asserts.
5666
5667 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
5668
5669 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
5670 computation for prologue/epilogue.
5671
5672 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5673
5674 * Makefile.in (check-consistency): Remove.
5675
5676 2011-03-18 Jakub Jelinek <jakub@redhat.com>
5677
5678 PR debug/48176
5679 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
5680 arange_table_in_use is 0, but either text_section_used or
5681 cold_text_section_used is true. Don't call it if
5682 !info_section_emitted.
5683
5684 2011-03-18 Anatoly Sokolov <aesok@post.ru>
5685
5686 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
5687 FUNCTION_VALUE_REGNO_P): Remove.
5688 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
5689 Remove.
5690 * config/avr/avr.c (avr_ret_register): Make static inline.
5691 (avr_function_value_regno_p): New function.
5692 (avr_libcall_value): Make static. Add 'func' argument.
5693 (avr_function_value): Make static. Rename 'func' argument to
5694 'fn_decl_or_type', forward it to avr_libcall_value. Call
5695 avr_ret_register function instead of RET_REGISTER macro.
5696 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
5697
5698 2011-03-18 Jason Merrill <jason@redhat.com>
5699
5700 PR c++/23372
5701 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
5702
5703 2011-03-18 Richard Guenther <rguenther@suse.de>
5704
5705 * doc/install.texi (--enable-gold): Remove.
5706 (--with-plugin-ld): Document.
5707 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
5708
5709 2011-03-18 Andrew Pinski <pinskia@gmail.com>
5710
5711 PR middle-end/47790
5712 * expr.c (optimize_bitfield_assignment_op): Revamp to work
5713 again after expansion changes.
5714
5715 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
5716
5717 * combine.c (try_combine): Do simplification only call of
5718 subst() on i2 even when i1 is present. Update comments.
5719
5720 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
5721
5722 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
5723 and UNSPEC_PCREL_SYMOFF.
5724
5725 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5726
5727 * config/s390/s390.md: Use define_c_enum for the unspec constant
5728 definitions.
5729
5730 2011-03-18 Richard Henderson <rth@redhat.com>
5731 Jakub Jelinek <jakub@redhat.com>
5732
5733 PR bootstrap/48161
5734 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
5735 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
5736
5737 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
5738
5739 PR middle-end/47725
5740 * combine.c (cant_combine_insn_p): Don't check zero/sign
5741 extended hard registers.
5742
5743 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
5744
5745 PR middle-end/47725
5746 * combine.c (cant_combine_insn_p): Check zero/sign extended
5747 hard registers.
5748
5749 2011-03-17 Anatoly Sokolov <aesok@post.ru>
5750
5751 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5752 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
5753 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
5754 Change return type to bool.
5755 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5756
5757 2011-03-17 Jakub Jelinek <jakub@redhat.com>
5758
5759 PR debug/48163
5760 * var-tracking.c (prepare_call_arguments): If CALL target
5761 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
5762 pc instead of looking it up using cselib_lookup and use
5763 Pmode for it if x has VOIDmode.
5764 * dwarf2out.c (gen_subprogram_die): If also both first and
5765 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
5766
5767 PR debug/48163
5768 * function.c (assign_parms): For data.passed_pointer parms
5769 use MEM of data.entry_parm instead of data.entry_parm itself
5770 as DECL_INCOMING_RTL.
5771 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
5772 also when passed and declared mode is the same, DECL_RTL
5773 is a MEM with pseudo as address and DECL_INCOMING_RTL is
5774 a MEM too.
5775
5776 2011-03-16 Jeff Law <law@redhat.com>
5777
5778 PR rtl-optimization/37273
5779 * ira-costs.c (scan_one_insn): Detect constants living in memory and
5780 handle them like argument loads from stack slots. Do not double
5781 count memory for memory constants and argument loads from stack slots.
5782
5783 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
5784
5785 PR debug/48160
5786 * var-tracking.c (prepare_call_arguments): Check SUBREG.
5787
5788 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
5789
5790 PR target/48171
5791 * config/i386/i386.opt: Add Save to -mavx and -mfma.
5792
5793 2011-03-17 Jakub Jelinek <jakub@redhat.com>
5794
5795 PR bootstrap/48153
5796 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
5797 if dwarf_strict.
5798 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
5799 Clear call_arg_locations and call_arg_loc_last always.
5800
5801 PR middle-end/48152
5802 * var-tracking.c (prepare_call_arguments): If argument needs to be
5803 passed by reference, adjust argtype and mode.
5804
5805 2011-03-17 Richard Guenther <rguenther@suse.de>
5806
5807 PR middle-end/48134
5808 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
5809 a value make sure to fold the statement.
5810
5811 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
5812
5813 PR target/43872
5814 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
5815 return condition with !cfun->calls_alloca.
5816
5817 2011-03-17 Richard Guenther <rguenther@suse.de>
5818
5819 PR bootstrap/48148
5820 * lto-cgraph.c (input_overwrite_node): Clear the abstract
5821 origin for decls in other ltrans units.
5822 (input_varpool_node): Likewise.
5823
5824 2011-03-17 Richard Guenther <rguenther@suse.de>
5825
5826 PR middle-end/48165
5827 * tree-object-size.c (compute_object_offset): Properly return
5828 the offset operand of MEM_REFs as sizetype.
5829
5830 2011-03-17 Jakub Jelinek <jakub@redhat.com>
5831
5832 PR rtl-optimization/48141
5833 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
5834 * dse.c: Include params.h.
5835 (active_local_stores_len): New variable.
5836 (add_wild_read, dse_step1): Clear it when setting active_local_stores
5837 to NULL.
5838 (record_store, check_mem_read_rtx): Decrease it when removing
5839 from the chain.
5840 (scan_insn): Likewise. Increase it when adding to chain, if it
5841 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
5842 set active_local_stores to NULL before the addition.
5843 * Makefile.in (dse.o): Depend on $(PARAMS_H).
5844
5845 PR rtl-optimization/48141
5846 * dse.c (record_store): If no positions are needed in an insn
5847 that cannot be deleted, at least unchain it from active_local_stores.
5848
5849 2011-03-16 Dodji Seketeli <dodji@redhat.com>
5850
5851 PR debug/47510
5852 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
5853 (lookup_type_die_strip_naming_typedef): ... here.
5854 (get_context_die): Use it.
5855 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
5856 the anonymous struct named by the naming typedef.
5857
5858 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
5859
5860 PR target/48154
5861 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
5862 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
5863
5864 2011-03-16 Jeff Law <law@redhat.com>
5865
5866 * tree-vrp.c (identify_jump_threads): Slightly simplify type
5867 check for operands of conditional. Allow type to be a pointer.
5868
5869 2011-03-16 Richard Guenther <rguenther@suse.de>
5870
5871 PR tree-optimization/48149
5872 * fold-const.c (fold_binary_loc): Fold
5873 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
5874
5875 2011-03-16 Richard Guenther <rguenther@suse.de>
5876
5877 PR tree-optimization/26134
5878 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
5879 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
5880 (non_rewritable_mem_ref_base): Handle complex type component
5881 accesses, constrain offsets for vector and complex extracts
5882 more properly.
5883
5884 2011-03-16 Richard Guenther <rguenther@suse.de>
5885
5886 PR tree-optimization/48146
5887 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
5888 operands avoiding the need for renaming.
5889
5890 2011-03-16 Richard Guenther <rguenther@suse.de>
5891
5892 * gimple-fold.c (maybe_fold_reference): Open-code relevant
5893 constant folding. Move MEM_REF canonicalization first.
5894 Rely on fold_const_aggregate_ref for initializer folding.
5895 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
5896
5897 2011-03-16 Jakub Jelinek <jakub@redhat.com>
5898
5899 PR middle-end/48136
5900 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
5901 arg0/arg1 or their arguments are always fold converted to matching
5902 types.
5903
5904 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
5905 to nargs.
5906
5907 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5908
5909 PR lto/46944
5910 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
5911 Handle in-tree gold.
5912 (ld_vers): Extract binutils version for gold.
5913 (gcc_cv_ld_hidden): Handle gold here.
5914 (gcc_cv_lto_plugin): Determine level of linker plugin support.
5915 * configure: Regenerate.
5916 * config.in: Regenerate.
5917 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
5918 -fuse-linker-plugin otherwise.
5919 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
5920 (LINK_COMMAND_SPEC): Use it.
5921 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
5922
5923 2011-03-16 Jakub Jelinek <jakub@redhat.com>
5924
5925 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
5926 * calls.c: Remove debug.h include.
5927 (emit_call_1): Don't call virtual_call_token debug hook.
5928 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
5929 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
5930 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
5931 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
5932 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
5933 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
5934 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
5935 dwarf2out_virtual_call): Remove.
5936 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
5937 copy_call_info and virtual_call hooks.
5938 (dwarf2out_init): Don't initialize vcall_insn_table,
5939 debug_dcall_section and debug_vcall_section.
5940 (prune_unused_types): Don't mark nodes from dcall_table.
5941 (dwarf2out_finish): Don't output dcall or vcall tables.
5942 * final.c (final_scan_insn): Don't call direct_call or
5943 virtual_call debug hooks.
5944 * debug.h (struct gcc_debug_hooks): Remove direct_call,
5945 virtual_call_token, copy_call_info and virtual_call hooks.
5946 (debug_nothing_uid): Remove prototype.
5947 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
5948 copy_call_info and virtual_call hooks.
5949 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5950 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
5951 * debug.c (do_nothing_debug_hooks): Likewise.
5952 (debug_nothing_uid): Remove.
5953 * doc/invoke.texi (-fenable-icf-debug): Remove.
5954 * common.opt (-fenable-icf-debug): Likewise.
5955
5956 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
5957 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
5958 call's MEM. Handle functions returning aggregate through a hidden
5959 first pointer. For virtual calls add clobbered pc to call arguments
5960 chain.
5961 * dwarf2out.c (gen_subprogram_die): Emit
5962 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
5963 can't be emitted.
5964
5965 PR debug/45882
5966 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
5967 * rtl.h (ENTRY_VALUE_EXP): Define.
5968 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
5969 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
5970 * print-rtl.c (print_rtx): Likewise.
5971 * gengtype.c (adjust_field_rtx_def): Likewise.
5972 * var-tracking.c (vt_add_function_parameter): Adjust
5973 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
5974 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
5975 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
5976 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
5977 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
5978
5979 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
5980 Call var_location debug hook even on CALL_INSNs.
5981 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
5982 * rtl.def (ENTRY_VALUE): New.
5983 * dwarf2out.c: Include cfglayout.h.
5984 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
5985 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
5986 (struct call_arg_loc_node): New type.
5987 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
5988 tail_call_site_count): New variables.
5989 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
5990 DW_TAG_GNU_call_site_parameter.
5991 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
5992 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
5993 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
5994 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
5995 and DW_AT_GNU_all_source_call_sites.
5996 (mem_loc_descriptor): Handle ENTRY_VALUE.
5997 (add_src_coords_attributes): Don't add enything if
5998 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
5999 (dwarf2out_abstract_function): Save and clear call_arg_location,
6000 call_site_count and tail_call_site_count around dwarf2out_decl call.
6001 (gen_call_site_die): New function.
6002 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
6003 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
6004 (dwarf2out_function_decl): Clear call_arg_locations,
6005 call_arg_loc_last, set call_site_count and tail_call_site_count
6006 to -1 and free block_map.
6007 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
6008 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
6009 followed by any real instructions.
6010 (dwarf2out_begin_function): Set call_site_count and
6011 tail_call_site_count to 0.
6012 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
6013 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
6014 attempt to force a DIE for it and worst case remove the attribute.
6015 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
6016 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
6017 the decl itself.
6018 * var-tracking.c: Include tm_p.h.
6019 (vt_stack_adjustments): For calls call note_register_arguments.
6020 (argument_reg_set): New variable.
6021 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
6022 ensure the VALUE is resolved.
6023 (call_arguments): New variable.
6024 (prepare_call_arguments): New function.
6025 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
6026 (struct expand_loc_callback_data): Add ignore_cur_loc field.
6027 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
6028 always use the best expression.
6029 (vt_expand_loc): Add ignore_cur_loc argument.
6030 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
6031 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
6032 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
6033 note for all calls.
6034 (vt_add_function_parameter): Use cselib_lookup_from_insn.
6035 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
6036 argument. Don't call cselib_preserve_only_values and
6037 cselib_reset_table.
6038 (note_register_arguments): New function.
6039 (vt_initialize): Compute argument_reg_set. Call
6040 vt_add_function_parameters before processing basic blocks instead of
6041 afterwards. For calls call prepare_call_arguments before calling
6042 cselib_process_insn.
6043 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
6044 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
6045 (var-tracking.o): Depend on $(TM_P_H).
6046 * cfglayout.h (insn_scope): New prototype.
6047 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
6048 * cfglayout.c (insn_scope): No longer static.
6049 * insn-notes.def (CALL_ARG_LOCATION): New.
6050 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
6051 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
6052 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
6053 nothing for DECL_EXTERNAL BLOCK_VARS.
6054
6055 2011-03-16 Alan Modra <amodra@gmail.com>
6056
6057 PR target/45844
6058 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
6059 create invalid offset address for vsx splat insn.
6060 * config/rs6000/predicates.md (splat_input_operand): New.
6061 * config/rs6000/vsx.md (vsx_splat_*): Use it.
6062
6063 2011-03-15 Xinliang David Li <davidxl@google.com>
6064
6065 PR c/47837
6066 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
6067 (normalize_preds): New function.
6068 (is_use_properly_guarded): Normalize def predicates.
6069
6070 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6071
6072 PR target/46788
6073 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
6074 in the output template.
6075
6076 2011-03-15 Richard Guenther <rguenther@suse.de>
6077
6078 PR middle-end/47650
6079 * tree-pretty-print.c (dump_function_declaration): Properly
6080 dump unprototyped and varargs function types.
6081
6082 2011-03-15 Richard Guenther <rguenther@suse.de>
6083
6084 PR tree-optimization/13954
6085 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
6086 and friends.
6087
6088 2011-03-15 Richard Guenther <rguenther@suse.de>
6089
6090 PR tree-optimization/48037
6091 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
6092 selects into BIT_FIELD_REFs.
6093 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
6094 vector select.
6095
6096 2011-03-15 Jakub Jelinek <jakub@redhat.com>
6097
6098 PR tree-optimization/48129
6099 * builtins.c (fold_builtin_snprintf): Convert to type of
6100 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
6101 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
6102
6103 2011-03-15 Richard Guenther <rguenther@suse.de>
6104
6105 PR tree-optimization/41490
6106 * tree-ssa-dce.c (propagate_necessity): Handle returns without
6107 value but with VUSE.
6108 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
6109 return statements.
6110 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
6111 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
6112 * tree-tailcall.c (find_tail_calls): Ignore returns.
6113
6114 2011-03-15 Richard Guenther <rguenther@suse.de>
6115
6116 PR middle-end/48031
6117 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
6118 or variable-indexed array accesses when in gimple form.
6119
6120 2011-03-15 Richard Guenther <rguenther@suse.de>
6121
6122 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
6123
6124 2011-03-15 Alan Modra <amodra@gmail.com>
6125
6126 PR target/48032
6127 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
6128 presume symbol_refs without a symbol_ref_decl are suitably
6129 aligned, nor other trees we may see here. Handle anchor symbols.
6130 (legitimate_constant_pool_address_p): Comment. Add mode param.
6131 Check cmodel=medium addresses. Adjust all calls.
6132 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
6133 creating cmodel=medium optimized access to locals.
6134 * config/rs6000/constraints.md (R): Pass QImode to
6135 legitimate_constant_pool_address_p.
6136 * config/rs6000/predicates.md (input_operand): Pass mode to
6137 legitimate_constant_pool_address_p.
6138 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
6139 Update prototype.
6140
6141 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6142
6143 PR target/48053
6144 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
6145 64-bit constants being loaded into registers other than GPRs such
6146 as loading 0 into a VSX register.
6147
6148 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6149
6150 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
6151
6152 2011-03-14 Jakub Jelinek <jakub@redhat.com>
6153
6154 PR middle-end/47917
6155 * builtins.c (fold_builtin_snprintf): New function.
6156 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
6157 (fold_builtin_4): Likewise.
6158
6159 PR middle-end/38878
6160 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
6161 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
6162 and C - X == X also strip nops from +/-/p+ operand.
6163 When optimizing -X == C, fold C to arg0's type.
6164
6165 PR debug/47946
6166 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
6167 emit it as add_AT_int instead of add_AT_unsigned.
6168
6169 2011-03-14 Tom Tromey <tromey@redhat.com>
6170
6171 * unwind-dw2.c: Include sys/sdt.h if it exists.
6172 (_Unwind_DebugHook): Use STAP_PROBE2.
6173 * config.in, configure: Rebuild.
6174 * configure.ac: Check for sys/sdt.h.
6175
6176 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
6177
6178 * config/i386/i386.md (ROUND_FLOOR): New constant.
6179 (ROUND_CEIL): Ditto.
6180 (ROUND_TRUNC): Ditto.
6181 (ROUND_MXCSR): Ditto.
6182 (ROUND_NO_EXC): Ditto.
6183 (rint<mode>2): Use new defines instead of numerical constants.
6184 (floor<mode>2): Ditto.
6185 (ceil<mode>2): Ditto.
6186 (btrunc<mode>2): Ditto.
6187 * config/i386/i386-builtin-types.def: Define ROUND function type
6188 aliases.
6189 * config/i386/i386.c (enum ix86_builtins): Add
6190 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
6191 (struct builtin_description): Add
6192 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
6193 (ix86_expand_sse_round): New static function.
6194 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
6195 function types.
6196 (ix86_builtin_vectorized_function): Handle
6197 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
6198
6199 2011-03-14 Tom Tromey <tromey@redhat.com>
6200
6201 * c-parser.c (c_parser_asm_string_literal): Clear
6202 warn_overlength_strings.
6203
6204 2011-03-14 Tom Tromey <tromey@redhat.com>
6205
6206 * c-parser.c (disable_extension_diagnostics): Save
6207 warn_overlength_strings.
6208 (restore_extension_diagnostics): Restore warn_overlength_strings.
6209
6210 2011-03-14 Jakub Jelinek <jakub@redhat.com>
6211
6212 * BASE-VER: Change to 4.7.0.
6213
6214 2011-03-14 Richard Guenther <rguenther@suse.de>
6215
6216 PR middle-end/48098
6217 * tree.c (build_vector_from_val): Adjust assert to requirements
6218 and reality.
6219
6220 2011-03-14 Jakub Jelinek <jakub@redhat.com>
6221
6222 PR bootstrap/48102
6223 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
6224
6225 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
6226
6227 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
6228 terms of target_flags_explicit. Adjust copyright year.
6229
6230 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
6231 * config/rs6000/t-freebsd: New file. Add override for
6232 LIB2FUNCS_EXTRA.
6233
6234 2011-03-13 Chris Demetriou <cgd@google.com>
6235
6236 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
6237 (-fno-diagnostics-show-option): this, to reflect current default.
6238 (-Werror=): Update text about -fno-diagnostics-show-option.
6239
6240 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
6241
6242 PR target/48053
6243 * config/rs6000/predicates.md (easy_vector_constant_add_self,
6244 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
6245 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
6246 mode is not V2DImode or V2DFmode.
6247 (vspltis_constant): Do not handle V2DImode and V2DFmode.
6248 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
6249 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
6250 registers to 0.
6251 (movdi_internal64): Likewise.
6252
6253 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
6254
6255 PR tree-optimization/47127
6256 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
6257 parameter.
6258 (set_cloog_options): Same.
6259 (scop_to_clast): Same.
6260 (print_clast_stmt): Do not call cloog_state_malloc and
6261 cloog_state_free.
6262 (print_generated_program): Same.
6263 (gloog): Same.
6264 * graphite-clast-to-gimple.h (cloog_state): Declared.
6265 (scop_to_clast): Adjust declaration.
6266 * graphite.c (cloog_state): Defined here.
6267 (graphite_initialize): Call cloog_state_malloc.
6268 (graphite_finalize): Call cloog_state_free.
6269
6270 2011-03-11 Jason Merrill <jason@redhat.com>
6271
6272 * attribs.c (lookup_attribute_spec): Take const_tree.
6273 * tree.h: Adjust.
6274
6275 2011-03-11 Joseph Myers <joseph@codesourcery.com>
6276
6277 * config/sparc/sparc.c (sparc_option_override): Use
6278 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
6279
6280 2011-03-11 Richard Guenther <rguenther@suse.de>
6281
6282 PR tree-optimization/48067
6283 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
6284 multiplication result will be only used once on the target
6285 stmt.
6286
6287 2011-03-11 Richard Guenther <rguenther@suse.de>
6288
6289 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
6290
6291 2011-03-11 Richard Guenther <rguenther@suse.de>
6292
6293 PR lto/48073
6294 * tree.c (find_decls_types_r): Do not walk types only reachable
6295 from IDENTIFIER_NODEs.
6296
6297 2011-03-11 Jakub Jelinek <jakub@redhat.com>
6298
6299 PR middle-end/48044
6300 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
6301 all vnode->force_output nodes as needed.
6302
6303 2011-03-11 Jason Merrill <jason@redhat.com>
6304
6305 PR c++/48069
6306 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
6307 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
6308
6309 2011-03-11 Martin Jambor <mjambor@suse.cz>
6310
6311 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
6312 cgraph_node.
6313
6314 2011-03-11 Jakub Jelinek <jakub@redhat.com>
6315
6316 PR tree-optimization/48063
6317 * ipa-inline.c (cgraph_decide_inlining): Don't try to
6318 inline functions called once if !tree_can_inline_p (node->callers).
6319
6320 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
6321
6322 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
6323 extra_objs.
6324 * config/score/score3.c: Delete.
6325 * config/score/score3.h: Delete.
6326 * config/score/mul-div.S: Delete.
6327 * config/score/sfp-machine.h: Add new file.
6328 * config/score/constraints.md: Add new file.
6329 * config/score/t-score-softfp: Add new file.
6330 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
6331 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
6332 (score7_extra_constraint): Delete.
6333 (score7_option_override): Remove unused code.
6334 * config/score/score.c: Remove score3 and score5 define and code.
6335 * config/score/score.h: Remove score3 and score5 define and code.
6336 * config/score/score.md: Remove score3 template and unusual insn.
6337 * config/score/score.opt: Remove score3 and score5 options.
6338
6339 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6340
6341 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
6342 when _HPUX_SOURCE is defined.
6343 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
6344
6345 2011-03-10 Jason Merrill <jason@redhat.com>
6346
6347 PR c++/48029
6348 * stor-layout.c (layout_type): Don't set structural equality
6349 on arrays of incomplete type.
6350 * tree.c (type_hash_eq): Handle comparing them properly.
6351
6352 2011-03-10 Jakub Jelinek <jakub@redhat.com>
6353
6354 PR debug/48043
6355 * config/s390/s390.c (s390_delegitimize_address): Make sure the
6356 result mode matches original rtl mode.
6357
6358 2011-03-10 Nick Clifton <nickc@redhat.com>
6359
6360 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
6361 (andsi3, andsi3_flags): Fix timings for three operand alternative.
6362
6363 2011-03-09 Jakub Jelinek <jakub@redhat.com>
6364
6365 PR rtl-optimization/47866
6366 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
6367 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
6368 if target wasn't scalar.
6369 * function.c (assign_stack_temp_for_type): Assert that neither
6370 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
6371 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
6372 macro.
6373 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
6374
6375 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6376
6377 * config/s390/s390-protos.h (s390_label_align): New prototype.
6378 * config/s390/s390.c (s390_label_align): New function.
6379 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
6380
6381 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
6382
6383 PR target/47755
6384 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
6385 V2DI/V2DF constants. Only all 0's or all 1's are easy.
6386 (output_vec_const_move): Ditto.
6387
6388 2011-03-08 Anatoly Sokolov <aesok@post.ru>
6389
6390 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
6391 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
6392 * config/mips/mips.c (mips_preferred_reload_class): Make static.
6393 Change 'rclass' argument and result type to reg_class_t.
6394 (TARGET_PREFERRED_RELOAD_CLASS): Define.
6395
6396 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
6397
6398 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6399 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
6400 (TARGET_MEMORY_MOVE_COST): Define.
6401 (avr_register_move_cost, avr_memory_move_cost): New Functions.
6402
6403 2011-03-08 Jakub Jelinek <jakub@redhat.com>
6404
6405 PR debug/47881
6406 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
6407 removed anything.
6408
6409 PR tree-optimization/48022
6410 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
6411 for EQ/NE_EXPR.
6412
6413 2011-03-07 Jakub Jelinek <jakub@redhat.com>
6414
6415 PR debug/47991
6416 * var-tracking.c (find_use_val): Return NULL for
6417 cui->sets && cui->store_p BLKmode MEMs.
6418
6419 2011-03-07 Anatoly Sokolov <aesok@post.ru>
6420
6421 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
6422 Remove.
6423 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
6424 xstormy16_print_operand_address): Remove.
6425 * config/stormy16/stormy16.c (xstormy16_print_operand,
6426 xstormy16_print_operand_address): Make static.
6427 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6428
6429 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
6430
6431 PR target/47862
6432 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
6433 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
6434 before definition.
6435
6436 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
6437
6438 PR bootstrap/48000
6439 * cfgloopmanip.c (fix_bb_placements): Return immediately
6440 if FROM is BASE_LOOP's header.
6441
6442 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
6443
6444 * gimplify.c (gimplify_function_tree): Fix building calls
6445 to __builtin_return_address.
6446
6447 2011-03-07 Alan Modra <amodra@gmail.com>
6448
6449 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
6450 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
6451 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
6452 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
6453 return_mode args.
6454 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
6455 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
6456 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
6457 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
6458 * config/rs6000/rs6000.c
6459 (rs6000_elf_end_indicate_exec_stack): Rename to..
6460 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
6461 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
6462 (rs6000_file_start): ..here.
6463 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
6464 file scope variables.
6465 (call_ABI_of_interest): New function.
6466 (init_cumulative_args): Set above vars when function return value
6467 is a float, vector, or small struct.
6468 (rs6000_function_arg_advance_1): Likewise for function args.
6469 (rs6000_va_start): Set rs6000_passes_float if variable arg function
6470 references float args.
6471
6472 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
6473
6474 * doc/cfg.texi: Remove "See" before @ref.
6475 * doc/invoke.texi: Likewise.
6476
6477 2011-03-05 Jason Merrill <jason@redhat.com>
6478
6479 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
6480
6481 2011-03-05 Anthony Green <green@moxielogic.com>
6482
6483 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
6484
6485 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
6486
6487 PR rtl-optimization/47899
6488 * cfgloopmanip.c (fix_bb_placements): Fix first argument
6489 to flow_loop_nested_p when moving the loop upward.
6490
6491 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
6492
6493 PR target/47719
6494 * arm.md (movhi_insn_arch4): Accept any immediate constant.
6495
6496 2011-03-05 Jakub Jelinek <jakub@redhat.com>
6497
6498 PR tree-optimization/47967
6499 * ipa-cp.c (build_const_val): Return NULL instead of creating
6500 VIEW_CONVERT_EXPR for mismatching sizes.
6501 (ipcp_create_replace_map): Return NULL if build_const_val failed.
6502 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
6503 give up on versioning.
6504
6505 2011-03-05 Alan Modra <amodra@gmail.com>
6506
6507 PR target/47986
6508 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6509 full cmodel medium/large lo_sum + high addresses.
6510
6511 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6512
6513 * config/s390/s390.c (s390_decompose_address): Reject non-literal
6514 pool references in UNSPEC_LTREL_OFFSET.
6515
6516 2011-03-04 Jan Hubicka <jh@suse.cz>
6517
6518 PR lto/47497
6519 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
6520 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
6521 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
6522 Add node pointers.
6523 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
6524 cgraph_add_thunk): Add node pointers.
6525 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
6526 associated to right node.
6527 (input_node): Update use of cgraph_same_body_alias
6528 and cgraph_add_thunk.
6529
6530 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
6531
6532 * config/i386/i386.opt (mprefer-avx128): New flag.
6533 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
6534 modes when the flag -mprefer-avx128 is on.
6535
6536 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
6537
6538 * dwarf2out.c (compare_loc_operands): Fix address handling.
6539
6540 2011-03-04 Alan Modra <amodra@gmail.com>
6541
6542 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
6543
6544 2011-03-04 Richard Guenther <rguenther@suse.de>
6545
6546 PR middle-end/47968
6547 * expmed.c (extract_bit_field_1): Prefer vector modes that
6548 vec_extract patterns can handle.
6549
6550 2011-03-04 Richard Guenther <rguenther@suse.de>
6551
6552 PR middle-end/47975
6553 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
6554
6555 2011-03-04 Richard Henderson <rth@redhat.com>
6556
6557 * explow.c (emit_stack_save): Remove 'after' parameter.
6558 (emit_stack_restore): Likewise.
6559 * expr.h: Update to match.
6560 * builtins.c, calls.c, stmt.c: Likewise.
6561 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
6562 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
6563 * function.c (expand_function_end): Insert the emit_stack_save
6564 sequence before parm_birth_insn instead of after.
6565
6566 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
6567
6568 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
6569 (ssse3_pmaddubsw128): Ditto.
6570 (ssse3_pmaddubsw): Ditto.
6571
6572 2011-03-03 Steve Ellcey <sje@cup.hp.com>
6573
6574 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
6575
6576 2011-03-03 Jakub Jelinek <jakub@redhat.com>
6577
6578 PR c/47963
6579 * gimplify.c (omp_add_variable): Only call omp_notice_variable
6580 on TYPE_SIZE_UNIT if it is a DECL.
6581
6582 PR debug/47283
6583 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
6584 first operand is not is_gimple_mem_ref_addr, try to fold it.
6585 If the operand still isn't is_gimple_mem_ref_addr, clear
6586 MEM_EXPR on op0.
6587
6588 2011-03-03 Richard Guenther <rguenther@suse.de>
6589
6590 PR middle-end/47283
6591 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
6592 match comment.
6593 (refs_may_alias_p_1): For release branches return true if
6594 we are confused by our input.
6595
6596 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6597
6598 * config/s390/s390.c (s390_function_value): Rename to ...
6599 (s390_function_and_libcall_value): ... this.
6600 (s390_function_value): New function.
6601 (s390_libcall_value): New function.
6602 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
6603 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
6604 target macro definitions.
6605 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
6606
6607 2011-03-02 Joseph Myers <joseph@codesourcery.com>
6608
6609 * config/i386/freebsd64.h (CC1_SPEC): Define.
6610 * config/i386/linux64.h (CC1_SPEC): Define.
6611 * config/i386/x86-64.h (CC1_SPEC): Don't define.
6612
6613 2011-03-02 Anatoly Sokolov <aesok@post.ru>
6614
6615 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6616 Remove.
6617 * config/stormy16/stormy16.c: Include reload.h.
6618 (xstormy16_memory_move_cost): New function.
6619 (TARGET_MEMORY_MOVE_COST): Define.
6620
6621 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
6622
6623 PR rtl-optimization/47925
6624 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
6625 with side effects. Remove the more-specific check for volatile asms.
6626
6627 2011-03-02 Alan Modra <amodra@gmail.com>
6628
6629 PR target/47935
6630 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
6631 toc relative addresses for valid offsets.
6632
6633 2011-03-01 Richard Guenther <rguenther@suse.de>
6634
6635 PR tree-optimization/47890
6636 * tree-vect-loop.c (get_initial_def_for_induction): Set
6637 related stmt properly.
6638
6639 2011-03-01 Richard Guenther <rguenther@suse.de>
6640
6641 PR lto/47924
6642 * lto-streamer.c (lto_record_common_node): Also register
6643 the canonical type.
6644
6645 2011-03-01 Richard Guenther <rguenther@suse.de>
6646
6647 PR lto/46911
6648 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6649 Do not stream DECL_ABSTRACT_ORIGIN.
6650 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
6651 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
6652 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6653 Do not stream DECL_ABSTRACT_ORIGIN.
6654 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
6655 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
6656
6657 2011-02-28 Anatoly Sokolov <aesok@post.ru>
6658
6659 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
6660 FUNCTION_VALUE_REGNO_P): Remove.
6661 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
6662 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
6663 Add 'outgoing' argument.
6664 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
6665 function.
6666 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6667 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6668
6669 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
6670
6671 PR debug/28047
6672 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
6673 (lookup_filename): Likewise.
6674 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
6675
6676 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
6677 Jakub Jelinek <jakub@redhat.com>
6678
6679 PR middle-end/47893
6680 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
6681 (assign_stack_local_1): Change last argument type to int.
6682 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
6683 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
6684 don't record padding space into frame_space_list nor use those areas.
6685 (assign_stack_local): Adjust caller.
6686 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
6687 of assign_stack_local, pass 0 as last argument.
6688 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
6689 callers.
6690
6691 2011-02-28 Jakub Jelinek <jakub@redhat.com>
6692
6693 PR debug/47283
6694 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
6695 Use target address_mode and pointer_mode hooks instead of hardcoded
6696 Pmode and ptr_mode. Handle some simple cases of extending if
6697 POINTERS_EXTEND_UNSIGNED < 0.
6698 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
6699 Call convert_debug_memory_address.
6700 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
6701 convert_debug_memory_address.
6702
6703 PR middle-end/46790
6704 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
6705 * configure: Regenerated.
6706 * config.in: Regenerated.
6707 * varasm.c (default_function_section): Return NULL
6708 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
6709
6710 2011-02-28 Martin Jambor <mjambor@suse.cz>
6711
6712 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
6713 the description to match the printed values.
6714
6715 2011-02-28 Richard Guenther <rguenther@suse.de>
6716
6717 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
6718 of the copied scope tree.
6719
6720 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6721
6722 * doc/extend.texi (Function Attributes): Avoid deeply (and
6723 wrongly) nested tables.
6724
6725 2011-02-27 Jakub Jelinek <jakub@redhat.com>
6726
6727 PR middle-end/47903
6728 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
6729 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
6730 r isn't op0 nor op1.
6731
6732 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
6733
6734 * config/avr/avr.md: Remove magic comment for emacs.
6735
6736 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
6737
6738 PR target/45261
6739 * config/avr/avr.c (avr_option_override): Use error on bad options.
6740 (avr_help): New function.
6741 (TARGET_HELP): Define.
6742
6743 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
6744
6745 PR target/42240
6746 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
6747 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
6748
6749 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
6750
6751 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
6752 (ARM Options): Ditto.
6753 (i386 and x86-64 Options): Ditto.
6754 (RX Options): Ditto.
6755 (SPARC Options): Ditto.
6756
6757 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
6758
6759 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
6760 FreeBSD 6 and later. Generally use cpu generic.
6761
6762 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
6763
6764 * doc/cpp.texi: Update copyright years.
6765
6766 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
6767
6768 PR target/46898
6769 * config/lm32/lm32.md (ashrsi3): Added needed variable.
6770
6771 2011-02-25 Jon Beniston <jon@beniston.com>
6772
6773 PR target/46898
6774 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
6775 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
6776 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
6777 (lm32_block_move_inline): Add type cast to remove warning.
6778 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
6779 (gen_int_relational): Move declarations to start of function.
6780
6781 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
6782
6783 PR tree-optimization/45470
6784 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
6785 can throw internally only.
6786 * tree-vect-stmts.c (vectorizable_call): Likewise.
6787
6788 2011-02-24 Anatoly Sokolov <aesok@post.ru>
6789
6790 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
6791 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6792 * config/stormy16/stormy16-protos.h
6793 (xstormy16_preferred_reload_class): Remove.
6794 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
6795 static. Change 'rclass' argument and return type to reg_class_t.
6796 (TARGET_PREFERRED_RELOAD_CLASS,
6797 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6798
6799 2011-02-24 Richard Guenther <rguenther@suse.de>
6800
6801 * lto-streamer-in.c (input_bb): Do not find referenced vars
6802 in debug statements.
6803
6804 2011-02-23 Jason Merrill <jason@redhat.com>
6805
6806 * common.opt (fabi-version): Document v5 and v6.
6807
6808 2011-02-23 Richard Guenther <rguenther@suse.de>
6809
6810 PR tree-optimization/47849
6811 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
6812
6813 2011-02-23 Jie Zhang <jie@codesourcery.com>
6814
6815 * opts-common.c (decode_cmdline_option): Print empty string
6816 argument as "" in decoded->orig_option_with_args_text.
6817 * gcc.c (execute): Print empty string argument as ""
6818 in the verbose output.
6819 (do_spec_1): Keep empty string argument.
6820
6821 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
6822
6823 * config.gcc: Declare score-* and crx-* obsolete.
6824
6825 2011-02-23 Jie Zhang <jie@codesourcery.com>
6826
6827 PR rtl-optimization/47763
6828 * web.c (web_main): Ignore naked clobber when replacing register.
6829
6830 2011-02-22 Anatoly Sokolov <aesok@post.ru>
6831
6832 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6833 Remove.
6834
6835 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
6836
6837 PR doc/47848
6838 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
6839
6840 2011-02-22 Mike Stump <mikestump@comcast.net>
6841
6842 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
6843 assembler.
6844 * configure: Regenerate.
6845
6846 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
6847
6848 PR rtl-optimization/46002
6849 * ira-color.c (update_copy_costs): Change class intersection
6850 test to reg_class_contents[] test of 'hard_regno'.
6851
6852 2011-02-21 Joseph Myers <joseph@codesourcery.com>
6853
6854 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
6855 than Driver option.
6856 * config/hpux11.opt (mt): Likewise.
6857 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
6858 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
6859 * config/vax/elf.opt (mno-asm-pic): Likewise.
6860 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
6861
6862 2011-02-21 Mike Stump <mikestump@comcast.net>
6863
6864 PR target/47822
6865 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
6866 tree so we can get save the type.
6867 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
6868 for CFString instead of trying to use past the end of the builtins.
6869 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
6870 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
6871 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
6872 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
6873 Rename to darwin_builtin_cfstring.
6874 (darwin_init_cfstring_builtins): Return the built type.
6875
6876 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
6877
6878 PR target/47840
6879 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
6880 (_mm256_insert_epi64): Use _mm_insert_epi64.
6881
6882 2011-02-21 Anatoly Sokolov <aesok@post.ru>
6883
6884 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6885 * config/stormy16/stormy16-protos.h
6886 (xstormy16_mode_dependent_address_p): Remove.
6887 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
6888 Make static. Change return type to bool. Change argument type to
6889 const_rtx. Remove dead code.
6890 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6891
6892 2011-02-21 Richard Guenther <rguenther@suse.de>
6893
6894 PR lto/47820
6895 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6896 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
6897 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
6898 TUs context.
6899 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6900 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
6901
6902 2011-02-20 Richard Guenther <rguenther@suse.de>
6903
6904 PR lto/47822
6905 * tree.c (free_lang_data_in_decl): Clean builtins from
6906 the TU decl BLOCK_VARS.
6907
6908 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
6909
6910 PR debug/47620
6911 PR debug/47630
6912 * haifa-sched.c (fix_tick_ready): Skip tick computation
6913 for debug insns.
6914
6915 2011-02-19 Richard Guenther <rguenther@suse.de>
6916
6917 PR lto/47647
6918 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
6919 Remove lazy BLOCK_VARS streaming.
6920 (lto_input_ts_block_tree_pointers): Likewise.
6921 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
6922
6923 2011-02-19 Joseph Myers <joseph@codesourcery.com>
6924
6925 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
6926
6927 2011-02-19 Joseph Myers <joseph@codesourcery.com>
6928
6929 * config/i386/biarch32.h, config/i386/mach.h,
6930 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
6931
6932 2011-02-19 Jakub Jelinek <jakub@redhat.com>
6933
6934 PR target/47800
6935 * config/i386/i386.md (peephole2 for shift and plus): Use
6936 operands[1] original mode in the first insn.
6937
6938 2011-02-18 Mike Stump <mikestump@comcast.net>
6939
6940 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
6941
6942 2011-02-18 Jan Hubicka <jh@suse.cz>
6943
6944 PR middle-end/47788
6945 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
6946 to zero when the function is not inlinable at all.
6947
6948 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6949
6950 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
6951 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6952 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
6953 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
6954 * config/pa/t-pa64: Likewise.
6955 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
6956
6957 2011-02-18 Jakub Jelinek <jakub@redhat.com>
6958
6959 PR driver/47787
6960 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
6961
6962 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6963
6964 PR target/47792
6965 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
6966
6967 2011-02-18 Anatoly Sokolov <aesok@post.ru>
6968
6969 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6970 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
6971 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
6972 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6973 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
6974 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
6975 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
6976 m32r_load_postinc_p, m32r_store_preinc_predec_p,
6977 m32r_legitimate_address_p): New functions.
6978 * config/m32r/constraints.md (constraint "S"): Don't use
6979 STORE_PREINC_PREDEC_P.
6980 (constraint "U"): Don't use LOAD_POSTINC_P.
6981
6982 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
6983
6984 PR rtl-optimization/46178
6985 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
6986 compute ira_hard_regno_cover_class[].
6987
6988 2011-02-18 Richard Guenther <rguenther@suse.de>
6989
6990 PR lto/47798
6991 * lto-streamer.h (lto_global_var_decls): Declare.
6992 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
6993 statics for global var processing.
6994
6995 2011-02-18 Richard Guenther <rguenther@suse.de>
6996
6997 PR tree-optimization/47737
6998 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
6999 edge dominance check.
7000
7001 2011-02-18 Jakub Jelinek <jakub@redhat.com>
7002
7003 PR debug/47780
7004 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
7005 avoid invalid rtx sharing.
7006
7007 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
7008
7009 * doc/cpp.texi (Obsolete Features): Add background on the
7010 origin of assertions.
7011
7012 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
7013
7014 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
7015 objc_abi == 2.
7016 * config/darwin.c (output_objc_section_asm_op): Added support for
7017 ABI v1 and v2.
7018 (is_objc_metadata): New.
7019 (darwin_objc2_section): New.
7020 (darwin_objc1_section): New.
7021 (machopic_select_section): Added support for ABI v1 and v2.
7022 (darwin_emit_objc_zeroed): New.
7023 (darwin_output_aligned_bss): Detect objc metadata and treat it
7024 appropriately.
7025 (darwin_asm_output_aligned_decl_common): Same.
7026 (darwin_asm_output_aligned_decl_local): Same.
7027 * config/darwin-sections.def: Updated for ABI v1 and v2.
7028 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
7029 compiling Objective-C code for the NeXT runtime, default to using
7030 ABI version 0 for 32-bit, and version 2 for 64-bit.
7031
7032 2011-02-17 Joseph Myers <joseph@codesourcery.com>
7033
7034 * common.opt (optimize_fast): New Variable.
7035 * opts.c (default_options_optimization): Use opts->x_optimize_fast
7036 instead of local variable ofast.
7037
7038 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
7039
7040 * doc/invoke.texi (fobjc-abi-version): Documented.
7041 (fobjc-nilcheck): Documented.
7042 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
7043 version.
7044
7045 2011-02-17 Joseph Myers <joseph@codesourcery.com>
7046
7047 PR driver/47390
7048 * common.opt (export-dynamic): New Driver option.
7049 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
7050
7051 2011-02-17 Joseph Myers <joseph@codesourcery.com>
7052
7053 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
7054
7055 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
7056 Jan Hubicka <jh@suse.cz>
7057
7058 PR debug/47106
7059 PR debug/47402
7060 * cfgexpand.c (account_used_vars_for_block): Remove.
7061 (estimated_stack_frame_size): Use referenced vars.
7062 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
7063 that were referenced in the original function. Test src_fn
7064 rather than cfun. Drop redundant get_var_ann.
7065 (setup_one_parameter): Drop redundant get_var_ann.
7066 (declare_return_variable): Likewise.
7067 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
7068 (copy_arguments_for_versioning): Drop redundant get_var_ann.
7069 * ipa-inline.c (compute_inline_parameters): Do not compute
7070 disregard_inline_limits here.
7071 (compute_inlinable_for_current, pass_inlinable): New.
7072 (pass_inline_parameters): Require PROP_referenced_vars.
7073 * cgraphunit.c (cgraph_process_new_functions): Don't run
7074 compute_inline_parameters explicitly unless function is in SSA form.
7075 (cgraph_analyze_function): Set .disregard_inline_limits.
7076 * tree-sra.c (convert_callers): Compute inliner parameters
7077 only for functions already in SSA form.
7078
7079 2011-02-17 Joseph Myers <joseph@codesourcery.com>
7080
7081 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
7082 -mlittle-endian-data.
7083
7084 2011-02-17 Joseph Myers <joseph@codesourcery.com>
7085
7086 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
7087 -mno-fpu, not -fpu and -no-fpu.
7088 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
7089 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
7090
7091 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
7092
7093 PR target/43653
7094 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
7095 input reload with PLUS RTX.
7096
7097 2011-02-16 Joseph Myers <joseph@codesourcery.com>
7098
7099 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
7100 of InverseVar(MDMX).
7101
7102 2011-02-16 Joseph Myers <joseph@codesourcery.com>
7103
7104 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
7105 --m4-340.
7106
7107 2011-02-16 Joseph Myers <joseph@codesourcery.com>
7108
7109 * config/mn10300/mn10300.opt (mno-crt0): New.
7110
7111 2011-02-16 Joseph Myers <joseph@codesourcery.com>
7112
7113 * config/m68k/uclinux.opt (static-libc): New Driver option.
7114
7115 2011-02-16 Joseph Myers <joseph@codesourcery.com>
7116
7117 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
7118
7119 2011-02-16 Joseph Myers <joseph@codesourcery.com>
7120
7121 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
7122 %{muser-extend-enabled}.
7123
7124 2011-02-16 Richard Guenther <rguenther@suse.de>
7125
7126 PR tree-optimization/47738
7127 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
7128 the TODO from tree_predictive_commoning.
7129
7130 2011-02-15 Jeff Law <law@redhat.com>
7131
7132 Revert
7133 2011-01-25 Jeff Law <law@redhat.com>
7134
7135 PR rtl-optimization/37273
7136 * ira-costs.c (scan_one_insn): Detect constants living in memory and
7137 handle them like argument loads from stack slots. Do not double
7138 count memory for memory constants and argument loads from stack slots.
7139
7140 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
7141
7142 PR middle-end/47725
7143 * combine.c (cant_combine_insn_p): Revert the last change.
7144
7145 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
7146
7147 PR target/47755
7148 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
7149 mode for vector constants. Remove code that checks for TImode.
7150
7151 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
7152
7153 PR debug/47106
7154 PR debug/47402
7155 * cgraph.h (compute_inline_parameters): Return void.
7156 * ipa-inline.c (compute_inline_parameters): Adjust.
7157
7158 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
7159
7160 PR debug/47106
7161 PR debug/47402
7162 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
7163 rather than decl.
7164 * cfgexpand.c (estimated_stack_frame_size): Likewise.
7165 * ipa-inline.c (compute_inline_parameters): Adjust.
7166
7167 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
7168
7169 PR debug/47106
7170 PR debug/47402
7171 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
7172 Adjust all users. Pass FN to...
7173 * tree-flow-inline.h (first_referenced_var): ... this. Add
7174 fn argument.
7175 * ipa-struct-reorg.c: Adjust.
7176 * tree-dfa.c: Adjust.
7177 * tree-into-ssa.c: Adjust.
7178 * tree-sra.c: Adjust.
7179 * tree-ssa-alias.c: Adjust.
7180 * tree-ssa-live.c: Adjust.
7181 * tree-ssa.c: Adjust.
7182 * tree-ssanames.c: Adjust.
7183 * tree-tailcall.c: Adjust.
7184
7185 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
7186
7187 PR debug/47106
7188 PR debug/47402
7189 * tree-flow.h (referenced_var_lookup): Add fn parameter.
7190 Adjust all callers.
7191 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
7192 * tree-flow-inline.h: Adjust.
7193 * gimple-pretty-print.c: Adjust.
7194 * tree-into-ssa.c: Adjust.
7195 * tree-ssa.c: Adjust.
7196 * cfgexpand.c: Adjust.
7197
7198 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
7199
7200 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
7201 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7202 (EXTRA_CONSTRAINT): Delete.
7203 * config/iq2000/constraints.md: New file.
7204 * config/iq2000/iq2000.md: Include it.
7205 (define_insn ""): Delete.
7206 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
7207 unsupported constraint letters from patterns.
7208 (call_value, call_value_internal1): Likewise.
7209 (call_value_multiple_internal1): Likewise.
7210
7211 2011-02-15 Nick Clifton <nickc@redhat.com>
7212
7213 * config/mn10300/mn10300.c: Include tm-constrs.h.
7214 (struct liw_data): New data structure describing an LIW candidate
7215 instruction.
7216 (extract_bundle): Use struct liw_data. Allow small integer
7217 operands for some instructions.
7218 (check_liw_constraints): Use struct liw_data. Remove swapped
7219 parameter. Add comments describing the checks. Fix bug when
7220 assigning the source of liw1 to the source of liw2.
7221 (liw_candidate): Delete. Code moved into extract_bundle.
7222 (mn10300_bundle_liw): Use struct liw_data. Check constraints
7223 before swapping.
7224 * config/mn10300/predicates.md (liw_operand): New predicate.
7225 Allows registers and small integer constants.
7226 * config/mn10300/constraints.md (O): New constraint. Accetps
7227 integers in the range -8 to +7 inclusive.
7228 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
7229 for moving a small integer into a register. Give this alternative
7230 LIW attributes.
7231 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
7232 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
7233 using the J,K,L and M constraints,
7234 (liw): Remove SI mode on second operands to allow for HI and QI
7235 mode values.
7236 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
7237 instruction.
7238
7239 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
7240
7241 PR middle-end/47725
7242 * combine.c (cant_combine_insn_p): Check zero/sign extended
7243 hard registers.
7244
7245 2011-02-15 Richard Guenther <rguenther@suse.de>
7246
7247 PR tree-optimization/47743
7248 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
7249 for a non-type-compatible VN lookup bail out.
7250
7251 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
7252
7253 * config/fr30/constraints.md: New file.
7254 * config/fr30/fr30.md: Include it.
7255 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
7256 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7257 (EXTRA_CONSTRAINT): Delete.
7258
7259 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
7260
7261 * config/frv/constraints.md: New file.
7262 * config/frv/predicates.md: Include it.
7263 * config/frv/frv.c (reg_class_from_letter): Delete.
7264 (frv_option_override): Don't initialize it.
7265 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
7266 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
7267 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
7268 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
7269 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
7270 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7271 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
7272 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
7273 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
7274 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
7275 (REG_CLASS_FROM_CONSTRAINT): Delete.
7276
7277 2011-02-15 Jakub Jelinek <jakub@redhat.com>
7278
7279 PR middle-end/47581
7280 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
7281 if frame size is 0 in a leaf function.
7282
7283 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7284
7285 PR pch/14940
7286 * config/alpha/host-osf.c: New file.
7287 * config/alpha/x-osf: New file.
7288 * config.host (alpha*-dec-osf*): Use it.
7289
7290 2011-02-14 Anatoly Sokolov <aesok@post.ru>
7291
7292 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7293 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
7294 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
7295 (rx_mode_dependent_address_p): ...this. Make static. Change argument
7296 type to const_rtx.
7297 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7298
7299 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
7300
7301 * config/stormy16/constraints.md: New file.
7302 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
7303 Use satisfies_constraint_Q and satisfies_constraint_R.
7304 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
7305 Delete.
7306 (xstormy16_legitiamte_address_p): Declare.
7307 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
7308 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7309 (EXTRA_CONSTRAINT): Delete.
7310 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
7311 Un-staticize.
7312 (xstormy16_extra_constraint_p): Delete.
7313
7314 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
7315
7316 PR tree-optimization/46494
7317 * loop-unroll.c (split_edge_and_insert): Adjust comment.
7318 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
7319 (pass_rtl_loop_done): Add TODO_verify_flow.
7320 * fwprop.c (pass_rtl_fwprop): Likewise.
7321 * modulo-sched.c (pass_sms): Likewise.
7322 * tree-ssa-dom.c (pass_dominator): Likewise.
7323 * tree-ssa-loop-ch.c (pass_ch): Likewise.
7324 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
7325 (pass_tree_loop_done): Likewise.
7326 * tree-ssa-pre.c (execute_pre): Likewise.
7327 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
7328 * tree-ssa-sink.c (pass_sink_code): Likewise.
7329 * tree-vrp.c (pass_vrp): Likewise.
7330
7331 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
7332
7333 * config/v850/constraints.md: New file.
7334 * config/v850/v850.md: Include it.
7335 * config/v850/predicates.md (reg_or_0_operand): Use
7336 satisfies_constraint_G.
7337 (special_symbolref_operand): Use satisfies_constraint_K.
7338 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
7339 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
7340 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
7341 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
7342 (EXTRA_CONSTRAINT): Delete.
7343 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
7344 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
7345 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
7346
7347 2011-02-14 Anatoly Sokolov <aesok@post.ru>
7348
7349 PR target/47696
7350 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
7351 description.
7352
7353 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
7354
7355 * config/mcore/constraints.md: New file.
7356 * config/mcore/mcore.md: Include it.
7357 * config/mcore/mcore.c (reg_class_from_letter): Delete.
7358 * config/mcore/mcore.h (reg_class_from_letter): Delete.
7359 (REG_CLASS_FROM_LETTER): Delete.
7360 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
7361 insn_const_int_ok_for_constraint.
7362 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
7363 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
7364 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7365 (EXTRA_CONSTRAINT): Delete.
7366
7367 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7368
7369 PR ada/41929
7370 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
7371 (IS_SIGHANDLER): Define.
7372 (sparc64_is_sighandler): New function, split off from
7373 sparc64_fallback_frame_state.
7374 (sparc_is_sighandler): New function, split off from
7375 sparc_fallback_frame_state.
7376 (sparc64_fallback_frame_state): Merge with ...
7377 (sparc_fallback_frame_state): ... this into ...
7378 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
7379 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
7380 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
7381 stack instead of hardcoded offsets.
7382
7383 2011-02-14 Andriy Gapon <avg@freebsd.org>
7384
7385 PR target/45808
7386 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
7387
7388 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7389
7390 * configure: Regenerate.
7391
7392 2011-02-12 Joseph Myers <joseph@codesourcery.com>
7393
7394 PR driver/45731
7395 * gcc.c (asm_options): Correct spec matching --target-help.
7396
7397 2011-02-12 Martin Jambor <mjambor@suse.cz>
7398
7399 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
7400 to gimple call error.
7401
7402 2011-02-12 Mike Stump <mikestump@comcast.net>
7403
7404 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
7405 comments in backslash regions.
7406
7407 2011-02-12 Mike Stump <mikestump@comcast.net>
7408 Jakub Jelinek <jakub@redhat.com>
7409 Iain Sandoe <iains@gcc.gnu.org>
7410
7411 PR target/47324
7412 * dwarf2out.c (output_cfa_loc): When required, apply the
7413 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
7414 (output_loc_sequence): Likewise.
7415 (output_loc_operands_raw): Likewise.
7416 (output_loc_sequence_raw): Likewise.
7417 (output_cfa_loc): Likewise.
7418 (output_loc_list): Suppress register number adjustment when
7419 calling output_loc_sequence()
7420 (output_die): Likewise.
7421
7422 2011-02-12 Anatoly Sokolov <aesok@post.ru>
7423
7424 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
7425 Remove macros.
7426 * config/xtensa/xtensa.c (xtensa_register_move_cost,
7427 xtensa_memory_move_cost): New functions.
7428 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
7429
7430 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
7431
7432 PR lto/47225
7433 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
7434 in the current directory.
7435 * configure: Rebuilt.
7436
7437 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
7438
7439 * config/darwin.c (darwin_override_options): Add a hunk missed
7440 from the commit of r168571. Trim comment line lengths and
7441 correct indents of the preceding block.
7442
7443 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
7444
7445 * gcc.c (driver_handle_option): Concatenate the argument to -F with
7446 the switch.
7447
7448 2011-02-11 Joseph Myers <joseph@codesourcery.com>
7449
7450 * common.opt (nostartfiles): New Driver option.
7451
7452 2011-02-11 Xinliang David Li <davidxl@google.com>
7453
7454 PR tree-optimization/47707
7455 * tree-chrec.c (convert_affine_scev): Keep type precision.
7456
7457 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
7458
7459 PR tree-optimization/47420
7460 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
7461
7462 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
7463
7464 PR rtl-optimization/47614
7465 * rtl.h (check_for_inc_dec): Declare.
7466 * dse.c (check_for_inc_dec): Externalize...
7467 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
7468 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
7469
7470 2011-02-11 Joseph Myers <joseph@codesourcery.com>
7471
7472 PR driver/47678
7473 * gcc.c (main): Do not compile inputs if there were errors in
7474 option handling.
7475 * opts-common.c (read_cmdline_option): Check for wrong language
7476 after other error checks.
7477
7478 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
7479
7480 * cgraph.c: Fix comment typos.
7481 * cgraph.h: Likewise.
7482 * cgraphunit.c: Likewise.
7483 * ipa-cp.c: Likewise.
7484 * ipa-inline.c: Likewise.
7485 * ipa-prop.c: Likewise.
7486 * ipa-pure-const.c: Likewise.
7487 * ipa-ref.c: Likewise.
7488 * ipa-reference.c: Likewise.
7489
7490 2011-02-11 Jakub Jelinek <jakub@redhat.com>
7491
7492 PR debug/47684
7493 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
7494
7495 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7496
7497 PR testsuite/47400
7498 * doc/sourcebuild.texi (Require Support): Document
7499 dg-require-ascii-locale.
7500
7501 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
7502
7503 * doc/lto.texi (Write summary): Fix missing parentheses.
7504
7505 2011-02-10 DJ Delorie <dj@redhat.com>
7506
7507 * config/m32c/m32c.c (m32c_option_override): Disable
7508 -fcombine-stack-adjustments until flag value tracking and compare
7509 optimization can be rewritten.
7510
7511 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
7512
7513 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
7514 PROCESSOR_POWER7.
7515 (PROCESSOR_DEFAULT64): Likewise.
7516
7517 2011-02-10 Richard Henderson <rth@redhat.com>
7518
7519 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
7520 change from 2011-02-03.
7521 * config/rx/rx.c (flags_from_code): Likewise.
7522 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
7523 is valid, n/pz otherwise.
7524 (rx_select_cc_mode): Return CCmode if Y is not zero.
7525
7526 2011-02-10 Richard Guenther <rguenther@suse.de>
7527
7528 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
7529
7530 2011-02-10 Richard Guenther <rguenther@suse.de>
7531
7532 PR tree-optimization/47677
7533 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
7534
7535 2011-02-10 Jakub Jelinek <jakub@redhat.com>
7536
7537 PR target/47665
7538 * combine.c (make_compound_operation): Only change shifts into
7539 multiplication for SCALAR_INT_MODE_P.
7540
7541 2011-02-10 Jie Zhang <jie@codesourcery.com>
7542
7543 PR testsuite/47622
7544 Revert
7545 2011-02-05 Jie Zhang <jie@codesourcery.com>
7546 PR debug/42631
7547 * web.c (entry_register): Don't clobber the number of the
7548 first uninitialized reference in used[].
7549
7550 2011-02-09 Richard Guenther <rguenther@suse.de>
7551
7552 PR tree-optimization/47664
7553 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
7554 all edges again.
7555
7556 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
7557
7558 PR target/46481
7559 PR target/47032
7560 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
7561 PROCESSOR_POWER7.
7562 (PROCESSOR_DEFAULT64): Same.
7563 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
7564
7565 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7566
7567 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
7568
7569 2011-02-09 Martin Jambor <mjambor@suse.cz>
7570
7571 PR middle-end/45505
7572 * tree-sra.c (struct access): New flags grp_scalar_read and
7573 grp_scalar_write. Changed description of assignment read and write
7574 flags.
7575 (dump_access): Dump new flags, reorder all of them.
7576 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
7577 to detect multiple scalar reads.
7578 (analyze_access_subtree): Use the new scalar read write flags instead
7579 of the old flags. Adjusted comments.
7580
7581 2011-02-08 DJ Delorie <dj@redhat.com>
7582
7583 PR target/47548
7584 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
7585 patterns.
7586
7587 2011-02-08 Joseph Myers <joseph@codesourcery.com>
7588
7589 * config/m68k/uclinux.opt: New.
7590 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
7591
7592 2011-02-08 Joseph Myers <joseph@codesourcery.com>
7593
7594 * config/cris/elf.opt (sim): New Driver option.
7595
7596 2011-02-08 Joseph Myers <joseph@codesourcery.com>
7597
7598 * config/xtensa/elf.opt: New.
7599 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
7600
7601 2011-02-08 Joseph Myers <joseph@codesourcery.com>
7602
7603 * config/vax/elf.opt: New.
7604 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
7605
7606 2011-02-08 Joseph Myers <joseph@codesourcery.com>
7607
7608 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
7609
7610 2011-02-08 Joseph Myers <joseph@codesourcery.com>
7611
7612 * config/gnu-user.opt: New.
7613 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
7614 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
7615 *-*-uclinux*): Use gnu-user.opt.
7616
7617 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
7618
7619 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
7620 * config/i386/gnu.h (CPP_SPEC): Likewise.
7621
7622 2011-02-08 Ian Lance Taylor <iant@google.com>
7623
7624 * common.opt (fcx-limited-range): Add SetByCombined flag.
7625 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
7626 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
7627 (fassociative-math, freciprocal-math): Likewise.
7628 (funsafe-math-optimizations): Likewise.
7629 * opth-gen.awk: Handle SetByCombined.
7630 * optc-gen.awk: Likewise.
7631 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
7632 (set_unsafe_math_optimizations_flags): Likewise.
7633 * doc/options.texi (Option properties): Document SetByCombined.
7634
7635 2011-02-08 Joseph Myers <joseph@codesourcery.com>
7636
7637 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
7638 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
7639 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
7640 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
7641 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
7642
7643 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
7644
7645 PR tree-optimization/46834
7646 PR tree-optimization/46994
7647 PR tree-optimization/46995
7648 * graphite-sese-to-poly.c (used_outside_reduction): New.
7649 (detect_commutative_reduction): Call used_outside_reduction.
7650 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
7651 translate_scalar_reduction_to_array only when at least one
7652 loop-phi/close-phi tuple has been detected.
7653
7654 2011-02-08 Richard Guenther <rguenther@suse.de>
7655
7656 PR middle-end/47639
7657 * tree-vect-generic.c (expand_vector_operations_1): Update
7658 stmts here ...
7659 (expand_vector_operations): ... not here. Cleanup EH info
7660 and the CFG if required.
7661
7662 2011-02-08 Richard Guenther <rguenther@suse.de>
7663
7664 PR tree-optimization/47641
7665 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
7666 require type compatibility.
7667
7668 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7669
7670 * gimple-low.c (lower_function_body): Don't remove the location of
7671 the return statement here.
7672 (lower_gimple_return): Do it here instead but only if the return
7673 statement is actually used twice.
7674
7675 2011-02-08 Richard Guenther <rguenther@suse.de>
7676
7677 PR tree-optimization/47632
7678 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
7679 unused up_to_stmt parameter, return whether cfg-cleanup is
7680 necessary, remove EH info properly.
7681 (forward_propagate_into_gimple_cond): Adjust caller.
7682 (forward_propagate_into_cond): Likewise.
7683 (forward_propagate_comparison): Likewise.
7684 (tree_ssa_forward_propagate_single_use_vars): Make
7685 forward_propagate_comparison case similar to the two others.
7686
7687 2011-02-08 Nick Clifton <nickc@redhat.com>
7688
7689 * config/mn10300/mn10300.opt (mliw): New command line option.
7690 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
7691 (liw_bundling): New automaton.
7692 (liw): New attribute.
7693 (liw_op): New attribute.
7694 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
7695 (movsi_internal): Add LIW attributes.
7696 (andsi3): Likewise.
7697 (iorsi3): Likewise.
7698 (xorsi3): Likewise.
7699 (addsi3): Separate register and immediate alternatives.
7700 Add LIW attributes.
7701 (subsi3): Likewise.
7702 (cmpsi): Likewise.
7703 (aslsi3): Likewise.
7704 (lshrsi3): Likewise.
7705 (ashrsi3): Likewise.
7706 (liw): New pattern.
7707 * config/mn10300/mn10300.c (liw_op_names): New
7708 (mn10300_print_operand): Handle 'W' operand descriptor.
7709 (extract_bundle): New function.
7710 (check_liw_constraints): New function.
7711 (liw_candidate): New function.
7712 (mn10300_bundle_liw): New function.
7713 (mn10300_reorg): New function.
7714 (TARGET_MACHINE_DEPENDENT_REORG): Define.
7715 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
7716 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
7717 __LIW__ or __NO_LIW__.
7718 * doc/invoke.texi: Describe the -mliw command line option.
7719
7720 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7721
7722 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
7723 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
7724 pthread_mutex_unlock): Remove.
7725 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
7726 * config/pa/t-pa64: Likewise.
7727 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
7728 shared libc if not linking against libpthread.
7729 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
7730
7731 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
7732
7733 PR target/47558
7734 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
7735 on 10.6 and later to ensure that we always use the unwinder from
7736 the system. Only add -no_compact_unwind when tarteting darwin
7737 10.6 or later.
7738
7739 2011-02-07 Steve Ellcey <sje@cup.hp.com>
7740
7741 PR target/46997
7742 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
7743 (vec_interleave_lowv2sf): Ditto.
7744 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
7745 (vec_extract_oddv2sf): Ditto.
7746
7747 2011-02-07 Mike Stump <mikestump@comcast.net>
7748
7749 PR target/42333
7750 Add __ieee_divdc3 entry point.
7751 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
7752 entry point.
7753 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
7754 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
7755 * config/darwin.c (darwin_rename_builtins): Add.
7756 * config/darwin-protos.h (darwin_rename_builtins): Add.
7757
7758 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
7759
7760 PR target/47636
7761 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
7762 for the condition.
7763
7764 2011-02-07 Mike Stump <mikestump@comcast.net>
7765
7766 * config/darwin.opt (mmacosx-version-min): Update default OS version.
7767
7768 2011-02-07 Denis Chertykov <chertykov@gmail.com>
7769
7770 PR target/47534
7771 * config/avr/libgcc.S (exit): Move .endfunc
7772
7773 2011-02-07 Richard Guenther <rguenther@suse.de>
7774
7775 PR tree-optimization/47615
7776 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
7777 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
7778 (run_scc_vn): Initialize it.
7779 (visit_reference_op_load): Use it.
7780 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
7781
7782 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7783
7784 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
7785 DImode trapping arithmetic libfuncs.
7786
7787 2011-02-07 Richard Guenther <rguenther@suse.de>
7788
7789 PR tree-optimization/47621
7790 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
7791 two duplicates ...
7792 (execute_update_addresses_taken): ... here. Make it more
7793 conservative in what we accept.
7794
7795 2011-02-06 Joseph Myers <joseph@codesourcery.com>
7796
7797 * config/sparc/freebsd.h (ASM_SPEC): Define.
7798 * config/sparc/vxworks.h (ASM_SPEC): Define.
7799
7800 2011-02-06 Joseph Myers <joseph@codesourcery.com>
7801
7802 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
7803
7804 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
7805
7806 * doc/invoke.texi: Remove reference to compiler internals from
7807 user documentation.
7808
7809 * reg-notes.def: Remove REG_VALUE_PROFILE.
7810 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
7811
7812 2011-02-05 Jakub Jelinek <jakub@redhat.com>
7813
7814 PR middle-end/47610
7815 * varasm.c (default_section_type_flags): If decl is NULL,
7816 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
7817
7818 2011-02-05 Jie Zhang <jie@codesourcery.com>
7819
7820 PR debug/42631
7821 * web.c (entry_register): Don't clobber the number of the
7822 first uninitialized reference in used[].
7823
7824 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
7825
7826 PR tree-optimization/46194
7827 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
7828 (build_classic_dist_vector_1): Do not represent classic distance
7829 vectors when the access functions are variating in different loops.
7830
7831 2011-02-04 Joseph Myers <joseph@codesourcery.com>
7832
7833 * config/mips/iris6.opt: New.
7834 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
7835
7836 2011-02-04 Richard Henderson <rth@redhat.com>
7837 Steve Ellcey <sje@cup.hp.com>
7838
7839 PR target/46997
7840 * config/ia64/predicates.md (mux1_brcst_element): New.
7841 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
7842 * config/ia64/ia64.c (ia64_unpack_assemble): New.
7843 (ia64_unpack_sign): New.
7844 (ia64_expand_unpack): Rewrite using new routines.
7845 (ia64_expand_widen_sum): Ditto.
7846 (ia64_expand_dot_prod_v8qi): Ditto.
7847 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
7848 routines, add endian check.
7849 (pmpy2_even): Rename from pmpy2_r, add endian check.
7850 (pmpy2_odd): Rename from pmpy2_l, add endian check.
7851 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
7852 (vec_widen_smult_hi_v4hi): Ditto.
7853 (vec_widen_umult_lo_v4hi): Ditto.
7854 (vec_widen_umult_hi_v4hi): Ditto.
7855 (mulv2si3): Change endian checks.
7856 (sdot_prodv4hi): Rewrite with new calls.
7857 (udot_prodv4hi): New.
7858 (vec_pack_ssat_v4hi): Add endian check.
7859 (vec_pack_usat_v4hi): Ditto.
7860 (vec_pack_ssat_v2si): Ditto.
7861 (max1_even): Rename from max1_r, add endian check.
7862 (max1_odd): Rename from max1_l, add endian check.
7863 (*mux1_rev): Format change.
7864 (*mux1_mix): Ditto.
7865 (*mux1_shuf): Ditto.
7866 (*mux1_alt): Ditto.
7867 (*mux1_brcst_v8qi): Use new predicate.
7868 (vec_extract_evenv8qi): Remove endian check.
7869 (vec_extract_oddv8qi): Ditto.
7870 (vec_interleave_lowv4hi): Format change.
7871 (vec_interleave_highv4hi): Ditto.
7872 (mix2_even): Rename from mix2_r, add endian check.
7873 (mix2_odd): Rename from mux2_l, add endian check.
7874 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
7875 (vec_extract_evenodd_helper): Format change.
7876 (vec_extract_evenv4hi): Remove endian check.
7877 (vec_extract_oddv4hi): Remove endian check.
7878 (vec_interleave_lowv2si): Format change.
7879 (vec_interleave_highv2si): Format change.
7880 (vec_initv2si): Remove endian check.
7881 (vecinit_v2si): Add endian check.
7882 (reduc_splus_v2sf): Add endian check.
7883 (reduc_smax_v2sf): Ditto.
7884 (reduc_smin_v2sf): Ditto.
7885 (vec_initv2sf): Remove endian check.
7886 (fpack): Add endian check.
7887 (fswap): Add endian check.
7888 (vec_interleave_highv2sf): Add endian check.
7889 (vec_interleave_lowv2sf): Add endian check.
7890 (fmix_lr): Add endian check.
7891 (vec_setv2sf): Format change.
7892 (*vec_extractv2sf_0_be): Use shift to extract operand.
7893 (*vec_extractv2sf_1_be): New.
7894 (vec_pack_trunc_v4hi): Add endian check.
7895 (vec_pack_trunc_v2si): Format change.
7896
7897 2011-02-04 Jakub Jelinek <jakub@redhat.com>
7898
7899 PR inline-asm/23200
7900 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
7901 do bb, locus and block comparison and disallow loads if it is not set.
7902 (stmt_is_replaceable_p): New function.
7903 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
7904 callers.
7905 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
7906 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
7907 SSA_NAME_DEF_STMT.
7908 * tree-flow.h (stmt_is_replaceable_p): New prototype.
7909
7910 2011-02-04 Joseph Myers <joseph@codesourcery.com>
7911
7912 * config/rs6000/xilinx.opt: New.
7913 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
7914
7915 2011-02-04 Joseph Myers <joseph@codesourcery.com>
7916
7917 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
7918
7919 2011-02-03 Anatoly Sokolov <aesok@post.ru>
7920
7921 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
7922 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7923 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
7924 secondary_reload_info, xtensa_secondary_reload): Remove.
7925 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
7926 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7927 (xtensa_preferred_reload_class): Make static. Change return and
7928 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
7929 Use CONST_DOUBLE_P predicate.
7930 (xtensa_preferred_output_reload_class): New function.
7931 (xtensa_secondary_reload): Make static.
7932
7933 2011-02-03 Joseph Myers <joseph@codesourcery.com>
7934
7935 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
7936 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
7937 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
7938
7939 2011-02-03 Jakub Jelinek <jakub@redhat.com>
7940
7941 PR middle-end/31490
7942 * output.h (SECTION_RELRO): Define.
7943 (SECTION_MACH_DEP): Adjust.
7944 (get_variable_section): New prototype.
7945 * varpool.c (varpool_finalize_named_section_flags): New function.
7946 (varpool_assemble_pending_decls): Call it.
7947 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
7948 * cgraphunit.c (cgraph_output_in_order): Call
7949 varpool_finalize_named_section_flags.
7950 * varasm.c (get_section): Allow section flags conflicts between
7951 relro and read-only sections if the section hasn't been declared yet.
7952 Set SECTION_OVERRIDE after diagnosing section type conflict.
7953 (get_variable_section): No longer static.
7954 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
7955 readonly sections that need relocations.
7956 (decl_readonly_section_1): New function.
7957 (decl_readonly_section): Use it.
7958
7959 Revert:
7960 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7961 Steve Ellcey <sje@cup.hp.com>
7962
7963 PR middle-end/31490
7964 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
7965 if section attribute used.
7966
7967 2011-02-03 Jakub Jelinek <jakub@redhat.com>
7968
7969 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
7970 * config/darwin.c (SECTION_NO_ANCHOR): Define.
7971 (darwin_init_sections): Remove assertion.
7972
7973 2011-02-03 Nick Clifton <nickc@redhat.com>
7974
7975 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
7976 lt and ge.
7977 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
7978 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
7979 instead of "n" and "pz".
7980 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
7981 CC_FLAG_S.
7982
7983 2011-02-03 Jakub Jelinek <jakub@redhat.com>
7984
7985 PR target/47312
7986 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
7987 fma, expand FMA_EXPR as fma{,f,l} call.
7988
7989 PR lto/47274
7990 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
7991 copy them into a unsigned char variable and pass address of it to
7992 lto_output_data_stream.
7993
7994 PR target/47564
7995 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
7996 around backend_init_target and lang_dependent_init_target calls.
7997 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
7998 (verify_cgraph_node): Don't call set_cfun here. Use
7999 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
8000 Set error_found for incorrectly represented calls to thunks.
8001
8002 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
8003
8004 PR debug/43092
8005 PR rtl-optimization/43494
8006 * rtl.h (for_each_inc_dec_fn): New type.
8007 (for_each_inc_dec): Declare.
8008 * rtlanal.c (struct for_each_inc_dec_ops): New type.
8009 (for_each_inc_dec_find_inc_dec): New fn.
8010 (for_each_inc_dec_find_mem): New fn.
8011 (for_each_inc_dec): New fn.
8012 * dse.c (struct insn_size): Remove.
8013 (replace_inc_dec, replace_inc_dec_mem): Remove.
8014 (emit_inc_dec_insn_before): New fn.
8015 (check_for_inc_dec): Use it, along with for_each_inc_dec.
8016 (canon_address): Pass mem modes to cselib_lookup.
8017 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
8018 (cselib_lookup_from_insn): Likewise.
8019 (cselib_subst_to_values): Likewise.
8020 * cselib.c (find_slot_memmode): New var.
8021 (cselib_find_slot): New fn. Use it instead of
8022 htab_find_slot_with_hash everywhere.
8023 (entry_and_rtx_equal_p): Use find_slot_memmode.
8024 (autoinc_split): New fn.
8025 (rtx_equal_for_cselib_p): Rename and implement in terms of...
8026 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
8027 Deal with autoinc. Special-case recursion into MEMs.
8028 (cselib_hash_rtx): Likewise.
8029 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
8030 address and MEM modes.
8031 (cselib_subst_to_values): Add memmode, pass it on.
8032 Deal with autoinc.
8033 (cselib_lookup): Add memmode argument, pass it on.
8034 (cselib_lookup_from_insn): Add memmode.
8035 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
8036 (struct cselib_record_autoinc_data): New.
8037 (cselib_record_autoinc_cb): New fn.
8038 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
8039 mode to cselib_lookup. Reset autoinced REGs here instead of...
8040 (cselib_process_insn): ... here.
8041 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
8042 to cselib_lookup.
8043 (add_uses): Likewise, also to cselib_subst_to_values.
8044 (add_stores): Likewise.
8045 * sched-deps.c (add_insn_mem_dependence): Pass mode to
8046 cselib_subst_to_values.
8047 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
8048 * gcse.c (do_local_cprop): Adjusted.
8049 * postreload.c (reload_cse_simplify_set): Adjusted.
8050 (reload_cse_simplify_operands): Adjusted.
8051 * sel-sched-dump (debug_mem_addr_value): Pass mode.
8052
8053 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
8054
8055 PR tree-optimization/45122
8056 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
8057 unsafe assumptions when there's more than one loop exit.
8058
8059 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8060
8061 PR target/47272
8062 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
8063 Document using vector double with the load/store builtins, and
8064 that the load/store builtins always use Altivec instructions.
8065
8066 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
8067 to use altivec memory instructions, even on VSX.
8068 (vector_altivec_store_<mode>): Ditto.
8069
8070 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
8071 function.
8072
8073 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8074 V2DF, V2DI support to load/store overloaded builtins.
8075
8076 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
8077 altivec load/store builtins for V2DF/V2DI types.
8078
8079 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8080 set avoid indexed addresses on power6 if -maltivec.
8081 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
8082 vector_altivec_load/vector_altivec_store builtins.
8083 (altivec_expand_st_builtin): Ditto.
8084 (altivec_expand_builtin): Add VSX memory builtins.
8085 (rs6000_init_builtins): Add V2DI types to internal types.
8086 (altivec_init_builtins): Add support for V2DF/V2DI altivec
8087 load/store builtins.
8088 (rs6000_address_for_altivec): Insure memory address is appropriate
8089 for Altivec.
8090
8091 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
8092 vec_vsx_ld and vec_vsx_st.
8093 (vsx_store_<mode>): Ditto.
8094
8095 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
8096 variables to hold long long types for VSX vector memory builtins.
8097 (RS6000_BTI_unsigned_long_long): Ditto.
8098 (long_long_integer_type_internal_node): Ditti.
8099 (long_long_unsigned_type_internal_node): Ditti.
8100
8101 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
8102 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
8103 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
8104
8105 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
8106 short cuts.
8107 (vec_vsx_st): Ditto.
8108
8109 2011-02-02 Joseph Myers <joseph@codesourcery.com>
8110
8111 * config/pa/pa-hpux10.opt: New.
8112 * config/hpux11.opt (pthread): New Driver option.
8113 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
8114 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
8115
8116 2011-02-02 Joseph Myers <joseph@codesourcery.com>
8117
8118 * config/ia64/vms.opt: New.
8119 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
8120
8121 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
8122
8123 PR target/47580
8124 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
8125 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
8126 generator functions.
8127 (vsx_floatuns<VSi><mode>2): Ditto.
8128 (vsx_fix_trunc<mode><VSi>2): Ditto.
8129 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
8130
8131 2011-02-02 Joseph Myers <joseph@codesourcery.com>
8132
8133 * config/i386/djgpp.opt (posix): New Driver option.
8134
8135 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
8136
8137 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
8138 Move to the unsupported targets list.
8139
8140 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
8141
8142 PR rtl-optimization/47525
8143 * df-scan.c: Update copyright years.
8144 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
8145 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
8146
8147 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8148
8149 * config/i386/sysv4.h (TARGET_VERSION): Remove.
8150 (SUBTARGET_RETURN_IN_MEMORY): Remove.
8151 (ASM_OUTPUT_ASCII): Remove.
8152 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
8153
8154 2011-02-02 Jeff Law <law@redhat.com>
8155
8156 PR middle-end/47543
8157 * reload.c (find_reloads_address): Handle reg+d address where both
8158 components are invalid by reloading the entire address.
8159
8160 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
8161 Richard Guenther <rguenther@suse.de>
8162
8163 PR tree-optimization/40979
8164 PR bootstrap/47044
8165 * passes.c (init_optimization_passes): After LIM call copy_prop
8166 and DCE to clean up.
8167 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
8168
8169 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
8170
8171 PR tree-optimization/47576
8172 PR tree-optimization/47555
8173 * doc/invoke.texi (scev-max-expr-complexity): Documented.
8174 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
8175 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
8176 * tree-scalar-evolution.c (follow_ssa_edge): Use
8177 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
8178
8179 2011-02-02 Richard Guenther <rguenther@suse.de>
8180
8181 PR tree-optimization/47566
8182 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
8183
8184 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
8185
8186 PR debug/47106
8187 PR debug/47402
8188 * tree-inline.c (declare_return_variable): Remove unused caller
8189 variable.
8190
8191 PR debug/47106
8192 PR debug/47402
8193 * tree-flow-inline.h (clear_is_used, is_used_p): New.
8194 * cfgexpand.c (account_used_vars_for_block): Use them.
8195 * tree-nrv.c (tree_nrv): Likewise.
8196 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
8197 (dump_scope_block): Likewise.
8198 (remove_unused_locals): Likewise.
8199
8200 PR debug/47106
8201 PR debug/47402
8202 * tree-inline.c (declare_return_variable): Add result decl to
8203 local decls only once.
8204 * gimple-low.c (record_vars_into): Mark newly-created variables
8205 as referenced.
8206
8207 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
8208
8209 PR debug/47498
8210 PR debug/47501
8211 PR debug/45136
8212 PR debug/45130
8213 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8214 debug insns.
8215 (no_real_insns_p, schedule_block, set_priorities): Drop special
8216 treatment of boundary debug insns.
8217 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8218 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
8219 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8220 (BOUNDARY_DEBUG_INSN_P): Likewise.
8221 (SCHEDULE_DEBUG_INSN_P): Likewise.
8222 * sched-rgn.c (init_ready_list): Drop special treatment of
8223 boundary debug insns.
8224 * final.c (rest_of_clean_state): Clear notes' BB.
8225
8226 2011-02-01 Joseph Myers <joseph@codesourcery.com>
8227
8228 * config/openbsd.opt (assert=): New Driver option.
8229
8230 2011-02-01 Joseph Myers <joseph@codesourcery.com>
8231
8232 * config/i386/nto.opt: New.
8233 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
8234
8235 2011-02-01 Joseph Myers <joseph@codesourcery.com>
8236
8237 * config/i386/netware.opt: New.
8238 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
8239
8240 2011-02-01 Joseph Myers <joseph@codesourcery.com>
8241
8242 * config/interix.opt (posix): New Driver option.
8243
8244 2011-02-01 DJ Delorie <dj@redhat.com>
8245
8246 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
8247
8248 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
8249 class for A0/A1.
8250
8251 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
8252
8253 PR tree-optimization/47561
8254 * toplev.c (process_options): Print the Graphite flags. Add
8255 flag_loop_flatten to the list of options requiring Graphite.
8256
8257 2011-02-01 Joseph Myers <joseph@codesourcery.com>
8258
8259 * config/i386/cygming.opt (posix): New Driver option.
8260
8261 2011-02-01 Joseph Myers <joseph@codesourcery.com>
8262
8263 * config/arm/vxworks.opt: New.
8264 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
8265
8266 2011-02-01 Joseph Myers <joseph@codesourcery.com>
8267
8268 * config/alpha/elf.opt: New.
8269 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
8270 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
8271
8272 2011-02-01 Richard Guenther <rguenther@suse.de>
8273
8274 PR tree-optimization/47559
8275 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
8276 store-motion on references that can throw.
8277
8278 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
8279
8280 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
8281 * tree-pass.h (TDF_CSELIB): New macro.
8282 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
8283 cselib_lookup): Check for it rather than for TDF_DETAILS.
8284
8285 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
8286
8287 PR driver/47547
8288 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
8289 is HOST_BIT_BUCKET.
8290
8291 * opts.c (finish_options): Don't add x_aux_base_name if it is
8292 HOST_BIT_BUCKET.
8293
8294 2011-02-01 Richard Guenther <rguenther@suse.de>
8295
8296 PR tree-optimization/47555
8297 Revert
8298 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
8299
8300 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
8301
8302 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
8303
8304 PR gcc/46692
8305 * config/lm32/t-lm32: Add multilib for all CPU options.
8306
8307 2011-02-01 Richard Guenther <rguenther@suse.de>
8308
8309 PR tree-optimization/47541
8310 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
8311 sure to have a field at offset zero.
8312
8313 2011-01-31 Joseph Myers <joseph@codesourcery.com>
8314
8315 * config/arc/arc.opt (EB, EL): New Driver options.
8316
8317 2011-01-31 Joseph Myers <joseph@codesourcery.com>
8318
8319 * config/alpha/osf5.opt: New.
8320 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
8321
8322 2011-01-31 Joseph Myers <joseph@codesourcery.com>
8323
8324 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
8325
8326 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
8327
8328 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
8329 -floop-interchange.
8330 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
8331 is an alias of -floop-interchange and that it requires the
8332 Graphite infrastructure.
8333 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
8334 flag_loop_interchange based on the value of flag_tree_loop_linear.
8335
8336 2011-01-31 Jakub Jelinek <jakub@redhat.com>
8337 Richard Guenther <rguenther@suse.de>
8338
8339 PR tree-optimization/47538
8340 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
8341 type instead of r1type, except for comparisons. For right
8342 shifts and comparisons punt if there are mismatches in
8343 sizetype vs. non-sizetype types.
8344
8345 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8346
8347 * doc/sourcebuild.texi (Effective-Target Keywords): Document
8348 avx_runtime.
8349
8350 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8351
8352 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
8353 version number.
8354 * configure: Regenerate.
8355
8356 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8357
8358 * configure.ac (gcc_cv_ld_static_option): Define.
8359 (gcc_cv_ld_dynamic_option): Define.
8360 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
8361 instead.
8362 (HAVE_LD_STATIC_DYNAMIC): Update message.
8363 (LD_STATIC_OPTION): Define.
8364 (LD_DYNAMIC_OPTION): Define.
8365 * configure: Regenerate.
8366 * config.in: Regenerate.
8367 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
8368 HAVE_LD_STATIC_DYNAMIC]: Use them.
8369
8370 2011-01-31 Nick Clifton <nickc@redhat.com>
8371
8372 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
8373 registers inside interrupt handlers if the handler is not a leaf
8374 function.
8375
8376 2011-01-31 Nick Clifton <nickc@redhat.com>
8377
8378 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
8379 reg_renumber returning an INVALID_REGNUM.
8380
8381 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
8382
8383 PR libgcj/44341
8384 * doc/install.texi: Document host options discarded when cross
8385 configuring target libraries.
8386
8387 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
8388
8389 Reverted:
8390 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
8391 PR debug/45136
8392 PR debug/45130
8393 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8394 debug insns.
8395 (no_real_insns_p, schedule_block, set_priorities): Drop special
8396 treatment of boundary debug insns.
8397 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8398 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
8399 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8400 (BOUNDARY_DEBUG_INSN_P): Likewise.
8401 (SCHEDULE_DEBUG_INSN_P): Likewise.
8402 * sched-rgn.c (init_ready_list): Drop special treatment of
8403 boundary debug insns.
8404 * final.c (rest_of_clean-state): Clear notes' BB.
8405
8406 2011-01-31 Alan Modra <amodra@gmail.com>
8407
8408 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
8409 toc relative expressions as we do in print_operand_address.
8410
8411 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
8412
8413 * doc/extend.texi: Follow spelling conventions.
8414 * doc/invoke.texi: Fix a typo.
8415
8416 2011-01-30 Joseph Myers <joseph@codesourcery.com>
8417
8418 * config/hpux11.opt: New.
8419 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
8420 ia64*-*-hpux*): Use hpux11.opt.
8421
8422 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
8423
8424 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
8425 to tmake_file.
8426
8427 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
8428
8429 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
8430 support sites.
8431
8432 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
8433
8434 * doc/install.texi (Binaries): Remove outdated reference for
8435 Motorola 68HC11/68HC12 downloads.
8436
8437 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
8438
8439 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
8440 Drepper's paper.
8441
8442 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
8443
8444 PR bootstrap/47147
8445 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
8446 used by NetBSD.
8447
8448 2011-01-28 Ahmad Sharif <asharif@google.com>
8449
8450 * value-prof.c (check_counter): Corrected error message.
8451
8452 2011-01-29 Jie Zhang <jie@codesourcery.com>
8453
8454 * config/arm/arm.c (arm_legitimize_reload_address): New.
8455 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
8456 arm_legitimize_reload_address.
8457 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
8458
8459 2011-01-28 Ian Lance Taylor <iant@google.com>
8460
8461 * godump.c (go_define): Ignore macros whose definitions include
8462 two adjacent operands.
8463
8464 2011-01-28 Jakub Jelinek <jakub@redhat.com>
8465
8466 PR target/42894
8467 * varasm.c (force_const_mem): Store copy of x in desc->constant
8468 instead of x itself.
8469 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
8470 itself into REG_EQUAL note.
8471
8472 2011-01-28 Joseph Myers <joseph@codesourcery.com>
8473
8474 * config/freebsd.opt (posix, rdynamic): New Driver options.
8475
8476 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8477
8478 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
8479 -Bstatic/-Bdynamic.
8480 * configure: Regenerate.
8481
8482 2011-01-27 Joseph Myers <joseph@codesourcery.com>
8483
8484 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
8485 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
8486
8487 2011-01-27 Anatoly Sokolov <aesok@post.ru>
8488
8489 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
8490 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
8491 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8492 (s390_preferred_reload_class): Make static. Change return and
8493 'rclass' argument type to reg_class_t.
8494
8495 2011-01-27 Jan Hubicka <jh@suse.cz>
8496
8497 PR middle-end/46949
8498 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
8499 (process_function_and_variable_attributes): Check defined weakrefs.
8500
8501 2011-01-27 Martin Jambor <mjambor@suse.cz>
8502
8503 PR tree-optimization/47228
8504 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
8505 build_ref_for_offset.
8506
8507 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8508
8509 * config/spu/spu-elf.h (ASM_SPEC): Remove.
8510
8511 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
8512
8513 PR rtl-optimization/46856
8514 * postreload.c (reload_combine_recognize_const_pattern): Do not
8515 separate cc0 setter and user on cc0 targets.
8516
8517 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
8518
8519 PR c/43082
8520 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
8521 passed a VOID_TYPE expression, immediately emit an error and
8522 return error_mark_node.
8523
8524 2011-01-26 Jeff Law <law@redhat.com>
8525
8526 PR rtl-optimization/47464
8527 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
8528 rather than may_trap_p as needed.
8529
8530 2011-01-26 DJ Delorie <dj@redhat.com>
8531
8532 PR rtl-optimization/46878
8533 * combine.c (insn_a_feeds_b): Check for the implicit cc0
8534 setter/user dependency as well.
8535
8536 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
8537
8538 PR rtl-optimization/44469
8539 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
8540 after removing trivially dead basic blocks.
8541
8542 2011-01-26 Joseph Myers <joseph@codesourcery.com>
8543
8544 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
8545 * config/frv/frv.h (LINK_SPEC): Likewise.
8546 * config/i386/netware.h (LINK_SPEC): Likewise.
8547 * config/m68k/linux.h (ASM_SPEC): Likewise.
8548 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
8549 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
8550 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8551 * config/sparc/linux.h (ASM_SPEC): Likewise.
8552 * config/sparc/linux64.h (ASM_SPEC): Likewise.
8553 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8554
8555 2011-01-26 Joseph Myers <joseph@codesourcery.com>
8556
8557 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
8558 * config/frv/frv.h (ASM_SPEC): Likewise.
8559 * config/m68k/linux.h (ASM_SPEC): Likewise.
8560 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
8561 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
8562 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8563 * config/sparc/linux.h (ASM_SPEC): Likewise.
8564 * config/sparc/linux64.h (ASM_SPEC): Likewise.
8565 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8566
8567 2011-01-26 Joseph Myers <joseph@codesourcery.com>
8568
8569 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
8570 * config/frv/frv.h (LINK_SPEC): Likewise.
8571 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
8572
8573 2011-01-26 Joseph Myers <joseph@codesourcery.com>
8574
8575 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
8576 * config/frv/frv.h (ASM_SPEC): Likewise.
8577 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
8578 * config/m68k/linux.h (ASM_SPEC): Likewise.
8579 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
8580 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8581 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8582 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
8583 * config/sparc/linux.h (ASM_SPEC): Likewise.
8584 * config/sparc/linux64.h (ASM_SPEC): Likewise.
8585 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8586 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
8587
8588 2011-01-26 Steve Ellcey <sje@cup.hp.com>
8589
8590 PR target/46997
8591 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
8592 (*mux2): Ditto.
8593 (vec_extract_evenodd_help): Ditto.
8594 (vec_extract_evenv4hi): Ditto.
8595 (vec_extract_oddv4hi): Ditto.
8596 (vec_interleave_lowv2si): Ditto.
8597 (vec_interleave_highv2si): Ditto.
8598 (vec_extract_evenv2si): Ditto.
8599 (vec_extract_oddv2si: Ditto.
8600 (vec_pack_trunc_v2si): Ditto.
8601
8602 2011-01-22 Jan Hubicka <jh@suse.cz>
8603
8604 PR target/47237
8605 * cgraph.h (cgraph_local_info): New field can_change_signature.
8606 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
8607 signature can change.
8608 (ipcp_estimate_growth): Call sequence simplify only if calle signature
8609 can change.
8610 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
8611 (cgraph_function_versioning): We can not change signature of functions
8612 that don't allow that.
8613 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
8614 (lto_input_node): Likewise.
8615 * ipa-inline.c (compute_inline_parameters): Compute
8616 local.can_change_signature.
8617 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
8618 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
8619 functions that can not change signature.
8620 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
8621 init_cumulative_args): Do not use local calling conventions
8622 for functions that can not change signature.
8623
8624 2011-01-22 Jan Hubicka <jh@suse.cz>
8625
8626 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
8627
8628 2011-01-26 Richard Guenther <rguenther@suse.de>
8629
8630 PR tree-optimization/47190
8631 * cgraphunit.c (process_common_attributes): New function.
8632 (process_function_and_variable_attributes): Use it.
8633
8634 2011-01-26 Richard Guenther <rguenther@suse.de>
8635
8636 PR lto/47423
8637 * cgraphbuild.c (record_eh_tables): Record reference to personality
8638 function.
8639
8640 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
8641
8642 PR debug/45454
8643 * sel-sched.c (moveup_expr): Don't let debug insns prevent
8644 non-debug insns from moving up.
8645
8646 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
8647
8648 PR target/40125
8649 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
8650 t-dlldir{,-x} fragment for build and add it to tmake_file.
8651 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
8652 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
8653 * config/i386/t-dlldir: New file.
8654 (SHLIB_DLLDIR): Define.
8655 * config/i386/t-dlldir-x: New file.
8656 (SHLIB_DLLDIR): Define.
8657 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
8658 (SHLIB_INSTALL): Use it.
8659
8660 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
8661
8662 PR target/47246
8663 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
8664 lower bound of the allowed Thumb-2 coprocessor load/store
8665 index range to -256. Add explaining comment.
8666
8667 2011-01-25 Ian Lance Taylor <iant@google.com>
8668
8669 * godump.c (go_define): Improve lexing of macro expansion to only
8670 accept expressions which match Go spec.
8671
8672 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
8673
8674 PR c++/43601
8675 * tree.c (handle_dll_attribute): Handle it.
8676 * doc/extend.texi (@item dllexport): Mention it.
8677 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
8678
8679 2011-01-25 Ian Lance Taylor <iant@google.com>
8680
8681 PR tree-optimization/26854
8682 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
8683 (decl_jump_unsafe): Move higher in file, with no other change.
8684 (bind): Set has_jump_unsafe_decl if appropriate.
8685 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
8686 (check_earlier_gotos): Likewise.
8687 (c_check_switch_jump_warnings): Likewise.
8688
8689 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
8690
8691 * doc/invoke.texi (Warning Options): Add missing hyphen.
8692 (-fprofile-dir): Minor grammatical fixes.
8693 (-fbranch-probabilities): Likewise.
8694
8695 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
8696
8697 PR debug/45136
8698 PR debug/45130
8699 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8700 debug insns.
8701 (no_real_insns_p, schedule_block, set_priorities): Drop special
8702 treatment of boundary debug insns.
8703 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8704 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
8705 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8706 (BOUNDARY_DEBUG_INSN_P): Likewise.
8707 (SCHEDULE_DEBUG_INSN_P): Likewise.
8708 * sched-rgn.c (init_ready_list): Drop special treatment of
8709 boundary debug insns.
8710 * final.c (rest_of_clean-state): Clear notes' BB.
8711
8712 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8713
8714 * Makefile.in (LAMBDA_H): Removed.
8715 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
8716 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
8717 lambda-trans.o, and tree-loop-linear.o.
8718 (lto-symtab.o): Remove dependence on LAMBDA_H.
8719 (tree-loop-linear.o): Remove rule.
8720 (lambda-mat.o): Same.
8721 (lambda-trans.o): Same.
8722 (lambda-code.o): Same.
8723 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
8724 (tree-vect-slp.o): Same.
8725 * hwint.h (gcd): Moved here.
8726 (least_common_multiple): Same.
8727 * lambda-code.c: Removed.
8728 * lambda-mat.c: Removed.
8729 * lambda-trans.c: Removed.
8730 * lambda.h: Removed.
8731 * tree-loop-linear.c: Removed.
8732 * lto-symtab.c: Do not include lambda.h.
8733 * omega.c (gcd): Removed.
8734 * passes.c (init_optimization_passes): Remove pass_linear_transform.
8735 * tree-data-ref.c (print_lambda_vector): Moved here.
8736 (lambda_vector_copy): Same.
8737 (lambda_matrix_copy): Same.
8738 (lambda_matrix_id): Same.
8739 (lambda_vector_first_nz): Same.
8740 (lambda_matrix_row_add): Same.
8741 (lambda_matrix_row_exchange): Same.
8742 (lambda_vector_mult_const): Same.
8743 (lambda_vector_negate): Same.
8744 (lambda_matrix_row_negate): Same.
8745 (lambda_vector_equal): Same.
8746 (lambda_matrix_right_hermite): Same.
8747 * tree-data-ref.h: Do not include lambda.h.
8748 (lambda_vector): Moved here.
8749 (lambda_matrix): Same.
8750 (dependence_level): Same.
8751 (lambda_transform_legal_p): Removed declaration.
8752 (lambda_collect_parameters): Same.
8753 (lambda_compute_access_matrices): Same.
8754 (lambda_vector_gcd): Same.
8755 (lambda_vector_new): Same.
8756 (lambda_vector_clear): Same.
8757 (lambda_vector_lexico_pos): Same.
8758 (lambda_vector_zerop): Same.
8759 (lambda_matrix_new): Same.
8760 * tree-flow.h (least_common_multiple): Removed declaration.
8761 * tree-parloops.c (lambda_trans_matrix): Moved here.
8762 (LTM_MATRIX): Same.
8763 (LTM_ROWSIZE): Same.
8764 (LTM_COLSIZE): Same.
8765 (LTM_DENOMINATOR): Same.
8766 (lambda_trans_matrix_new): Same.
8767 (lambda_matrix_vector_mult): Same.
8768 (lambda_transform_legal_p): Same.
8769 * tree-pass.h (pass_linear_transform): Removed declaration.
8770 * tree-ssa-loop.c (tree_linear_transform): Removed.
8771 (gate_tree_linear_transform): Removed.
8772 (pass_linear_transform): Removed.
8773 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
8774 flag_loop_interchange.
8775
8776 2011-01-25 Jakub Jelinek <jakub@redhat.com>
8777
8778 PR tree-optimization/47265
8779 PR tree-optimization/47443
8780 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
8781 if name still has some uses.
8782
8783 2011-01-25 Martin Jambor <mjambor@suse.cz>
8784
8785 PR tree-optimization/47382
8786 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
8787 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
8788
8789 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
8790
8791 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
8792 sjlj_except_unwind_info.
8793
8794 2011-01-25 Richard Guenther <rguenther@suse.de>
8795
8796 PR tree-optimization/47426
8797 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
8798 visible functions results escape.
8799
8800 2011-01-25 Jakub Jelinek <jakub@redhat.com>
8801
8802 PR target/45701
8803 * config/arm/arm.c (any_sibcall_uses_r3): New function.
8804 (arm_get_frame_offsets): Use it.
8805
8806 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8807 Jakub Jelinek <jakub@redhat.com>
8808
8809 PR tree-optimization/47271
8810 * tree-if-conv.c (bb_postdominates_preds): New.
8811 (if_convertible_bb_p): Call bb_postdominates_preds.
8812 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
8813 (predicate_scalar_phi): Call bb_postdominates_preds.
8814
8815 2011-01-25 Nick Clifton <nickc@redhat.com>
8816
8817 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
8818 * config/rx/rx.c (rx_function_value): Likewise.
8819 (rx_promote_function_mode): Likewise.
8820 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
8821 in order to make it legitimate.
8822 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
8823 make sure that the first operand is the same as the result register.
8824 (addsi3_unspec): Delete.
8825 (subdi3): Do not accept immediate operands.
8826 (subdi3_internal): Likewise.
8827
8828 2011-01-25 Jeff Law <law@redhat.com>
8829
8830 PR rtl-optimization/37273
8831 * ira-costs.c (scan_one_insn): Detect constants living in memory and
8832 handle them like argument loads from stack slots. Do not double
8833 count memory for memory constants and argument loads from stack slots.
8834
8835 2011-01-25 Jakub Jelinek <jakub@redhat.com>
8836
8837 PR tree-optimization/47427
8838 PR tree-optimization/47428
8839 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8840 coalesce if the new root var would be TREE_READONLY.
8841
8842 2011-01-25 Richard Guenther <rguenther@suse.de>
8843
8844 PR middle-end/47414
8845 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
8846 correct type for TBAA.
8847
8848 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8849
8850 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
8851 (close_phi_written_to_memory): Call for_each_index with
8852 dr_indices_valid_in_loop.
8853
8854 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8855
8856 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
8857 when it is initialized.
8858
8859 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8860
8861 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
8862 call to graphite_find_data_references_in_stmt.
8863 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
8864 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
8865 call to graphite_find_data_references_in_stmt.
8866 (analyze_drs_in_stmts): Same.
8867 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
8868 in which the scalar analysis of indices is performed.
8869 (create_data_ref): Same. Update call to dr_analyze_indices.
8870 (find_data_references_in_stmt): Update call to create_data_ref.
8871 (graphite_find_data_references_in_stmt): Same.
8872 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
8873 declaration.
8874 (create_data_ref): Same.
8875 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
8876 call to create_data_ref.
8877
8878 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8879
8880 * graphite-sese-to-poly.c (build_poly_scop): Move
8881 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
8882
8883 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8884
8885 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
8886 VAR_DECL, PARM_DECL, and RESULT_DECL.
8887
8888 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8889
8890 * graphite-dependences.c (reduction_dr_1): Allow several reductions
8891 in a reduction PBB.
8892 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
8893 that have already been marked as PBB_IS_REDUCTION.
8894
8895 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8896
8897 * graphite-scop-detection.c (same_close_phi_node): New.
8898 (remove_duplicate_close_phi): New.
8899 (make_close_phi_nodes_unique): New.
8900 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
8901
8902 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8903
8904 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
8905 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
8906 of both data references to be the same.
8907
8908 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8909
8910 * graphite-dependences.c (build_lexicographical_constraint): Remove
8911 the gdim parameter.
8912 (build_lexicographical_constraint): Adjust call to
8913 ppl_powerset_is_empty.
8914 (dependence_polyhedron): Same.
8915 (graphite_legal_transform_dr): Same.
8916 (graphite_carried_dependence_level_k): Same.
8917 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
8918 parameter.
8919 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
8920
8921 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8922
8923 * graphite-sese-to-poly.c
8924 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
8925 (close_phi_written_to_memory): New.
8926 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
8927 and unshare_expr.
8928
8929 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8930
8931 * doc/install.texi: Update the expected version number of PPL to 0.11.
8932 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
8933 #if PPL_VERSION_MINOR < 11.
8934
8935 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8936
8937 * graphite-dependences.c: Include graphite-cloog-util.h.
8938 (new_poly_ddr): Inlined into dependence_polyhedron.
8939 (free_poly_ddr): Moved close by new_poly_ddr.
8940 (dependence_polyhedron_1): Renamed dependence_polyhedron.
8941 Early return NULL when ppl_powerset_is_empty returns true.
8942 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
8943 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
8944 (graphite_legal_transform_dr): Call new_poly_ddr.
8945 (graphite_carried_dependence_level_k): Same.
8946 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
8947 (dot_transformed_deps_stmt_1): Removed.
8948 (dot_deps_stmt_1): Call dot_deps_stmt_2.
8949 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
8950 (dot_deps_1): Call dot_deps_2.
8951 * Makefile.in (graphite-dependences.o): Add missing dependence on
8952 graphite-cloog-util.h.
8953
8954 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8955
8956 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
8957 (build_lexicographical_constraint): Same.
8958 (dependence_polyhedron_1): Same.
8959 (graphite_legal_transform_dr): Same.
8960 (graphite_carried_dependence_level_k): Same.
8961 * graphite-ppl.c (ppl_powerset_is_empty): New.
8962 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
8963 * tree-data-ref.c (dump_data_reference): Print the basic block index.
8964
8965 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8966
8967 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
8968 the "a followed by b" relation and document it.
8969
8970 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8971
8972 * graphite-dependences.c (build_lexicographical_constraint): Stop the
8973 iteration when the bag of constraints is empty.
8974
8975 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8976
8977 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
8978
8979 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8980
8981 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
8982 nest and two loop depths as parameters.
8983 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
8984 lst_perfect_nestify.
8985
8986 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8987
8988 * graphite-dependences.c (print_pddr): Call
8989 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
8990
8991 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
8992
8993 * graphite-ppl.c (debug_gmp_value): New.
8994 * graphite-ppl.h (debug_gmp_value): Declared.
8995
8996 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
8997
8998 * doc/install.texi: Document availability of cloog-0.16.
8999
9000 2011-01-25 Vladimir Kargov <kargov@gmail.com>
9001
9002 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
9003 invalid postdominance info.
9004
9005 2011-01-24 Jan Hubicka <jh@suse.cz>
9006
9007 PR c/21659
9008 * doc/extend.texi (weak pragma): Drop claim that it must
9009 appear before definition.
9010 * varasm.c (merge_weak, declare_weak): Only sanity check
9011 that DECL is not output at a time it is declared weak.
9012
9013 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
9014
9015 * machmode.def: Fixed comments.
9016
9017 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
9018
9019 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
9020
9021 2011-01-24 Paul Koning <ni1d@arrl.net>
9022
9023 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
9024 WORDS_BIG_ENDIAN.
9025
9026 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
9027
9028 PR target/46519
9029 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
9030 (block_info): Add scanned and prev.
9031 (move_or_delete_vzeroupper_2): Return if the basic block
9032 has been scanned and the upper 128bit state is unchanged
9033 from the last scan.
9034 (move_or_delete_vzeroupper_1): Return true if the exit
9035 state is changed.
9036 (move_or_delete_vzeroupper): Visit basic blocks using the
9037 work-list based algorithm based on vt_find_locations in
9038 var-tracking.c.
9039
9040 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
9041
9042 2011-01-24 Nick Clifton <nickc@redhat.com>
9043
9044 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
9045 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
9046 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
9047 then define __v850e1__.
9048 * doc/invoke.texi: Document -mv850es.
9049
9050 2011-01-24 Richard Henderson <rth@redhat.com>
9051
9052 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
9053 compound unordered comparisons.
9054 * config/rx/rx.c (rx_split_fp_compare): Remove.
9055 * config/rx/rx-protos.h: Update.
9056 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
9057 (cbranchsf4): Don't call rx_split_fp_compare.
9058 (*cbranchsf4): Use rx_split_cbranch.
9059 (*cmpsf): Don't accept "i" constraint.
9060 (*conditional_branch): Only valid after reload.
9061 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
9062
9063 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
9064
9065 PR target/47385
9066 * config/rs6000/altivec.md (vector constant splitters): Add
9067 support for creating vector single precision constants if -mvsx is
9068 used and we would create the constant using Altivec primitives.
9069
9070 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
9071 Richard Sandiford <rdsandiford@googlemail.com>
9072
9073 PR rtl-optimization/47166
9074 * reload1.c (emit_reload_insns): Disable the spill_reg_store
9075 mechanism for PRE_MODIFY and POST_MODIFY.
9076 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
9077 reloadreg.
9078
9079 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
9080
9081 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
9082
9083 2011-01-22 Jan Hubicka <jh@suse.cz>
9084
9085 PR lto/47333
9086 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
9087
9088 2011-01-22 Jan Hubicka <jh@suse.cz>
9089
9090 PR tree-optimization/43884
9091 PR lto/44334
9092 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
9093 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
9094
9095 2011-01-22 Anatoly Sokolov <aesok@post.ru>
9096
9097 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9098 * config/s390/s390.c (s390_register_move_cost,
9099 s390_memory_move_cost): New.
9100 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9101
9102 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9103
9104 PR middle-end/47401
9105 * except.c (sjlj_assign_call_site_values): Move setting the
9106 crtl->uses_eh_lsda flag to ...
9107 (sjlj_mark_call_sites): ... here.
9108 (sjlj_emit_function_enter): Support NULL dispatch label.
9109 (sjlj_build_landing_pads): In a function with no landing pads
9110 that still has must-not-throw regions, generate code to register
9111 a personality function with empty LSDA.
9112
9113 2011-01-21 Richard Henderson <rth@redhat.com>
9114
9115 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
9116
9117 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
9118
9119 * compare-elim.c: New file.
9120 * Makefile.in (OBJS-common): Add it.
9121 (compare-elim.o): New.
9122 * common.opt (fcompare-elim): New.
9123 * opts.c (default_options_table): Add OPT_fcompare_elim.
9124 * tree-pass.h (pass_compare_elim_after_reload): New.
9125 * passes.c (init_optimization_passes): Add it.
9126 * recog.h: Protect against re-inclusion.
9127 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
9128 * doc/invoke.texi (-fcompare-elim): Document it.
9129 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
9130 * doc/tm.texi: Rebuild.
9131
9132 2011-01-22 Nick Clifton <nickc@redhat.com>
9133
9134 * config/rx/rx.md (cstoresf4): Pass comparison operator to
9135 rx_split_fp_compare.
9136
9137 2011-01-22 Nick Clifton <nickc@redhat.com>
9138
9139 * config/rx/rx.md (UNSPEC_CONST): New.
9140 (deallocate_and_return): Wrap the amount popped off the stack in
9141 an UNSPEC_CONST in order to stop it being rejected by
9142 -mmax-constant-size.
9143 (pop_and_return): Add a "(return)" rtx.
9144 (call): Drop the immediate operand.
9145 (call_internal): Likewise.
9146 (call_value): Likewise.
9147 (call_value_internal): Likewise.
9148 (sibcall_internal): Likewise.
9149 (sibcall_value_internal): Likewise.
9150 (sibcall): Likewise. Generate an explicit call using
9151 sibcall_internal.
9152 (sibcall_value): Likewise.
9153 (mov<>): FAIL if a constant operand is not legitimate.
9154 (addsi3_unpsec): New pattern.
9155
9156 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
9157 (ok_for_max_constant): New function.
9158 (gen_safe_add): New function.
9159 (rx_expand_prologue): Use gen_safe_add.
9160 (rx_expand_epilogue): Likewise.
9161 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
9162 UNSPEC CONSTs.
9163
9164 2011-01-21 Jeff Law <law@redhat.com>
9165
9166 PR tree-optimization/47053
9167 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
9168 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
9169 statements are deleted.
9170 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
9171 is nonempty, then purge dead edges and cleanup the CFG.
9172
9173 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
9174
9175 PR debug/47402
9176 Temporarily revert:
9177 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
9178 PR debug/47106
9179 * tree-dfa.c (create_var_ann): Mark variable as used.
9180
9181 2011-01-21 Jakub Jelinek <jakub@redhat.com>
9182
9183 PR middle-end/45566
9184 * except.c (convert_to_eh_region_ranges): Emit queued no-region
9185 notes from other section in hot/cold partitioning even if
9186 last_action is -3. Increment call_site_base.
9187
9188 PR rtl-optimization/47366
9189 * fwprop.c (forward_propagate_into): Return bool. If
9190 any changes are made, -fnon-call-exceptions is used and
9191 REG_EH_REGION note is present, call purge_dead_edges
9192 and return true if it purged anything.
9193 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
9194 any EH edges were purged.
9195
9196 2011-01-21 Jeff Law <law@redhat.com>
9197
9198 PR rtl-optimization/41619
9199 * caller-save.c (setup_save_areas): Break out code to determine
9200 which hard regs are live across calls by examining the reload chains
9201 so that it is always used.
9202 Eliminate code which checked REG_N_CALLS_CROSSED.
9203
9204 2011-01-21 Jakub Jelinek <jakub@redhat.com>
9205
9206 PR tree-optimization/47355
9207 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
9208 NOP has non-debug uses beyond PHIs in new_bb.
9209
9210 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
9211
9212 PR debug/47106
9213 * cfgexpand.c (account_used_vars_for_block): Only account vars
9214 that are annotated as used.
9215 (estimated_stack_frame_size): Don't set TREE_USED.
9216 * tree-dfa.c (create_var_ann): Mark variable as used.
9217
9218 2011-01-21 Richard Guenther <rguenther@suse.de>
9219
9220 PR middle-end/47395
9221 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
9222
9223 2011-01-21 Richard Guenther <rguenther@suse.de>
9224
9225 PR tree-optimization/47365
9226 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
9227 (vn_reference_lookup_pieces): Adjust.
9228 (vn_reference_lookup): Likewise.
9229 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
9230 (vn_reference_lookup_3): Only look through kills if in
9231 VN_WALKREWRITE mode.
9232 (vn_reference_lookup_pieces): Adjust.
9233 (vn_reference_lookup): Likewise.
9234 (visit_reference_op_load): Likewise.
9235 (visit_reference_op_store): Likewise.
9236 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
9237 (compute_avail): Likewise.
9238 (eliminate): Likewise.
9239
9240 2011-01-21 Jakub Jelinek <jakub@redhat.com>
9241
9242 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
9243 DECL_IGNORED_P non-reg vars if they are used.
9244
9245 PR tree-optimization/47391
9246 * varpool.c (const_value_known_p): Return false if
9247 decl is volatile.
9248
9249 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
9250
9251 PR bootstrap/47215
9252 * config/i386/i386.c (ix86_local_alignment): Handle
9253 case for va_list_type_node is nil.
9254 (ix86_canonical_va_list_type): Likewise.
9255
9256 2011-01-21 Alan Modra <amodra@gmail.com>
9257
9258 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
9259 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
9260
9261 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9262
9263 * config/arm/arm.md (define_attr type): Rename f_load
9264 and f_store to f_fpa_load and f_fpa_store. Update.
9265 (write_conflict): Deal with rename fallout.
9266 (*push_fp_multi): Likewise.
9267 * config/arm/fpa.md (f_load): Use f_fpa_load.
9268 (f_store): Use f_fpa_store.
9269 (*movsf_fpa): Likewise.
9270 (*movdf_fpa): Likewise.
9271 (*movxf_fpa): Likewise.
9272 (*thumb2_movsf_fpa): Likewise.
9273 (*thumb2_movdf_fpa): Likewise.
9274 (*thumb2_movxf_fpa): Likewise.
9275 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
9276 f_loadd and f_stored.
9277 (*thumb2_movdi_vfp): Likewise.
9278 (*thumb2_movsf_vfp): Fix attribute to f_loads.
9279 (*thumb2_movsi_vfp): Likewise.
9280 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
9281 Use f_loads instead of f_load.
9282 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
9283
9284 2011-01-20 Anatoly Sokolov <aesok@post.ru>
9285
9286 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9287 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
9288 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9289 (xtensa_mode_dependent_address_p): New function.
9290 (constantpool_address_p): Make static. Change return type to bool.
9291 Change argument type to const_rtx. Use CONST_INT_P predicate.
9292
9293 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
9294
9295 PR debug/46583
9296 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
9297
9298 2011-01-20 Jakub Jelinek <jakub@redhat.com>
9299
9300 PR debug/47283
9301 * cfgexpand.c (expand_debug_expr): Instead of generating
9302 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
9303 etc. handling.
9304
9305 2011-01-20 Richard Guenther <rguenther@suse.de>
9306
9307 PR middle-end/47370
9308 * tree-inline.c (remap_gimple_op_r): Recurse manually for
9309 the pointer operand of MEM_REFs.
9310
9311 2011-01-20 Jakub Jelinek <jakub@redhat.com>
9312
9313 PR tree-optimization/46130
9314 * ipa-split.c (consider_split): If return_bb contains non-virtual
9315 PHIs other than for retval or if split_function would not adjust it,
9316 refuse to split.
9317
9318 2011-01-20 Richard Guenther <rguenther@suse.de>
9319
9320 PR tree-optimization/47167
9321 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
9322 Revert previous change, only avoid enumeral type changes.
9323
9324 2011-01-19 Mike Stump <mikestump@comcast.net>
9325
9326 * doc/tm.texi.in (BRANCH_COST): Englishify.
9327 * doc/tm.texi (BRANCH_COST): Likewise.
9328
9329 2011-01-19 Dodji Seketeli <dodji@redhat.com>
9330
9331 PR c++/47291
9332 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
9333 (gen_scheduled_generic_parms_dies): New functions.
9334 (gen_struct_or_union_type_die): Schedule template parameters DIEs
9335 generation for the end of CU compilation.
9336 (dwarf2out_finish): Generate template parameters DIEs here.
9337
9338 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
9339
9340 PR debug/46240
9341 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
9342 debug bind stmt on merge edges.
9343
9344 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
9345
9346 PR debug/47079
9347 PR debug/46724
9348 * function.c (instantiate_expr): Instantiate incoming rtl of
9349 implicit arguments, and recurse on VALUE_EXPRs.
9350 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
9351 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
9352
9353 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
9354
9355 * c-parser.c (c_parser_for_statement): Initialize
9356 collection_expression.
9357
9358 2011-01-19 Joseph Myers <joseph@codesourcery.com>
9359
9360 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
9361
9362 2011-01-19 Joseph Myers <joseph@codesourcery.com>
9363
9364 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
9365 (LINK_SHLIB_SPEC): Don't use %(link_path).
9366 (SUBTARGET_EXTRA_SPECS): Remove link_path.
9367
9368 2011-01-19 Joseph Myers <joseph@codesourcery.com>
9369
9370 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
9371 (NO_SHARED_LIB_SUPPORT): Remove.
9372 (LINK_SHLIB_SPEC): Remove one conditional definition.
9373
9374 2011-01-19 Joseph Myers <joseph@codesourcery.com>
9375
9376 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
9377 %{call_shared}.
9378 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
9379 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
9380 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
9381 %{call_shared} and conditionals on these options not being passed.
9382 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
9383 %{call_shared}.
9384
9385 2011-01-19 Jakub Jelinek <jakub@redhat.com>
9386
9387 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
9388 simplify.
9389
9390 * ipa-split.c: Spelling fixes.
9391
9392 2011-01-19 Richard Henderson <rth@redhat.com>
9393
9394 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
9395 (*mulsi3): Likewise.
9396
9397 * longlong.h [__mn10300__] (count_leading_zeros): New.
9398 [__mn10300__] (umul_ppmm, smul_ppmm): New.
9399 [__mn10300__] (add_ssaaaa, subddmmss): New.
9400 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
9401 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
9402
9403 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9404
9405 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
9406
9407 2011-01-19 Richard Henderson <rth@redhat.com>
9408
9409 * config/mn10300/mn10300.md (addsi3_flags): New.
9410 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
9411 (subsi3_flags, subc_internal, subdi3): New.
9412 (subdi3_internal, *subdi3_degenerate): New.
9413 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
9414
9415 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
9416 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
9417 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
9418 * config/mn10300/mn10300-protos.h: Update.
9419 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
9420 (return_ret): Likewise. Rename from return_internal_regs.
9421 (return_internal): Remove.
9422
9423 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
9424 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
9425 (mn10300_legitimate_constant_p): Likewise.
9426 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
9427 (mn10300_frame_size): New.
9428 (mn10300_expand_prologue): Use it.
9429 (mn10300_expand_epilogue): Likewise.
9430 (mn10300_initial_offset): Likewise.
9431 * config/mn10300/mn10300-protos.h: Update.
9432 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
9433 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
9434 (prologue, epilogue, return_internal): Tidy output code.
9435 (mn10300_store_multiple_operation, return): Likewise.
9436 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
9437 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
9438 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
9439 (load_pic, am33_load_pic): New.
9440 (mn10300_load_pic0, mn10300_load_pic1): New.
9441
9442 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
9443 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
9444 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
9445 (cc_flags_for_mode, cc_flags_for_code): New.
9446 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
9447 overflow flag is not valid. Validate that the flags we need
9448 for the comparison are valid.
9449 (mn10300_output_cmp): Remove.
9450 (mn10300_output_add): New.
9451 (mn10300_select_cc_mode): Use cc_flags_for_code.
9452 (mn10300_split_cbranch): New.
9453 (mn10300_match_ccmode): New.
9454 (mn10300_split_and_operand_count): New.
9455 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
9456 to the function.
9457 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
9458 (addsi3): ... here. Use mn10300_output_add.
9459 (*addsi3_flags): New.
9460 (*am33_subsi3, *mn10300_subsi3): Merge...
9461 (subsi3): ... here. Use attribute isa.
9462 (*subsi3_flags): New.
9463 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
9464 when possible.
9465 (*am33_andsi3, *mn10300_andsi3): Merge...
9466 (andsi3): ... here.
9467 (*andsi3_flags): New.
9468 (andsi3 splitters): New.
9469 (*am33_iorsi3, *mn10300_iorsi3): Merge...
9470 (iorsi3): ... here.
9471 (*iorsi3_flags): New.
9472 (*am33_xorsi3, *mn10300_xorsi3): Merge...
9473 (xorsi3): ... here.
9474 (*xorsi3_flags): New.
9475 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
9476 (one_cmplsi2): ... here.
9477 (*one_cmplsi2_flags): New.
9478 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
9479 instead of "dax" in constraints. Use mn10300_split_cbranch.
9480 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
9481 use matching constraints to eliminate a self-comparison.
9482 (*integer_conditional_branch): Rename from integer_conditional_branch.
9483 Use int_mode_flags to match CC_REG.
9484 (*cbranchsi4_btst, *btstsi): New.
9485 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
9486 mn10300_split_cbranch.
9487 (*am33_cmpsf): Rename from am33_cmpsf.
9488 (*float_conditional_branch): Rename from float_conditional_branch.
9489 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
9490 (zero_extendqisi2): ... here.
9491 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
9492 (zero_extendhisi2): ... here.
9493 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
9494 (extendqisi2): ... here.
9495 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
9496 (extendhisi2): ... here.
9497 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
9498 (ashlsi3): ... here.
9499 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
9500 (lshrsi3): ... here.
9501 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
9502 (ashrsi3): ... here.
9503 (consecutive add peephole): Remove.
9504 * config/mn10300/predicates.md (label_ref_operand): New.
9505 (int_mode_flags): New.
9506 (CCZN_comparison_operator): New.
9507
9508 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
9509 (throughput_42_latency_43): New reservation.
9510 (mulsidi3, umulsidi3): New expanders.
9511 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
9512 the MDR register to allocation; separately allocate the low and
9513 high parts of the DImode result.
9514 (umulsidi3_internal): Similarly.
9515 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
9516 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
9517 (udivsi3, umodsi3): Remove.
9518 (udivmodsi4, divmodsi4): New expanders.
9519 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
9520 (*divmodsi4): Simiarly.
9521 (ext_internal): New.
9522
9523 * config/mn10300/constraints.md ("z"): New constraint.
9524 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
9525 (FIXED_REGISTERS): Don't fix MDR.
9526 (CALL_USED_REGSITERS): Reformat nicely.
9527 (REG_ALLOC_ORDER): Add MDR.
9528 (enum regclass): Add MDR_REGS.
9529 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
9530 (IRA_COVER_CLASSES): Add MDR_REGS.
9531 (REGNO_REG_CLASS): Handle MDR_REG.
9532 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
9533 (mn10300_register_move_cost): Likewise.
9534 * config/mn10300/mn10300.md (MDR_REG): New.
9535 (*movsi_internal): Handle moves to/from MDR_REGS.
9536
9537 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
9538 POST_MODIFY.
9539 (mn10300_secondary_reload): Tidy combination reload classes.
9540 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
9541 addresses for AM33. Allow symbolic offsets for reg+imm.
9542 (mn10300_regno_in_class_p): New.
9543 (mn10300_legitimize_reload_address): New.
9544 * config/mn10300/mn10300.h (enum reg_class): Remove
9545 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
9546 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
9547 SP_OR_GENERAL_REGS.
9548 (REG_CLASS_NAMES): Update to match.
9549 (REG_CLASS_CONTENTS): Likewise.
9550 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
9551 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
9552 (REGNO_IN_RANGE_P): Remove.
9553 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
9554 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
9555 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
9556 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
9557 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
9558 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
9559 (REGNO_GENERAL_P): New.
9560 (HAVE_POST_MODIFY_DISP): New.
9561 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
9562 (LEGITIMIZE_RELOAD_ADDRESS): New.
9563 * config/mn10300/mn10300-protos.h: Update.
9564
9565 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
9566 DATA_REGS for AM33 stack-pointer destination.
9567 (mn10300_preferred_output_reload_class): Likewise.
9568 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
9569 into a form appropriate for ...
9570 (TARGET_SECONDARY_RELOAD): New.
9571 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
9572 * config/mn10300/mn10300-protos.h: Update.
9573 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
9574 reload_insi; use the "A" constraint for the scratch; handle AM33
9575 moves of sp to non-address registers.
9576
9577 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
9578 (*movqi_internal): ... here.
9579 (*am33_movhi, *mn10300_movhi): Merge into...
9580 (*movhi_internal): ... here.
9581 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
9582 as the source/destination of moves from/to SP.
9583 (movsf): Only allow for AM33-2.
9584 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
9585 any integer constant constraint. Only allow for AM33-2. Tidy
9586 all of the alternative outputs.
9587 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
9588 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
9589 for MN103.
9590 (udivsi3, umodsi3): New patterns for MN103 only.
9591
9592 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
9593
9594 * doc/tm.texi.in: Spell out that a lack of register class unions
9595 can lead to ICEs.
9596 * doc/tm.texi: Regenerate.
9597
9598 2011-01-19 Jakub Jelinek <jakub@redhat.com>
9599
9600 PR rtl-optimization/47337
9601 * dce.c (check_argument_store): New function.
9602 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
9603
9604 PR tree-optimization/47290
9605 * tree-eh.c (infinite_empty_loop_p): New function.
9606 (cleanup_empty_eh): Use it.
9607
9608 2011-01-18 Steve Ellcey <sje@cup.hp.com>
9609
9610 PR target/46997
9611 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
9612 (a64_expand_widen_sum): Ditto.
9613 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
9614 (vec_extract_evenodd_help): Ditto.
9615 (vec_extract_evenv4hi): Ditto.
9616 (vec_extract_oddv4hi): Ditto.
9617 (vec_extract_evenv2si): Ditto.
9618 (vec_extract_oddv2si): Ditto.
9619 (vec_extract_evenv2sf): Ditto.
9620 (vec_extract_oddv2sf): Ditto.
9621 (vec_pack_trunc_v4hi: Ditto.
9622 (vec_pack_trunc_v2si): Ditto.
9623 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
9624 (vec_interleave_highv8qi): Ditto.
9625 (mix1_r): Ditto.
9626 (vec_extract_oddv8qi): Ditto.
9627 (vec_interleave_lowv4hi): Ditto.
9628 (vec_interleave_highv4hi): Ditto.
9629 (vec_interleave_lowv2si): Ditto.
9630 (vec_interleave_highv2si): Ditto.
9631
9632 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9633
9634 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
9635 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
9636 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
9637 (pa_c_mode_for_suffix): New.
9638 (TARGET_EXPAND_BUILTIN): Define.
9639 (TARGET_C_MODE_FOR_SUFFIX): Define.
9640 (pa_builtins): Define.
9641 (pa_init_builtins): Register __float128 type and init new support
9642 builtins.
9643 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
9644 * config/pa/quadlib.c (_U_Qfcopysign): New.
9645
9646 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
9647
9648 PR middle-end/46894
9649 * explow.c (allocate_dynamic_stack_space): Do not assume more than
9650 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
9651 are defined.
9652
9653 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9654
9655 PR tree-optimization/47179
9656 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
9657 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
9658
9659 2011-01-18 Richard Guenther <rguenther@suse.de>
9660
9661 PR rtl-optimization/47216
9662 * emit-rtl.c: Include tree-flow.h.
9663 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
9664 of replicating it with different semantics.
9665 * Makefile.in (emit-rtl.o): Adjust.
9666
9667 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9668
9669 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
9670 (cortex_a9_dp): Handle neon types correctly.
9671
9672 2011-01-18 Jakub Jelinek <jakub@redhat.com>
9673
9674 PR rtl-optimization/47299
9675 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
9676 subtarget. Use normal multiplication if both operands are constants.
9677 * expmed.c (expand_widening_mult): Don't try to optimize constant
9678 multiplication if op0 has VOIDmode. Convert op1 constant to mode
9679 before using it.
9680
9681 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9682
9683 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
9684 spacing after 'e.g.', typos, comma, hyphenation.
9685
9686 2011-01-17 Richard Henderson <rth@redhat.com>
9687
9688 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
9689 (rx_restricted_mem_operand): New.
9690 (rx_shift_operand): Use register_operand.
9691 (rx_source_operand, rx_compare_operand): Likewise.
9692 * config/rx/rx.md (addsi3_flags): New expander.
9693 (adddi3): Rewrite as expander.
9694 (adc_internal, *adc_flags, adddi3_internal): New patterns.
9695 (subsi3_flags): New expander.
9696 (subdi3): Rewrite as expander.
9697 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
9698
9699 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
9700 (rx_init_builtins): Remove sat builtin.
9701 (rx_expand_builtin): Likewise.
9702 * config/rx/rx.md (ssaddsi3): New.
9703 (*sat): Rename from sat. Represent the CC_REG input.
9704
9705 * config/rx/predicates.md (rshift_operator): New.
9706 * config/rx/rx.c (rx_expand_insv): Remove.
9707 * config/rx/rx-protos.h: Update.
9708 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
9709 operand to the canonical position.
9710 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
9711 (*bitclr, *bitclr_in_memory): Similarly.
9712 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
9713 (insv): Retain the zero_extract in the expansion.
9714
9715 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
9716 (bswaphi2, bitinvert, revw): Likewise.
9717
9718 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
9719 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
9720 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
9721 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
9722 (bitset, bitset_in_memory): Likewise.
9723 (bitinvert, bitinvert_in_memory): Likewise.
9724 (bitclr, bitclr_in_memory): Likewise.
9725 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
9726 (rx_strend, rx_cmpstrn): Likewise.
9727 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
9728 (bitop peep2 patterns): Remove.
9729
9730 * config/rx/rx.c (rx_match_ccmode): New.
9731 * config/rx/rx-protos.h: Update.
9732 * config/rx/rx.md (abssi2): Clobber, don't set flags.
9733 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
9734 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
9735 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
9736 (fix_truncsfsi2, floatsisf2): Likewise.
9737 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
9738 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
9739 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
9740 (*subsi3_flags, *xorsi3_flags): New.
9741
9742 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
9743
9744 * config/rx/rx.c (rx_print_operand): Remove workaround for
9745 unsplit comparison operations.
9746
9747 * config/rx/rx.md (movsicc): Split after reload.
9748 (*movsicc): Merge *movsieq and *movsine via match_operator.
9749 (*stcc): New pattern.
9750
9751 * config/rx/rx.c (rx_float_compare_mode): Remove.
9752 * config/rx/rx.h (rx_float_compare_mode): Remove.
9753 * config/rx/rx.md (cstoresi4): Split after reload.
9754 (*sccc): New pattern.
9755
9756 * config/rx/predicates.md (label_ref_operand): New.
9757 (rx_z_comparison_operator): New.
9758 (rx_zs_comparison_operator): New.
9759 (rx_fp_comparison_operator): New.
9760 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
9761 Validate that the flags are set properly for the comparison.
9762 (rx_gen_cond_branch_template): Remove.
9763 (rx_cc_modes_compatible): Remove.
9764 (mode_from_flags): New.
9765 (flags_from_code): Rename from flags_needed_for_conditional.
9766 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
9767 (rx_select_cc_mode): Likewise.
9768 (rx_split_fp_compare): New.
9769 (rx_split_cbranch): New.
9770 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
9771 (*cbranchsi4): Use match_operator and rx_split_cbranch.
9772 (*cbranchsf4): Similarly.
9773 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
9774 match_operator and rx_split_cbranch.
9775 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
9776 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
9777 (*cmpsi): Rename from cmpsi.
9778 (*tstsi): Rename from tstsi.
9779 (*cmpsf): Rename from cmpsf; use CC_Fmode.
9780 (*conditional_branch): Rename from conditional_branch.
9781 (*reveresed_conditional_branch): Remove.
9782 (b<code>): Remove expander.
9783 * config/rx/rx-protos.h: Update.
9784
9785 * config/rx/rx.c (rx_compare_redundant): Remove.
9786 * config/rx/rx.md (cmpsi): Don't use it.
9787 * config/rx/rx-protos.h: Update.
9788
9789 * config/rx/rx-modes.def (CC_F): New mode.
9790 * config/rx/rx.c (rx_select_cc_mode): New.
9791 * config/rx/rx.h (SELECT_CC_MODE): Use it.
9792 * config/rx/rx-protos.h: Update.
9793
9794 2011-01-17 Richard Henderson <rth@redhat.com>
9795
9796 * except.c (dump_eh_tree): Fix stray ; after for statement.
9797
9798 2011-01-17 Richard Guenther <rguenther@suse.de>
9799
9800 PR tree-optimization/47313
9801 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
9802 handling before copying the body. Properly deal with
9803 by-reference result in SSA form.
9804
9805 2011-01-17 Ian Lance Taylor <iant@google.com>
9806
9807 PR target/47219
9808 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
9809 (struct_value_alias_set): Don't define.
9810 (sparc_option_override): Don't set sparc_sr_alias_set and
9811 struct_value_alias_set.
9812 (save_or_restore_regs): Use gen_frame_mem rather than calling
9813 set_mem_alias_set.
9814 (sparc_struct_value_rtx): Likewise.
9815
9816 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
9817
9818 PR target/47318
9819 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
9820 (_mm_maskstore_pd): Likewise.
9821 (_mm_maskload_ps): Likewise.
9822 (_mm_maskstore_ps): Likewise.
9823 (_mm256_maskload_pd): Change mask to __m256i.
9824 (_mm256_maskstore_pd): Likewise.
9825 (_mm256_maskload_ps): Likewise.
9826 (_mm256_maskstore_ps): Likewise.
9827
9828 * config/i386/i386-builtin-types.def: Updated.
9829 (ix86_expand_special_args_builtin): Likewise.
9830
9831 * config/i386/i386.c (bdesc_special_args): Update
9832 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
9833 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
9834 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
9835 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
9836
9837 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
9838 Use <avxpermvecmode> on mask register.
9839 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
9840
9841 2011-01-17 Olivier Hainque <hainque@adacore.com>
9842 Michael Haubenwallner <michael.haubenwallner@salomon.at>
9843 Eric Botcazou <ebotcazou@adacore.com>
9844
9845 PR target/46655
9846 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
9847 if <= USHRT_MAX in 32-bit mode.
9848
9849 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9850
9851 * doc/install.texi (Configuration, Specific): Wrap long
9852 lines in examples. Allow line wrapping in long options
9853 and URLs where beneficial for PDF output.
9854
9855 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
9856
9857 * config/mips/mips.c (mips_classify_symbol): Don't return
9858 SYMBOL_PC_RELATIVE for nonlocal labels.
9859
9860 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
9861
9862 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
9863
9864 2011-01-15 Jan Hubicka <jh@suse.cz>
9865
9866 PR tree-optimization/47276
9867 * ipa.c (function_and_variable_visibility): Do not try to mark alias
9868 declarations as needed.
9869
9870 2011-01-15 Martin Jambor <mjambor@suse.cz>
9871
9872 * common.opt (fdevirtualize): New flag.
9873 * doc/invoke.texi (Option Summary): Document it.
9874 * opts.c (default_options_table): Add devirtualize flag.
9875 * ipa-prop.c (detect_type_change): Return immediately if
9876 devirtualize flag is not set.
9877 (detect_type_change_ssa): Likewise.
9878 (compute_known_type_jump_func): Likewise.
9879 (ipa_analyze_virtual_call_uses): Likewise.
9880
9881 2011-01-14 Martin Jambor <mjambor@suse.cz>
9882
9883 PR tree-optimization/45934
9884 PR tree-optimization/46302
9885 * ipa-prop.c (type_change_info): New type.
9886 (stmt_may_be_vtbl_ptr_store): New function.
9887 (check_stmt_for_type_change): Likewise.
9888 (detect_type_change): Likewise.
9889 (detect_type_change_ssa): Likewise.
9890 (compute_complex_assign_jump_func): Check for dynamic type change.
9891 (compute_complex_ancestor_jump_func): Likewise.
9892 (compute_known_type_jump_func): Likewise.
9893 (compute_scalar_jump_functions): Likewise.
9894 (ipa_analyze_virtual_call_uses): Likewise.
9895 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
9896
9897 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9898
9899 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
9900 * config/i386/i386.opt (msse5): New Alias.
9901
9902 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9903
9904 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
9905 * config/sparc/linux64.h (CC1_SPEC): Likewise.
9906 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9907 * config/sparc/sparc.h (CC1_SPEC): Likewise.
9908
9909 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9910
9911 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
9912 -mcpu options.
9913 * config/sparc/linux64.h (CC1_SPEC): Likewise.
9914 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9915 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
9916 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
9917 Likewise.
9918 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
9919
9920 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9921
9922 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
9923
9924 2011-01-14 Mike Stump <mikestump@comcast.net>
9925
9926 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
9927 * config/fr30/fr30.md: Likweise
9928 (movsi_push): Likewise.
9929 (movsi_pop): Likewise.
9930 (enter_func): Likewise.
9931 * config/moxie/moxie.md (movsi_push): Likewise.
9932 (movsi_pop): Likewise.
9933
9934 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9935
9936 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
9937 %{no_archive} %{exact_version}.
9938 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
9939 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
9940 %{no_archive} %{exact_version}.
9941 * config/mips/openbsd.h (LINK_SPEC): Likewise.
9942 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
9943 * config/mips/vxworks.h: Likewise.
9944
9945 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9946
9947 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
9948
9949 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9950
9951 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
9952 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
9953
9954 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9955
9956 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
9957 -nodefaultlib.
9958
9959 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9960
9961 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
9962 for mcpu not cpu.
9963 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
9964 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
9965 not cpu.
9966 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
9967 Don't handle -shlib.
9968
9969 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9970
9971 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
9972 (CC1_SPEC): Don't handle -profile.
9973
9974 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9975
9976 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
9977 * config/mips/mips.h (CC1_SPEC): Likewise.
9978
9979 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9980
9981 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
9982 * config/mips/mips.h (CC1_SPEC): Likewise.
9983
9984 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9985
9986 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
9987 * config/m32r/linux.h (LINK_SPEC): Likewise.
9988 * config/mips/linux.h (LINK_SPEC): Likewise.
9989 * config/mips/linux64.h (LINK_SPEC): Likewise.
9990 * config/sparc/linux.h (LINK_SPEC): Likewise.
9991 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
9992 LINK_SPEC): Likewise.
9993 * config/xtensa/linux.h (LINK_SPEC): Likewise.
9994
9995 2011-01-14 Joseph Myers <joseph@codesourcery.com>
9996
9997 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
9998 %{version:-v}.
9999 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
10000
10001 2011-01-14 Joseph Myers <joseph@codesourcery.com>
10002
10003 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
10004 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
10005
10006 2011-01-14 Joseph Myers <joseph@codesourcery.com>
10007
10008 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
10009
10010 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10011
10012 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
10013 supports -Bstatic/-Bdynamic.
10014 * configure: Regenerate.
10015
10016 2011-01-14 Jan Hubicka <jh@suse.cz>
10017 Jack Howarth <howarth@bromo.med.uc.edu>
10018
10019 PR target/46037
10020 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
10021 when checking debug_info_level. Test write_symbols instead of
10022 debug_hooks->var_location when setting flag_var_tracking_uninit.
10023
10024 2011-01-14 Richard Guenther <rguenther@suse.de>
10025
10026 PR tree-optimization/47179
10027 * target.def (ref_may_alias_errno): New target hook.
10028 * targhooks.h (default_ref_may_alias_errno): Declare.
10029 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
10030 (default_ref_may_alias_errno): New function.
10031 * target.h (struct ao_ref_s): Declare.
10032 * tree-ssa-alias.c: Include target.h.
10033 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
10034 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
10035 (targhooks.o): Likewise.
10036 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
10037 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
10038
10039 2011-01-14 Richard Guenther <rguenther@suse.de>
10040
10041 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
10042
10043 2011-01-14 Richard Guenther <rguenther@suse.de>
10044
10045 PR tree-optimization/47280
10046 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
10047 return CFG changes.
10048 (tree_ssa_forward_propagate_single_use_vars): Deal with
10049 CFG changes from associate_plusminus.
10050
10051 2011-01-14 Richard Guenther <rguenther@suse.de>
10052
10053 PR middle-end/47281
10054 Revert
10055 2011-01-11 Richard Guenther <rguenther@suse.de>
10056
10057 PR tree-optimization/46076
10058 * tree-ssa.c (useless_type_conversion_p): Conversions from
10059 unprototyped to empty argument list function types are useless.
10060
10061 2011-01-14 Richard Guenther <rguenther@suse.de>
10062
10063 PR tree-optimization/47286
10064 * tree-ssa-structalias.c (new_var_info): Register variables are global.
10065
10066 2011-01-14 Martin Jambor <mjambor@suse.cz>
10067
10068 PR middle-end/46823
10069 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
10070
10071 2011-01-13 Anatoly Sokolov <aesok@post.ru>
10072
10073 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
10074 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
10075 * config/xtensa/xtensa.c (xtensa_libcall_value,
10076 xtensa_function_value_regno_p): New functions.
10077 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
10078
10079 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
10080
10081 PR c++/47213
10082 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
10083 PE specific hook.
10084 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
10085 New function prototype.
10086 * config/i386/winnt.c (i386_pe_assemble_visibility):
10087 Warn only if attribute was specified by user.
10088
10089 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
10090
10091 PR target/47251
10092 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
10093 floating point.
10094 (floatunsdidf2_fcfidu): Ditto.
10095
10096 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10097
10098 * config/s390/s390.c (print_operand_address): Replace 'error' with
10099 'output_operand_lossage'.
10100 (print_operand): Likewise.
10101
10102 2011-01-13 Jeff Law <law@redhat.com>
10103
10104 PR rtl-optimization/39077
10105 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
10106 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
10107 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
10108 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
10109 * gcse.c (prune_insertions_deletions): New function.
10110 (compute_pre_data): Use it.
10111
10112 2011-01-13 Dodji Seketeli <dodji@redhat.com>
10113
10114 PR debug/PR46973
10115 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
10116 static function.
10117 (prune_unused_types_mark): Use it.
10118
10119 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
10120
10121 PR rtl-optimization/45352
10122 * sel-sched.c: Update copyright years.
10123 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
10124 in the advancing loop when we have issued issue_rate insns.
10125
10126 2011-01-12 Richard Henderson <rth@redhat.com>
10127
10128 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
10129 (TARGET_MD_ASM_CLOBBERS): New.
10130
10131 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
10132 (TARGET_DELEGITIMIZE_ADDRESS): New.
10133
10134 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
10135 (clzsi2, *bsch): New patterns.
10136
10137 * config/mn10300/mn10300.md (INT): New mode iterator.
10138 (*mov<INT>_clr): New pattern, and peep2 to generate it.
10139
10140 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
10141 flag_split_wide_types.
10142
10143 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
10144 (mn10300_trampoline_init): Rewrite without a template, an immediate
10145 load and a direct branch.
10146 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
10147
10148 2011-01-12 Anatoly Sokolov <aesok@post.ru>
10149
10150 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10151 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
10152 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
10153 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10154
10155 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
10156
10157 PR debug/47209
10158 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
10159 of type.
10160
10161 2011-01-12 Jan Hubicka <jh@suse.cz>
10162
10163 PR driver/47244
10164 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
10165 (PLUGIN_COND_CLOSE): New macro.
10166 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
10167
10168 2011-01-12 Richard Guenther <rguenther@suse.de>
10169
10170 PR lto/47259
10171 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
10172 register variables in a MEM_REF.
10173
10174 2011-01-12 Joseph Myers <joseph@codesourcery.com>
10175
10176 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
10177 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
10178 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
10179 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
10180 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
10181 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
10182 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
10183 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
10184 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
10185 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
10186 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
10187 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
10188 * config/gnu-user.h: New. Copied from linux.h.
10189 (LINUX_TARGET_STARTFILE_SPEC): Rename to
10190 GNU_USER_TARGET_STARTFILE_SPEC.
10191 (LINUX_TARGET_ENDFILE_SPEC): Rename to
10192 GNU_USER_TARGET_ENDFILE_SPEC.
10193 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
10194 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
10195 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
10196 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
10197 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
10198 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
10199 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
10200 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
10201 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
10202 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
10203 * config/arm/linux-eabi.h (CC1_SPEC): Use
10204 GNU_USER_TARGET_CC1_SPEC.
10205 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
10206 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
10207 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
10208 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
10209 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
10210 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
10211 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
10212 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
10213
10214 2011-01-12 Richard Guenther <rguenther@suse.de>
10215
10216 PR other/46946
10217 * doc/invoke.texi (ffast-math): Document it is turned on
10218 with -Ofast.
10219
10220 2011-01-12 Jan Hubicka <jh@suse.cz>
10221
10222 PR tree-optimization/47233
10223 * opts.c (common_handle_option): Disable ipa-reference with profile
10224 feedback.
10225
10226 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
10227
10228 * c-parser.c (c_parser_objc_at_property_declaration): Improved
10229 error message.
10230
10231 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
10232
10233 * c-parser.c (c_lex_one_token): Updated and reindented some
10234 comments. No changes in code.
10235
10236 2011-01-11 Ian Lance Taylor <iant@google.com>
10237
10238 * godump.c (go_output_var): Don't output the variable if there is
10239 already a type with the same name.
10240
10241 2011-01-11 Ian Lance Taylor <iant@google.com>
10242
10243 * godump.c (go_format_type): Don't generate float80.
10244
10245 2011-01-11 Richard Henderson <rth@redhat.com>
10246
10247 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
10248 declaration. Rewrite for both speed and size.
10249 (mn10300_address_cost_1): Remove.
10250 (mn10300_register_move_cost): New.
10251 (mn10300_memory_move_cost): New.
10252 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
10253 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
10254 extensions, shifts, BSWAP, CLZ.
10255 (mn10300_wide_const_load_uses_clr): Remove.
10256 (TARGET_REGISTER_MOVE_COST): New.
10257 (TARGET_MEMORY_MOVE_COST): New.
10258 * config/mn10300/mn10300-protos.h: Update.
10259 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
10260
10261 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
10262 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
10263 * config/mn10300/mn10300-protos.h: Update.
10264 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
10265 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
10266 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
10267 (*test_int_bitfield, *test_byte_bitfield): Remove.
10268 (*bit_test, *subreg_bit_test): Remove.
10269 * config/mn10300/predicates.md (const_8bit_operand): Remove.
10270
10271 * config/mn10300/constraints.md ("c"): Rename from "A".
10272 ("A", "D"): New constraint letters.
10273 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
10274 (fmssf4, fnmasf4, fnmssf4): Likewise.
10275
10276 * config/mn10300/mn10300.md (isa): New attribute.
10277 (enabled): New attribute.
10278
10279 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
10280 (abssf2, negsf2): Define only for hardware fp.
10281 (sqrtsf2): Reformat.
10282 (addsf3, subsf3, mulsf3): Merge expander and insn.
10283
10284 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
10285 (DEBUGGER_AUTO_OFFSET): Remove.
10286 (DEBUGGER_ARG_OFFSET): Remove.
10287
10288 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
10289 Emit register stores with the same offsets as the hardware.
10290 (mn10300_store_multiple_operation): Don't check that the register
10291 save offsets are monotonic.
10292 * config/mn10300/mn10300-protos.h: Update.
10293
10294 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
10295
10296 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
10297 in terms of the value on the stack, not the MDR register.
10298
10299 2011-01-11 Jan Hubicka <jh@suse.cz>
10300
10301 PR lto/45721
10302 PR lto/45375
10303 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
10304 (symbol_alias_set_destroy, symbol_alias_set_contains,
10305 propagate_aliases_backward): Declare.
10306 * lto-streamer-out.c (struct sets): New sturcture.
10307 (trivally_defined_alias): New function.
10308 (output_alias_pair_p): Rewrite.
10309 (output_unreferenced_globals): Fix output of alias pairs.
10310 (produce_symtab): Likewise.
10311 * ipa.c (function_and_variable_visibility): Set weak alias destination
10312 as needed in lto.
10313 * varasm.c (symbol_alias_set_t): Remove.
10314 (symbol_alias_set_destroy): Export.
10315 (propagate_aliases_forward, propagate_aliases_backward): New functions
10316 based on ...
10317 (compute_visible_aliases): ... this one; remove.
10318 (trivially_visible_alias): New
10319 (trivially_defined_alias): New.
10320 (remove_unreachable_alias_pairs): Rewrite.
10321 (finish_aliases_1): Reorganize code checking if alias is defined.
10322 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
10323 in LTO mode.
10324
10325 2011-01-11 Richard Guenther <rguenther@suse.de>
10326
10327 PR tree-optimization/46076
10328 * tree-ssa.c (useless_type_conversion_p): Conversions from
10329 unprototyped to empty argument list function types are useless.
10330
10331 2011-01-11 Richard Guenther <rguenther@suse.de>
10332
10333 PR middle-end/45235
10334 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
10335 volatile MEMs as MEM_READONLY_P.
10336
10337 2011-01-11 Richard Guenther <rguenther@suse.de>
10338
10339 PR tree-optimization/47239
10340 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
10341
10342 2011-01-11 Jeff Law <law@redhat.com>
10343
10344 PR tree-optimization/47086
10345 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
10346 IVs from statements that might throw.
10347
10348 2011-01-10 Jan Hubicka <jh@suse.cz>
10349
10350 PR lto/45375
10351 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
10352
10353 2011-01-10 Jan Hubicka <jh@suse.cz>
10354
10355 PR lto/45375
10356 * profile.c (read_profile_edge_counts): Ignore profile inconistency
10357 when correcting profile.
10358
10359 2011-01-10 Jan Hubicka <jh@suse.cz>
10360
10361 PR lto/46083
10362 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
10363 DECL_FINI_PRIORITY.
10364 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
10365 Restore DECL_FINI_PRIORITY.
10366
10367 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10368
10369 * doc/gimple.texi: Fix quoting of multi-word return values in
10370 @deftypefn statements. Ensure presence of return value. Wrap
10371 overlong @deftypefn lines.
10372 (is_gimple_operand, is_gimple_min_invariant_address): Remove
10373 descriptions of removed functions.
10374 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
10375 of multi-word return value in @deftypefn statement.
10376
10377 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10378
10379 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
10380 (Conditional Expressions, Logical Operators)
10381 (Statement and operand traversals): Do not indent smallexample
10382 code. Fix duplicate function argument in example.
10383
10384 2011-01-10 Jeff Law <law@redhat.com>
10385
10386 PR tree-optimization/47141
10387 * ipa-split.c (split_function): Handle case where we are
10388 returning a value and the return block has a virtual operand phi.
10389
10390 2011-01-10 Jan Hubicka <jh@suse.cz>
10391
10392 PR tree-optimization/47234
10393 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
10394 (pass_feedback_split_functions): Declare.
10395 * passes.c (init_optimization_passes): Add ipa-split as subpass of
10396 tree-profile.
10397 * ipa-split.c (gate_split_functions): Update comments; disable
10398 split-functions for profile_arc_flag and branch_probabilities.
10399 (gate_feedback_split_functions): New function.
10400 (execute_feedback_split_functions): New function.
10401 (pass_feedback_split_functions): New global var.
10402
10403 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
10404
10405 PR lto/46760
10406 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
10407 calling gimple_call_set_cannot_inline.
10408
10409 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
10410
10411 * config/darwin-sections.def: Remove unused section.
10412
10413 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
10414
10415 PR c++/47218
10416 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
10417
10418 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
10419
10420 PR objc/47232
10421 * c-parser.c (c_parser_declaration_or_fndef): Improved
10422 error message.
10423
10424 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
10425
10426 * config/i386/winnt.c (i386_pe_start_function): Make sure
10427 to switch back to function's section.
10428
10429 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
10430
10431 PR gcc/46902
10432 PR testsuite/46912
10433 * plugin.c: Move include of dlfcn.h from here...
10434 * system.h: ... to here.
10435
10436 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10437
10438 * doc/cpp.texi (C++ Named Operators): Fix markup for header
10439 file name.
10440 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
10441 two extra empty pages in PDF output.
10442
10443 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
10444
10445 PR objc/47078
10446 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
10447 for error recovery purposes behave as if it was not specified so
10448 that the default type is usd.
10449
10450 2011-01-07 Jan Hubicka <jh@suse.cz>
10451
10452 PR tree-optmization/46469
10453 * ipa.c (function_and_variable_visibility): Clear needed flags on
10454 nodes with external decls; handle weakrefs merging correctly.
10455
10456 2011-01-07 Joseph Myers <joseph@codesourcery.com>
10457
10458 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
10459 not false.
10460
10461 2011-01-07 Jan Hubicka <jh@suse.cz>
10462
10463 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
10464 and no longer claim that gold is required for linker plugin.
10465 * configure: Regenerate.
10466 * gcc.c (PLUGIN_COND): New macro.
10467 (LINK_COMMAND_SPEC): Use it.
10468 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
10469 * config.in (HAVE_LTO_PLUGIN): New.
10470 * configure.ac (--with-lto-plugin): New parameter; autodetect
10471 HAVE_LTO_PLUGIN.
10472
10473 2011-01-07 Jan Hubicka <jh@suse.cz>
10474
10475 PR tree-optimization/46367
10476 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
10477 when we can update original.
10478 (cgraph_mark_inline_edge): Sanity check.
10479 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
10480
10481 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10482
10483 * config/spu/spu.h (ASM_COMMENT_START): Define.
10484
10485 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
10486
10487 PR driver/42445
10488 * gcc.c (%>S): New.
10489 (SWITCH_KEEP_FOR_GCC): Likewise.
10490 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
10491 (do_spec_1): Handle "%>".
10492
10493 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
10494
10495 2011-01-07 Jakub Jelinek <jakub@redhat.com>
10496
10497 PR target/47201
10498 * config/i386/i386.c (ix86_delegitimize_address): If
10499 simplify_gen_subreg fails, return orig_x.
10500
10501 PR bootstrap/47187
10502 * value-prof.c (gimple_stringop_fixed_value): Handle
10503 lhs of the call properly.
10504
10505 2011-01-07 Jan Hubicka <jh@suse.cz>
10506
10507 PR lto/45375
10508 * lto-opt.c (lto_reissue_options): Set flag_shlib.
10509
10510 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
10511
10512 * target.def (function_switched_text_sections): New hook.
10513 * doc/tm.texi: Regenerated.
10514 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
10515 * final.c (default_function_switched_text_sections): New.
10516 (final_scan_insn): Call function_switched_text_sections when a
10517 mid-function section change occurs.
10518 * output.h (default_function_switched_text_sections): Declare.
10519 * config/darwin-protos.h (darwin_function_switched_text_sections):
10520 Likewise.
10521 * config/darwin.c (darwin_function_switched_text_sections): New.
10522 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
10523
10524 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
10525
10526 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
10527 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
10528 the secondary code fragment when outputting for DWARF == 2.
10529
10530 2011-01-07 Anatoly Sokolov <aesok@post.ru>
10531
10532 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10533 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
10534 Remove.
10535 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
10536 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10537
10538 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
10539
10540 PR debug/46704
10541 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
10542 when it is not empty.
10543
10544 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
10545
10546 Bobcat Enablement
10547 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
10548 (case ${target}): Add btver1.
10549 * config/i386/driver-i386.c (host_detect_local_cpu): Let
10550 -march=native recognize btver1 processors.
10551 * config/i386/i386-c.c (ix86_target_macros_internal): Add
10552 btver1 def_and_undef
10553 * config/i386/i386.c (struct processor_costs btver1_cost): New
10554 btver1 cost table.
10555 (m_BTVER1): New definition.
10556 (m_AMD_MULTIPLE): Includes m_BTVER1.
10557 (initial_ix86_tune_features): Add btver1 tune.
10558 (processor_target_table): Add btver1 entry.
10559 (static const char *const cpu_names): Add btver1 entry.
10560 (software_prefetching_beneficial_p): Add btver1.
10561 (ix86_option_override_internal): Add btver1 instruction sets.
10562 (ix86_issue_rate): Add btver1.
10563 (ix86_adjust_cost): Add btver1.
10564 * config/i386/i386.h (TARGET_BTVER1): New definition.
10565 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
10566 (enum processor_type): Add PROCESSOR_BTVER1.
10567 * config/i386/i386.md (define_attr "cpu"): Add btver1.
10568
10569 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10570
10571 PR target/43309
10572 * config/i386/i386.c (legitimize_tls_address)
10573 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
10574 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
10575 (tls_initial_exec_64_sun): New pattern.
10576
10577 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
10578
10579 * doc/invoke.texi (Overall Options): Improve wording and markup
10580 of the description of -wrapper.
10581
10582 2011-01-06 Joseph Myers <joseph@codesourcery.com>
10583
10584 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
10585 rdynamic, threads): New Driver options.
10586
10587 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10588
10589 PR target/38118
10590 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
10591 if coming from .tdata.
10592 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
10593
10594 2011-01-06 Jan Hubicka <jh@suse.cz>
10595
10596 PR lto/47188
10597 * collect2.c (main): Do not enable LTOmode when plugin is active.
10598
10599 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10600
10601 PR other/45915
10602 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
10603 --version output if supported.
10604 * configure: Regenerate.
10605
10606 2011-01-06 Joseph Myers <joseph@codesourcery.com>
10607
10608 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
10609 Driver options.
10610
10611 2011-01-06 Jakub Jelinek <jakub@redhat.com>
10612
10613 PR c/47150
10614 * c-convert.c (convert): When converting a complex expression
10615 other than COMPLEX_EXPR to a different complex type, ensure
10616 c_save_expr is called instead of save_expr, unless in_late_binary_op.
10617 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
10618 when converting COMPLEX_TYPE.
10619
10620 2011-01-06 Ira Rosen <irar@il.ibm.com>
10621
10622 PR tree-optimization/47139
10623 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
10624 only the last reduction value is used outside the loop. Update
10625 documentation.
10626
10627 2011-01-05 Joseph Myers <joseph@codesourcery.com>
10628
10629 * config/rtems.opt: New.
10630 * config.gcc (*-*-rtems*): Use rtems.opt.
10631
10632 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
10633
10634 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
10635 processors do not support 3DNow instructions.
10636
10637 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10638
10639 * config/spu/spu.c (spu_option_override): Set parameter
10640 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
10641
10642 2011-01-05 Jan Hubicka <jh@suse.cz>
10643
10644 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
10645 at the command line.
10646
10647 2011-01-05 Martin Jambor <mjambor@suse.cz>
10648
10649 PR lto/47162
10650 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
10651 deltas on streamed outgoing edges.
10652 (output_node_opt_summary): Output info for outgoing edges only when
10653 the node is in new parameter set.
10654 (output_cgraph_opt_summary): New parameter set, passed to the two
10655 aforementioned functions. Update its forward declaration and its
10656 callee too.
10657
10658 2011-01-05 Tom Tromey <tromey@redhat.com>
10659
10660 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
10661 operator to c_finish_omp_atomic.
10662 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
10663 (build_unary_op): Update.
10664 (build_modify_expr): Update.
10665 (build_asm_expr): Update.
10666
10667 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10668
10669 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
10670 newly inserted insns.
10671 (pad_bb): Likewise.
10672 (spu_emit_branch_hint): Likewise.
10673 (insert_hbrp_for_ilb_runout): Likewise.
10674 (spu_machine_dependent_reorg): Call df_finish_pass after
10675 schedule_insns returns.
10676
10677 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10678
10679 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
10680
10681 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
10682
10683 PR tree-optimization/47005
10684 * tree-sra.c (struct access): Add 'non_addressable' bit.
10685 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
10686 (decide_one_param_reduction): Return 0 if the parameter is passed by
10687 reference and one of the accesses in the group is non_addressable.
10688
10689 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
10690
10691 PR tree-optimization/47056
10692 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
10693 (mark_load): Likewise. Handle FUNCTION_DECL specially.
10694 (mark_store): Likewise. Pass STMT to ipa_record_reference.
10695
10696 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
10697
10698 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
10699 initializer. Skip view conversions from aggregate types.
10700
10701 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
10702
10703 PR bootstrap/47055
10704 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
10705
10706 2011-01-04 Philipp Thomas <pth@suse.de>
10707
10708 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
10709 obvious typo.
10710
10711 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10712
10713 * function.c (thread_prologue_and_epilogue_insns): Do not crash
10714 on empty epilogue sequences.
10715
10716 2011-01-04 Joseph Myers <joseph@codesourcery.com>
10717
10718 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
10719 non-static): New Driver options.
10720
10721 2011-01-04 Jie Zhang <jie@codesourcery.com>
10722
10723 PR driver/47137
10724 * gcc.c (default_compilers[]): Set combinable field to 0
10725 for all assembly languages.
10726
10727 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
10728
10729 * config/mips/loongson3a.md: New file.
10730 * config/mips/mips.md: Include loongson3a.md.
10731 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
10732 TUNE_LOONGSON_3A.
10733
10734 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
10735
10736 PR middle-end/47017
10737 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
10738 instead of convert_memory_address_addr_space on the base expression.
10739
10740 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10741
10742 * config/spu/spu.c (spu_option_override): Update error text
10743 for bad -march= / -mtune= values.
10744
10745 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10746
10747 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
10748 if branch-hint optimization will be performed.
10749
10750 2011-01-03 Jakub Jelinek <jakub@redhat.com>
10751
10752 PR tree-optimization/47148
10753 * ipa-split.c (split_function): Convert arguments to
10754 DECL_ARG_TYPE if possible.
10755
10756 PR tree-optimization/47155
10757 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
10758 when computing uns.
10759
10760 PR rtl-optimization/47157
10761 * combine.c (try_combine): If undobuf.other_insn becomes
10762 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
10763 and set *new_direct_jump_p too.
10764
10765 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
10766
10767 PR tree-optimization/47021
10768 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
10769
10770 2011-01-03 Jakub Jelinek <jakub@redhat.com>
10771
10772 * gcc.c (process_command): Update copyright notice dates.
10773 * gcov.c (print_version): Likewise.
10774 * gcov-dump.c (print_version): Likewise.
10775 * mips-tfile.c (main): Likewise.
10776 * mips-tdump.c (main): Likewise.
10777
10778 2011-01-03 Martin Jambor <mjambor@suse.cz>
10779
10780 PR tree-optimization/46801
10781 * tree-sra.c (type_internals_preclude_sra_p): Check whether
10782 aggregate fields start at byte boundary instead of the bit-field flag.
10783
10784 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
10785
10786 PR driver/47137
10787 * gcc.c (main): Revert revision 168407.
10788
10789 2011-01-03 Martin Jambor <mjambor@suse.cz>
10790
10791 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
10792
10793 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10794
10795 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
10796 vector optab to expand vector/scalar shift, update gimple to vector.
10797
10798 2011-01-03 Martin Jambor <mjambor@suse.cz>
10799
10800 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
10801 a thunk.
10802
10803 2011-01-03 Martin Jambor <mjambor@suse.cz>
10804
10805 PR tree-optimization/46984
10806 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
10807 HOST_WIDE_INT.
10808 (cgraph_create_indirect_edge): Fixed line length.
10809 (cgraph_indirect_call_info): Declare.
10810 (cgraph_make_edge_direct) Update declaration.
10811 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
10812 (cgraph_create_indirect_edge): Use it.
10813 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
10814 callees.
10815 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
10816 the new thunk_delta representation.
10817 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
10818 HOST_WIDE_INT.
10819 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
10820 (ipa_read_indirect_edge_info): Likewise.
10821 * lto-cgraph.c (output_edge_opt_summary): New function.
10822 (output_node_opt_summary): Call it on all outgoing edges.
10823 (input_edge_opt_summary): New function.
10824 (input_node_opt_summary): Call it on all outgoing edges.
10825
10826 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
10827
10828 PR driver/47137
10829 * gcc.c (main): Don't check have_o when settting combine_inputs.
10830
10831 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
10832
10833 * regrename.c: Add general comment describing the pass.
10834 (struct du_head): Remove 'length' field.
10835 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
10836 (regrename_optimize): Do not sort chains. Rework comments, add others.
10837 Force renaming to the preferred class (if any) in the first pass and do
10838 not consider registers that belong to it in the second pass.
10839 (create_new_chain): Do not set 'length' field.
10840 (scan_rtx_reg): Likewise.
10841
10842 2011-01-02 Jakub Jelinek <jakub@redhat.com>
10843
10844 PR tree-optimization/47140
10845 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
10846 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
10847 to bit_value_binop.
10848
10849 PR rtl-optimization/47028
10850 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
10851 parm_birth_insn instead of at the beginning of first bb.
10852
10853 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
10854
10855 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
10856 Remove the word "see" before "@pxref".
10857 * doc/rtl.texi: Remove the word "see" before "@pxref".
10858
10859 2011-01-01 Jan Hubicka <jh@suse.cz>
10860
10861 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
10862 memory.
10863
10864 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
10865
10866 PR target/38662
10867 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
10868
10869 \f
10870 Copyright (C) 2011 Free Software Foundation, Inc.
10871
10872 Copying and distribution of this file, with or without modification,
10873 are permitted in any medium without royalty provided the copyright
10874 notice and this notice are preserved.