]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
arm.c (get_label_padding): New function.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2011-08-12 Richard Sandiford <rdsandiford@googlemail.com>
2
3 * config/arm/arm.c (get_label_padding): New function.
4 (create_fix_barrier, md_reorg): Likewise.
5
6 2011-08-11 Uros Bizjak <ubizjak@gmail.com>
7
8 PR target/49781
9 * config/i386/i386.md (*lea_5_zext): New.
10 (*lea_6_zext): Ditto.
11 * config/i386/predicates.md (const_32bit_mask): New predicate.
12 (lea_address_operand): Reject AND.
13 * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
14 const_32bit_mask immediate.
15 (ix86_print_operand_address): Handle AND.
16 (memory_address_length): Ditto.
17
18 2011-08-11 Romain Geissler <romain.geissler@gmail.com>
19 Brian Hackett <bhackett1024@gmail.com>
20
21 * plugin.def: Add event for finish_decl.
22 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
23 * c-decl.c (finish_decl): Invoke callbacks on above event.
24 * doc/plugins.texi: Document above event.
25
26 2011-08-11 Richard Guenther <rguenther@suse.de>
27
28 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
29 lookups, make looking through aggregate copies stronger.
30
31 2011-08-11 Richard Henderson <rth@redhat.com>
32
33 PR bootstrap/50018
34 * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
35
36 2011-08-11 Richard Guenther <rguenther@suse.de>
37
38 * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
39 * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
40 (vrp_visit_stmt): Likewise.
41
42 2011-08-11 Richard Guenther <rguenther@suse.de>
43
44 PR middle-end/50040
45 * gimplify.c (gimplify_modify_expr_complex_part): Mark the
46 load of the other piece with TREE_NO_WARNING.
47 * tree-flow.h (warn_uninit): Adjust prototype.
48 * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
49 the base variable and the expression that is used separately.
50 Properly query all TREE_NO_WARNING flags.
51 (struct walk_data): Remove.
52 (warn_uninitialized_var): Likewise.
53 (warn_uninitialized_vars): Do not walk gimple pieces but simply
54 look at all SSA uses of the statement. Handle unused memory
55 separately.
56 * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
57
58 2011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
59
60 * config/rx/rx.md (movsicc): Allow register to register transfers.
61 (*movsicc): Likewise.
62 (*stcc): Restrict this pattern to EQ and NE compares.
63 (*stcc_reg): New pattern. Works for any comparison but only for
64 register transfers.
65
66 2011-08-11 Diego Novillo <dnovillo@google.com>
67
68 * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
69 Call stream_write_tree instead of output_record_start.
70 (lto_output_ts_binfo_tree_pointers): Likewise.
71
72 * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
73 Convert it to a macro.
74 (stream_read_tree): Likewise.
75
76 * lto-streamer.h (lto_stream_as_builtin_p): Move ...
77 * tree-streamer.h (lto_stream_as_builtin_p): ... here.
78
79 * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
80 and tree_read_bitfields.
81 * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
82 (lto_write_tree): Call it.
83 * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
84 * streamer-hooks.h (struct streamer_hooks): Remove fields
85 name, is_streamable and alloc_tree. Update all users.
86 * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
87 (lto_materialize_tree): ... here.
88 Handle CALL_EXPR codes.
89 Remove call to lto_streamer_cache_append.
90 * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
91 * tree-streamer.h (tree_read_bitfields): Declare.
92
93 * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
94 (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
95 * tree-streamer.h (stream_read_tree): New. Replace all calls
96 to lto_input_tree with it.
97 (stream_write_tree): New. Replace all calls to lto_output_tree,
98 lto_output_tree_ref and lto_output_tree_or_ref with it.
99 * lto-streamer-in.c (lto_read_tree): Inline code from
100 lto_streamer_read_tree.
101 (lto_input_tree): Move from tree-streamer-in.c.
102 * lto-streamer-out.c (lto_output_tree_ref): Make static.
103 Remove handling of NULL values for EXPR.
104 Do not handle EXPRs that are not indexable.
105 (lto_write_tree): Move from tree-streamer-out.c.
106 Inline lto_streamer_write_tree.
107 (lto_output_tree): Move from tree-streamer-out.c.
108 If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
109 * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
110 (lto_preload_common_nodes): Likewise.
111 Remove assertions and adjustments for nodes
112 main_identifier_node, ptrdiff_type_node and fileptr_type_node.
113 (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
114 lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
115 * lto-streamer.h (lto_input_tree): Declare.
116 (lto_output_tree_ref): Remove.
117 * streamer-hooks.h (struct streamer_hooks): Remove fields
118 preload_common_nodes, indexable_with_decls_p,
119 pack_value_fields, unpack_value_fields and output_tree_header.
120 Update all users.
121 * tree-streamer-in.c (lto_materialize_tree): Make extern.
122 (lto_input_tree_pointers): Likewise.
123 (lto_read_tree): Move to lto-streamer-in.c.
124 (lto_input_integer_cst): Make extern.
125 (lto_get_pickled_tree): Likewise.
126 (lto_get_builtin_tree): Likewise.
127 (lto_input_tree): Move to lto-streamer-in.c.
128 * tree-streamer-out.c (pack_value_fields): Make extern.
129 (lto_output_tree_or_ref): Remove. Replace all callers with
130 calls to stream_write_tree.
131 (lto_output_builtin_tree): Make extern.
132 (lto_streamer_write_tree): Inline into lto_write_tree.
133 (lto_output_tree_pointers): Make extern.
134 (lto_output_tree_header): Likewise.
135 (lto_output_integer_cst): Likewise.
136 (lto_write_tree): Move to lto-streamer-out.c.
137 (lto_output_tree): Likewise.
138 * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
139 (preload_common_nodes): Likewise.
140 (lto_streamer_cache_create): Call it.
141 * tree-streamer.h: Include streamer-hooks.h.
142 (stream_write_tree): New.
143 (stream_read_tree): New.
144 (lto_input_tree): Remove.
145 (lto_materialize_tree): Declare.
146 (lto_input_tree_pointers): Declare.
147 (lto_get_pickled_tree): Declare.
148 (lto_get_builtin_tree): Declare.
149 (lto_input_integer_cst): Declare.
150 (lto_output_tree_header): Declare.
151 (pack_value_fields): Declare.
152 (lto_output_tree_pointers): Declare.
153 (lto_output_integer_cst): Declare.
154 (lto_output_builtin_tree): Declare.
155
156 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
157
158 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
159 only if producer writes to the register given by regno.
160
161 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
162 Alexander Monakov <amonakov@ispras.ru>
163
164 * sched-deps.c (sched_get_condition_with_rev): Rename to ...
165 (sched_get_condition_with_rev_uncached): ... this. Factor out
166 condition caching logic into ...
167 (sched_get_condition_with_rev): ... this. Reimplement. Do not
168 attempt to use cache for instructions with zero luid.
169 (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
170 * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
171
172 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
173
174 * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
175 get_seqno_for_a_jump. Update the caller.
176 (get_seqno_by_succs): New. Use it ...
177 (get_seqno_for_a_jump): ... here to find a seqno if looking at
178 predecessors was not sufficient.
179 (get_seqno_by_preds): Include head in iteration range, exclude insn.
180
181 2011-08-11 Dmitry Melnik <dm@ispras.ru>
182
183 * sel-sched-ir.c (invalidate_av_set): Remove the assert.
184
185 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
186
187 * sel-sched-ir.h (register_unavailable_p): Declare.
188 * sel-sched-ir.c (register_unavailable_p): New. Use it...
189 (set_unavailable_target_for_expr): ... here to properly test
190 availability of a register.
191 (speculate_expr): Ditto.
192 * sel-sched.c (substitute_reg_in_expr): Ditto.
193 (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
194
195 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
196
197 * sel-sched.c (verify_target_availability): Fix usage of
198 hard_regno_nregs.
199
200 2011-08-11 Dmitry Melnik <dm@ispras.ru>
201
202 * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
203 recognized by cannot_copy_insn_p hook and volatile instructions.
204
205 2011-08-11 Dmitry Melnik <dm@ispras.ru>
206
207 * sel-sched-ir.c (merge_expr_data): Take maximum spec.
208
209 2011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
210
211 * doc/md.texi (define_bypass): Say that the instruction names can
212 be filename-style globs.
213 * Makefile.in (FNMATCH_H): Define.
214 (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
215 * genattrtab.c: Include fnmatch.h.
216 (bypass_list): Change field name from "insn" to "pattern".
217 (gen_bypass_1): Update accordingly.
218 (process_bypasses): Use fnmatch to check for matches between
219 insn reservations and define_bypasses.
220 * genautomata.c: Include fnmatch.h.
221 (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
222 and out_pattern respectively.
223 (gen_bypass, insert_bypass): Update accordingly.
224 (for_each_matching_insn, process_bypass_2, process_bypass_1)
225 (process_bypass): New functions.
226 (process_decls): Use process_bypass. Update after field name changes.
227
228 2011-08-11 Georg-Johann Lay <avr@gjlay.de>
229
230 PR target/49687
231 * config/avr/avr.md (smulqi3_highpart): New insn.
232 (umulqi3_highpart): New insn.
233 (*subqi3.ashiftrt7): New insn.
234 (smulhi3_highpart): New expander.
235 (umulhi3_highpart): Nex expander.
236 (*smulhi3_highpart_call): New insn.
237 (*umulhi3_highpart_call): New insn.
238 (extend_u): New code attribute.
239 (extend_prefix): Rename code attribute to extend_su.
240 * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
241 widening QI/HI multiply.
242
243 2011-08-11 Ira Rosen <ira.rosen@linaro.org>
244
245 PR tree-optimization/50039
246 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
247 that DEF_STMT has a stmt_vec_info.
248
249 2011-08-10 Richard Guenther <rguenther@suse.de>
250
251 * tree.h (can_trust_pointer_alignment): Remove.
252 * builtins.c (can_trust_pointer_alignment): Remove.
253
254 2011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
255
256 * c-typeck.c (scalar_to_vector): New function. Try scalar to
257 vector conversion.
258 (stv_conv): New enum for scalar_to_vector return type.
259 (build_binary_op): Adjust.
260 * doc/extend.texi: Description of scalar to vector expansion.
261
262 2011-08-10 Richard Guenther <rguenther@suse.de>
263
264 * tree.h (get_pointer_alignment): Remove max-align argument.
265 (get_object_alignment): Likewise.
266 * builtins.c (get_object_alignment_1): Adjust.
267 (get_object_alignment): Remove max-align argument.
268 (get_pointer_alignment): Likewise.
269 (expand_builtin_strlen): Adjust.
270 (expand_builtin_memcpy): Likewise.
271 (expand_builtin_mempcpy_args): Likewise.
272 (expand_builtin_strncpy): Likewise.
273 (expand_builtin_memset_args): Likewise.
274 (expand_builtin_memcmp): Likewise.
275 (expand_builtin_strcmp): Likewise.
276 (expand_builtin_strncmp): Likewise.
277 (get_builtin_sync_mem): Likewise.
278 (fold_builtin_memset): Likewise.
279 (fold_builtin_memory_op): Likewise.
280 (expand_builtin_memory_chk): Likewise.
281 * emit-rtl.c (get_mem_align_offset): Likewise.
282 (set_mem_attributes_minus_bitpos): Likewise.
283 * expr.c (expand_assignment): Likewise.
284 (expand_expr_real_1): Likewise.
285 * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
286 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
287 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
288 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
289 * value-prof.c (gimple_stringops_transform): Likewise.
290
291 2011-08-10 Paulo J. Matos <paulo.matos@csr.com>
292
293 * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
294 * doc/tm.texi: Regenerate.
295
296 2011-08-10 Georg-Johann Lay <avr@gjlay.de>
297
298 PR target/29560
299 * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
300 (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
301 (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
302 Add peephole2 to map ashlhi3 to ashlqi3 if high part of
303 shift target is unused.
304
305 2011-08-10 Richard Guenther <rguenther@suse.de>
306
307 PR tree-optimization/49937
308 * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
309 using get_object_alignment_1.
310
311 2011-08-09 Uros Bizjak <ubizjak@gmail.com>
312
313 * config/i386/i386.c (ix86_emit_i387_round): New function.
314 * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
315 * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
316 Use ix86_emit_i387_round to expand round function for i387 math.
317 (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
318 Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
319
320 2011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
321
322 * config/sync.c: Move to ../libgcc.
323 * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
324 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
325 Remove.
326
327 2011-08-09 Anatoly Sokolov <aesok@post.ru>
328
329 * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
330 * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
331 * config/mmix/mmix.c (mmix_register_move_cost): Make static.
332 Change 'from' and 'to' arguments type to reg_class_t.
333 (TARGET_REGISTER_MOVE_COST): Define.
334
335 2011-08-09 Vladimir Makarov <vmakarov@redhat.com>
336
337 PR target/50026
338 Revert:
339 PR rtl-optimization/49990
340 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
341 ignore classes which can not change mode.
342 (find_costs_and_classes): Ditto.
343
344 2011-08-09 Richard Guenther <rguenther@suse.de>
345
346 * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
347 information for ranges with only negative values.
348 (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
349 BIT_AND_EXPR handling to handle ranges with negative values.
350
351 2011-08-09 Kirill Yukhin <kirill.yukhin@intel.com>
352
353 * config/i386/i386.c: Remove traling spaces.
354 * config/i386/sse.md: Likewise.
355 (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
356 (*fma_fmsub_<mode>): Likewise.
357 (*fma_fnmadd_<mode>): Likewise.
358 (*fma_fnmsub_<mode>): Likewise.
359
360 2011-08-09 Nick Clifton <nickc@redhat.com>
361
362 * config/rx/rx.md: Disable extender peepholes at -O3.
363
364 2011-08-09 Uros Bizjak <ubizjak@gmail.com>
365
366 PR target/49781
367 * config/i386/i386.md (reload_noff_load): New.
368 (reload_noff_store): Ditto.
369 * config/i386/i386.c (ix86_secondary_reload): Use
370 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
371 double-word moves from/to non-offsetable addresses instead of
372 generating XMM temporary.
373
374 2011-08-09 Anatoly Sokolov <aesok@post.ru>
375
376 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
377
378 2011-08-09 Ira Rosen <ira.rosen@linaro.org>
379
380 PR tree-optimization/50014
381 * tree-vect-loop.c (vectorizable_reduction): Get def type before
382 calling vect_get_vec_def_for_stmt_copy ().
383
384 2011-08-08 Vladimir Makarov <vmakarov@redhat.com>
385
386 PR rtl-optimization/49990
387 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
388 ignore classes which can not change mode.
389 (find_costs_and_classes): Ditto.
390
391 2011-08-08 Richard Henderson <rth@redhat.com>
392
393 PR middle-end/49990
394 * config/i386/i386.c (ix86_expand_prologue): Call
395 for SEH target gen_prologue_use instead of gen_blockage
396 at prologue's end.
397
398 2011-08-08 Martin Jambor <mjambor@suse.cz>
399
400 PR middle-end/49923
401 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
402 memory alignment.
403
404 2011-08-08 Diego Novillo <dnovillo@google.com>
405
406 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
407 (DATA_STREAMER_H): New.
408 (GIMPLE_STREAMER_H): New.
409 (TREE_STREAMER_H): New.
410 (STREAMER_HOOKS_H): New.
411 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
412 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
413 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
414 (data-streamer.o): New.
415 (data-streamer-in.o): New.
416 (data-streamer-out.o): New.
417 (gimple-streamer-in.o): New.
418 (gimple-streamer-out.o): New.
419 (streamer-hooks.o): New.
420 (tree-streamer.o): New.
421 (tree-streamer-in.o): New.
422 (tree-streamer-out.o): New.
423 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
424 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
425 GIMPLE_STREAMER_H and TREE_STREAMER_H.
426 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
427 GIMPLE_STREAMER_H and TREE_STREAMER_H.
428 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
429 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
430 (ipa-inline-analysis.o): Likewise.
431 (ipa-pure-const.o): Likewise.
432 * data-streamer-in.c: New.
433 * data-streamer-out.c: New.
434 * data-streamer.c: New.
435 * data-streamer.h: New.
436 * gimple-streamer-in.c: New.
437 * gimple-streamer-out.c: New.
438 * gimple-streamer.h: New.
439 * ipa-inline-analysis.c: Include data-streamer.h.
440 * ipa-prop.c: Include data-streamer.h.
441 * ipa-pure-const.c: Include data-streamer.h.
442 * lto-cgraph.c: Include data-streamer.h.
443 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
444 (lto_input_widest_uint_uleb128): Likewise.
445 (lto_input_sleb128): Likewise.
446 (bp_unpack_var_len_unsigned): Likewise.
447 (bp_unpack_var_len_int): Likewise.
448 * lto-section-out.c (lto_output_uleb128_stream): Move to
449 data-streamer-out.c.
450 (lto_output_widest_uint_uleb128_stream): Likewise.
451 (lto_output_sleb128_stream): Likewise.
452 (bp_pack_var_len_unsigned): Likewise.
453 (bp_pack_var_len_int): Likewise.
454 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
455 (struct string_slot): Remove. Update all users.
456 (lto_tag_check_set): Make extern.
457 (lto_tag_check_range): Move to lto-streamer.h.
458 (lto_tag_check): Likewise.
459 (hash_string_slot_node): Remove. Update all users.
460 (eq_string_slot_node): Remove. Update all users.
461 (string_for_index): Move to data-streamer-in.c
462 (input_string_internal): Likewise.
463 (input_string_cst): Move to tree-streamer-in.c.
464 (input_identifier): Likewise.
465 (lto_input_string): Move to data-streamer-in.c
466 (input_record_start): Move to data-streamer.h
467 (canon_file_name): Use new definition of struct string_slot
468 from data-streamer.h. Set S_SLOT.LEN.
469 (lto_input_location): Make extern.
470 (lto_input_chain): Move to tree-streamer-in.c.
471 (lto_init_eh): Make extern.
472 (input_phi): Move to gimple-streamer-in.c.
473 (input_gimple_stmt): Likewise.
474 (input_bb): Likewise.
475 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
476 (unpack_ts_real_cst_value_fields): Likewise.
477 (unpack_ts_fixed_cst_value_fields): Likewise.
478 (unpack_ts_decl_common_value_fields): Likewise.
479 (unpack_ts_decl_wrtl_value_fields): Likewise.
480 (unpack_ts_decl_with_vis_value_fields): Likewise.
481 (unpack_ts_function_decl_value_fields): Likewise.
482 (unpack_ts_type_common_value_fields): Likewise.
483 (unpack_ts_block_value_fields): Likewise.
484 (unpack_ts_translation_unit_decl_value_fields): Likewise.
485 (unpack_value_fields): Likewise.
486 (lto_materialize_tree): Likewise.
487 (lto_input_ts_common_tree_pointers): Likewise.
488 (lto_input_ts_vector_tree_pointers): Likewise.
489 (lto_input_ts_complex_tree_pointers): Likewise.
490 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
491 (lto_input_ts_decl_common_tree_pointers): Likewise.
492 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
493 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
494 (lto_input_ts_field_decl_tree_pointers): Likewise.
495 (lto_input_ts_function_decl_tree_pointers): Likewise.
496 (lto_input_ts_type_common_tree_pointers): Likewise.
497 (lto_input_ts_type_non_common_tree_pointers): Likewise.
498 (lto_input_ts_list_tree_pointers): Likewise.
499 (lto_input_ts_vec_tree_pointers): Likewise.
500 (lto_input_ts_exp_tree_pointers): Likewise.
501 (lto_input_ts_block_tree_pointers): Likewise.
502 (lto_input_ts_binfo_tree_pointers): Likewise.
503 (lto_input_ts_constructor_tree_pointers): Likewise.
504 (lto_input_ts_target_option): Likewise.
505 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
506 (lto_input_tree_pointers): Likewise.
507 (lto_get_pickled_tree): Likewise.
508 (lto_get_builtin_tree): Likewise.
509 (lto_read_tree): Likewise.
510 (lto_input_integer_cst): Likewise.
511 (lto_input_tree): Likewise.
512 * lto-streamer-out.c: Include data-streamer.h,
513 gimple-streamer.h and streamer-hooks.h.
514 (struct string_slot): Move to data-streamer.h.
515 (hash_string_slot_node): Likewise.
516 (eq_string_slot_node): Likewise.
517 (lto_string_index): Move to data-streamer-out.c.
518 (lto_output_string_with_length): Likewise.
519 (lto_output_string): Likewise.
520 (output_string_cst): Move to tree-streamer-out.c.
521 (output_identifier): Likewise.
522 (output_zero): Move to data-streamer-out.c
523 (output_uleb128): Likewise.
524 (output_sleb128): Likewise.
525 (output_record_start): Move to data-streamer.h
526 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
527 (pack_ts_real_cst_value_fields): Likewise.
528 (pack_ts_fixed_cst_value_fields): Likewise.
529 (pack_ts_decl_common_value_fields): Likewise.
530 (pack_ts_decl_wrtl_value_fields): Likewise.
531 (pack_ts_decl_with_vis_value_fields): Likewise.
532 (pack_ts_function_decl_value_fields): Likewise.
533 (pack_ts_type_common_value_fields): Likewise.
534 (pack_ts_block_value_fields): Likewise.
535 (pack_ts_translation_unit_decl_value_fields): Likewise.
536 (pack_value_fields): Likewise.
537 (lto_output_chain): Likewise.
538 (lto_output_ts_common_tree_pointers): Likewise.
539 (lto_output_ts_vector_tree_pointers): Likewise.
540 (lto_output_ts_complex_tree_pointers): Likewise.
541 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
542 (lto_output_ts_decl_common_tree_pointers): Likewise.
543 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
544 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
545 (lto_output_ts_field_decl_tree_pointers): Likewise.
546 (lto_output_ts_function_decl_tree_pointers): Likewise.
547 (lto_output_ts_type_common_tree_pointers): Likewise.
548 (lto_output_ts_type_non_common_tree_pointers): Likewise.
549 (lto_output_ts_list_tree_pointers): Likewise.
550 (lto_output_ts_vec_tree_pointers): Likewise.
551 (lto_output_ts_exp_tree_pointers): Likewise.
552 (lto_output_ts_block_tree_pointers): Likewise.
553 (lto_output_ts_binfo_tree_pointers): Likewise.
554 (lto_output_ts_constructor_tree_pointers): Likewise.
555 (lto_output_ts_target_option): Likewise.
556 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
557 (lto_output_tree_pointers): Likewise.
558 (lto_output_tree_header): Likewise.
559 (lto_output_builtin_tree): Likewise.
560 (lto_write_tree): Likewise.
561 (lto_output_integer_cst): Likewise.
562 (lto_output_tree): Likewise.
563 (output_phi): Move to gimple-streamer-out.c.
564 (output_gimple_stmt): Likewise.
565 (output_bb): Likewise.
566 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
567 (streamer_hooks): Move to streamer-hooks.c.
568 (check_handled_ts_structures): Move to tree-streamer.c
569 (lto_streamer_cache_add_to_node_array): Likewise.
570 (lto_streamer_cache_insert_1): Likewise.
571 (lto_streamer_cache_insert): Likewise.
572 (lto_streamer_cache_insert_at): Likewise.
573 (lto_streamer_cache_append): Likewise.
574 (lto_streamer_cache_lookup): Likewise.
575 (lto_streamer_cache_get): Likewise.
576 (lto_record_common_node): Likewise.
577 (lto_preload_common_nodes): Likewise.
578 (lto_streamer_cache_create): Likewise.
579 (lto_streamer_cache_delete): Likewise.
580 (streamer_hooks_init): Move to streamer-hooks.c.
581 * lto-streamer.h: Include diagnostic.h
582 (struct output_block, struct lto_input_block,
583 struct data_in, struct bitpack_d): Remove forward declarations.
584 (struct bitpack_d): Move to data-streamer.h.
585 (struct lto_streamer_cache_d): Move to tree-streamer.h.
586 (struct streamer_hooks): Move to streamer-hooks.h.
587 (bp_pack_var_len_unsigned): Move to data-streamer.h.
588 (bp_pack_var_len_int): Likewise.
589 (bp_unpack_var_len_unsigned): Likewise.
590 (bp_unpack_var_len_int): Likewise.
591 (lto_input_location): Declare.
592 (lto_tag_check_set): Declare.
593 (lto_init_eh): Declare.
594 (lto_output_tree_ref): Declare.
595 (lto_output_location): Declare.
596 (bitpack_create): Move to data-streamer.h.
597 (bp_pack_value): Likewise.
598 (lto_output_bitpack): Likewise.
599 (lto_input_bitpack): Likewise.
600 (bp_unpack_value): Likewise.
601 (lto_output_1_stream): Likewise.
602 (lto_input_1_unsigned): Likewise.
603 (lto_output_int_in_range): Likewise.
604 (lto_input_int_in_range): Likewise.
605 (bp_pack_int_in_range): Likewise.
606 (bp_unpack_int_in_range): Likewise.
607 (lto_output_enum): Likewise.
608 (lto_input_enum): Likewise.
609 (bp_pack_enum): Likewise.
610 (bp_unpack_enum): Likewise.
611 * streamer-hooks.c: New.
612 * streamer-hooks.h: New.
613 * tree-streamer-in.c: New.
614 * tree-streamer-out.c: New.
615 * tree-streamer.c: New.
616 * tree-streamer.h: New.
617
618 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
619
620 * gthr-posix95.h: Remove.
621 * gthr.h [_PTHREADS95]: Remove.
622 * configure.ac (enable_threads): Remove posix95.
623 * configure: Regenerate.
624 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
625
626 2011-08-08 Uros Bizjak <ubizjak@gmail.com>
627
628 PR target/49781
629 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
630 SImode addresses.
631 (ix86_print_operand_address): Handle zero-extended addresses.
632 (memory_address_length): Add length of addr32 prefix for
633 zero-extended addresses.
634 (ix86_secondary_reload): Handle moves to/from double-word general
635 registers from/to zero-extended addresses.
636 * config/i386/predicates.md (lea_address_operand): Reject
637 zero-extended operands.
638
639 2011-08-08 H.J. Lu <hongjiu.lu@intel.com>
640
641 PR other/48007
642 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
643
644 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
645 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
646
647 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
648 (_Unwind_Context_Reg_Val): Likewise.
649 (_Unwind_Get_Unwind_Word): Likewise.
650 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
651 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
652 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
653 for EXTENDED_CONTEXT_BIT.
654 (__frame_state_for): Likewise.
655 (uw_init_context_1): Likewise.
656 (_Unwind_GetGR): Updated.
657 (_Unwind_SetGR): Likewise.
658 (_Unwind_GetGRPtr): Likewise.
659 (_Unwind_SetGRPtr): Likewise.
660 (_Unwind_SetGRValue): Likewise.
661 (_Unwind_GRByValue): Likewise.
662 (uw_install_context_1): Likewise.
663
664 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
665 ASSUME_EXTENDED_UNWIND_CONTEXT.
666 * doc/tm.texi: Regenerated.
667
668 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
669
670 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
671
672 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
673
674 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
675 Linux/GNU-specific.
676 (DEC Alpha Options, -mtune): Likewise.
677 (MIPS Options, -march): native is supported on IRIX.
678
679 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
680
681 * config/sparc/driver-sparc.c: New file.
682 * config/sparc/x-sparc: New file.
683 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
684 * config/sparc/sparc.opt (native): New value for enum processor_type.
685 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
686 * config/sparc/sparc.c (sparc_option_override): Abort if
687 PROCESSOR_NATIVE gets here.
688 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
689 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
690 DRIVER_SELF_SPECS): Define.
691 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
692 (SPARC Options, -mtune): Likewise.
693 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
694 Substitute result.
695 * configure: Regenerate.
696 * Makefile.in (EXTRA_GCC_LIBS): Set.
697 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
698 (cpp$(exeext)): Likewise.
699
700 2011-08-08 Richard Guenther <rguenther@suse.de>
701
702 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
703 split out from ...
704 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
705 by composition.
706
707 2011-08-08 Mikael Pettersson <mikpe@it.uu.se>
708
709 PR tree-optimization/50005
710 * ipa-inline-analysis (remap_predicate): Add cast to
711 silence signed/unsigned comparison warning.
712
713 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
714
715 * modulo-sched.c (get_sched_window): Use a table for the debug output.
716 Print the current ii.
717 (sms_schedule_by_order): Reduce whitespace in dump line.
718
719 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
720
721 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
722 and one loop for successors. Fix upper bound of memory range.
723
724 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
725
726 PR target/50001
727 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
728 (TARGET_INSTANTIATE_DECLS): New define.
729
730 2011-08-06 Paolo Bonzini <bonzini@gnu.org>
731 Mikael Morin <mikael.morin@sfr.fr>
732
733 * Makefile.in (INCLUDES_FOR_TARGET): New.
734 (LIBGCC2_CFLAGS): Use it.
735 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
736
737 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
738
739 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
740 frame->save_regs_using_mov calculation.
741
742 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
743
744 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
745 * config/i386/sse.md (castmode): New mode attribute.
746 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
747 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
748
749 2011-08-05 Jan Hubicka <jh@suse.cz>
750
751 PR middle-end/49494
752 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
753
754 2011-08-05 Jan Hubicka <jh@suse.cz>
755
756 PR middle-end/49500
757 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
758 handle aliases.
759 (create_emultls_var):New function.
760 (ipa_lower_emutls): Handle aliases correctly.
761
762 2011-08-05 Jan Hubicka <jh@suse.cz>
763
764 PR middle-end/49735
765 * ipa-inline.c (recursive_inlining): Look through aliases.
766
767 2011-08-05 Jason Merrill <jason@redhat.com>
768
769 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
770 declarations to beginning of function.
771
772 2011-08-05 Bernd Schmidt <bernds@codesourcery.com>
773
774 PR rtl-optimization/49900
775 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
776 ensure basic blocks stay in the same order.
777
778 2011-08-05 Aldy Hernandez <aldyh@redhat.com>
779
780 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
781 store_bit_field.
782 (s390_expand_atomic): Same.
783
784 2011-08-05 Richard Henderson <rth@redhat.com>
785
786 PR rtl-opt/49977
787 * dwarf2cfi.c (scan_insn_after): Split out of ...
788 (scan_trace): ... here. Correctly place notes wrt sequences.
789
790 2011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
791 Richard Henderson <rth@redhat.com>
792
793 PR rtl-opt/49982
794 * expr.c (fixup_args_size_notes): Look through no-op moves.
795
796 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
797
798 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
799 of "m" for operand 0. Add type and mode attribute.
800 (*pushxf_nointeger"): Use "<" constraint for operand 0.
801 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
802 constraint instead of "o" for opreand 1.
803 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
804 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
805 operand 0, alternative 4.
806 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
807
808 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
809
810 * config/i386/predicates.md (lea_address_operand): Rename from
811 no_seg_address_operand.
812 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
813 (*lea_1_zext): Ditto.
814 (*lea_2): Ditto.
815 (*lea_2_zext): Ditto.
816
817 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
818
819 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
820 parts.base and parts.index.
821 * config/i386/predicates.md (aligned_operand): Ditto.
822 (cmpxchg8b_pic_memory_operand): Ditto.
823
824 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
825
826 * config/soft-fp: Move to ../libgcc.
827 * Makefile.in (SFP_MACHINE): Remove.
828 (libgcc-support): Remove $(SFP_MACHINE) dependency.
829 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
830 * config/arm/t-arm-softfp: Move to
831 ../libgcc/config/arm/t-softfp.
832 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
833 * config/c6x/t-c6x-softfp: Remove.
834 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
835 * config/i386/t-fprules-softfp: Move to
836 ../libgcc/config/t-softfp-tf.
837 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
838 * config/ia64/t-fprules-softfp: Remove.
839 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
840 * config/lm32/t-fprules-softfp: Remove.
841 * config/moxie/sfp-machine.h: Remove.
842 * config/moxie/t-moxie-softfp: Remove.
843 * config/rs6000/darwin-ldouble-format: Move to
844 ../libgcc/config/rs6000/ibm-ldouble-format.
845 * config/rs6000/darwin-ldouble.c: Move to
846 ../libgcc/config/rs6000/ibm-ldouble.c
847 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
848 * config/rs6000/libgcc-ppc64.ver: Likewise.
849 * config/rs6000/sfp-machine.h: Likewise.
850 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
851 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
852 (LIB2FUNCS_EXTRA): Remove.
853 (TARGET_LIBGCC2_CFLAGS): Remove.
854 * config/rs6000/t-aix52: Likewise
855 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
856 $(srcdir)/config/rs6000/darwin-ldouble.c.
857 (SHLIB_MAPFILES): Remove.
858 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
859 $(srcdir)/config/rs6000/darwin-ldouble.c.
860 * config/rs6000/t-fprules-softfp: Move to
861 ../libgcc/config/t-softfp-sfdf.
862 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
863 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
864 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
865 $(srcdir)/config/rs6000/darwin-ldouble.c.
866 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
867 * config/score/t-score-softfp: Remove.
868 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
869 soft-fp/t-softfp from tmake_file.
870 (arm*-*-uclinux*): Likewise.
871 (arm*-*-ecos-elf): Likewise.
872 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
873 (arm*-*-rtems*): Likewise.
874 (arm*-*-elf): Likewise.
875 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
876 tmake_file.
877 (moxie-*-uclinux*): Likewise.
878 (moxie-*-rtems*): Likewise.
879 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
880 tmake_file.
881 (lm32-*-rtems*): Likewise.
882 (lm32-*-uclinux*): Likewise.
883 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
884 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
885 (powerpc-*-linux*, powerpc64-*-linux*): Remove
886 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
887 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
888 tmake_file.
889 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
890 tmake_file.
891 (tic6x-*-uclinux): Likewise.
892 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
893 soft-fp/t-softfp from tmake_file.
894 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
895 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
896 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
897 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
898 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
899
900 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
901
902 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
903 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
904 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
905 TPBIT, TPBIT_FUNCS.
906 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
907 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
908 Remove.
909 * config/arm/t-vxworks: Likewise.
910 * config/arm/t-wince-pe: Likewise.
911 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
912 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
913 * config/bfin/t-bfin-elf: Likewise.
914 * config/bfin/t-bfin-linux: Likewise.
915 * config/bfin/t-bfin-uclinux: Likewise.
916 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
917 Remove.
918 * config/fr30/t-fr30: Likewise.
919 * config/frv/t-frv: Likewise.
920 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
921 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
922 * config/m32c/t-m32c: Likewise.
923 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
924 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
925 * config/mcore/t-mcore: Likewise.
926 * config/mep/t-mep: Likewise.
927 * config/microblaze/t-microblaze: Likewise.
928 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
929 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
930 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
931 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
932 * config/mn10300/t-linux: Remove.
933 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
934 * config/pdp11/t-pdp11: Likewise.
935 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
936 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
937 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
938 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
939 * config/rs6000/t-aix52: Likewise.
940 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
941 $(srcdir)/config/rs6000/ppc64-fp.c.
942 * config/rs6000/t-fprules-fpbit: Remove.
943 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
944 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
945 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
946 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
947 * config/sparc/t-elf: Likewise.
948 * config/sparc/t-leon: Likewise.
949 * config/sparc/t-leon3: Likewise.
950 * config/spu/t-spu-elf: Likewise.
951 (DPBIT_FUNCS): Remove.
952 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
953 * config/v850/t-v850: Likewise.
954 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
955 (avr-*-*): Likewise.
956 (h8300-*-rtems*): Set libgcc_tm_file.
957 (h8300-*-elf*): Likewise.
958 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
959 tmake_file.
960 (powerpc-*-eabisim*): Likewise.
961 (powerpc-*-elf*): Likewise.
962 (powerpc-*-eabialtivec*): Likewise.
963 (powerpc-xilinx-eabi*): Likewise.
964 (powerpc-*-eabi*): Likewise.
965 (powerpc-*-rtems*): Likewise.
966 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
967 (powerpcle-*-elf*): Likewise.
968 (powerpcle-*-eabisim*): Likewise.
969 (powerpcle-*-eabi*): Likewise.
970 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
971 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
972 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
973 Remove.
974
975 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
976
977 * Makefile.in (UNWIND_H): Remove.
978 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
979 ../libgcc/Makefile.in.
980 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
981 (LIBUNWINDDEP): Remove.
982 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
983 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
984 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
985 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
986 Don't copy $(UNWIND_H).
987 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
988 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
989 * aclocal.m4: Regenerate.
990 * configure: Regenerate.
991 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
992 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
993 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
994 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
995 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
996 * config/arm/libunwind.S, config/arm/pr-support.c,
997 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
998 ../libgcc/config/arm.
999 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
1000 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
1001 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
1002 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
1003 ($(T)frvend$(objext)): Likewise.
1004 * config/ia64/t-glibc (LIB2ADDEH): Remove.
1005 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
1006 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
1007 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
1008 ../libgcc/config/ia64.
1009 * config/ia64/t-hpux (LIB2ADDEH): Remove.
1010 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
1011 * config/ia64/t-vms (LIB2ADDEH): Remove.
1012 * config/ia64/vms.h (UNW_IVMS_MODE,
1013 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
1014 * config/picochip/t-picochip (LIB2ADDEH): Remove.
1015 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
1016 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
1017 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
1018 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
1019 $(srcdir)/../libgcc to refer to unwinder sources.
1020 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
1021 * config/t-darwin (LIB2ADDEH): Remove.
1022 * config/t-freebsd (LIB2ADDEH): Remove.
1023 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
1024 * config/t-libunwind-elf: Move to ../libgcc/config.
1025 * config/t-linux (LIB2ADDEH): Remove.
1026 * config/t-sol2 (LIB2ADDEH): Remove.
1027 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
1028 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
1029
1030 2011-08-05 H.J. Lu <hongjiu.lu@intel.com>
1031
1032 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
1033
1034 * doc/invoke.texi: Document core-avx-i.
1035
1036 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1037
1038 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
1039
1040 2011-08-05 Ira Rosen <ira.rosen@linaro.org>
1041
1042 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
1043 result of multiple results reduction when extracting the final
1044 value using scalar code.
1045
1046 2011-08-05 Richard Guenther <rguenther@suse.de>
1047
1048 PR tree-optimization/49984
1049 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
1050
1051 2011-08-05 Richard Guenther <rguenther@suse.de>
1052
1053 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
1054 return true for constant integer ranges.
1055 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
1056 BIT_IOR_EXPR handling.
1057
1058 2011-08-04 Kai Tietz <ktietz@redhat.com>
1059
1060 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
1061 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
1062
1063 2011-08-04 Ira Rosen <ira.rosen@linaro.org>
1064
1065 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
1066 pattern def statement, and its access macro.
1067 (NUM_PATTERNS): Set to 5.
1068 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1069 pattern def statement.
1070 (vect_transform_loop): Likewise.
1071 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
1072 function vect_recog_over_widening_pattern ().
1073 (vect_operation_fits_smaller_type): New function.
1074 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
1075 Likewise.
1076 (vect_pattern_recog_1): Move the code that marks pattern
1077 statements to vect_mark_pattern_stmts (), and call it. Update
1078 documentation.
1079 * tree-vect-stmts.c (vect_supportable_shift): New function.
1080 (vect_analyze_stmt): Handle pattern def statement.
1081 (new_stmt_vec_info): Initialize pattern def statement.
1082
1083 2011-08-04 Richard Henderson <rth@redhat.com>
1084
1085 PR target/49964
1086 * config/i386/i386.c (ix86_expand_call): Don't create nested
1087 PARALLELs for TARGET_VZEROUPPER.
1088 (ix86_split_call_vzeroupper): Fix extraction of the original call.
1089 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
1090 recognize nested PARALLELs.
1091 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
1092 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
1093 *sibcall_value_pop_vzeroupper): Likewise.
1094
1095 2011-08-04 Richard Henderson <rth@redhat.com>
1096
1097 PR middle-end/49968
1098 * calls.c (expand_call): Use fixup_args_size_notes for
1099 emit_stack_restore.
1100 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
1101 in non-standard modes.
1102
1103 2011-08-04 Jakub Jelinek <jakub@redhat.com>
1104
1105 * gcc.c (self_spec): New variable.
1106 (static_specs): Add self_spec.
1107 (main): Call do_self_spec on "self_spec" specs after reading
1108 user specs files. Move compare_debug handling right after that.
1109
1110 2011-08-04 Richard Guenther <rguenther@suse.de>
1111
1112 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
1113 (value_range_nonnegative_p): New function.
1114 (ssa_name_nonnegative_p): Use it.
1115 (value_range_constant_singleton): New function.
1116 (op_with_constant_singleton_value_range): Use it.
1117 (extract_range_from_binary_expr_1): New function, split out from ...
1118 (extract_range_from_binary_expr): ... this. Remove fallback
1119 constant folding done here.
1120
1121 2011-08-04 Richard Guenther <rguenther@suse.de>
1122
1123 PR tree-optimization/49806
1124 * tree-vrp.c (op_with_boolean_value_range_p): New function.
1125 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
1126 a new statement for a final conversion to bool.
1127
1128 2011-08-04 Romain Geissler <romain.geissler@gmail.com>
1129
1130 * gengtype-state.c: Include "bconfig.h" if
1131 GENERATOR_FILE is defined, "config.h" otherwise.
1132 * gengtype.c: Likewise.
1133 * gengtype-lex.l: Likewise.
1134 * gengtype-parse.c: Likewise.
1135 * Makefile.in (gengtype-lex.o-warn): New variable.
1136 (plugin_resourcesdir): Likewise.
1137 (plugin_bindir): Likewise.
1138 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
1139 (MOSTLYCLEANFILES): Add gengtype$(exeext).
1140 (native): Depend on gengtype$(exeext) is $enable_plugin
1141 is set to "yes".
1142 (gtype.state): Depend on s-gtype. Use temporary file.
1143 (gengtype-lex.o): New rule.
1144 (gengtype-parse.o): Likewise.
1145 (gengtype-state.o): Likewise.
1146 (gengtype$(exeext)): Likewise.
1147 (install-gengtype): Likewise.
1148 (gengtype.o): Likewise.
1149 (build/gengtype.o): Depend on version.h.
1150 (build/gengtype-state): Depend on double-int.h, version.h,
1151 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
1152 (install-plugin): Depend on install-gengtype.
1153
1154 2011-08-04 Jakub Jelinek <jakub@redhat.com>
1155
1156 PR middle-end/49905
1157 * tree.h (init_attributes): New prototype.
1158 * attribs.c (init_attributes): No longer static.
1159
1160 2011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1161
1162 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
1163 maybe_suffix.
1164
1165 2011-08-03 David Li <davidxl@google.com>
1166
1167 * tree-optimize.c (execute_fixup_cfg): Fix up entry
1168 outgoing edge counts after inlining.
1169
1170 2011-08-03 David Li <davidxl@google.com>
1171
1172 * profile.c (compute_branch_probabilities): Compute
1173 function frequency after profile annotation.
1174
1175 2011-08-04 Alan Modra <amodra@gmail.com>
1176
1177 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
1178 use_backchain_to_restore_sp initialisation.
1179 (rs6000_legitimate_offset_address_p): Simplify offset test.
1180
1181 2011-08-03 Richard Henderson <rth@redhat.com>
1182
1183 * config/spu/spu.md: Use define_c_enum instead of define_constants.
1184 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
1185 (UNSPECV_NOP): New.
1186
1187 2011-08-03 Richard Henderson <rth@redhat.com>
1188
1189 PR target/34888
1190 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
1191
1192 2011-08-03 Jakub Jelinek <jakub@redhat.com>
1193
1194 PR tree-optimization/49948
1195 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
1196
1197 2011-08-03 Anatoly Sokolov <aesok@post.ru>
1198
1199 * config/m32c/m32c.c (class_sizes): Remove.
1200 (reduce_class): Change arguments and return type to reg_class_t.
1201 Change type cc var to HARD_REG_SET. Change type best var to
1202 reg_class_t. Change type best_size var to unsigned int. Remove
1203 initialization class_sizes var. Use reg_class_size array instead
1204 of class_sizes. Use reg_class_contents array instead
1205 of class_contents.
1206
1207 2011-08-03 Richard Guenther <rguenther@suse.de>
1208
1209 PR middle-end/49958
1210 * fold-const.c (fold_binary_loc): Only associate
1211 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
1212 overflow wraps.
1213
1214 2011-08-03 Alan Modra <amodra@gmail.com>
1215
1216 PR rtl-optimization/49941
1217 * jump.c (mark_jump_label): Comment.
1218 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
1219 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
1220 (mark_used_flags): Don't mark RETURN.
1221
1222 2011-08-03 Richard Guenther <rguenther@suse.de>
1223
1224 PR tree-optimization/49938
1225 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
1226 deal with a POLYNOMIAL_CHREC.
1227
1228 2011-08-03 Revital Eres <revital.eres@linaro.org>
1229
1230 * modulo-sched.c (calculate_stage_count,
1231 calculate_must_precede_follow, get_sched_window,
1232 try_scheduling_node_in_cycle, remove_node_from_ps): Add
1233 declaration.
1234 (update_node_sched_params, set_must_precede_follow, optimize_sc):
1235 New functions.
1236 (reset_sched_times): Call update_node_sched_params.
1237 (sms_schedule): Call optimize_sc.
1238 (get_sched_window): Change function arguments.
1239 (sms_schedule_by_order): Update call to get_sched_window.
1240 Call set_must_precede_follow.
1241 (calculate_stage_count): Add function argument.
1242
1243 2011-08-02 Richard Henderson <rth@redhat.com>
1244
1245 PR target/49864
1246 PR target/49879
1247 * reg-notes.def (REG_ARGS_SIZE): New.
1248 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
1249 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
1250 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
1251 different stack levels.
1252 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
1253 (maybe_move_args_size_note): New.
1254 (combine_stack_adjustments_for_block): Use it.
1255 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
1256 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
1257 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
1258 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
1259 (cur_cfa): New.
1260 (queued_args_size): Remove.
1261 (add_cfi_args_size): Assert size is non-negative.
1262 (stack_adjust_offset, dwarf2out_args_size): Remove.
1263 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
1264 (notice_args_size, notice_eh_throw): New.
1265 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
1266 (dwarf2out_frame_debug_adjust_cfa): Likewise.
1267 (dwarf2out_frame_debug_cfa_offset): Likewise.
1268 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
1269 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
1270 (change_cfi_row): Don't emit args_size.
1271 (maybe_record_trace_start_abnormal): Split out from ...
1272 (maybe_record_trace_start): Here. Set args_size_undefined.
1273 (create_trace_edges): Update to match.
1274 (scan_trace): Handle REG_ARGS_SIZE.
1275 (connect_traces): Connect args_size between EH insns.
1276 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
1277 * explow.c (suppress_reg_args_size): New.
1278 (adjust_stack_1): Split out from ...
1279 (adjust_stack): ... here.
1280 (anti_adjust_stack): Use it.
1281 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
1282 * expr.c (mem_autoinc_base): New.
1283 (fixup_args_size_notes): New.
1284 (emit_single_push_insn_1): Rename from emit_single_push_insn.
1285 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
1286 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
1287 * reload1.c (reload_as_needed): Likewise.
1288 * rtl.h (fixup_args_size_notes): Declare.
1289
1290 2011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
1291
1292 PR bootstrap/49914
1293 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
1294 of abs.
1295 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1296 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1297
1298 2011-08-02 Richard Henderson <rth@redhat.com>
1299
1300 * config/h8300/h8300.c (push, pop): Return the insn.
1301 (h8300_swap_into_er6): Generate correct unwind info.
1302 (h8300_swap_out_of_er6): Likewise.
1303 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
1304 complex cfa expression.
1305 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
1306
1307 2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
1308
1309 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1310
1311 2011-08-02 Richard Henderson <rth@redhat.com>
1312
1313 PR target/49878
1314 * config/h8300/h8300.c (h8300_move_ok): New.
1315 * config/h8300/h8300-protos.h: Declare it.
1316 * config/h8300/h8300.md (P): New mode iterator.
1317 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
1318 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
1319 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
1320 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
1321 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
1322 and pushqi1_h8300hs_normal; use PRE_MODIFY and
1323 register_no_sp_elim_operand.
1324 (*pushhi1_h8300hs_<P>): Similarly.
1325 (pushqi1, pushhi1, pushhi1_h8300): Remove.
1326 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
1327
1328 2011-08-02 Richard Henderson <rth@redhat.com>
1329
1330 PR target/49881
1331 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
1332
1333 2011-08-02 Jakub Jelinek <jakub@redhat.com>
1334
1335 * c-parser.c (enum c_parser_prec): New enum, moved from within
1336 c_parser_binary_expression.
1337 (c_parser_binary_expression): Add PREC argument. Stop parsing
1338 if operator has lower or equal precedence than PREC.
1339 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
1340 callers.
1341 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
1342 Adjust c_finish_omp_atomic caller.
1343 (c_parser_omp_taskyield): New function.
1344 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
1345 (c_parser_omp_clause_name): Handle final and mergeable clauses.
1346 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
1347 functions.
1348 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
1349 and PRAGMA_OMP_CLAUSE_MERGEABLE.
1350 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
1351 (c_parser_omp_clause_reduction): Handle min and max.
1352 * c-typeck.c (c_finish_omp_clauses): Don't complain about
1353 const qualified predetermined vars in firstprivate clause.
1354 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1355 Handle MIN_EXPR and MAX_EXPR.
1356 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
1357 and OMP_CLAUSE_MERGEABLE.
1358 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
1359 and OMP_ATOMIC_CAPTURE_NEW.
1360 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
1361 OMP_CLAUSE_MERGEABLE.
1362 (omp_clause_code_name): Likewise.
1363 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1364 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1365 and OMP_CLAUSE_MERGEABLE.
1366 (OMP_CLAUSE_FINAL_EXPR): Define.
1367 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1368 OMP_CLAUSE_MERGEABLE.
1369 (expand_task_call): Likewise.
1370 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1371 (expand_omp_atomic_fetch_op): Handle cases where old or new
1372 value is needed afterwards.
1373 (expand_omp_atomic): Call expand_omp_atomic_load resp.
1374 expand_omp_atomic_store.
1375 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1376 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1377 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1378 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1379 * tree-nested.c (convert_nonlocal_omp_clauses,
1380 convert_local_omp_clauses): Likewise.
1381 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1382 OMP_ATOMIC_CAPTURE_NEW): New.
1383 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1384 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1385 New inlines.
1386 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1387 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1388 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1389
1390 2011-08-02 Kai Tietz <ktietz@redhat.com>
1391
1392 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1393 boolean-type.
1394 (ssa_forward_propagate_and_combine): Interprete result of
1395 forward_propagate_comparison.
1396 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1397 boolean-typed operands for comparisons.
1398
1399 2011-08-02 Georg-Johann Lay <avr@gjlay.de>
1400
1401 * config/avr/libgcc.S: Gather related function in the
1402 same input section.
1403 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
1404 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1405 references.
1406 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1407 __udivmodsi4, __divmodsi4, __prologue_saves__,
1408 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1409 __do_copy_data, __do_clear_bss, __do_global_ctors,
1410 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1411
1412 2011-08-02 Uros Bizjak <ubizjak@gmail.com>
1413
1414 PR target/47766
1415 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1416 (stack_protect_test): The pattern compares ptr_mode value.
1417
1418 2011-08-02 Alan Modra <amodra@gmail.com>
1419
1420 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1421 note for save_LR_around_toc_setup sequence.
1422
1423 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1424
1425 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
1426
1427 2011-08-01 Sebastian Pop <sebastian.pop@amd.com>
1428 Joseph Myers <joseph@codesourcery.com>
1429
1430 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1431 * hwint.c: Include diagnostic-core.h.
1432 (abs_hwi): New.
1433 (gcd): Moved here...
1434 (pos_mul_hwi): New.
1435 (mul_hwi): New.
1436 (least_common_multiple): Moved here...
1437 * hwint.h (gcd): ... from here.
1438 (least_common_multiple): ... from here.
1439 (HOST_WIDE_INT_MIN): New.
1440 (HOST_WIDE_INT_MAX): New.
1441 (abs_hwi): Declared.
1442 (gcd): Declared.
1443 (pos_mul_hwi): Declared.
1444 (mul_hwi): Declared.
1445 (least_common_multiple): Declared.
1446 * omega.c (check_pos_mul): Removed.
1447 (check_mul): Removed.
1448 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1449 mul_hwi instead of check_mul.
1450
1451 2011-08-01 Richard Henderson <rth@redhat.com>
1452
1453 PR target/49881
1454 * config/avr/avr.h (PUSH_ROUNDING): New.
1455 * config/avr/avr.md (pushqi1): Rename from *pushqi.
1456 (*pushhi, *pushsi, *pushsf): Remove.
1457 (MPUSH): New mode iterator.
1458 (push<MPUSH>1): New expander.
1459
1460 2011-08-01 Anatoly Sokolov <aesok@post.ru>
1461
1462 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1463 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1464 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1465 mmix_preferred_output_reload_class): Remove.
1466 * config/mmix/mmix.c (mmix_preferred_reload_class,
1467 mmix_preferred_output_reload_class): Make static. Change rclass
1468 argument and return type to reg_class_t.
1469 (TARGET_PREFERRED_RELOAD_CLASS,
1470 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1471
1472 2011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
1473
1474 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1475 handling.
1476
1477 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1478
1479 PR target/47766
1480 * config/i386/i386.md (PTR): New.
1481 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1482 (stack_protect_test): Likewise.
1483 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1484 (stack_tls_protect_set_<mode>): Likewise.
1485 (stack_tls_protect_test_<mode>): Likewise.
1486
1487 2011-08-01 Uros Bizjak <ubizjak@gmail.com>
1488
1489 PR target/49927
1490 * config/i386/i386.c (ix86_address_subreg_operand): New.
1491 (ix86_decompose_address): Use ix86_address_subreg_operand.
1492 (ix86_legitimate_address_p): Do not assert that subregs satisfy
1493 register_no_elim_operand in DImode.
1494
1495 2011-08-01 Ira Rosen <ira.rosen@linaro.org>
1496
1497 PR tree-optimization/49926
1498 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1499 in a chain doesn't have uses both inside and outside the loop.
1500
1501 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
1502
1503 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1504 * config/avr/avr-devices.c (avr_mcu_types): Use it.
1505 * config/avr/avr-mcus.def (AVR_MCU): Use it.
1506 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1507 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1508 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1509 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1510 to detect if XJMP must not be skipped.
1511
1512 2011-08-02 Alan Modra <amodra@gmail.com>
1513
1514 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1515 Delete.
1516 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1517 (rs6000_emit_prologue): Don't prematurely return when
1518 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
1519 save_toc_in_prologue case.
1520 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1521 calls_alloca.
1522
1523 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
1524
1525 * config/avr/avr-devices.c: Delete SVN property svn:executable.
1526 * config/avr/predicates.md: Ditto.
1527 * config/avr/driver-avr.c: Ditto.
1528 * config/avr/genopt.sh: Set SVN property svn:executable to *.
1529
1530 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1531
1532 * calls.c (emit_library_call_value_1): Declare size only if
1533 BLOCK_REG_PADDING is defined.
1534
1535 2011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
1536
1537 PR target/49547
1538 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
1539 (x86_64-*-*): Likewise.
1540 * config/i386/i386.opt (mlzcnt): New.
1541 * config/i386/abmintrin.h: File removed.
1542 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
1543 * config/i386/lzcntintrin.h: ... here. New file.
1544 (__lzcnt): Rename to ...
1545 (__lzcnt32): ... this.
1546 * config/i386/bmiintrin.h (head): Update copyright year.
1547 (__lzcnt_u16): Removed.
1548 (__lzcnt_u32): Likewise.
1549 (__lzcnt_u64): Likewise.
1550 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1551 is defined, remove abmintrin.h.
1552 * config/i386/cpuid.h (bit_LZCNT): New.
1553 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1554 LZCNT feature.
1555 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1556 __LZCNT__ if needed.
1557 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1558 (ix86_option_override_internal): Handle LZCNT option.
1559 (ix86_valid_target_attribute_inner_p): Likewise.
1560 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1561 * config/i386/i386.h (TARGET_LZCNT): New.
1562 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1563 * config/i386/i386.md (clz<mode>2): Update insn constraint.
1564 (clz<mode>2_lzcnt): Likewise.
1565 * doc/invoke.texi: Mention -mlzcnt option.
1566 * doc/extend.texi: Likewise.
1567
1568 2011-08-01 Julian Brown <julian@codesourcery.com>
1569
1570 * configure.ac (fixed-point): Add ARM support.
1571 * configure: Regenerate.
1572 * config/arm/arm.c (arm_fixed_mode_set): New struct.
1573 (arm_set_fixed_optab_libfunc): New.
1574 (arm_set_fixed_conv_libfunc): New.
1575 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1576 ARM-specific names.
1577 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1578 return values in SImode.
1579 (arm_return_in_msb): Return fixed-point types in the msb.
1580 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1581 upwards.
1582 (arm_scalar_mode_supported_p): Support fixed-point modes.
1583 (arm_vector_mode_supported_p): Support vector fixed-point modes.
1584 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1585 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1586 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1587 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1588 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1589 New mode iterators.
1590 (qaddsub_suf): New mode attribute.
1591 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1592 vector modes.
1593 * config/arm/predicates.md (sat_shift_operator): New predicate.
1594 * config/arm/arm-fixed.md: New.
1595 * config/arm/arm.md: Include arm-fixed.md.
1596 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1597
1598 2011-08-01 Julian Brown <julian@codesourcery.com>
1599
1600 * calls.c (emit_library_call_value_1): Support padding for libcall
1601 arguments and return values.
1602 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1603 downwards in big-endian mode.
1604
1605 2011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1606
1607 PR debug/49887
1608 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1609 * config/sol2-protos.h: Likewise.
1610 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1611 solaris_code_end.
1612 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1613 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1614 solaris_file_end.
1615 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1616
1617 2011-08-01 Julian Brown <julian@codesourcery.com>
1618
1619 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1620
1621 2011-08-01 Julian Brown <julian@codesourcery.com>
1622
1623 * final.c (output_addr_const): Print fixed-point constants as
1624 decimal not hex.
1625
1626 2011-08-01 Richard Guenther <rguenther@suse.de>
1627
1628 * stor-layout.c (initialize_sizetypes): Properly sign-extend
1629 bitsiztype TYPE_MAX_VALUE.
1630
1631 2011-08-01 Julian Brown <julian@codesourcery.com>
1632
1633 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1634 comparison helpers.
1635
1636 2011-07-31 Richard Henderson <rth@redhat.com>
1637
1638 * config/h8300/crti.asm: Add flags to .section directive.
1639 * config/h8300/crtn.asm: Likewise.
1640
1641 2011-07-31 Richard Henderson <rth@redhat.com>
1642
1643 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
1644 * tree.c (build_common_tree_nodes): Likewise.
1645
1646 2011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
1647
1648 PR target/49880
1649 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
1650 (divsi3_i1): Likewise.
1651
1652 2011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1653
1654 PR tree-optimization/49749
1655 * tree-ssa-reassoc.c (get_rank): New forward declaration.
1656 (PHI_LOOP_BIAS): New macro.
1657 (phi_rank): New function.
1658 (loop_carried_phi): Likewise.
1659 (propagate_rank): Likewise.
1660 (get_rank): Add calls to phi_rank and propagate_rank.
1661
1662 2011-07-31 H.J. Lu <hongjiu.lu@intel.com>
1663
1664 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
1665 of TARGET_64BIT.
1666 (PTRDIFF_TYPE): Likewise.
1667
1668 2011-07-31 Uros Bizjak <ubizjak@gmail.com>
1669
1670 PR target/49920
1671 * config/i386/i386.md (strset): Do not expand strset_singleop
1672 when %eax or $edi are fixed.
1673 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
1674 (*strsetsi_1): Ditto.
1675 (*strsethi_1): Ditto.
1676 (*strsetqi_1): Ditto.
1677 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
1678 (*rep_stossi): Ditto.
1679 (*rep_stosqi): Ditto.
1680 (*strlenqi_1): Ditto.
1681 (cmpstrnsi): Also fail when %ecx is fixed.
1682 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
1683 (*cmpstrnqi_1): Ditto.
1684 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
1685 (*strmovsi_1): Ditto.
1686 (*strmovhi_1): Ditto.
1687 (*strmovqi_1): Ditto.
1688 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
1689 (*rep_movsi): Ditto.
1690 (*rep_movqi): Ditto.
1691
1692 2011-07-31 Mikael Pettersson <mikpe@it.uu.se>
1693
1694 PR target/47908
1695 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
1696 Disable instruction scheduling for non-ColdFire targets.
1697 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1698
1699 2011-07-31 Revital Eres <revital.eres@linaro.org>
1700
1701 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
1702 of anti-dep edge from a branch.
1703 (add_cross_iteration_register_deps): Create anti-dep edge from
1704 a branch.
1705
1706 2011-07-31 Revital Eres <revital.eres@linaro.org>
1707
1708 * modulo-sched.c: Change comment.
1709 (reset_sched_times): Fix print message.
1710 (print_partial_schedule): Add print info.
1711
1712 2011-07-31 Tom de Vries <tom@codesourcery.com>
1713
1714 PR middle-end/43513
1715 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
1716 get_object_alignment and TYPE_ALIGN.
1717
1718 2011-07-30 Tom de Vries <tom@codesourcery.com>
1719
1720 PR middle-end/43513
1721 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
1722 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
1723
1724 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1725
1726 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
1727 <sys/sbd.h>.
1728 (cpu_types): New array.
1729 (cputype): New function.
1730 (host_detect_local_cpu): Only define buf, f if !__sgi__.
1731 Use scaninvent instead of /proc/cpuinfo if __sgi__.
1732 * config.host: Also use driver-native.o, mips/x-native on
1733 mips-sgi-irix*.
1734 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
1735 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
1736 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
1737
1738 2011-07-29 Jakub Jelinek <jakub@redhat.com>
1739
1740 PR middle-end/49897
1741 PR middle-end/49898
1742 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
1743 in nested parallel and outer is a gimple_reg, mark it as addressable
1744 and set its bit in task_shared_vars bitmap too.
1745
1746 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
1747
1748 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
1749
1750 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1751
1752 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
1753 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
1754 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
1755 AMASK_LOCKPFTCHOK): Define.
1756 (host_detect_local_cpu): Remove buf, f, cpu_names.
1757 Define cpu_types, implver, amask.
1758 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
1759 native CPU.
1760 * config.host: Also use driver-alpha.o, alpha/x-alpha on
1761 alpha*-dec-osf*.
1762 * config/alpha/osf5.h [__alpha__ || __alpha]
1763 (host_detect_local_cpu): Declare.
1764 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
1765 (DRIVER_SELF_SPECS): Define.
1766
1767 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
1768
1769 PR target/47715
1770 * config/i386/i386.md (*load_tp_x32): New.
1771 (*load_tp_x32_zext): Ditto.
1772 (*add_tp_x32): Ditto.
1773 (*add_tp_x32_zext): Ditto.
1774 (*load_tp_<mode>): Disable for TARGET_X32 targets.
1775 (*add_tp_<mode>): Ditto.
1776 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
1777 ptr_mode and convert to Pmode if needed.
1778
1779 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
1780
1781 PR target/49687
1782 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
1783 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
1784 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
1785 Add X to register footprint: Clobber r26/r27.
1786
1787 2011-07-29 Richard Guenther <rguenther@suse.de>
1788
1789 * builtins.c (fold_builtin_signbit): Build the comparison
1790 with a proper type.
1791
1792 2011-07-29 Richard Guenther <rguenther@suse.de>
1793
1794 PR tree-optimization/49893
1795 * tree-predcom.c (suitable_reference_p): Volatile references
1796 are not suitable.
1797
1798 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
1799
1800 PR target/49313
1801 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1802 (__ctzsi2): Result for 0 may be undefined.
1803 (__ctzhi2): Result for 0 may be undefined.
1804 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1805 (__popcountsi2): Ditto. And don't clobber r26.
1806 (__popcountdi2): Ditto. And don't clobber r27.
1807 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1808 (parityhi2): New expand.
1809 (paritysi2): New expand.
1810 (popcounthi2): New expand.
1811 (popcountsi2): New expand.
1812 (clzhi2): New expand.
1813 (clzsi2): New expand.
1814 (ctzhi2): New expand.
1815 (ctzsi2): New expand.
1816 (ffshi2): New expand.
1817 (ffssi2): New expand.
1818 (copysignsf3): New insn.
1819 (bswapsi2): New expand.
1820 (*parityhi2.libgcc): New insn.
1821 (*parityqihi2.libgcc): New insn.
1822 (*paritysihi2.libgcc): New insn.
1823 (*popcounthi2.libgcc): New insn.
1824 (*popcountsi2.libgcc): New insn.
1825 (*popcountqi2.libgcc): New insn.
1826 (*popcountqihi2.libgcc): New insn-and-split.
1827 (*clzhi2.libgcc): New insn.
1828 (*clzsihi2.libgcc): New insn.
1829 (*ctzhi2.libgcc): New insn.
1830 (*ctzsihi2.libgcc): New insn.
1831 (*ffshi2.libgcc): New insn.
1832 (*ffssihi2.libgcc): New insn.
1833 (*bswapsi2.libgcc): New insn.
1834
1835 2011-07-29 Richard Guenther <rguenther@suse.de>
1836
1837 * tree-vrp.c (get_value_range): Only set parameter default
1838 definitions to varying, leave others at undefined.
1839 (extract_range_from_binary_expr): Fix undefined handling.
1840 (vrp_visit_phi_node): Handle merged undefined state.
1841
1842 2011-07-29 Wei Guozhi <carrot@google.com>
1843
1844 PR rtl-optimization/49799
1845 * combine.c (make_compound_operation): Check if the bit field is valid
1846 before change it to bit field extraction.
1847
1848 2011-07-29 Bernd Schmidt <bernds@codesourcery.com>
1849
1850 PR rtl-optimization/49891
1851 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
1852 newly created returnjumps.
1853
1854 2011-07-28 DJ Delorie <dj@redhat.com>
1855
1856 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
1857 local frame in a naked function, and produce a suitable error for
1858 that specific case.
1859
1860 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
1861 registers to be reloaded in HI classes when the target is HI.
1862
1863 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1864
1865 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
1866 bound_one, bound_two.
1867
1868 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1869
1870 PR middle-end/48648
1871 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
1872 CLAST assignments.
1873 (translate_clast): Same.
1874 (translate_clast_assignment): New.
1875
1876 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1877
1878 PR tree-optimization/49876
1879 * sese.c (rename_uses): Do not return false on gloog_error: set
1880 the new_expr to integer_zero_node and continue code generation.
1881 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
1882
1883 2011-07-28 Jakub Jelinek <jakub@redhat.com>
1884
1885 PR debug/49846
1886 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
1887 arguments also check if they aren't initialized with a MODE_INT
1888 mode of the same size.
1889
1890 2011-07-28 Aldy Hernandez <aldyh@redhat.com>
1891
1892 * expr.c (get_bit_range): Handle *MEM_REF's.
1893
1894 2011-07-28 Bernd Schmidt <bernds@codesourcery.com>
1895
1896 * rtlanal.c (tablejump_p): False for returns.
1897 * reorg.c (first_active_target_insn): New static function.
1898 (find_end_label): Set JUMP_LABEL for a new returnjump.
1899 (optimize_skip, get_jump_flags, rare_destination,
1900 mostly_true_jump, get_branch_condition,
1901 steal_delay_list_from_target, own_thread_p,
1902 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
1903 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
1904 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
1905 * jump.c (delete_related_insns): Likewise.
1906 (jump_to_label_p): New function.
1907 (redirect_target): New static function.
1908 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
1909 (redirect_jump_1): Assert that the new label is nonnull.
1910 (redirect_jump): Likewise.
1911 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
1912 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
1913 exit block.
1914 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
1915 changed. Ensure that the right label is passed to redirect_jump.
1916 * function.c (emit_return_into_block,
1917 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
1918 ret_rtx in their JUMP_LABEL.
1919 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
1920 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
1921 pass ret_rtx as label.
1922 * cfglayout.c (fixup_reorder_chain): Use
1923 force_nonfallthru_and_redirect rather than force_nonfallthru.
1924 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
1925 * rtl.h (ANY_RETURN_P): New macro.
1926 (jump_to_label_p): Declare.
1927 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
1928 JUMP_LABELs.
1929 (mark_target_live_regs): Likewise.
1930 * basic-block.h (force_nonfallthru_and_redirect): Declare.
1931 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
1932 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
1933 alpha_tablejump_best_label): Remove functions.
1934 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
1935 alpha_tablejump_best_label): Remove declarations.
1936 * config/sh/sh.c (barrier_align, split_branches): Adjust for
1937 ret_rtx in JUMP_LABELs.
1938 * config/arm/arm.c (is_jump_table): Likewise.
1939
1940 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
1941
1942 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
1943 special predicate. Remove explicit mode checks.
1944
1945 2011-07-28 Jakub Jelinek <jakub@redhat.com>
1946
1947 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
1948 DW_AT_data_member_location containing just DW_OP_plus_uconst.
1949
1950 PR debug/49871
1951 * dwarf2out.c (size_of_die, value_format, output_die): Use
1952 DW_FORM_udata instead of DW_FORM_data[48] for
1953 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
1954
1955 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1956
1957 * config/i386/i386.md (*tls_global_dynamic_64): Update
1958 length attribute.
1959
1960 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
1961
1962 PR target/47715
1963 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
1964 tls_symbolic_operand check. Update code sequence for TARGET_X32.
1965 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
1966 (tls_dynamic_gnu2_64): Ditto.
1967 (*tls_dynamic_gnu2_lea_64): Ditto.
1968 (*tls_dynamic_gnu2_call_64): Ditto.
1969 (*tls_dynamic_gnu2_combine_64): Ditto.
1970
1971 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1972
1973 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
1974
1975 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1976
1977 PR target/47364
1978 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
1979
1980 2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1981
1982 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
1983 before the core constraints. Adjust attributes.
1984 ("*thumb2_movdf_vfp"): Likewise.
1985
1986 2011-07-28 Kai Tietz <ktietz@redhat.com>
1987
1988 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
1989 (simplify_truth_ops_using_ranges): Likewise.
1990 (build_assert_expr_for): Likewise.
1991 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
1992 and handle BIT_NOT_EXPR for truth-operation.
1993
1994 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
1995
1996 PR target/49313
1997 Undo r176835 from trunk
1998 2011-07-27 Georg-Johann Lay
1999
2000 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
2001
2002 PR target/49687
2003 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
2004 Add _muluhisi3, _mulshisi3, _usmulhisi3.
2005 * config/avr/libgcc.S (__mulsi3): Rewrite.
2006 (__mulhisi3): Rewrite.
2007 (__umulhisi3): Rewrite.
2008 (__usmulhisi3): New.
2009 (__muluhisi3): New.
2010 (__mulshisi3): New.
2011 (__mulohisi3): New.
2012 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
2013 declare.
2014 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
2015 (pseudo_register_or_const_int_operand): New.
2016 (combine_pseudo_register_operand): New.
2017 (u16_operand): New.
2018 (s16_operand): New.
2019 (o16_operand): New.
2020 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
2021 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
2022 (any_extend, any_extend2): New code iterators.
2023 (extend_prefix): New code attribute.
2024 (mulsi3): Rewrite. Turn insn to expander.
2025 (mulhisi3): Ditto.
2026 (umulhisi3): Ditto.
2027 (usmulhisi3): New expander.
2028 (*mulsi3): New insn-and-split.
2029 (mulu<mode>si3): New insn-and-split.
2030 (muls<mode>si3): New insn-and-split.
2031 (mulohisi3): New insn-and-split.
2032 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
2033 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
2034 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
2035 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
2036 insn-and-split.
2037 (*mulsi3_call): Rewrite.
2038 (*mulhisi3_call): Rewrite.
2039 (*umulhisi3_call): Rewrite.
2040 (*usmulhisi3_call): New insn.
2041 (*muluhisi3_call): New insn.
2042 (*mulshisi3_call): New insn.
2043 (*mulohisi3_call): New insn.
2044 (extendqihi2): Use combine_pseudo_register_operand as predicate
2045 for operand 1.
2046 (extendqisi2): Ditto.
2047 (zero_extendqihi2): Ditto.
2048 (zero_extendqisi2): Ditto.
2049 (zero_extendhisi2): Ditto.
2050 (extendhisi2): Ditto. Don't early-clobber operand 0.
2051
2052 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
2053
2054 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
2055
2056 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2057
2058 PR tree-optimization/49471
2059 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
2060 iv only when the largest type is unsigned. Do not call
2061 lang_hooks.types.type_for_size.
2062
2063 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2064
2065 PR middle-end/45450
2066 * graphite-poly.c (apply_poly_transforms): Disable legality check
2067 after an openscop read.
2068
2069 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2070
2071 PR middle-end/47691
2072 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
2073 copy_bb_and_scalar_dependences.
2074 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
2075 (graphite_copy_stmts_from_block): Update call to rename_uses.
2076 (copy_bb_and_scalar_dependences): Update call to
2077 graphite_copy_stmts_from_block.
2078 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2079
2080 2011-07-27 Georg-Johann Lay <avr@gjlay.de>
2081
2082 PR target/49313
2083 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2084 (__ctzsi2): Result for 0 may be undefined.
2085 (__ctzhi2): Result for 0 may be undefined.
2086 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2087 (__popcountsi2): Ditto. And don't clobber r26.
2088 (__popcountdi2): Ditto. And don't clobber r27.
2089 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2090 (parityhi2): New expand.
2091 (paritysi2): New expand.
2092 (popcounthi2): New expand.
2093 (popcountsi2): New expand.
2094 (clzhi2): New expand.
2095 (clzsi2): New expand.
2096 (ctzhi2): New expand.
2097 (ctzsi2): New expand.
2098 (ffshi2): New expand.
2099 (ffssi2): New expand.
2100 (copysignsf3): New insn.
2101 (bswapsi2): New expand.
2102 (*parityhi2.libgcc): New insn.
2103 (*parityqihi2.libgcc): New insn.
2104 (*paritysihi2.libgcc): New insn.
2105 (*popcounthi2.libgcc): New insn.
2106 (*popcountsi2.libgcc): New insn.
2107 (*popcountqi2.libgcc): New insn.
2108 (*popcountqihi2.libgcc): New insn-and-split.
2109 (*clzhi2.libgcc): New insn.
2110 (*clzsihi2.libgcc): New insn.
2111 (*ctzhi2.libgcc): New insn.
2112 (*ctzsihi2.libgcc): New insn.
2113 (*ffshi2.libgcc): New insn.
2114 (*ffssihi2.libgcc): New insn.
2115 (*bswapsi2.libgcc): New insn.
2116
2117 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
2118
2119 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
2120 the mode of symbolic_opreand RTXes.
2121
2122 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
2123
2124 * config/i386/predicates.md (x86_64_movabs_operand): Return false
2125 for pic_32bit_operand RTXes.
2126 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
2127 in DImode.
2128
2129 2011-07-27 Kai Tietz <ktietz@redhat.com>
2130
2131 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
2132 for 32-bit, too.
2133 (ix86_handle_abi_attribute): Allow function attributes
2134 ms_abi/sysv_abi in 32-bit mode, too.
2135 * doc/extend.texi: Adjust attribute documentation.
2136
2137 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
2138 expression handling.
2139 (and_var_with_comparison_1): Likewise.
2140
2141 2011-07-27 Aldy Hernandez <aldyh@redhat.com>
2142
2143 * params.h (ALLOW_STORE_DATA_RACES): New.
2144 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
2145 * Makefile.in (expr.o): Depend on PARAMS_H.
2146 * machmode.h (get_best_mode): Add argument.
2147 * fold-const.c (optimize_bit_field_compare): Add argument to
2148 get_best_mode.
2149 (fold_truthop): Same.
2150 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
2151 * expr.c (emit_group_store): Same.
2152 (copy_blkmode_from_reg): Same.
2153 (write_complex_part): Same.
2154 (optimize_bitfield_assignment_op): Add argument.
2155 Add argument to get_best_mode.
2156 (get_bit_range): New.
2157 (expand_assignment): Calculate maxbits and pass it down accordingly.
2158 (store_field): New argument.
2159 (expand_expr_real_2): New argument to store_field. Include params.h.
2160 * expr.h (store_bit_field): New argument.
2161 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
2162 into account maxbits.
2163 * calls.c (store_unaligned_arguments_into_pseudos): New argument
2164 to store_bit_field.
2165 * expmed.c (store_bit_field_1): New argument. Use it.
2166 (store_bit_field): Same.
2167 (store_fixed_bit_field): Same.
2168 (store_split_bit_field): Same.
2169 (extract_bit_field_1): Pass new argument to get_best_mode.
2170 (extract_bit_field): Same.
2171 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
2172 * doc/invoke.texi: Document parameter allow-store-data-races.
2173
2174 2011-07-27 Jakub Jelinek <jakub@redhat.com>
2175
2176 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
2177
2178 2011-07-27 Kai Tietz <ktietz@redhat.com>
2179
2180 * tree-vrp.c (extract_range_from_binary_expr): Remove
2181 TRUTH-binary cases and add new bitwise-cases.
2182 (extract_range_from_assignment): Likewise.
2183 (register_edge_assert_for_1): Likeiwise.
2184 (register_edge_assert_for): Likewise.
2185 (simplify_truth_ops_using_ranges): Likewise.
2186 (simplify_stmt_using_ranges): Likewise.
2187
2188 2011-07-26 H.J. Lu <hongjiu.lu@intel.com>
2189
2190 PR target/47372
2191 * config/i386/i386.c (ix86_delegitimize_address): Call
2192 simplify_gen_subreg for PIC with mode of x only if modes of
2193 x and orig_x are different.
2194
2195 2011-07-26 Jakub Jelinek <jakub@redhat.com>
2196
2197 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
2198 to GC allocated copy of the string.
2199 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
2200 before .debug_line, not after it.
2201
2202 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2203
2204 PR middle-end/47046
2205 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
2206 evolution_function_is_affine_p on CHREC_RIGHT.
2207
2208 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2209
2210 * tree-data-ref.c (max_stmt_executions_tree): Do not call
2211 lang_hooks.types.type_for_size.
2212
2213 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2214
2215 PR middle-end/47653
2216 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
2217 loops using wrapping semantics.
2218
2219 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2220
2221 PR middle-end/48805
2222 * tree-scalar-evolution.c (instantiate_scev_r): Return
2223 chrec_dont_know for ADDR_EXPR.
2224
2225 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
2226 H.J. Lu <hongjiu.lu@intel.com>
2227
2228 PR target/47369
2229 PR target/49853
2230 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
2231 if legitimize_tls_address returned operand in wrong mode. Allow
2232 SImode and DImode symbolic operand for PIC. Call convert_to_mode
2233 if legitimize_pic_address returned operand in wrong mode.
2234
2235 2011-07-26 Martin Jambor <mjambor@suse.cz>
2236
2237 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
2238 return false for invariants.
2239
2240 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
2241
2242 * config/i386/i386.md (add->lea splitter): Implement using SWI
2243 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
2244 (add->lea zext splitter): Change operand 2 predicate to
2245 x86_64_nonmemory_operand.
2246
2247 2011-07-26 Richard Guenther <rguenther@suse.de>
2248
2249 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
2250 frequency makes everything hot.
2251
2252 2011-07-26 Richard Guenther <rguenther@suse.de>
2253
2254 PR tree-optimization/49840
2255 * tree-vrp.c (range_fits_type_p): Properly handle full
2256 double-int precision.
2257
2258 2011-07-26 Martin Jambor <mjambor@suse.cz>
2259
2260 PR bootstrap/49786
2261 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
2262 counts.
2263 (update_specialized_profile): Likewise.
2264
2265 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
2266 H.J. Lu <hongjiu.lu@intel.com>
2267
2268 PR target/47381
2269 PR target/49832
2270 PR target/49833
2271 * config/i386/i386.md (i): Change SImode attribute to "e".
2272 (g): Change SImode attribute to "rme".
2273 (di): Change SImode attribute to "nF".
2274 (general_operand): Change SImode attribute to x86_64_general_operand.
2275 (general_szext_operand): Change SImode attribute to
2276 x86_64_szext_general_operand.
2277 (immediate_operand): Change SImode attribute to
2278 x86_64_immediate_operand.
2279 (nonmemory_operand): Change SImode attribute to
2280 x86_64_nonmemory_operand.
2281 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
2282 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
2283 (*lea_1): Use SWI48 mode iterator.
2284 (*lea_1_zext): New insn pattern.
2285 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
2286 (*bt<mode>): Ditto.
2287 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
2288 Update operand constraints.
2289 (addsi_1_zext): Ditto.
2290 (*add<mode>2): Ditto.
2291 (*addsi_3_zext): Ditto.
2292 (*subsi_1_zext): Ditto.
2293 (*subsi_2_zext): Ditto.
2294 (*subsi_3_zext): Ditto.
2295 (*addsi3_carry_zext): Ditto.
2296 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
2297 (*mulsi3_1_zext): Ditto.
2298 (*andsi_1): Ditto.
2299 (*andsi_1_zext): Ditto.
2300 (*andsi_2_zext): Ditto.
2301 (*<any_or:code>si_1_zext): Ditto.
2302 (*<any_or:code>si_2_zext): Ditto.
2303 (*test<mode>_1): Use <general_operand> predicate for operand 1.
2304 (*and<mode>_2): Ditto.
2305 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
2306 (add->lea splitter): Check operand modes in insn constraint. Extend
2307 operands less than SImode wide to SImode.
2308 (add->lea zext splitter): Do not extend input operands to DImode.
2309 (*lea_general_1): Handle only QImode and HImode operands.
2310 (*lea_general_2): Ditto.
2311 (*lea_general_3): Ditto.
2312 (*lea_general_1_zext): Remove.
2313 (*lea_general_2_zext): Ditto.
2314 (*lea_general_3_zext): Ditto.
2315 (*lea_general_4): Check operand modes in insn constraint. Extend
2316 operands less than SImode wide to SImode.
2317 (ashift->lea splitter): Ditto.
2318 * config/i386/i386.c (ix86_print_operand_address): Print address
2319 registers with 'q' modifier on 64bit targets.
2320 * config/i386/predicates.md (pic_32bit_opreand): Define as special
2321 predicate. Reject non-SI and non-DI modes.
2322
2323 2011-07-25 Andrew Pinski <apinski@cavium.com>
2324
2325 PR tree-opt/49671
2326 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
2327 TREE_THIS_NOTRAP into the inner most MEM_REF.
2328 Always copy TREE_THIS_VOLATILE.
2329 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
2330 arguments are not volatile references.
2331
2332 2011-07-25 Richard Henderson <rth@redhat.com>
2333
2334 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
2335 * final.c (final_scan_insn): Don't test for it.
2336 (rest_of_clean_state): Likewise.
2337
2338 2011-07-25 Richard Henderson <rth@redhat.com>
2339
2340 PR debug/49841
2341 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
2342 (emit_frame_save): Likewise.
2343 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
2344 insn onto a dummy blockage insn after the join label.
2345
2346 2011-07-25 Richard Henderson <rth@redhat.com>
2347
2348 * dwarf2cfi.c (dw_trace_info): Add ID member.
2349 (get_trace_index): Remove. Change users to use ID member.
2350 (before_next_cfi_note): New.
2351 (connect_traces): Remove unreachable traces before the main loop.
2352 Look across one trace and generate remember/restore_state if needed.
2353
2354 2011-07-25 Richard Henderson <rth@redhat.com>
2355
2356 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
2357
2358 2011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
2359
2360 * genattr.c (write_upcase, gen_attr <enum definition writing>):
2361 Move to ...
2362 * genattr-common.c ... here.
2363 (main): Call gen_attr.
2364 * optc-gen.awk: Make generated program include insn-attr-common.h .
2365 * Makefile.in (oprions.o): Depend on insn-attr-common.h
2366
2367 2011-07-25 Anatoly Sokolov <aesok@post.ru>
2368
2369 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2370 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2371 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2372 m32c_print_operand, m32c_print_operand_address): Remove.
2373 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2374 Change return type to bool. Change argument type to bool.
2375 (m32c_print_operand, m32c_print_operand_address): Make static.
2376 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2377 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2378
2379 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2380
2381 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2382 attributes): Document mmap.
2383
2384 2011-07-25 Anatoly Sokolov <aesok@post.ru>
2385
2386 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2387 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2388 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2389 mmix_print_operand, mmix_print_operand_address): Remove.
2390 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2391 Change return type to bool. Change argument type to bool.
2392 (mmix_print_operand, mmix_print_operand_address): Make static.
2393 (mmix_intval, mmix_output_condition): Change 'x' argument type
2394 to const_rtx.
2395 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2396 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2397
2398 2011-07-25 Georg-Johann Lay <avr@gjlay.de>
2399
2400 PR target/39386
2401 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2402 shift counter for x << x and x >> x shifts.
2403
2404 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2405
2406 PR target/47124
2407 * config.gcc: Reject *-*-solaris2 configuration.
2408
2409 2011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
2410
2411 PR tree-optimization/49809
2412 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2413 gimple_get_lhs instead of gimple_assign_lhs.
2414
2415 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2416
2417 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2418
2419 2011-07-25 Richard Guenther <rguenther@suse.de>
2420
2421 PR tree-optimization/49822
2422 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2423 more. Make sure to preserve stmts with side-effects. Properly
2424 handle virtual defs, follow a longer def chain.
2425
2426 2011-07-22 Romain Geissler <romain.geissler@gmail.com>
2427
2428 PR plugins/45348
2429 PR plugins/48425
2430 PR plugins/46577
2431 * Makefile.in: Do not flatten c-family directory when installing
2432 plugin headers.
2433
2434 2011-07-25 Eric Botcazou <ebotcazou@adacore.com>
2435
2436 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2437 original nodes if we are dealing with virtual clones.
2438
2439 2011-07-25 Bernd Schmidt <bernds@codesourcery.com>
2440
2441 * common/config/c6x/c6x-common.c: New file.
2442
2443 2011-07-25 Roman Zhuykov <zhroma@ispras.ru>
2444
2445 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2446
2447 2011-07-25 Richard Guenther <rguenther@suse.de>
2448
2449 PR tree-optimization/49715
2450 * tree-vrp.c: Include expr.h and optabs.h.
2451 (range_fits_type_): New function.
2452 (simplify_float_conversion_using_ranges): Likewise.
2453 (simplify_stmt_using_ranges): Call it.
2454 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2455 * optabs.c (can_float_p): Export.
2456 * optabs.h (can_float_p): Declare.
2457
2458 2011-07-25 Richard Guenther <rguenther@suse.de>
2459
2460 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2461 (get_value_range): For out-of-range SSA names or names created
2462 after propagation return a read-only varying range.
2463 (dump_all_value_ranges): Adjust.
2464 (vrp_initialize): Likewise.
2465 (vrp_finalize): Likewise.
2466
2467 2011-07-24 Richard Henderson <rth@redhat.com>
2468
2469 PR debug/49831
2470 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
2471 them entirely.
2472
2473 2011-07-24 Richard Henderson <rth@redhat.com>
2474
2475 PR debug/49825
2476 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2477 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2478
2479 2011-07-24 Richard Henderson <rth@redhat.com>
2480
2481 PR debug/49827
2482 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2483
2484 2011-07-24 Richard Henderson <rth@redhat.com>
2485
2486 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2487 Zero args_size for abnormal edges. Adjust all callers.
2488
2489 2011-07-24 Richard Henderson <rth@redhat.com>
2490
2491 PR debug/49825
2492 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2493
2494 2011-07-24 H.J. Lu <hongjiu.lu@intel.com>
2495
2496 PR bootstrap/49835
2497 * collect2.c (demangle_flag): Removed.
2498
2499 2011-07-24 Sandra Loosemore <sandra@codesourcery.com>
2500
2501 * configure.ac (demangler_in_ld): Default to yes.
2502 * configure: Regenerated.
2503 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2504 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2505 --no-demangle options straight through to ld. When
2506 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2507 way that has the intended effect on Windows.
2508
2509 2011-07-23 Richard Henderson <rth@redhat.com>
2510
2511 * dwarf2cfi.c: Include basic-block.h.
2512 (dw_label_info): Remove.
2513 (trace_work_list, trace_index): New.
2514 (remember_row, emit_cfa_remember): Remove.
2515 (dw_trace_info_hash, dw_trace_info_eq): New.
2516 (get_trace_index, get_trace_info): New.
2517 (save_point_p): New.
2518 (free_cfi_row): Remove.
2519 (add_cfi): Do not emit DW_CFA_remember_state.
2520 (cfa_row_equal_p): New.
2521 (barrier_args_size): Remove.
2522 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2523 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2524 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2525 (dwarf2out_cfi_begin_epilogue): Remove.
2526 (dwarf2out_frame_debug_restore_state): Remove.
2527 (connect_traces, create_pseudo_cfg): New.
2528 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2529 * Makefile.in (dwarf2cfi.o): Update.
2530
2531 2011-07-23 Richard Henderson <rth@redhat.com>
2532
2533 * dwarf2cfi.c (dw_trace_info): New.
2534 (dw_label_info): New.
2535 (cie_return_save): New.
2536 (cur_trace): New.
2537 (queued_args_size): Rename from args_size. Update all users.
2538 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2539 (def_cfa_1): Use cur_trace instead of cfa_*.
2540 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2541 (clobbers_queued_reg_save, reg_saved_in): Likewise.
2542 (dwarf2out_frame_debug_expr): Likewise.
2543 (create_cie_data): Split out from ...
2544 (execute_dwarf2_frame): ... here. Initialize cur_trace.
2545
2546 2011-07-23 Richard Henderson <rth@redhat.com>
2547
2548 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2549 Update all users to match.
2550 (execute_dwarf2_frame): Free reg_saved_in_data.
2551
2552 2011-07-23 Richard Henderson <rth@redhat.com>
2553
2554 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
2555 (queued_reg_saves): Don't GTY. Change to a VEC.
2556 (queue_reg_save): Update to match.
2557 (dwarf2out_flush_queued_reg_saves): Likewise.
2558 (clobbers_queued_reg_save): Likewise.
2559 (reg_saved_in): Likewise.
2560 (execute_dwarf2_frame): Free queued_reg_saves.
2561
2562 2011-07-23 Richard Henderson <rth@redhat.com>
2563
2564 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
2565
2566 2011-07-23 Richard Henderson <rth@redhat.com>
2567
2568 * dwarf2cfi.c (add_cfi_args_size): Split out from...
2569 (dwarf2out_args_size): ... here.
2570 (add_cfi_restore): Split out from ...
2571 (dwarf2out_frame_debug_cfa_restore): ... here.
2572 (def_cfa_0): Split out from ...
2573 (def_cfa_1): ... here.
2574 (cfi_oprnd_equal_p, cfi_equal_p): New.
2575 (change_cfi_row): New.
2576 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2577 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2578 (output_cfis): Remove.
2579 * dwarf2out.c (output_fde): Simplify output_cfi loop.
2580 (dwarf2out_switch_text_section): Don't call output_cfis.
2581 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2582 * dwarf2out.h: Update decls.
2583 (enum dw_val_class): Add dw_val_class_none.
2584
2585 2011-07-23 Richard Henderson <rth@redhat.com>
2586
2587 * dwarf2cfi.c (update_row_reg_save): New.
2588 (dwarf2out_frame_debug_cfa_expression): Use it.
2589 (dwarf2out_frame_debug_cfa_restore): Likewise.
2590 (reg_save): Likewise. Do not emit DW_CFA_same_value.
2591
2592 2011-07-23 Richard Henderson <rth@redhat.com>
2593
2594 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
2595
2596 2011-07-23 Richard Henderson <rth@redhat.com>
2597
2598 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2599 (cie_cfi_row): New.
2600 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2601 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2602 (cur_row, remember_row): New.
2603 (def_cfa_1): Use cur_row instead of the old_* variables.
2604 (dwarf2out_frame_debug_restore_state): Similarly.
2605 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2606 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2607 (dwarf2out_frame_debug_adjust_cfa): Likewise.
2608 (dwarf2out_frame_debug_cfa_offset): Likewise.
2609 (dwarf2out_frame_debug_expr): Likewise.
2610 (execute_dwarf2_frame): Set up cur_row.
2611 * dwarf2out.h (struct cfa_loc): Mark for GTY.
2612
2613 2011-07-23 Richard Henderson <rth@redhat.com>
2614
2615 * basic-block.h (EDGE_PRESERVE): New.
2616 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2617 * bb-reorder.c: Include except.h.
2618 (fix_up_crossing_landing_pad): New.
2619 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
2620 landing pads in the right partition. Duplicate as necessary.
2621 (partition_hot_cold_basic_blocks): Fix up DF info after
2622 duplicating landing pads.
2623 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2624 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2625 is set properly. Validate that EH edges are not CROSSING.
2626 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2627 (dw2_build_landing_pads): ... here.
2628 (convert_to_eh_region_ranges): Remove code to fixup crossing
2629 landing pads.
2630 * except.h (expand_dw2_landing_pad_for_region): Declare.
2631 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2632
2633 2011-07-23 Richard Earnshaw <rearnsha@arm.com>
2634
2635 PR target/49816
2636 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2637
2638 2011-07-22 Jason Merrill <jason@redhat.com>
2639
2640 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2641
2642 2011-07-22 Richard Henderson <rth@redhat.com>
2643
2644 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
2645
2646 2011-07-22 Richard Henderson <rth@redhat.com>
2647
2648 * jump.c (maybe_propagate_label_ref): Split out of...
2649 (mark_all_labels): ... here. Do not attempt label_ref
2650 propagation while in cfglayout mode.
2651
2652 2011-07-22 Jakub Jelinek <jakub@redhat.com>
2653
2654 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
2655 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
2656 (dwarf_attr_name): Handle DW_AT_GNU_macros.
2657 (dwarf2out_define): If the vector is empty and
2658 lineno is 0, emit a dummy entry first.
2659 (dwarf2out_undef): Likewise. Remove redundant semicolon.
2660 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
2661 optimize_macinfo_range): New functions.
2662 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
2663 mergeable, optimize longer strings using
2664 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
2665 optimize longer sequences of define/undef ops from headers
2666 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
2667 emit a section headers.
2668 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
2669 and macinfo_section_label to DEBUG_MACRO_SECTION
2670 resp. DEBUG_MACRO_SECTION_LABEL.
2671 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
2672 instead of DW_AT_macro_info.
2673
2674 PR other/32998
2675 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
2676 options.
2677 * dwarf2out.c: Include opts.h.
2678 (dchar_p): New typedef. Define heap VEC for it.
2679 (producer_string): New variable.
2680 (gen_producer_string): New function.
2681 (gen_compile_unit_die): Use it.
2682 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
2683 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
2684 * doc/invoke.texi: Document -grecord-gcc-switches and
2685 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
2686 to -frecord-gcc-switches description.
2687
2688 2011-07-22 Jason Merrill <jason@redhat.com>
2689
2690 PR c++/30112
2691 * c-decl.c (c_linkage_bindings): Define.
2692
2693 2011-07-22 Eric Botcazou <ebotcazou@adacore.com>
2694
2695 PR debug/49815
2696 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
2697
2698 2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
2699
2700 * config/i386/i386.c (ix86_option_override_internal): Disallow
2701 MS ABI in x32 mode.
2702 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
2703 only for TARGET_LP64.
2704 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
2705
2706 2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2707
2708 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
2709 avoid warnings when GCC is built with a C++ compiler.
2710
2711 2011-07-22 Martin Jambor <mjambor@suse.cz>
2712
2713 PR lto/49796
2714 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
2715 if decl node is in another partition, call cgraph_get_node only once.
2716
2717 2011-07-22 Uros Bizjak <ubizjak@gmail.com>
2718
2719 * config.gcc (x86_64-*-linux*): Set
2720 default_gnu_indirect_function to yes.
2721
2722 2011-07-22 Richard Guenther <rguenther@suse.de>
2723
2724 PR tree-optimization/45819
2725 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2726 preserve volatile and notrap flags.
2727
2728 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2729 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2730
2731 PR bootstrap/49794
2732 * configure.ac: Test AM_ICONV with CXX.
2733 * configure: Regenerate.
2734 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
2735
2736 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2737
2738 PR bootstrap/49797
2739 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
2740 (set_cloog_options): Use it.
2741
2742 2011-07-22 Jakub Jelinek <jakub@redhat.com>
2743
2744 PR c++/49756
2745 * gcc.c (main): Call stack_limit_increase (64MB).
2746 * toplev.c (toplev_main): Likewise.
2747
2748 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2749
2750 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
2751 instead of force_reg.
2752
2753 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2754
2755 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
2756 needed and use force_reg after convert.
2757 (ix86_expand_call): Likewise.
2758 (ix86_expand_special_args_builtin): Likewise.
2759 (ix86_expand_builtin): Likewise.
2760
2761 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2762
2763 PR middle-end/47654
2764 PR middle-end/49649
2765 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
2766 in parameter. Initialize v1 and v2 based on the values returned
2767 by clast_name_to_lb_ub.
2768 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
2769 values.
2770 (type_for_clast_bin): Same.
2771 (type_for_clast_expr): Same.
2772 (type_for_clast_eq): Update calls to type_for_clast_expr.
2773 (type_for_clast_for): Same.
2774 (build_iv_mapping): Same.
2775 * graphite-ppl.h (value_min): New.
2776
2777 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2778
2779 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
2780 types whenever possible.
2781
2782 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2783
2784 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
2785 and ub fields.
2786 (new_clast_name_index): Add lb and ub parameters.
2787 (free_clast_name_index): New.
2788 (clast_name_to_lb_ub): New.
2789 (save_clast_name_index): Add lb and ub parameters.
2790 (compute_bounds_for_param): New.
2791 (type_for_level): Removed.
2792 (type_for_clast_for): Removed level parameter. Do not call
2793 type_for_level.
2794 (graphite_create_new_loop): Store the lb and ub for the clast_name
2795 of the iterator of the loop that has been generated.
2796 (graphite_create_new_loop_guard): Remove parameter level.
2797 (create_params_index): Store the lb and ub of each parameter.
2798 (gloog): Use free_clast_name_index. Pass to create_params_index
2799 the current scop.
2800
2801 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2802
2803 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2804 (max_precision_type): Inline max_signed_precision_type.
2805 (type_for_clast_red): Use max_precision_type.
2806 (type_for_clast_bin): Same.
2807 (type_for_clast_for): Same.
2808
2809 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2810
2811 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2812 type_for_interval.
2813 (gcc_type_for_value): Renamed type_for_value.
2814 (gcc_type_for_clast_term): Renamed type_for_clast_term.
2815 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2816 (gcc_type_for_clast_red): Renamed type_for_clast_red.
2817 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
2818 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
2819 (graphite_translate_clast_equation): Update calls.
2820 (compute_type_for_level): Renamed type_for_level.
2821 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
2822 (build_iv_mapping): Update calls.
2823 (graphite_create_new_loop_guard): Same.
2824
2825 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2826
2827 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
2828 comment.
2829
2830 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2831
2832 * graphite-clast-to-gimple.c (struct ivs_params): New.
2833 (clast_name_to_gcc): Use ivs_params to pass around parameters.
2834 (clast_to_gcc_expression): Same.
2835 (clast_to_gcc_expression_red): Same.
2836 (gcc_type_for_clast_term): Same.
2837 (gcc_type_for_clast_expr): Same.
2838 (gcc_type_for_clast_red): Same.
2839 (gcc_type_for_clast_bin): Same.
2840 (gcc_type_for_clast_eq): Same.
2841 (graphite_translate_clast_equation): Same.
2842 (graphite_create_guard_cond_expr): Same.
2843 (graphite_create_new_guard): Same.
2844 (graphite_create_new_loop): Same.
2845 (build_iv_mapping): Same.
2846 (translate_clast_user): Same.
2847 (graphite_create_new_loop_guard): Same.
2848 (translate_clast): Same.
2849 (translate_clast_for_loop): Same.
2850 (translate_clast_for): Same.
2851 (translate_clast_guard): Same.
2852 (initialize_cloog_names): Fix typo.
2853 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
2854
2855 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2856
2857 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
2858 (new_clast_name_index): Add level parameter.
2859 (clast_name_to_level): New.
2860 (save_clast_name_index): Add level parameter.
2861 (newivs_to_depth_to_newiv): Removed.
2862 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
2863 (graphite_create_new_loop): Add level parameter. Pass level to
2864 save_clast_name_index.
2865 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
2866 (create_params_index): Pass level to save_clast_name_index.
2867
2868 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2869
2870 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
2871 recompute type, lb, and ub. Get them from...
2872 (graphite_create_new_loop_guard): ...here. Pass in parameter
2873 pointers to type, lb, and ub.
2874 (translate_clast_for_loop): Update function calls.
2875 (translate_clast_for): Same.
2876
2877 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2878
2879 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
2880 psct_dynamic_dim.
2881 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
2882 (gcc_type_for_iv_of_clast_loop): Update use of level.
2883 (gloog): Start counting nesting level from 0.
2884 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
2885 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
2886 psct_dynamic_dim on level.
2887
2888 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2889
2890 * config/i386/i386.c (ix86_legitimize_address): Convert to
2891 Pmode if needed.
2892
2893 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2894
2895 * config/i386/i386.c (function_value_64): Always return pointers
2896 in Pmode.
2897 (ix86_promote_function_mode): New.
2898 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
2899
2900 2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2901
2902 PR tree-optimization/49749
2903 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
2904 remove no-longer-used maxrank variable.
2905
2906 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
2907
2908 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
2909
2910 2011-07-21 Jason Merrill <jason@redhat.com>
2911
2912 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
2913 * recog.h (struct insn_data_d): Check it instead of
2914 HAVE_DESIGNATED_INITIALIZERS.
2915 * genoutput.c (output_insn_data): Likewise.
2916
2917 2011-07-21 Richard Guenther <rguenther@suse.de>
2918
2919 PR tree-optimization/49770
2920 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
2921 valueized any operand. Renamed from ...
2922 (valueize_refs): ... this. New wrapper around valueize_refs_1.
2923 (valueize_shared_reference_ops_from_ref): Return whether we
2924 valueized any operand.
2925 (vn_reference_lookup): Only when we valueized any operand
2926 use the valueized reference for alias analysis. Do not preserve
2927 the original reference tree in this case.
2928
2929 2011-07-21 Uros Bizjak <ubizjak@gmail.com>
2930
2931 * config/i386/i386.c (ix86_decompose_address): Reject all but
2932 register operands and subregs of DImode hard registers in index.
2933
2934 2011-07-21 Kai Tietz <ktietz@redhat.com>
2935
2936 * fold-const.c (fold_unary_loc): Preserve indirect
2937 comparison cast to none-boolean type.
2938 * tree-ssa.c (useless_type_conversion_p): Preserve cast
2939 from/to boolean-type.
2940 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
2941 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
2942 * tree-cfg.c (verify_gimple_comparison): Check result
2943 type of comparison expression.
2944 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
2945 of condition result and disallow type-cast sinking into comparison.
2946
2947 2011-07-21 Richard Guenther <rguenther@suse.de>
2948
2949 * tree-ssa-forwprop.c (combine_conversions): Return whether
2950 we have to run cfg-cleanup. Properly remove dead stmts.
2951 (ssa_forward_propagate_and_combine): Adjust.
2952
2953 2011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
2954
2955 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
2956
2957 2011-07-21 Kai Tietz <ktietz@redhat.com>
2958
2959 * tree-ssa-propagate.c (substitute_and_fold): Use
2960 do_dce flag to deside, if BB's statements are scanned
2961 in last to first, or first to last order.
2962
2963 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
2964
2965 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
2966
2967 2011-07-20 H.J. Lu <hongjiu.lu@intel.com>
2968 Uros Bizjak <ubizjak@gmail.com>
2969 Richard Henderson <rth@redhat.com>
2970
2971 * config/i386/constraints.md (w): New.
2972
2973 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
2974 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
2975
2976 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
2977 instead of TARGET_64BIT.
2978
2979 * config/i386/i386.md (indirect_jump): Replace
2980 nonimmediate_operand with indirect_branch_operand.
2981 (*indirect_jump): Likewise. Replace constraint "m" with "w".
2982 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
2983 Convert operand 0 to Pmode for x32 if not PIC.
2984 (*tablejump_1): Replace nonimmediate_operand with
2985 indirect_branch_operand. Replace constraint "m" with "w".
2986 (*call_vzeroupper): Replace constraint "m" with "w".
2987 (*call): Likewise.
2988 (*call_rex64_ms_sysv_vzeroupper): Likewise.
2989 (*call_rex64_ms_sysv): Likewise.
2990 (*call_value_vzeroupper): Likewise.
2991 (*call_value): Likewise.
2992 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
2993 (*call_value_rex64_ms_sysv): Likewise.
2994 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
2995
2996 * config/i386/predicates.md (indirect_branch_operand): New.
2997 (call_insn_operand): Support x32.
2998
2999 2011-07-20 Michael Eager <eager@eagercon.com>
3000
3001 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
3002
3003 2011-07-20 Richard Henderson <rth@redhat.com>
3004
3005 * cfg.c (dump_bb_info): Dump basic_block->flags.
3006 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
3007
3008 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
3009
3010 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3011 of DImode hard registers in index.
3012 (ix86_legitimate_address_p): Allow subregs of base and index to span
3013 more than a word. Assert that subregs of base and index satisfy
3014 register_no_elim_operand predicates. Reject addresses where
3015 base and index have different modes.
3016
3017 2011-07-20 Robert Millan <rmh@gnu.org>
3018
3019 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
3020
3021 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3022
3023 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
3024 removing now-unnecessary assignment.
3025
3026 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3027
3028 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
3029 memory address space to the type's address space.
3030
3031 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
3032
3033 PR target/36467
3034 PR target/49687
3035 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
3036 and expand appropriately if there is a CONST_INT in operand2.
3037 (usmulqihi3): New insn.
3038 (*sumulqihi3): New insn.
3039 (*osmulqihi3): New insn.
3040 (*oumulqihi3): New insn.
3041 (*muluqihi3.uconst): New insn_and_split.
3042 (*muluqihi3.sconst): New insn_and_split.
3043 (*mulsqihi3.sconst): New insn_and_split.
3044 (*mulsqihi3.uconst): New insn_and_split.
3045 (*mulsqihi3.oconst): New insn_and_split.
3046 (*ashifthi3.signx.const): New insn_and_split.
3047 (*ashifthi3.signx.const7): New insn_and_split.
3048 (*ashifthi3.zerox.const): New insn_and_split.
3049 (mulsqihi3): New insn.
3050 (muluqihi3): New insn.
3051 (muloqihi3): New insn.
3052 * config/avr/predicates.md (const_2_to_7_operand): New.
3053 (const_2_to_6_operand): New.
3054 (u8_operand): New.
3055 (s8_operand): New.
3056 (o8_operand): New.
3057 (s9_operand): New.
3058 (register_or_s9_operand): New.
3059
3060 2011-07-20 Kai Tietz <ktietz@redhat.com>
3061
3062 * builtins.c (fold_builtin_expect): See through the cast
3063 from truthvalue_type_node to long.
3064
3065 2011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
3066
3067 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
3068 where we can use them from the standard and altivec instruction
3069 sets, instead of always using the 3 operand VSX forms that require
3070 the destination to overlap one of the inputs.
3071 (vsx_fms*): Ditto.
3072 (vsx_fnma*): Ditto.
3073 (vsx_fnms*): Ditto.
3074
3075 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
3076 for DF types.
3077 (fmsdf4_fpr): Ditto.
3078 (nfmadf4_fpr): Ditto.
3079 (nfmsdf4_fpr): Ditto.
3080
3081 2011-07-20 Sandra Loosemore <sandra@codesourcery.com>
3082
3083 * genrecog.c (make_insn_sequence): Correct position numbering
3084 when filtering out match_scratch and match_dup.
3085
3086 2011-07-20 Richard Guenther <rguenther@suse.de>
3087
3088 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3089 against already removed statements.
3090 (forward_propagate_into_comparison): Remove dead defining stmts.
3091 (forward_propagate_into_gimple_cond): Likewise.
3092 (forward_propagate_into_cond): Simplify.
3093 (ssa_forward_propagate_and_combine): Handle changed cfg from
3094 forward_propagate_into_comparison.
3095 * tree-ssa-phiopt.c (conditional_replacement): Use proper
3096 locations for newly built statements.
3097
3098 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
3099
3100 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
3101
3102 2011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3103
3104 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
3105 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
3106
3107 2011-07-20 Richard Guenther <rguenther@suse.de>
3108
3109 PR middle-end/18908
3110 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
3111 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
3112 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
3113
3114 2011-07-20 Vladimir Makarov <vmakarov@redhat.com>
3115
3116 * config/frv/frv.c (frv_register_move_cost): Define explicitly
3117 costs for subclasses of GR_REGS.
3118
3119 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
3120
3121 PR target/49780
3122 * config/i386/predicates.md (no_seg_addres_operand): No more special.
3123 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3124 of DImode hard registers in base.
3125 (ix86_legitimate_address_p): Allow SImode and DImode base and index
3126 registers.
3127
3128 2011-07-20 Richard Guenther <rguenther@suse.de>
3129
3130 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
3131 (unify_nodes): Deal with that.
3132 (solve_graph): Likewise.
3133
3134 2011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
3135
3136 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
3137 canonicalize left operand from ZERO_EXTEND to AND.
3138
3139 2011-07-20 Anatoly Sokolov <aesok@post.ru>
3140
3141 * target.def (class_max_nregs): New hook.
3142 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
3143 * doc/tm.texi: Regenerate.
3144 * targhooks.c (default_class_max_nregs): New function.
3145 * targhooks.h (default_class_max_nregs): Declare.
3146 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
3147 x_ira_reg_class_min_nregs arrays to unsigned char.
3148 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
3149 hook instead of CLASS_MAX_NREGS macro.
3150 * reginfo.c (restore_register_info): Ditto.
3151 * ira-conflicts.c (process_regs_for_copy): Use
3152 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3153 Change type rclass and aclass vars to reg_class_t.
3154 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
3155 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
3156 reg_class_t.
3157 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
3158 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3159
3160 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
3161 * config/i386/i386.c (ix86_class_max_nregs): New function.
3162 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
3163 instead of CLASS_MAX_NREGS macro.
3164 (TARGET_CLASS_MAX_NREGS): Define.
3165 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
3166 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
3167 * config/avr/avr.c (class_max_nregs): Remove function.
3168 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
3169 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
3170 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
3171 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
3172 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
3173 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
3174 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
3175 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
3176 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
3177 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
3178 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
3179 * config/score/score.h (CLASS_MAX_NREGS): Remove.
3180 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
3181 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
3182 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
3183
3184 2011-07-19 Eric Botcazou <ebotcazou@adacore.com>
3185
3186 * cif-code.def (OVERWRITABLE): Fix typo and move around.
3187 (TARGET_OPTIMIZATION_MISMATCH): Delete.
3188 (EH_PERSONALITY): Fix typo.
3189 (NON_CALL_EXCEPTIONS): Fix message.
3190 (OPTIMIZATION_MISMATCH): Adjust message.
3191 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
3192
3193 2011-07-19 Ian Lance Taylor <iant@google.com>
3194
3195 * doc/install.texi (Configuration): Document
3196 --enable-build-poststage1-with-cxx.
3197
3198 2011-07-19 Robert Millan <rmh@gnu.org>
3199
3200 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
3201 (GLIBC_DYNAMIC_LINKER): Remove.
3202
3203 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
3204 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3205 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3206 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
3207 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
3208 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
3209
3210 * config/mips/linux.h: Remove everything except for ...
3211 (GLIBC_DYNAMIC_LINKER): ... this macro.
3212
3213 * config/mips/linux64.h: Remove everything except for ...
3214 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3215 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3216 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
3217 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
3218 (GNU_USER_LINK_EMULATIONN32): New macros.
3219
3220 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
3221 Use the new headers.
3222
3223 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3224
3225 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
3226 Add offset_known_p and size_known_p fields.
3227 (MEM_OFFSET_KNOWN_P): Update accordingly.
3228 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
3229 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
3230 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
3231 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
3232 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
3233 (init_emit_regs): Likewise.
3234
3235 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3236
3237 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
3238 (MEM_OFFSET): Change from returning an rtx to returning a
3239 HOST_WIDE_INT.
3240 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
3241 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
3242 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3243 (clear_mem_offset): Declare.
3244 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
3245 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
3246 MEM_OFFSET to get a HOST_WIDE_INT offset.
3247 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
3248 (adjust_offset_for_component_ref): Take a bool "known_p"
3249 parameter and a HOST_WIDE_INT "offset" parameter.
3250 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
3251 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
3252 than an rtx. Use clear_mem_offset to clear the offset.
3253 * cfgcleanup.c (merge_memattrs): Likewise.
3254 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
3255 * function.c (assign_parm_find_stack_rtl): Likewise.
3256 (assign_parm_setup_stack): Likewise.
3257 * print-rtl.c (print_rtx): Likewise.
3258 * reload.c (find_reloads_subreg_address): Likewise.
3259 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
3260 * var-tracking.c (INT_MEM_OFFSET): Likewise.
3261 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
3262 (get_mem_align_offset): Likewise.
3263 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3264 (clear_mem_offset): New function.
3265 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
3266 offset rather than an rtx. Assume both the expressio and offset
3267 are available.
3268 (r10k_needs_protection_p_1): Update accordingly, checking the
3269 expression and offset availability here instead.
3270
3271 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3272
3273 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
3274 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
3275 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
3276 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
3277 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3278 (clear_mem_size): Declare.
3279 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3280 (clear_mem_size): New function.
3281 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
3282 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
3283 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
3284 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
3285 to clear the size.
3286 (nonoverlapping_memrefs_p): Likewise.
3287 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
3288 (expand_builtin_init_trampoline): Likewise.
3289 * calls.c (compute_argument_addresses): Likewise.
3290 * cfgcleanup.c (merge_memattrs): Likewise.
3291 * dce.c (find_call_stack_args): Likewise.
3292 * dse.c (record_store, scan_insn): Likewise.
3293 * dwarf2out.c (dw_sra_loc_expr): Likewise.
3294 * expr.c (emit_block_move_hints): Likewise.
3295 * function.c (assign_parm_find_stack_rtl): Likewise.
3296 * print-rtl.c (print_rtx): Likewise.
3297 * reload.c (find_reloads_subreg_address): Likewise.
3298 * rtlanal.c (may_trap_p_1): Likewise.
3299 * var-tracking.c (track_expr_p): Likewise.
3300 * varasm.c (assemble_trampoline_template): Likewise.
3301 * config/arm/arm.c (arm_print_operand): Likewise.
3302 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
3303 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
3304 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
3305 (expand_constant_setmem_prologue): Likewise.
3306 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
3307 * config/rs6000/rs6000.c (expand_block_move): Likewise.
3308 (adjacent_mem_locations): Likewise.
3309 * config/s390/s390.c (s390_expand_setmem): Likewise.
3310 (s390_expand_insv): Likewise.
3311 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
3312 (*extendqi<mode>2_short_displ): Likewise.
3313 * config/sh/sh.c (expand_block_move): Likewise.
3314 * config/sh/sh.md (extv, extzv): Likewise.
3315
3316 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3317
3318 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
3319 (mem_attrs_htab_eq): ...here.
3320 (find_mem_attrs): Replace with...
3321 (set_mem_attrs): ...this function. Take a mem_attrs structure
3322 rather than individual fields.
3323 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3324 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3325 (set_mem_size, change_address, adjust_address_1, offset_address)
3326 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3327 Update accordingly.
3328
3329 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3330
3331 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
3332 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
3333 Provide a dummy definition of MEM_ADDR_SPACE for generators.
3334 (target_rtl): Add x_mode_mem_attrs.
3335 (mode_mem_attrs): New macro.
3336 (get_mem_attrs): New function.
3337 * emit-rtl.c (get_mem_attrs): Rename to...
3338 (find_mem_attrs): ...this.
3339 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3340 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3341 (set_mem_size, change_address, adjust_address_1, offset_address)
3342 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3343 Update accordingly.
3344 (init_emit_regs): Initialize mode_mem_attrs.
3345
3346 2011-07-19 Richard Guenther <rguenther@suse.de>
3347
3348 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
3349 TRUTH_*_EXPR handling.
3350 * tree-ssa-operands.c (get_expr_operands): Likewise.
3351 * tree-ssa-pre.c (fully_constant_expression): Likewise.
3352 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
3353 Likewise.
3354 (is_and_or_or): Likewise.
3355 (is_norm_cond_subset_of): Likewise.
3356
3357 2011-07-19 Richard Guenther <rguenther@suse.de>
3358
3359 * tree.h (fold_build_pointer_plus_loc): New helper function.
3360 (fold_build_pointer_plus_hwi_loc): Likewise.
3361 (fold_build_pointer_plus): Define.
3362 (fold_build_pointer_plus_hwi): Likewise.
3363 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
3364 (fold_builtin_memory_op): Likewise.
3365 (fold_builtin_stpcpy): Likewise.
3366 (fold_builtin_memchr): Likewise.
3367 (fold_builtin_strstr): Likewise.
3368 (fold_builtin_strchr): Likewise.
3369 (fold_builtin_strrchr): Likewise.
3370 (fold_builtin_strpbrk): Likewise.
3371 (fold_builtin_strcat): Likewise.
3372 (expand_builtin_memory_chk): Likewise.
3373 (fold_builtin_memory_chk): Likewise.
3374 * c-typeck.c (build_unary_op): Likewise.
3375 * cgraphunit.c (thunk_adjust): Likewise.
3376 * fold-const.c (build_range_check): Likewise.
3377 (fold_binary_loc): Likewise.
3378 * omp-low.c (extract_omp_for_data): Likewise.
3379 (expand_omp_for_generic): Likewise.
3380 (expand_omp_for_static_nochunk): Likewise.
3381 (expand_omp_for_static_chunk): Likewise.
3382 * tree-affine.c (add_elt_to_tree): Likewise.
3383 * tree-data-ref.c (split_constant_offset_1): Likewise.
3384 * tree-loop-distribution.c (generate_memset_zero): Likewise.
3385 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3386 * tree-predcom.c (ref_at_iteration): Likewise.
3387 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3388 (add_to_parts): Likewise.
3389 (create_mem_ref): Likewise.
3390 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3391 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3392 (number_of_iterations_le): Likewise.
3393 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3394 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3395 (vect_create_addr_base_for_vector_ref): Likewise.
3396 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3397 (vect_create_cond_for_alias_checks): Likewise.
3398 * tree-vrp.c (extract_range_from_assert): Likewise.
3399 * config/alpha/alpha.c (alpha_va_start): Likewise.
3400 (alpha_gimplify_va_arg_1): Likewise.
3401 * config/i386/i386.c (ix86_va_start): Likewise.
3402 (ix86_gimplify_va_arg): Likewise.
3403 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3404 * config/mep/mep.c (mep_expand_va_start): Likewise.
3405 (mep_gimplify_va_arg_expr): Likewise.
3406 * config/mips/mips.c (mips_va_start): Likewise.
3407 (mips_gimplify_va_arg_expr): Likewise.
3408 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3409 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3410 (rs6000_gimplify_va_arg): Likewise.
3411 * config/s390/s390.c (s390_va_start): Likewise.
3412 (s390_gimplify_va_arg): Likewise.
3413 * config/sh/sh.c (sh_va_start): Likewise.
3414 (sh_gimplify_va_arg_expr): Likewise.
3415 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3416 * config/spu/spu.c (spu_va_start): Likewise.
3417 (spu_gimplify_va_arg_expr): Likewise.
3418 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3419 Likewise.
3420 (xstormy16_gimplify_va_arg_expr): Likewise.
3421 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3422 (xtensa_gimplify_va_arg_expr): Likewise.
3423
3424 2011-07-19 Richard Guenther <rguenther@suse.de>
3425
3426 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3427 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3428 handling.
3429
3430 PR middle-end/18908
3431 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3432 result of BIT_*_EXPR to bitfield precision.
3433
3434 2011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
3435
3436 PR tree-optimization/49742
3437 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3438 as a potential write.
3439
3440 2011-07-19 Richard Guenther <rguenther@suse.de>
3441
3442 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
3443 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
3444 (forward_propagate_comparison): Simplify, remove obsolete code.
3445
3446 2011-07-19 Richard Guenther <rguenther@suse.de>
3447
3448 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
3449 BIT_XOR_EXPR, same as the RTL expander does.
3450 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
3451 (verify_gimple_assign_unary): Likewise.
3452 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
3453 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
3454 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
3455
3456 2011-07-19 Jakub Jelinek <jakub@redhat.com>
3457
3458 PR tree-optimization/49768
3459 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
3460 if offset is smaller than bitoffset, but offset+size is bigger
3461 than bitoffset.
3462
3463 2011-07-19 Ira Rosen <ira.rosen@linaro.org>
3464
3465 PR tree-optimization/49771
3466 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
3467 zero step, set segment length to the size of the data-ref's type.
3468
3469 2011-07-18 Martin Jambor <mjambor@suse.cz>
3470
3471 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
3472 comments.
3473 (ipcp_values_pool): Declare.
3474 (ipcp_sources_pool): Likewise.
3475 (ipcp_lattice): Changed to forward declaration.
3476 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
3477 cannot_devirtualize.
3478 (ipa_node_params): New fields descriptors, lattices, known_vals,
3479 clone_for_all_contexts and node dead, removed fields params and
3480 count_scale.
3481 (ipa_set_param_count): Removed.
3482 (ipa_get_param_count): Made to work with descriptors vector.
3483 (ipa_get_param): Updated.
3484 (ipa_param_cannot_devirtualize_p): Removed.
3485 (ipa_param_types_vec_empty): Likewise.
3486 (ipa_set_param_used): New function.
3487 (ipa_get_param_used): Updated to use descriptors vector.
3488 (ipa_func_list): Removed.
3489 (ipa_init_func_list): Removed declaration.
3490 (ipa_push_func_to_list_1): Likewise.
3491 (ipa_pop_func_from_list): Likewise.
3492 (ipa_push_func_to_list): Removed.
3493 (ipa_lattice_from_jfunc): Remove declaration.
3494 (ipa_get_jf_pass_through_result): Declare.
3495 (ipa_get_jf_ancestor_result): Likewise.
3496 (ipa_value_from_jfunc): Likewise.
3497 (ipa_get_lattice): Update.
3498 (ipa_lat_is_single_const): New function.
3499 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
3500 (ipa_init_func_list): Likewise.
3501 (ipa_pop_func_from_list): Likewise.
3502 (ipa_get_param_decl_index): Fix coding style.
3503 (count_formal_params): Removed.
3504 (count_formal_params_1): Renamed to count_formal_params.
3505 (ipa_populate_param_decls): Update to use descriptors vector.
3506 (ipa_initialize_node_params): Likewise.
3507 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
3508 (ipa_analyze_params_uses): Likewise.
3509 (ipa_free_node_params_substructures): Likewise and free also lattices
3510 and known values.
3511 (duplicate_array): Removed.
3512 (ipa_edge_duplication_hook): Add the new edge to the list of edge
3513 clones.
3514 (ipa_node_duplication_hook): Update to use new lattices.
3515 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
3516 (ipa_free_all_structures_after_iinln): Likewise.
3517 (ipa_write_node_info): Update to use new lattices.
3518 (ipa_read_node_info): Likewise.
3519 (ipa_get_jf_pass_through_result): New function.
3520 (ipa_get_jf_ancestor_result): Likewise.
3521 (ipa_value_from_jfunc): Likewise.
3522 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
3523 * ipa-cp.c: Reimplemented.
3524 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
3525 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
3526 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
3527 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
3528 * doc/invoke.texi (devirt-type-list-size): Removed description.
3529 (ipa-cp-value-list-size): Added description.
3530
3531 2011-07-18 Richard Henderson <rth@redhat.com>
3532
3533 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
3534 before calling create_basic_block.
3535
3536 2011-07-18 Jakub Jelinek <jakub@redhat.com>
3537
3538 PR middle-end/49675
3539 * tree.c (build_common_builtin_nodes): Register
3540 __builtin_return_address, __cyg_profile_func_enter
3541 and __cyg_profile_func_exit.
3542
3543 2011-07-18 Richard Henderson <rth@redhat.com>
3544
3545 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
3546 (add_labels_and_missing_jumps): ... here.
3547 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
3548
3549 2011-07-18 Uros Bizjak <ubizjak@gmail.com>
3550
3551 PR target/47744
3552 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3553 of DImode hard registers in PLUS address chains.
3554
3555 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3556
3557 PR bootstrap/49769
3558 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
3559 (alpha*-*-freebsd*): Likewise.
3560 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3561 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3562 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
3563 crtprec80.o, crtfastmath.o to extra_parts for all targets.
3564 (ia64*-*-elf*): Remove extra_parts.
3565 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
3566 (sparc64-*-linux*): Likewise.
3567 (sparc64-*-freebsd*): Likewise.
3568
3569 Revert:
3570 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
3571 (ia64*-*-linux*): Likewise.
3572 (mips64*-*-linux*): Likewise.
3573 (mips*-*-linux*): Likewise.
3574
3575 2011-07-18 David Edelsohn <dje.gcc@gmail.com>
3576
3577 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
3578
3579 2011-07-18 Richard Guenther <rguenther@suse.de>
3580
3581 * gimplify.c (gimplify_expr): Use input_location, not saved_location
3582 when building new trees.
3583
3584 2011-07-18 Richard Guenther <rguenther@suse.de>
3585
3586 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
3587 expansion result to bitfield precision if required.
3588
3589 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3590
3591 * config.gcc (i[3456x]86-*-netware*): Remove.
3592
3593 * gthr-nks.h: Remove.
3594 * configure.ac (enable_threads): Remove nks.
3595 * configure: Regenerate.
3596
3597 * config/i386/i386.c (ix86_encode_section_info): Remove netware
3598 reference.
3599 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
3600 <netware.h> reference.
3601
3602 * config/i386/netware-libgcc.c,
3603 gcc/config/i386/netware-libgcc.def,
3604 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
3605 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
3606 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
3607 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
3608
3609 * doc/extend.texi (Function Attributes,
3610 callee_pop_aggregate_return): Remove i?86-netware reference.
3611 * doc/install.texi (Configuration, --enable-threads): Remove nks.
3612
3613 2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3614
3615 PR target/49746
3616 Revert:
3617 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3618
3619 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
3620 patterns.
3621
3622 2011-07-17 Eric Botcazou <ebotcazou@adacore.com>
3623
3624 PR middle-end/49732
3625 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
3626
3627 2011-07-16 Matthias Klose <doko@ubuntu.com>
3628
3629 * doc/install.texi: Document --enable-static-libjava.
3630
3631 2011-07-15 Richard Henderson <rth@redhat.com>
3632
3633 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3634 Replace all three arguments by returning a VEC of edges.
3635 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
3636 pointers and counts.
3637 (fix_edges_for_rarely_executed_code): Merge ...
3638 (rest_of_handle_partition_blocks): ... into...
3639 (partition_hot_cold_basic_blocks): ... here. Return todo items if
3640 any work was performed.
3641 (pass_partition_blocks): Clear todo_flags_finish.
3642
3643 2011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
3644 Jakub Jelinek <jakub@redhat.com>
3645 Jonathan Wakely <jwakely.gcc@gmail.com>
3646
3647 PR libstdc++/49745
3648 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
3649 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
3650
3651 2011-07-15 Jason Merrill <jason@redhat.com>
3652
3653 PR testsuite/49741
3654 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
3655 rather than --tool_opts.
3656
3657 2011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
3658
3659 * doc/plugins.texi (Building GCC plugins): gengtype needs its
3660 corresponding gtype.state.
3661
3662 2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3663
3664 PR target/49723
3665 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
3666
3667 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
3668
3669 PR target/48220
3670 * doc/md.texi (Standard Names): Document window_save.
3671 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
3672 expand_debug_expr and expand_debug_source_expr. If the target has
3673 a window_save instruction, adjust the ENTRY_VALUE_EXP.
3674 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
3675 SSA_NAME_VAR is a parameter.
3676 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
3677 * var-tracking.c (parm_reg_t): New type and associated vector type.
3678 (windowed_parm_regs): New variable.
3679 (adjust_insn): If the target has a window_save instruction and this
3680 is the instruction, make its effect on parameter registers explicit.
3681 (next_non_note_insn_var_location): New function.
3682 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
3683 (vt_add_function_parameter): If the target has a window_save insn,
3684 adjust the incoming RTL and record that in windowed_parm_regs.
3685 (vt_finalize): Free windowed_parm_regs.
3686
3687 2011-07-15 Bernd Schmidt <bernds@codesourcery.com>
3688
3689 * doc/invoke.texi (C6X Options): New section.
3690 * doc/md.texi (TI C6X family): New section.
3691 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
3692 tic6x-*-uclinux.
3693 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
3694 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
3695 Provide C6X definitions.
3696 * config/c6x/c6x.md: New file.
3697 * config/c6x/constraints.md: New file.
3698 * config/c6x/predicates.md: New file.
3699 * config/c6x/c6x-sched.md.in: New file.
3700 * config/c6x/c6x-sched.md: New file.
3701 * config/c6x/gensched.sh: New file.
3702 * config/c6x/c6x-mult.md.in: New file.
3703 * config/c6x/genmult.sh: New file.
3704 * config/c6x/c6x-mult.md: New file.
3705 * config/c6x/sync.md: New file.
3706 * config/c6x/c6x-protos.h: New file.
3707 * config/c6x/sfp-machine.h: New file.
3708 * config/c6x/c6x.c: New file.
3709 * config/c6x/c6x.h: New file.
3710 * config/c6x/crti.s: New file.
3711 * config/c6x/crtn.s: New file.
3712 * config/c6x/lib1funcs.asm: New file.
3713 * config/c6x/c6x-modes.def: New file.
3714 * config/c6x/genopt.sh: New file.
3715 * config/c6x/c6x.opt: New file.
3716 * config/c6x/c6x-tables.opt: New file.
3717 * config/c6x/c6x-opts.h: New file.
3718 * config/c6x/c6x-isas.def: New file.
3719 * config/c6x/elf.h: New file.
3720 * config/c6x/elf-common.h: New file.
3721 * config/c6x/uclinux-elf.h: New file.
3722 * config/c6x/t-c6x: New file.
3723 * config/c6x/t-c6x-elf: New file.
3724 * config/c6x/t-c6x-uclinux: New file.
3725 * config/c6x/t-c6x-softfp: New file.
3726 * config/c6x/gtd.c: New file.
3727 * config/c6x/gtf.c: New file.
3728 * config/c6x/ltd.c: New file.
3729 * config/c6x/ltf.c: New file.
3730 * config/c6x/ged.c: New file.
3731 * config/c6x/gef.c: New file.
3732 * config/c6x/led.c: New file.
3733 * config/c6x/lef.c: New file.
3734 * config/c6x/eqd.c: New file.
3735 * config/c6x/eqf.c: New file.
3736 * config/c6x/libgcc-c6xeabi.ver: New file.
3737
3738 Revert
3739 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
3740 PR rtl-optimization/11320
3741 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
3742 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
3743 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
3744 current_sched_info->compute_jump_reg_dependencies. Record which
3745 registers are used and which registers are set by the jump.
3746 Clear deps->reg_conditional_sets after a barrier.
3747 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
3748 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
3749 (init_deps): Initialize reg_conditional_sets.
3750 (free_deps): Clear reg_conditional_sets.
3751 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
3752 Mark registers live on entry of the fallthrough block and conditionally
3753 set as set by the jump. Mark registers live on entry of non-fallthrough
3754 blocks as used by the jump.
3755 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
3756 Mark new parameters as unused.
3757
3758 2011-07-14 Andrew Pinski <pinskia@gmail.com>
3759
3760 PR tree-opt/49309
3761 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
3762 Use fold_build2_loc instead of build2.
3763 Use the correct type for the new tree.
3764
3765 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3766
3767 PR rtl-optimization/11320
3768 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
3769 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
3770
3771 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
3772
3773 PR target/49487
3774 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
3775 of REG.
3776 (*rotw<mode>): Use const_int_operand for operand2.
3777 Use match_scatch for operand3.
3778 (*rotb<mode>): Ditto
3779 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
3780
3781 2011-07-14 Richard Guenther <rguenther@suse.de>
3782
3783 PR tree-optimization/49651
3784 * tree-ssa-structalias.c (get_constraint_for_1): Properly
3785 handle dereferences with subvariables.
3786
3787 2011-07-14 Richard Guenther <rguenther@suse.de>
3788
3789 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
3790 (fold_stmt_1): Do it here directly on gimple and as a first thing.
3791
3792 2011-07-14 Richard Guenther <rguenther@suse.de>
3793
3794 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
3795 not bool_var when folding bool_var != 1 or bool_var == 0.
3796
3797 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3798
3799 * haifa-sched.c (schedule_insns): Remove outdated comment.
3800 (schedule_block): When computing a known value for TODO_SPEC,
3801 just set it rather than using logical operations.
3802 (try_ready): Likewise. Use a local variable rather than a
3803 pointer to TODO_SPEC. Reorder an if statement to move the
3804 easy case to the then block.
3805 * sched-deps.c (dep_spec_p): New static function.
3806 (update_dep): Use it to decide whether to call
3807 change_spec_dep_to_hard.
3808 (get_back_and_forw_lists): Use it.
3809 (sd_resolve_dep): Likewise.
3810 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
3811 (haifa_note_mem_dep): Likewise.
3812 (check_dep): Likewise.
3813 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
3814 (sched_free_deps): Free in two passes.
3815
3816 2011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
3817
3818 PR middle-end/49736
3819 * expr.c (all_zeros_p): Undo bogus part of last change.
3820
3821 2011-07-14 Matthias Klose <doko@ubuntu.com>
3822
3823 * doc/extend.texi (optimize attribute): Fix typo.
3824
3825 2011-07-14 Richard Guenther <rguenther@suse.de>
3826
3827 * gimplify.c (gimplify_expr): Only do required conversions.
3828
3829 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
3830
3831 PR target/43746
3832 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
3833 i.e. use default_elf_select_section.
3834 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
3835 (READONLY_DATA_SECTION_ASM_OP): Remove.
3836 (TARGET_ASM_NAMED_SECTION): Move from here...
3837 * config/avr/avr.c: ...to here.
3838 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
3839 (avr_asm_named_section): Make static.
3840
3841 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3842
3843 PR bootstrap/49739
3844 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
3845 and crtfastmath.o for Linux/x86.
3846
3847 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3848
3849 * haifa-sched.c: Include "hashtab.h"
3850 (sched_no_dce): New global variable.
3851 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
3852 SHADOW_P): New macros.
3853 (last_clock_var, cycle_issued_insns): Move declarations.
3854 (must_backtrack): New static variable.
3855 (struct delay_pair): New structure.
3856 (delay_htab, delay_htab_i2): New static variables.
3857 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
3858 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
3859 functions.
3860 (dep_cost_1): If delay pairs exist, try to look up the insns and
3861 use the correct pair delay if we find them.
3862 (rank-for_schedule): Tweak priority for insns that must be scheduled
3863 soon to avoid backtracking.
3864 (queue_insn): Detect conditions which force backtracking.
3865 (ready_add): Likewise.
3866 (struct sched_block_state): Add member shadows_only_p.
3867 (struct haifa_save_data): New structure.
3868 (backtrack_queue): New static variable.
3869 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
3870 unschedule_insns_until, restore_last_backtrack_point,
3871 free_topmost_backtrack_point, free_backtrack_queue,
3872 estimate_insn_tick, estimate_shadow_tick): New functions.
3873 (prune_ready_list): New arg shadows_only_p. All callers changed.
3874 If true, remove everything that isn't SHADOW_P. Look up delay
3875 pairs and estimate ticks to avoid scheduling the first insn too early.
3876 (verify_shadows): New function.
3877 (schedule_block): Add machinery to enable backtracking.
3878 (sched_init): Take sched_no_dce into account when setting
3879 DF_LR_RUN_DCE.
3880 (free_delay_pairs): New function.
3881 (init_h_i_d): Initialize INSN_EXACT_TICK.
3882 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
3883 * sched-deps.c (sd_unresolve_dep): New function.
3884 * sched-int. (struct haifa_sched_info): New fields save_state
3885 and restore_state.
3886 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
3887 feeds_backtrack_insn and shadow_p.
3888 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
3889 (sched_no_dce): Declare variable.
3890 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
3891 sd_unresolve_dep): Declare functions.
3892 * modulo-sched.c (sms_sched_info): Clear the two new fields.
3893 * sched-rgn.c (rgn_const_sched_info): Likewise.
3894 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
3895 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
3896 (ebb_sched_info): Add them for the two new fields.
3897 (add_deps_for_risky_insns): Call add_delay_dependencies.
3898
3899 2011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
3900
3901 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
3902 Rename -mr11.
3903 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
3904 (rs6000_call_indirect_aix): Ditto.
3905 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
3906 (call_indirect_aix<ptrsize>_internal): Ditto.
3907 (call_indirect_aix<ptrsize>_nor11): Ditto.
3908 (call_indirect_aix<ptrsize>_internal2): Ditto.
3909 (call_value_indirect_aix<ptrsize>): Ditto.
3910 (call_value_indirect_aix<ptrsize>_internal): Ditto.
3911 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3912 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3913 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
3914
3915 2011-07-13 Jason Merrill <jason@redhat.com>
3916
3917 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
3918
3919 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3920
3921 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
3922 * config/spu/spu.md ("clrsb<mode>2"): New expander.
3923
3924 2011-07-13 Thomas Schwinge <thomas@schwinge.name>
3925
3926 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
3927 * configure: Regenerate.
3928
3929 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3930
3931 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
3932 (asm_file_start): Remove.
3933 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
3934 free_bb_for_insn around code that modifies insns before
3935 restarting df analysis.
3936
3937 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3938
3939 PR target/49541
3940 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
3941 (LINK_SPEC): ... here.
3942
3943 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
3944
3945 * haifa-sched.c (struct sched_block_state): New.
3946 (schedule_block): Move some local variables into such a structure.
3947
3948 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3949
3950 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
3951 * config/i386/t-crtpc: Remove.
3952 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3953 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
3954 tmake_file.
3955 (x86_64-*-darwin*): Likewise.
3956 (i[34567]86-*-linux*): Likewise.
3957 (x86_64-*-linux*): Likewise.
3958
3959 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
3960 Handle -mpc32, -mpc64, -mpc80.
3961
3962 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3963
3964 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
3965 * config/alpha/t-crtfm: Remove.
3966 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
3967 * config/i386/t-crtfm: Remove.
3968 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
3969 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
3970 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
3971 * config/sparc/t-crtfm: Remove.
3972
3973 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
3974 (alpha*-*-freebsd*): Likewise.
3975 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
3976 (x86_64-*-darwin*): Likewise.
3977 (i[34567]86-*-linux*): Likewise.
3978 (x86_64-*-linux*): Likewise.
3979 (x86_64-*-mingw*): Likewise.
3980 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
3981 (ia64*-*-freebsd*): Likewise.
3982 (ia64*-*-linux*): Likewise.
3983 (mips64*-*-linux*): Likewise.
3984 (mips*-*-linux*): Likewise.
3985 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
3986 (sparc64-*-linux*): Likewise.
3987 (sparc64-*-freebsd*): Likewise.
3988
3989 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3990
3991 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
3992 * config/darwin-crt3.c: Move to ../libgcc/config.
3993 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3994 ($(T)crt3$(objext)): Remove.
3995 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
3996 ($(T)crt2$(objext)): Remove.
3997 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
3998 (powerpc64-*-darwin*): Likewise.
3999
4000 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
4001
4002 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
4003
4004 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
4005 (addsi_1_zext): This.
4006
4007 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
4008
4009 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
4010 * doc/tm.texi: Regenerate.
4011 * target.def (mergeable_rodata_prefix): New defhookpod.
4012 * varasm.c (mergeable_string_section, mergeable_constant_section):
4013 Use it. Allocate name with alloca.
4014
4015 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
4016
4017 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
4018
4019 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
4020
4021 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
4022 overlap check.
4023
4024 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
4025
4026 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
4027 (count_type_elements): Delete.
4028 (complete_ctor_at_level_p): Declare.
4029 * expr.c (flexible_array_member_p): New function, split out from...
4030 (count_type_elements): ...here. Make static. Replace allow_flexarr
4031 parameter with for_ctor_p. When for_ctor_p is true, return the
4032 number of elements that should appear in the top-level constructor,
4033 otherwise return an estimate of the number of scalars.
4034 (categorize_ctor_elements): Replace p_must_clear with p_complete.
4035 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
4036 (complete_ctor_at_level_p): New function, borrowing union logic
4037 from old categorize_ctor_elements_1.
4038 (mostly_zeros_p): Return true if the constructor is not complete.
4039 (all_zeros_p): Update call to categorize_ctor_elements.
4040 * gimplify.c (gimplify_init_constructor): Update call to
4041 categorize_ctor_elements. Don't call count_type_elements.
4042 Unconditionally prevent clearing for variable-sized types,
4043 otherwise rely on categorize_ctor_elements to detect
4044 incomplete initializers.
4045
4046 2011-07-13 Richard Guenther <rguenther@suse.de>
4047
4048 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
4049 the final type is integral.
4050
4051 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
4052
4053 * sched-int.h (struct _dep): Add member cost.
4054 (DEP_COST, UNKNOWN_DEP_COST): New macros.
4055 * sched-deps.c (init_dep_1): Initialize DEP_COST.
4056 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
4057 (sched_change_pattern): Reset it for dependent insns.
4058
4059 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4060
4061 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
4062 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
4063 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
4064 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
4065 (CRT0_S, MCRT0_S): Remove.
4066 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
4067 Remove.
4068 (s-crt0): Remove.
4069 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
4070
4071 2011-07-12 Eric Botcazou <ebotcazou@adacore.com>
4072
4073 * cse.c (insert_with_costs): Put semi-colon after empty loop body
4074 on the next line.
4075 * emit-rtl.c (push_to_sequence): Likewise.
4076 * haifa-sched.c (max_issue): Likewise.
4077 * matrix-reorg.c (add_allocation_site): Likewise.
4078 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
4079 * reload.c (alternative_allows_const_pool_ref): Likewise.
4080 * sched-rgn.c (rgn_add_block): Likewise.
4081 (rgn_fix_recovery_cfg): Likewise.
4082 * tree.c (attribute_list_contained): Likewise.
4083
4084 2011-07-12 Uros Bizjak <ubizjak@gmail.com>
4085
4086 * config/i386/i386.c: Tidy processor feature bitmasks.
4087 (m_P4_NOCONA): New.
4088
4089 2011-07-12 Andrew Pinski <pinskia@gmail.com>
4090
4091 PR rtl-opt/49474
4092 * cprop.c (find_implicit_sets): Correct the condition.
4093
4094 2011-07-12 Richard Henderson <rth@redhat.com>
4095
4096 PR target/49713
4097 * dwarf2out.h (dwarf_frame_regnum): Remove.
4098 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
4099 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
4100 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
4101 (execute_dwarf2_frame): Initialize them.
4102 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
4103 users of the macros with the variables.
4104 (expand_builtin_dwarf_sp_column): Revert last change.
4105 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
4106 result of DWARF_FRAME_REGNUM into a local variable.
4107
4108 2011-07-12 Richard Henderson <rth@redhat.com>
4109
4110 PR target/49714
4111 * config/i386/i386.c (x86_output_mi_thunk): Use
4112 machopic_indirect_call_target instead of machopic_indirection_name
4113 directly.
4114
4115 2011-07-12 Laurent GUERBY <laurent@guerby.net>
4116 Eric Botcazou <ebotcazou@adacore.com>
4117
4118 * prefix.h: Wrap up in extern "C" block.
4119
4120 2011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
4121
4122 AMD bdver2 Enablement
4123 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
4124 (case ${target}): Add bdver2.
4125 * config/i386/driver-i386.c (host_detect_local_cpu): Let
4126 -march=native recognize bdver2 processors.
4127 * config/i386/i386-c.c (ix86_target_macros_internal): Add
4128 bdver2 def_and_undef
4129 * config/i386/i386.c (struct processor_costs bdver2_cost): New
4130 bdver2 cost table.
4131 (m_BDVER2): New definition.
4132 (m_AMD_MULTIPLE): Includes m_BDVER2.
4133 (initial_ix86_tune_features): Add bdver2 tuning.
4134 (processor_target_table): Add bdver2 entry.
4135 (static const char *const cpu_names): Add bdver2 entry.
4136 (ix86_option_override_internal): Add bdver2 instruction sets.
4137 (ix86_issue_rate): Add bdver2.
4138 (ix86_adjust_cost): Add bdver2.
4139 (has_dispatch): Add bdver2.
4140 * config/i386/i386.h (TARGET_BDVER2): New definition.
4141 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
4142 (enum processor_type): Add PROCESSOR_BDVER2.
4143 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
4144 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
4145 description.
4146
4147 2011-07-12 Richard Henderson <rth@redhat.com>
4148
4149 PR target/49714
4150 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
4151 destination address in memory on some paths.
4152
4153 2011-07-12 Bernd Schmidt <bernds@codesourcery.com>
4154
4155 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
4156 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
4157 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
4158 * function.c (locate_and_pad_parm): Take it into account.
4159 * target.def (function_arg_round_boundary): New hook.
4160 * targhooks.c (default_function_arg_round_boundary): New function.
4161 * targhooks.h (default_function_arg_round_boundary): Declare.
4162 * doc/tm.texi: Regenerate.
4163
4164 2011-07-12 Richard Guenther <rguenther@suse.de>
4165
4166 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
4167 Do not perform no-op changes.
4168
4169 2011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
4170
4171 * config/arm/predicates.md (neon_struct_operand): Make a normal
4172 predicate.
4173 (neon_struct_or_register_operand): New predicate.
4174 * config/arm/neon.md (movmisalign<mode>): Replace predicates
4175 with neon_struct_or_register_operand.
4176 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
4177 neon_struct_operand instead of memory_operand.
4178
4179 2011-07-12 Martin Jambor <mjambor@suse.cz>
4180
4181 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
4182 * cgraph.c (cgraph_get_node_or_alias): Removed.
4183 (change_decl_assembler_name): Changed all calls to
4184 cgraph_get_node_or_alias to a call to cgraph_get_node.
4185 (cgraph_make_decl_local): Likewise.
4186 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
4187 * varasm.c (default_binds_local_p_1): Likewise.
4188 (decl_binds_to_current_def_p): Likewise.
4189
4190 2011-07-12 Jakub Jelinek <jakub@redhat.com>
4191
4192 PR tree-optimization/49712
4193 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
4194
4195 2011-07-11 Bernd Schmidt <bernds@codesourcery.com>
4196
4197 * genautomata.c (add_arc): Return void. All callers changed.
4198 (make_automaton): Remove dead code.
4199
4200 2011-07-11 Richard Henderson <rth@redhat.com>
4201
4202 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
4203 (DW_FRAME_POINTER_REGNUM): New.
4204 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
4205 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
4206 (dwf_regno): New.
4207 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
4208 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
4209 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
4210 Use it.
4211 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
4212 * dwarf2out.h (dwarf_frame_regnum): New.
4213 (struct cfa_loc): Document the domain of the reg member.
4214
4215 2011-07-11 Uros Bizjak <ubizjak@gmail.com>
4216
4217 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
4218 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
4219
4220 2011-07-11 Jakub Jelinek <jakub@redhat.com>
4221
4222 PR debug/49676
4223 * dwarf2out.c (int_shift_loc_descriptor): New function.
4224 (int_loc_descriptor): If shorter, emit i as
4225 (i >> shift), shift, DW_OP_shl for suitable shift value.
4226 Similarly, try to optimize large negative values using
4227 DW_OP_neg of a positive value if shorter.
4228 (size_of_int_shift_loc_descriptor): New function.
4229 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
4230 changes.
4231 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
4232 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
4233 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
4234 is shorter.
4235 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
4236 addend as added DW_OP_plus if it is shorter.
4237
4238 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4239
4240 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
4241 (DTORS_SECTION_ASM_OP): Define.
4242
4243 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4244
4245 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
4246 * config/t-dfprules: Move to ../libgcc/config.
4247 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
4248 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
4249 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
4250 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
4251 Likewise.
4252 (i[34567]86-*-cygwin*): Likewise.
4253 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
4254 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
4255 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
4256 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
4257 D64PBIT_FUNCS, D128PBIT_FUNCS.
4258
4259 2011-07-11 Richard Guenther <rguenther@suse.de>
4260
4261 * tree-vrp.c (simplify_conversion_using_ranges): Manually
4262 translate the source value-range through the conversion chain.
4263
4264 2011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
4265
4266 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
4267
4268 2011-07-11 Arthur Loiret <aloiret@debian.org>
4269
4270 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
4271 a bi-arch compiler defaulting to 31-bit. In this case:
4272 (tmake_file): Add s390/t-linux64.
4273 * doc/install.texi: Add s390-linux to the list of targets supporting
4274 --enable-targets=all.
4275
4276 2011-07-11 Arthur Loiret <aloiret@debian.org>
4277 Matthias Klose <doko@debian.org>
4278
4279 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
4280 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
4281 (tm_file): Add mips/linux64.h.
4282 (tmake_file): Add mips/t-linux64.
4283 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
4284 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
4285 instead of hardcoded mabi=n32.
4286 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
4287 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
4288 convention.
4289
4290 2011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4291
4292 * passes.c (init_optimization_passes): Add invariant motion pass
4293 after induction variable optimization.
4294
4295 2011-07-11 Georg-Johann Lay <avr@gjlay.de>
4296
4297 PR target/39633
4298 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
4299 offsets 1..5 set cc0 in a usable way.
4300
4301 2011-07-11 Romain Geissler <romain.geissler@gmail.com>
4302
4303 * tree.h (call_expr_arg): Remove.
4304 (call_expr_argp): Likewise.
4305
4306 2011-07-11 Eric Botcazou <ebotcazou@adacore.com>
4307
4308 * config/sparc/sparc.md (save_register_window_1): Rename to...
4309 (window_save): ...this.
4310 * config/sparc/sparc.c (emit_save_register_window): Rename to...
4311 (emit_window_save): ...this.
4312 (sparc_expand_prologue): Adjust to above renaming.
4313
4314 2011-07-10 H.J. Lu <hongjiu.lu@intel.com>
4315
4316 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
4317 of movabs for x32.
4318
4319 2011-07-10 Richard Henderson <rth@redhat.com>
4320
4321 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
4322 run final, instead of emitting text directly.
4323
4324 2011-07-10 H.J. Lu <hongjiu.lu@intel.com>
4325
4326 * config/i386/i386.c (ix86_option_override_internal): Turn on
4327 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
4328 small PIC models for TARGET_X32.
4329
4330 2011-07-10 Hans-Peter Nilsson <hp@axis.com>
4331
4332 PR target/49684
4333 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
4334 $(LIBGCC2_CFLAGS).
4335
4336 PR bootstrap/49680
4337 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
4338 stray notes and debug insns by using prev_nonnote_nondebug_insn
4339 instead of PREV_INSN.
4340
4341 2011-07-09 Richard Henderson <rth@redhat.com>
4342
4343 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
4344 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
4345 * dwarf2out.c: ... here.
4346 (output_all_cfis): Remove.
4347 (dwarf2out_switch_text_section): Use output_cfis directly.
4348 (size_of_locs): Export.
4349 (output_loc_sequence, output_loc_sequence_raw): Export.
4350 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
4351 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
4352 output_cfa_loc_raw): Move to ...
4353 * dwarfcfi.c: ... here.
4354 * dwarf2out.h: Update decls.
4355
4356 2011-07-09 Richard Henderson <rth@redhat.com>
4357
4358 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
4359 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
4360 * dwarf2cfi.c: ... here.
4361 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
4362 (DWARF_ROUND, DWARF_CIE_ID): Remove.
4363 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
4364 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
4365 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
4366
4367 2011-07-09 Richard Henderson <rth@redhat.com>
4368
4369 * dwarf2cfi.c (cie_return_save): New.
4370 (queue_reg_save): Use compare_reg_or_pc.
4371 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
4372 (dwarf2out_frame_debug_expr): Likewise.
4373 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
4374 (initial_return_save): Likewise.
4375 (execute_dwarf2_frame): Save and restore initial return save from
4376 the cie to the fde.
4377 * config/mips/mips.c (mips_frame_set): Remove special case for
4378 DWARF_FRAME_RETURN_COLUMN.
4379
4380 2011-07-09 Richard Henderson <rth@redhat.com>
4381
4382 * dwarf2cfi.c (lookup_cfa): Remove.
4383 (execute_dwarf2_frame): Assert queues are empty on entry.
4384 Setup initial cfa directly, not via lookup_cfa.
4385 Don't clear args_size state here.
4386
4387 2011-07-09 Richard Henderson <rth@redhat.com>
4388
4389 * dwarf2cfi.c (add_cfi_vec): New.
4390 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
4391 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
4392 (execute_dwarf2_frame): Set add_cfi_vec.
4393
4394 2011-07-09 Richard Henderson <rth@redhat.com>
4395
4396 * defaults.h (ASM_COMMENT_START): Move here...
4397 * dwarf2asm.c: ... from here.
4398 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
4399 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
4400 * varasm.c: Likewise.
4401
4402 2011-07-09 Richard Henderson <rth@redhat.com>
4403
4404 PR debug/49686
4405 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
4406 (create_cfi_notes): ... do it here instead.
4407
4408 2011-07-09 Jakub Jelinek <jakub@redhat.com>
4409
4410 PR debug/49676
4411 * dwarf2out.c (size_of_int_loc_descriptor): New function.
4412 (address_of_int_loc_descriptor): Use it.
4413 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
4414
4415 2011-07-09 Richard Henderson <rth@redhat.com>
4416
4417 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
4418 (prologue, epilogue): New.
4419 (return, *rts): New.
4420 (blockage, setd, seti): New.
4421 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
4422 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
4423 (pdp11_saved_regno): New.
4424 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
4425 generate rtl instead of text.
4426 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
4427 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
4428 * config/pdp11/pdp11-protos.h: Update.
4429
4430 2011-07-09 Richard Henderson <rth@redhat.com>
4431
4432 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
4433 try to insert an rtl prologue here.
4434 (rs6000_output_function_epilogue): Similarly.
4435 * config/rs6000/rs6000.md (prologue): Emit a barrier to
4436 satisfy !TARGET_SCHED_PROLOG.
4437 (epilogue, sibcall_epilogue): Likewise.
4438
4439 2011-07-09 Eric Botcazou <ebotcazou@adacore.com>
4440
4441 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
4442 (FP_REG_P): Delete.
4443 (IN_OR_GLOBAL_P): Likewise.
4444
4445 2011-07-08 Jason Merrill <jason@redhat.com>
4446
4447 PR c++/45437
4448 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
4449 compound assignment.
4450
4451 * cgraph.c (cgraph_add_to_same_comdat_group): New.
4452 * cgraph.h: Declare it.
4453 * ipa.c (function_and_variable_visibility): Make sure thunks
4454 have the right visibility.
4455
4456 2011-07-08 Richard Henderson <rth@redhat.com>
4457
4458 PR bootstrap/49680
4459 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
4460 any tablejump vector.
4461
4462 PR bootstrap/49680
4463 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
4464 end of the prologue.
4465
4466 2011-07-08 Jakub Jelinek <jakub@redhat.com>
4467
4468 PR target/49621
4469 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
4470 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
4471 * config/rs6000/vector.md (vector_select_<mode>,
4472 vector_select_<mode>_uns): Change second operand of NE to
4473 CONST0_RTX (<MODE>mode) instead of const0_rtx.
4474 * config/rs6000/altivec.md (*altivec_vsel<mode>,
4475 *altivec_vsel<mode>_uns): Expect second operand of NE to be
4476 zero_constant of the corresponding vector mode.
4477 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
4478 Likewise.
4479
4480 2011-07-08 Sebastian Pop <sebastian.pop@amd.com>
4481
4482 * graphite-dependences.c (build_alias_set_powerset): Remove
4483 continue from loop, add one more assert.
4484
4485 2011-07-08 Georg-Johann Lay <avr@gjlay.de>
4486
4487 PR target/46779
4488 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
4489 In particular, allow 8-bit values in r28 and r29.
4490 (avr_hard_regno_scratch_ok): Disallow any register that might be
4491 part of the frame pointer.
4492 (avr_hard_regno_rename_ok): Same.
4493 (avr_legitimate_address_p): Don't allow SUBREGs.
4494
4495 2011-07-08 Julian Brown <julian@codesourcery.com>
4496
4497 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
4498 big-endian mode.
4499 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
4500 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
4501 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
4502 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
4503 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
4504 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
4505 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
4506 registers in big-endian mode.
4507
4508 2011-07-08 Bernd Schmidt <bernds@codesourcery.com>
4509
4510 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
4511 in terms of another.
4512 (write_attr_value): Write a cast if necessary.
4513
4514 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
4515 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
4516 (REG_WORDS_BIG_ENDIAN): Document.
4517 * doc/tm.texi: Regenerate.
4518 * reload.c (operands_match_p): Take it into account.
4519 (reload_adjust_reg_for_mode): Likewise.
4520 * rtlanal.c (subreg_get_info): Likewise.
4521
4522 2011-07-08 Richard Guenther <rguenther@suse.de>
4523
4524 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
4525 folding.
4526
4527 2011-07-08 Kai Tietz <ktietz@redhat.com>
4528
4529 * fold-const.c (fold_truth_andor): Factored out truth_andor
4530 label from fold_binary as function.
4531 (fold_binary_loc): Replace truth_andor lable
4532 by function fold_truth_andor.
4533
4534 2011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
4535
4536 PR middle-end/49519
4537 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
4538 check if address is stored in register. If so - give up.
4539 (check_sibcall_argument_overlap_1): Do not perform check of
4540 overlapping when it is call to address.
4541
4542 2011-07-08 Georg-Johann Lay <avr@gjlay.de>
4543
4544 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
4545 of magic '31'.
4546
4547 2011-07-08 Bernd Schmidt <bernds@codesourcery.com>
4548
4549 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
4550 GET_MODE_BITSIZE where appropriate.
4551 (widen_leading, expand_parity, expand_ctz, expand_ffs,
4552 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
4553 expand_float, expand_fix): Likewise.
4554 * expr.c (convert_move, convert_modes, expand_expr_real_2,
4555 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
4556 * stor-layout.c (get_mode_bounds): Likewise.
4557 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
4558 Likewise.
4559 * convert.c (convert_to_integer): Likewise.
4560 * expmed.c (expand_shift_1): Likewise.
4561
4562 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
4563 a bitsize.
4564
4565 * optabs.c (expand_binop): Tighten conditions for doubleword
4566 expansions.
4567 (widen_bswap): Assert that mode bitsize and precision are the same.
4568 * stor-layout.c (get_best_mode): Skip modes that have lower
4569 precision than bitsize.
4570 * recog.c (simplify_while_replacing): Assert that bitsize and
4571 precision are the same.
4572
4573 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4574
4575 * Makefile.in (LIBGCOV): Remove.
4576 (libgcc.mvars): Remove LIBGCOV.
4577 * libgov.c: Move to ../libgcc.
4578
4579 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4580
4581 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
4582
4583 2011-07-08 Martin Jambor <mjambor@suse.cz>
4584
4585 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
4586 is too big for total scalarization.
4587
4588 2011-07-07 Richard Henderson <rth@redhat.com>
4589
4590 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
4591 (DBX_DEBUGGING_INFO): Undef.
4592
4593 2011-07-07 Richard Henderson <rth@redhat.com>
4594
4595 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
4596 Handle some opcodes specially for debugging.
4597 * print-rtl.c: Include dwarf2out.h
4598 (print_rtx): Handle NOTE_INSN_CFI.
4599 * Makefile.in (print-rtl.o): Update.
4600
4601 2011-07-07 Richard Henderson <rth@redhat.com>
4602
4603 * tree-pass.h (pass_dwarf2_frame): Declare.
4604 * passes.c (init_optimization_passes): Add it.
4605 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
4606 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
4607 make static, do not call add_cfis_to_fde.
4608 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
4609 dwarf2out_frame_init): Merge into...
4610 (execute_dwarf2_frame): ... here. New function.
4611 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
4612 saved_do_cfi_asm to a tri-state variable.
4613 (gate_dwarf2_frame, pass_dwarf2_frame): New.
4614 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
4615 if it has yet to be done. Don't call dwarf2cfi_function_init.
4616 * dwarf2out.h, debug.h: Update decls.
4617 * final.c (final_start_function): Don't call
4618 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
4619 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
4620 * toplev.c (lang_dependent_init): Likewise.
4621
4622 2011-07-07 Richard Henderson <rth@redhat.com>
4623
4624 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
4625 FDE_TABLE_INCREMENT): Replace with...
4626 (fde_vec): ... this, a new vector.
4627 (current_fde): Remove. Replace all users with cfun->fde.
4628 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
4629 (size_of_aranges, dwarf2out_finish): Likewise.
4630 (dwarf2out_alloc_current_fde): Break out from ...
4631 (dwarf2out_begin_prologue): ... here.
4632 (dwarf2out_frame_init): Remove.
4633 * dwarf2cfi.c: Update all users of current_fde.
4634 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
4635 * dwarf2out.h: Update decls.
4636 (dw_fde_node): Add fde_index member.
4637 * function.h (struct function): Add fde member.
4638
4639 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4640 Richard Henderson <rth@redhat.com>
4641
4642 * dwarf2cfi.c (add_cfi): Remove.
4643 (dwarf2out_cfi_label): Remove force argument. Only generate the
4644 label name.
4645 (add_fde_cfi): Simplify the different code paths.
4646 (add_cie_cfi): New.
4647 (old_cfa, old_cfa_remember): New.
4648 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
4649 (last_reg_save_label): Remove.
4650 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
4651 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
4652 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
4653 dwarf2out_frame_debug_cfa_expression,
4654 dwarf2out_frame_debug_cfa_restore,
4655 dwarf2out_frame_debug_cfa_window_save,
4656 dwarf2out_frame_debug_expr): Remove label parameter.
4657 (cfi_label_required_p, add_cfis_to_fde): New.
4658 (dwarf2out_frame_debug_after_prologue): New.
4659 (dwarf2cfi_frame_init): Initialize old_cfa.
4660 (dwarf2out_frame_debug_restore_state): Likewise.
4661 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
4662 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
4663 * final.c (final_start_function): Call
4664 dwarf2out_frame_debug_after_prologue.
4665
4666 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4667 Richard Henderson <rth@redhat.com>
4668
4669 * dwarf2cfi.c (cfi_insn): New.
4670 (dwarf2out_cfi_label): Don't emit cfi label here.
4671 (add_fde_cfi): Create a NOTE_INSN_CFI.
4672 (dwarf2out_frame_debug): Setup cfi_insn.
4673 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
4674 (dwarf2out_cfi_begin_epilogue): Make static.
4675 (dwarf2out_frame_debug_restore_state): Make static.
4676 * dwarf2out.c (output_cfi_directive): Make static.
4677 (dwarf2out_emit_cfi): New.
4678 * dwarf2out.h: Update.
4679 * final.c (final): Remove CFI notes.
4680 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
4681 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
4682 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
4683 * insn-notes.def (NOTE_INSN_CFI): New.
4684 (NOTE_INSN_CFI_LABEL): New.
4685 * rtl.h (union rtunion_def): Add rt_cfi member.
4686 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
4687
4688 2011-07-07 Richard Henderson <rth@redhat.com>
4689
4690 * dwarf2cfi.c: New file.
4691 * Makefile.in (OBJS): Add it.
4692 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
4693 * gengtype.c (open_base_files): Include dwarf2out.h.
4694 * coretypes.h (enum var_init_status): Move from ...
4695 * rtl.h: ... here.
4696 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
4697 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
4698 expand_builtin_dwarf_sp_column, init_return_column_size,
4699 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
4700 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
4701 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
4702 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
4703 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
4704 compute_barrier_args_size, dwarf2out_args_size,
4705 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
4706 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
4707 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
4708 queue_reg_save, dwarf2out_flush_queued_reg_saves,
4709 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
4710 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
4711 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
4712 dwarf2out_frame_debug_cfa_expression,
4713 dwarf2out_frame_debug_cfa_restore,
4714 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
4715 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
4716 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
4717 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
4718 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
4719 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
4720 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
4721 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
4722 dw_loc_descr_node): Move to dwarf2out.h.
4723 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
4724 mem_loc_descriptor): Export.
4725 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
4726 (dwarf2out_frame_init): Extract CIE generation code to
4727 dwarf2cfi_frame_init.
4728
4729 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
4730
4731 PR target/49660
4732 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
4733 MASK_V8PLUS, remove commented out flag and reorder.
4734
4735 2011-07-07 Jakub Jelinek <jakub@redhat.com>
4736
4737 PR c/49644
4738 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
4739 one non-complex and one complex argument, call c_save_expr on both
4740 operands.
4741
4742 2011-07-07 Martin Jambor <mjambor@suse.cz>
4743
4744 PR middle-end/49495
4745 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
4746 (verify_cgraph_node): Some functinality moved to
4747 verify_edge_corresponds_to_fndecl, call it.
4748
4749 2011-07-07 Joseph Myers <joseph@codesourcery.com>
4750
4751 * config.gcc (*local*): Remove.
4752 * doc/install-old.texi: Don't mention local configurations.
4753
4754 2011-07-07 Jakub Jelinek <jakub@redhat.com>
4755
4756 PR debug/49522
4757 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
4758 referencing debug insns that have been reset.
4759 (dead_debug_insert_before): Don't assert reg is non-NULL,
4760 instead return immediately if it is NULL.
4761
4762 2011-07-07 Joseph Myers <joseph@codesourcery.com>
4763
4764 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
4765
4766 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4767
4768 * hw-doloop.c: New file.
4769 * hw-doloop.h: New file.
4770 * Makefile.in (OBJS): Add hw-doloop.o.
4771 (hw-doloop.o): New rule.
4772 ($(obj_out_file)): Add hw-doloop.h dependency.
4773 * config/bfin/bfin.c: Include "hw-doloop.h".
4774 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
4775 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
4776 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
4777 type changed to hwloop_info. Return bool, true if the loop was
4778 successfully optimized. Remove code that was moved to
4779 hw-doloop.c, and adjust other parts.
4780 (hwloop_fail): New static function, containing parts that used
4781 to be in bfin_optimize_loop.
4782 (bfin_discover_loop, bfin_discover_loops, free_loops,
4783 bfin_reorder_loops): Remove.
4784 (hwloop_pattern_reg): New static function.
4785 (bfin_doloop_hooks): New variable.
4786 (bfin_reorg_loops): Remove most code, call reorg_loops.
4787 * config/bfin/bfin.md (doloop_end splitter): Also enable if
4788 loop counter is a memory_operand.
4789
4790 2011-07-07 H.J. Lu <hongjiu.lu@intel.com>
4791
4792 * config.gcc: Support --with-multilib-list for x86 Linux targets.
4793
4794 * configure.ac: Mention x86-64 for --with-multilib-list.
4795 * configure: Regenerated.
4796
4797 * config/i386/gnu-user64.h (SPEC_64): Support x32.
4798 (SPEC_32): Likewise.
4799 (ASM_SPEC): Likewise.
4800 (LINK_SPEC): Likewise.
4801 (TARGET_THREAD_SSP_OFFSET): Likewise.
4802 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
4803 (SPEC_X32): New.
4804
4805 * config/i386/i386.h (TARGET_X32): New.
4806 (TARGET_LP64): New.
4807 (LONG_TYPE_SIZE): Likewise.
4808 (POINTER_SIZE): Likewise.
4809 (POINTERS_EXTEND_UNSIGNED): Likewise.
4810 (OPT_ARCH64): Support x32.
4811 (OPT_ARCH32): Likewise.
4812
4813 * config/i386/i386.opt (mx32): New.
4814
4815 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
4816 (GLIBC_DYNAMIC_LINKERX32): Likewise.
4817 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
4818 (GLIBC_DYNAMIC_LINKERX32): Likewise.
4819
4820 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
4821 (BIONIC_DYNAMIC_LINKERX32): Likewise.
4822 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
4823
4824 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
4825
4826 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
4827
4828 * doc/invoke.texi: Document -mx32.
4829
4830 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
4831
4832 * doc/invoke.texi (mwords-little-endian): Deprecate.
4833 * config/arm/arm.opt (mwords-little-endian): Likewise.
4834 * config/arm/arm.c (arm_option_override): Warn about the deprecation
4835 of -mwords-little-endian.
4836
4837 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
4838
4839 * reload1.c (choose_reload_regs): Use mode sizes to check whether
4840 an old reload register completely defines the required value.
4841
4842 2011-07-07 Richard Guenther <rguenther@suse.de>
4843
4844 * fold-const.c (fold_unary_loc): Do not strip sign-changes
4845 for NEGATE_EXPR.
4846
4847 2011-07-07 Richard Guenther <rguenther@suse.de>
4848
4849 * tree-vrp.c (simplify_conversion_using_ranges): New function.
4850 (simplify_stmt_using_ranges): Call it.
4851
4852 2011-07-07 Kai Tietz <ktietz@redhat.com>
4853
4854 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
4855 (lookup_logical_inverted_value): Likewise.
4856 (simplify_bitwise_binary_1): Likewise.
4857 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
4858
4859 2011-07-07 Joseph Myers <joseph@codesourcery.com>
4860
4861 * gcc.c (%[Spec]): Don't document.
4862 (struct spec_list): Update comment.
4863 (do_spec_1): Don't handle %[Spec].
4864 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
4865
4866 2011-07-07 Joseph Myers <joseph@codesourcery.com>
4867
4868 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
4869 default based on TARGET_ASM_NAMED_SECTION.
4870 * common/common-target.def (have_named_sections): Default to true.
4871 * common/config/default-common.c: Don't include tm.h.
4872 * common/config/picochip/picochip-common.c
4873 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
4874 * common/config/m32c/m32c-common.c: Remove.
4875 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
4876 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4877 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4878 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4879 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4880 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4881 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4882
4883 2011-07-07 Jakub Jelinek <jakub@redhat.com>
4884
4885 PR middle-end/49640
4886 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
4887 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
4888
4889 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4890
4891 PR libmudflap/49550
4892 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
4893
4894 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4895
4896 PR target/39150
4897 * configure.ac (gcc_cv_as_hidden): Also accept
4898 x86_64-*-solaris2.1[0-9]*.
4899 (gcc_cv_as_cfi_directive): Likewise.
4900 (gcc_cv_as_comdat_group_group): Likewise.
4901 (set_have_as_tls): Likewise.
4902 * configure: Regenerate.
4903 * config.gcc (i[34567]86-*-solaris2*): Also handle
4904 x86_64-*-solaris2.1[0-9]*.
4905 * config.host (i[34567]86-*-solaris2*): Likewise.
4906 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
4907 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
4908 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
4909 (TARGET_LD_EMULATION): Use it.
4910 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
4911 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
4912 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
4913 (ASM_CPU64_DEFAULT_SPEC): Define.
4914 (ASM_CPU_SPEC): Use %(asm_cpu_default).
4915 (ASM_SPEC): Redefine.
4916 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
4917 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
4918 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
4919 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
4920 configuration.
4921 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
4922
4923 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4924
4925 * config/sol2.h (ASM_SPEC): Split into ...
4926 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
4927 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
4928 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
4929 (ASM_SPEC): Use ASM_SPEC_BASE.
4930 * config/sparc/sol2.h (ASM_SPEC): Redefine.
4931
4932 2011-07-07 Georg-Johann Lay <avr@gjlay.de>
4933
4934 * config/avr/avr.md (*reload_insi): Change predicate #1 to
4935 const_int_operand. Ditto for peep2 producing this insn.
4936 Add argument to output_reload_insisf call.
4937 (*movsi,*movsf): Add argument to output_movsisf call.
4938 (*reload_insf): New insn and new peep2 to produce it.
4939 * config/avr/avr-protos.h (output_movsisf): Change prototype.
4940 (output_reload_insisf): Change prototype.
4941 * config/avr/avr.c (avr_asm_len): New function.
4942 (output_reload_insisf): Rewrite.
4943 (output_movsisf): Change prototype. output_reload_insisf for
4944 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
4945 (adjust_insn_length): Add argument to output_movsisf and
4946 output_reload_insisf call.
4947
4948 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4949
4950 * emit-rtl.c (paradoxical_subreg_p): New function.
4951 * rtl.h (paradoxical_subreg_p): Declare.
4952 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
4953 apply_distributive_law, simplify_comparison, simplify_set): Use it.
4954 * cse.c (record_jump_cond, cse_insn): Likewise.
4955 * expr.c (force_operand): Likewise.
4956 * rtlanal.c (num_sign_bit_copies1): Likewise.
4957 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
4958 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
4959 (push_reload): Use precision to check for paradoxical subregs.
4960 * expmed.c (extract_bit_field_1): Likewise.
4961
4962 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
4963 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
4964 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
4965 simplify_set, simplify_logical, expand_compound_operation,
4966 make_extraction, force_to_mode, if_then_else_cond, extended_count,
4967 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
4968 record_value_for_reg): Likewise.
4969 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
4970 * simplify-rtx. c (simplify_unary_operation_1,
4971 simplify_binary_operation_1, simplify_const_relational_operation):
4972 Likewise.
4973
4974 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
4975 instead of GET_MODE_BITSIZE where appropriate.
4976 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
4977 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
4978 init_num_sign_bit_copies_in_rep): Likewise.
4979 * cse.c (fold_rtx, cse_insn): Likewise.
4980 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
4981 * simplify-rtx.c (simplify_unary_operation_1,
4982 simplify_const_unary_operation, simplify_binary_operation_1,
4983 simplify_const_binary_operation, simplify_ternary_operation,
4984 simplify_const_relational_operation, simplify_subreg): Likewise.
4985 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
4986 simplify_if_then_else, simplify_set, expand_compound_operation,
4987 expand_field_assignment, make_extraction, if_then_else_cond,
4988 make_compound_operation, force_to_mode, make_field_assignment,
4989 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
4990 extended_count, try_widen_shift_mode, simplify_shift_const_1,
4991 simplify_comparison, record_promoted_value, simplify_compare_const,
4992 record_dead_and_set_regs_1): Likewise.
4993
4994 Revert:
4995 * simplify-rtx.c (simplify_const_binary_operation): Use the
4996 shift_truncation_mask hook instead of performing modulo by width.
4997 Compare against mode precision, not bitsize.
4998 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
4999 Use shift_truncation_mask instead of constructing the value manually.
5000
5001 2011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
5002
5003 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
5004 declaration.
5005 (rs6000_save_toc_in_prologue_p): Ditto.
5006
5007 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
5008 up the static chain (r11) during indirect function calls.
5009 (-msave-toc-indirect): New undocumented debug switch.
5010
5011 * config/rs6000/rs6000.c (struct machine_function): Add
5012 save_toc_in_prologue field to note whether the prologue needs to
5013 save the TOC value in the reserved stack location.
5014 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
5015 to save the TOC in the prologue, do so.
5016 (rs6000_trampoline_init): Don't allow creating AIX style
5017 trampolines if -mno-r11 is in effect.
5018 (rs6000_call_indirect_aix): New function to create AIX style
5019 indirect calls, adding support for -mno-r11 to suppress loading
5020 the static chain, and saving the TOC in the prologue instead of
5021 the call body.
5022 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
5023 TOC in the prologue.
5024
5025 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
5026 register numbers.
5027 (TOC_REGNUM): Ditto.
5028 (STATIC_CHAIN_REGNUM): Ditto.
5029 (ARG_POINTER_REGNUM): Ditto.
5030 (SFP_REGNO): Delete, unused.
5031 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
5032 function descriptor offsets.
5033 (TOC_SAVE_OFFSET_64BIT): Ditto.
5034 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
5035 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
5036 (AIX_FUNC_DESC_SC_32BIT): Ditto.
5037 (AIX_FUNC_DESC_SC_64BIT): Ditto.
5038 (ptrload): New mode attribute for the appropriate load of a pointer.
5039 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
5040 (call_indirect_aix64): Ditto.
5041 (call_value_indirect_aix32): Ditto.
5042 (call_value_indirect_aix64): Ditto.
5043 (call_indirect_nonlocal_aix32_internal): Ditto.
5044 (call_indirect_nonlocal_aix32): Ditto.
5045 (call_indirect_nonlocal_aix64_internal): Ditto.
5046 (call_indirect_nonlocal_aix64): Ditto.
5047 (call): Rewrite AIX indirect function calls. Add support for
5048 eliminating the static chain, and for moving the save of the TOC
5049 to the function prologue.
5050 (call_value): Ditto.
5051 (call_indirect_aix<ptrsize>): Ditto.
5052 (call_indirect_aix<ptrsize>_internal): Ditto.
5053 (call_indirect_aix<ptrsize>_internal2): Ditto.
5054 (call_indirect_aix<ptrsize>_nor11): Ditto.
5055 (call_value_indirect_aix<ptrsize>): Ditto.
5056 (call_value_indirect_aix<ptrsize>_internal): Ditto.
5057 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
5058 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
5059 (call_nonlocal_aix32): Relocate in the rs6000.md file.
5060 (call_nonlocal_aix64): Ditto.
5061
5062 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
5063 -mno-r11 documentation.
5064
5065 2011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
5066
5067 PR other/49658
5068 * doc/extend.texi (Compound Literals): Fix typo.
5069
5070 2011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
5071
5072 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
5073
5074 2011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
5075
5076 * configure.ac (plugin-version.h): Generate
5077 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
5078 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
5079 macros.
5080
5081 * configure: Regenerate.
5082
5083 * doc/plugins.texi (Building GCC plugins): Mention
5084 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
5085
5086 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
5087
5088 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
5089 * combine.c (make_extraction, gen_lowpart_or_truncate,
5090 apply_distributive_law, simplify_comparison,
5091 reg_truncated_to_mode, record_truncated_value): Use it.
5092 * cse.c (notreg_cost): Likewise.
5093 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
5094 * expr.c (convert_move, convert_modes): Likewise.
5095 * optabs.c (expand_binop, expand_unop): Likewise.
5096 * postreload.c (move2add_last_label): Likewise.
5097 * regmove.c (optimize_reg_copy_3): Likewise.
5098 * rtlhooks.c (gen_lowpart_general): Likewise.
5099 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
5100
5101 2011-07-06 Joseph Myers <joseph@codesourcery.com>
5102
5103 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
5104
5105 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
5106
5107 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
5108 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
5109 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
5110 (simplify_const_unary_operation, simplify_binary_operation_1,
5111 simplify_const_binary_operation, simplify_const_relational_operation):
5112 Use them. Use GET_MODE_MASK for masking and sign-extensions.
5113 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
5114 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
5115 simplify_shift_const_1, simplify_comparison): Likewise.
5116 * expr.c (convert_modes): Likewise.
5117 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
5118 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
5119 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
5120
5121 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
5122
5123 2011-07-06 Richard Guenther <rguenther@suse.de>
5124
5125 PR tree-optimization/49645
5126 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
5127 register variables.
5128 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
5129 in type qualification here ...
5130 (copy_reference_ops_from_ref): ... not here.
5131 (vn_reference_lookup_3): ... or here.
5132 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
5133 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
5134
5135 2011-07-06 Ian Lance Taylor <iant@google.com>
5136
5137 * doc/install.texi (Configuration): It's
5138 --enable-gnu-indirect-function, not --enable-indirect-function.
5139
5140 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
5141
5142 * simplify-rtx.c (simplify_const_binary_operation): Use the
5143 shift_truncation_mask hook instead of performing modulo by width.
5144 Compare against mode precision, not bitsize.
5145 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
5146 Use shift_truncation_mask instead of constructing the value manually.
5147
5148 2011-07-06 H.J. Lu <hongjiu.lu@intel.com>
5149
5150 PR middle-end/47383
5151 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
5152 address computation and convert to address_mode if needed.
5153
5154 2011-07-06 Richard Guenther <rguenther@suse.de>
5155
5156 * tree.c (build_common_tree_nodes_2): Merge with
5157 build_common_tree_nodes.
5158 * tree.h (build_common_tree_nodes): Adjust prototype.
5159 (build_common_tree_nodes_2): Remove.
5160 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
5161 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
5162
5163 2011-07-05 Jakub Jelinek <jakub@redhat.com>
5164
5165 PR tree-optimization/49618
5166 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
5167 t recurse on the decl.
5168 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
5169 return true if expr isn't known to be defined in current
5170 TU or some other LTO partition.
5171
5172 2011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
5173
5174 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
5175 override CASE_VALUES_THRESHOLD.
5176
5177 * stmt.c (toplevel): Include params.h.
5178 (case_values_threshold): Use the --param case-values-threshold
5179 value if non-zero, otherwise use machine dependent value.
5180 (expand_case): Use case_values_threshold.
5181
5182 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
5183
5184 * doc/invoke.texi (--param case-values-threshold): Document.
5185
5186 2011-07-05 Richard Henderson <rth@redhat.com>
5187
5188 * dwarf2out.c (dwarf2out_cfi_label): Make static.
5189 (dwarf2out_flush_queued_reg_saves): Make static.
5190 (dwarf2out_reg_save): Remove.
5191 (dwarf2out_return_save): Remove.
5192 (dwarf2out_return_reg): Remove.
5193 (dwarf2out_reg_save_reg): Remove.
5194 (dwarf2out_def_cfa): Merge into ...
5195 (dwarf2out_frame_init): ... here.
5196 * dwarf2out.h, tree.h: Remove declarations as necessary.
5197
5198 2011-07-05 Richard Henderson <rth@redhat.com>
5199
5200 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
5201 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5202 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
5203 the alloc insn.
5204
5205 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
5206 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
5207 (process_epilogue): Don't call dwarf2out_def_cfa.
5208
5209 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
5210 indicate the return address save.
5211 (process_cfa_register): Likewise.
5212
5213 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
5214 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
5215
5216 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
5217 for ar.pfs save at alloc insn.
5218
5219 2011-07-05 Richard Henderson <rth@redhat.com>
5220
5221 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
5222 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5223 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
5224 stack pointer save.
5225 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
5226 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
5227 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
5228 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
5229
5230 2011-07-05 Richard Henderson <rth@redhat.com>
5231
5232 * config/vax/vax.md (define_c_enum unspecv): New. Define the
5233 VUNSPEC_* constants here instead of via define_constants.
5234 (VUNSPEC_PEM): New constant.
5235 (procedure_entry_mask): New insn.
5236 (prologue): New expander.
5237 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
5238 (vax_expand_prologue): Rename from vax_output_function_prologue;
5239 emit rtl instead of text.
5240 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
5241 (print_operand): Add 'x' prefix.
5242
5243 2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
5244
5245 PR middle-end/47715
5246 * calls.c (precompute_register_parameters): Promote the function
5247 argument before checking non-legitimate constant.
5248
5249 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5250
5251 PR tree-optimization/47654
5252 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
5253 (lst_do_strip_mine_loop): Return an int.
5254 (lst_do_strip_mine): Same.
5255 (scop_do_strip_mine): Same.
5256 (scop_do_block): Loop blocking should strip-mine at least two loops.
5257 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
5258 (scop_do_interchange): Same.
5259 * graphite-poly.h (scop_do_interchange): Update declaration.
5260 (scop_do_strip_mine): Same.
5261
5262 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5263
5264 * graphite-clast-to-gimple.c (precision_for_value): Removed.
5265 (precision_for_interval): Removed.
5266 (gcc_type_for_interval): Use mpz_sizeinbase.
5267
5268 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5269
5270 * graphite-ppl.h (value_max): Correct computation of max.
5271
5272 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5273
5274 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
5275
5276 2011-07-05 Richard Guenther <rguenther@suse.de>
5277
5278 * c-decl.c (c_init_decl_processing): Defer building common
5279 tree nodes to c_common_nodes_and_builtins.
5280
5281 2011-07-05 Razya Ladelsky <razya@il.ibm.com>
5282
5283 PR tree-optimization/49580
5284 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
5285 the loop's number of iterations.
5286 * tree-parloops.c (transform_to_exit_first_loop): Add the
5287 handling of the loop's number of iterations before the call
5288 to gimple_duplicate_sese_tail.
5289 Insert the stmt caclculating the new rhs of the loop's
5290 condition stmt to the preheader instead of iters_bb.
5291
5292 2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
5293
5294 PR rtl-optimization/47449
5295 * fwprop.c (forward_propagate_subreg): Don't propagate hard
5296 register nor zero/sign extended hard register.
5297
5298 2011-07-05 Richard Guenther <rguenther@suse.de>
5299
5300 PR tree-optimization/49518
5301 PR tree-optimization/49628
5302 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
5303 irrelevant and invariant data-references.
5304 (vect_analyze_data_ref_access): For invariant loads clear the
5305 group association.
5306
5307 2011-07-04 Jakub Jelinek <jakub@redhat.com>
5308
5309 PR rtl-optimization/49619
5310 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
5311 pass VOIDmode as op0_mode to recursive call, and return temp even
5312 when different from tor, just if it is not IOR of the original
5313 PLUS arguments.
5314
5315 PR rtl-optimization/49472
5316 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
5317 negating MULT, negate the second operand instead of first.
5318 (simplify_binary_operation_1) <case MULT>: If one operand is
5319 a NEG and the other is MULT, don't attempt to optimize by negation
5320 of the MULT operand if it only moves the NEG operation around.
5321
5322 PR debug/49602
5323 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
5324 get_current_def return value if it can't be trusted to be
5325 the current value of the variable in the current bb.
5326
5327 2011-07-04 Uros Bizjak <ubizjak@gmail.com>
5328
5329 PR target/49600
5330 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
5331 general register to memory for !TARGET_INTER_UNIT_MOVES.
5332
5333 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
5334
5335 PR target/44643
5336 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
5337 instead of TREE_READONLY.
5338
5339 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
5340
5341 * doc/extend.texi (AVR Built-in Functions): Update documentation
5342 of __builtin_avr_fmul*.
5343 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
5344 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
5345 * config/avr/avr.md (fmul): Rename to fmul_insn.
5346 (fmuls): Rename to fmuls_insn.
5347 (fmulsu): Rename to fmulsu_insn.
5348 (fmul,fmuls,fmulsu): New expander.
5349 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
5350 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
5351 * config/avr/libgcc.S (__fmul): New function.
5352 (__fmuls): New function.
5353 (__fmulsu,__fmulsu_exit): New function.
5354
5355 2011-07-04 Richard Guenther <rguenther@suse.de>
5356
5357 PR tree-optimization/49615
5358 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
5359 basic-block index check.
5360
5361 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
5362
5363 * longlong.h (count_leading_zeros, count_trailing_zeros,
5364 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
5365 resp. 64.
5366
5367 2011-07-03 Ira Rosen <ira.rosen@linaro.org>
5368
5369 PR tree-optimization/49610
5370 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
5371 a basic block.
5372
5373 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
5374 Olivier Hainque <hainque@adacore.com>
5375 Nicolas Setton <setton@adacore.com>
5376
5377 * tree.h (TYPE_ARTIFICIAL): New flag.
5378 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
5379 the DIE of the type if it is artificial.
5380 (gen_array_type_die): Likewise.
5381 (gen_enumeration_type_die): Likewise.
5382 (gen_struct_or_union_type_die): Likewise.
5383 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
5384 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
5385
5386 2011-07-01 Jakub Jelinek <jakub@redhat.com>
5387
5388 * tree-object-size.c (pass_through_call): Handle
5389 BUILT_IN_ASSUME_ALIGNED.
5390
5391 2011-07-01 Martin Jambor <mjambor@suse.cz>
5392
5393 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
5394
5395 2011-07-01 H.J. Lu <hongjiu.lu@intel.com>
5396
5397 PR middle-end/48016
5398 * explow.c (update_nonlocal_goto_save_area): Use proper mode
5399 for stack save area.
5400 * function.c (expand_function_start): Likewise.
5401
5402 2011-07-01 Richard Guenther <rguenther@suse.de>
5403
5404 PR middle-end/49596
5405 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
5406 may have unknown refs.
5407
5408 2011-07-01 Kai Tietz <ktietz@redhat.com>
5409
5410 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
5411
5412 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5413
5414 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
5415 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
5416 (Specific, mips-sgi-irix6): Likewise.
5417
5418 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5419
5420 PR libmudflap/49549
5421 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
5422
5423 2011-07-01 Jakub Jelinek <jakub@redhat.com>
5424
5425 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
5426 [idx]= and [idx1 ... idx2]= before initializers if needed for
5427 array initializers.
5428
5429 2011-07-01 Chen Liqin <liqin.gcc@gmail.com>
5430
5431 * config.gcc (score-*-elf): Remove score7.o.
5432 * config/score/t-score-elf: Likewise.
5433 * config/score/score.c: Merge score7 to score.c and
5434 remove forwarding functions.
5435 * config/score/score7.c: Deleted.
5436 * config/score/score7.h: Deleted.
5437
5438 2011-07-01 Richard Guenther <rguenther@suse.de>
5439
5440 PR tree-optimization/49603
5441 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
5442
5443 2011-06-30 Martin Jambor <mjambor@suse.cz>
5444
5445 * tree-sra.c (struct access): Rename total_scalarization to
5446 grp_total_scalarization
5447 (completely_scalarize_var): New function.
5448 (sort_and_splice_var_accesses): Set total_scalarization in the
5449 representative access.
5450 (analyze_access_subtree): Propagate total scalarization accross the
5451 tree, no holes in totally scalarized trees, simplify coverage
5452 computation.
5453 (analyze_all_variable_accesses): Call completely_scalarize_var instead
5454 of completely_scalarize_record.
5455
5456 2011-06-30 Richard Henderson <rth@redhat.com>
5457
5458 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
5459 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
5460 * config/i386/i386.c: Don't include dwarf2out.h.
5461 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
5462 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
5463 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
5464 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
5465 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
5466
5467 2011-06-30 Richard Henderson <rth@redhat.com>
5468
5469 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
5470 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5471 * final.c (final_scan_insn): Look for it, and invoke
5472 dwarf2out_frame_debug before the insn if found.
5473
5474 2011-06-30 Richard Henderson <rth@redhat.com>
5475
5476 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
5477 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
5478
5479 2011-06-30 Richard Henderson <rth@redhat.com>
5480
5481 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
5482 Define a vector of this type.
5483 (regs_saved_in_regs): Use a VEC.
5484 (num_regs_saved_in_regs): Remove.
5485 (compare_reg_or_pc): New.
5486 (record_reg_saved_in_reg): Split out from...
5487 (dwarf2out_flush_queued_reg_saves): ... here.
5488 (clobbers_queued_reg_save): Update for VEC.
5489 (reg_saved_in): Likewise.
5490 (dwarf2out_frame_debug_init): Likewise.
5491 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
5492 (dwarf2out_frame_debug_cfa_register): Likewise.
5493
5494 2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
5495
5496 PR tree-optimization/49572
5497 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
5498 type of the RHS instead of that of the LHS for the expression type.
5499
5500 2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
5501
5502 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
5503 unconditionally.
5504
5505 2011-06-30 Richard Guenther <rguenther@suse.de>
5506
5507 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
5508 * tree-ssa-structalias.c (create_variable_info_for): Do not
5509 add initial constraints for non-var-decls. Properly handle
5510 globals in other ltrans partitions.
5511 (intra_create_variable_infos): Manually create constraints for
5512 the fake no-alias parameter.
5513 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
5514 and assert there are no clones.
5515
5516 2011-06-30 Richard Guenther <rguenther@suse.de>
5517
5518 PR tree-optimization/46787
5519 * tree-data-ref.c (dr_address_invariant_p): Remove.
5520 (find_data_references_in_stmt): Invariant accesses are ok now.
5521 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
5522 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
5523 invariant loads.
5524
5525 2011-06-30 Martin Jambor <mjambor@suse.cz>
5526
5527 PR tree-optimization/49094
5528 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
5529 (build_accesses_from_assign): Use it.
5530
5531 2011-06-30 Jakub Jelinek <jakub@redhat.com>
5532
5533 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5534 handling of BUILT_IN_ASSUME_ALIGNED.
5535
5536 PR debug/49364
5537 * dwarf2out.c (output_abbrev_section): Don't return early
5538 if abbrev_die_table_in_use is 1.
5539 (dwarf2out_finish): Instead don't call output_abbrev_section
5540 nor emit abbrev_section_label in that case.
5541
5542 2011-06-30 Nick Clifton <nickc@redhat.com>
5543
5544 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
5545 for the V850E.
5546
5547 2011-06-30 Jakub Jelinek <jakub@redhat.com>
5548
5549 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5550 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
5551
5552 2011-06-30 Ira Rosen <ira.rosen@linaro.org>
5553
5554 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
5555 both pattern and original statements if necessary.
5556 (vect_transform_loop): Likewise.
5557 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
5558 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
5559 Mark the pattern statement only if the original statement doesn't
5560 have its own uses.
5561 (process_use): Call vect_mark_relevant with additional parameter.
5562 (vect_mark_stmts_to_be_vectorized): Likewise.
5563 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
5564 (vect_analyze_stmt): Handle both pattern and original statements
5565 if necessary.
5566 (vect_transform_stmt): Don't store vectorized pattern statement
5567 in the original statement.
5568 (vect_is_simple_use_1): Use related pattern statement only if the
5569 original statement is irrelevant.
5570 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
5571
5572 2011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5573
5574 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
5575 option.
5576 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
5577 entry.
5578 (TARGET_AVX128_OPTIMAL): New definition.
5579 * config/i386/i386.c (initial_ix86_tune_features): Initialize
5580 X86_TUNE_AVX128_OPTIMAL entry.
5581 (ix86_option_override_internal): Enable the generation
5582 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
5583 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
5584 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
5585
5586 2011-06-29 Eric Botcazou <ebotcazou@adacore.com>
5587
5588 PR tree-optimization/49539
5589 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
5590 names by means of stmt_references_abnormal_ssa_name.
5591 (associate_plusminus): Call can_propagate_from before propagating
5592 from definition statements.
5593 (ssa_forward_propagate_and_combine): Remove superfluous newline.
5594
5595 2011-06-29 Richard Guenther <rguenther@suse.de>
5596
5597 * doc/invoke.texi: Document -scev dump modifier.
5598 * tree-pass.h (TDF_SCEV): New dump flag.
5599 * tree-dump.c (dump_option_value_in): Add scev.
5600 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
5601 * tree-scalar-evolution.c: Likewise.
5602
5603 2011-06-29 Nathan Sidwell <nathan@codesourcery.com>
5604
5605 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
5606 (cxa_type_match): Correct declaration.
5607 (__gnu_unwind_pr_common): Reconstruct additional indirection
5608 when __cxa_type_match returns succeeded_with_ptr_to_base.
5609
5610 2011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5611
5612 PR rtl-optimization/49114
5613 * reload.c (struct replacement): Remove SUBREG_LOC member.
5614 (push_reload): Do not set it.
5615 (push_replacement): Likewise.
5616 (subst_reload): Remove dead code.
5617 (copy_replacements): Remove assertion.
5618 (copy_replacements_1): Do not handle SUBREG_LOC.
5619 (move_replacements): Likewise.
5620 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
5621 Detect subregs via recursive descent instead of via SUBREG_LOC.
5622
5623 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
5624
5625 * config/avr/avr.c (avr_encode_section_info): Dispatch to
5626 default_encode_section_info.
5627
5628 2011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
5629
5630 PR tree-optimization/49545
5631 * builtins.c (get_object_alignment_1): Update function comment.
5632 Do not use DECL_ALIGN for functions, but test
5633 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
5634 * fold-const.c (get_pointer_modulus_and_residue): Don't check
5635 for functions here.
5636 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
5637
5638 2011-06-29 Jakub Jelinek <jakub@redhat.com>
5639
5640 PR debug/49567
5641 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
5642 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
5643
5644 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
5645
5646 PR target/34734
5647 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
5648 about uninitialized data attributed 'progmem' from here...
5649 (avr_encode_section_info): ...to this new function.
5650 (TARGET_ENCODE_SECTION_INFO): New define.
5651 (avr_section_type_flags): For data in ".progmem.data", remove
5652 section flag SECTION_WRITE.
5653
5654 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
5655
5656 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
5657 _xmulhisi3_exit.
5658 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
5659 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
5660 (__umulhisi3): Ditto.
5661 * config/avr/avr.md (mulhisi3): New insn expender.
5662 (umulhisi3): New insn expender.
5663 (*mulhisi3_call): New insn.
5664 (*umulhisi3_call): New insn.
5665
5666 2011-06-28 Joseph Myers <joseph@codesourcery.com>
5667
5668 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
5669
5670 2011-06-28 Richard Henderson <rth@redhat.com>
5671
5672 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
5673 all code and arguments that handled pushes. Update all callers.
5674
5675 2011-06-28 Richard Henderson <rth@redhat.com>
5676
5677 * config/arm/arm.c (arm_output_function_prologue): Don't call
5678 thumb1_output_function_prologue.
5679 (arm_expand_prologue): Avoid dead store.
5680 (number_of_first_bit_set): Use ctz_hwi.
5681 (thumb1_emit_multi_reg_push): New.
5682 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
5683 to emit the entire prologue as rtl.
5684 (thumb1_output_interwork): Split out from
5685 thumb1_output_function_prologue.
5686 (thumb1_output_function_prologue): Remove.
5687 (arm_attr_length_push_multi): Handle thumb1.
5688 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
5689 (prologue_thumb1_interwork): New.
5690 (*push_multi): Allow thumb1; use push_mult_memory_operand.
5691 * config/arm/predicates.md (push_mult_memory_operand): New.
5692
5693 2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
5694
5695 * config/sparc/sync.md (*stbar): Delete.
5696 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
5697
5698 2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
5699
5700 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
5701
5702 2011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5703
5704 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
5705 (TARGET_64BIT_DEFAULT): Define.
5706 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
5707 of tm_file.
5708 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
5709
5710 2011-06-28 Joseph Myers <joseph@codesourcery.com>
5711
5712 * common.opt (in_lto_p): New Variable entry.
5713 * flags.h (in_lto_p): Move to common.opt.
5714 * gcc.c: Include params.h.
5715 (set_option_handlers): Also use common_handle_option and
5716 target_handle_option.
5717 (main): Call global_init_params, finish_params and init_options_struct.
5718 * opts.c (debug_type_names): Move from toplev.c.
5719 (print_filtered_help): Access quiet_flag through opts pointer.
5720 (common_handle_option): Return early in the driver for some options.
5721 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
5722 opts pointer.
5723 * toplev.c (in_lto_p): Move to common.opt.
5724 (debug_type_names): Move to opts.c.
5725 * Makefile.in (OBJS): Remove opts.o.
5726 (OBJS-libcommon-target): Add opts.o.
5727 (gcc.o): Update dependencies.
5728
5729 2011-06-28 Kai Tietz <ktietz@redhat.com>
5730
5731 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
5732
5733 2011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5734
5735 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
5736 with '=' constraint modifier.
5737 (*divdf3_vfp): Likewise.
5738 ("*mulsf3_vfp"): Likewise.
5739 ("*muldf3_vfp"): Likewise.
5740 ("*mulsf3negsf_vfp"): Likewise.
5741 ("*muldf3negdf_vfp"): Likewise.
5742
5743 2011-06-28 Nick Clifton <nickc@redhat.com>
5744
5745 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
5746 relaxation when performing an incremental link.
5747
5748 2011-06-28 Kai Tietz <ktietz@redhat.com>
5749
5750 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
5751 within BB from last to first.
5752
5753 2011-06-28 Joseph Myers <joseph@codesourcery.com>
5754
5755 * genattr-common.c: New. Based on genattr.c.
5756 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
5757 (MOSTLYCLEANFILES): Add insn-attr-common.h.
5758 (opts.o): Update dependencies.
5759 (.PRECIOUS): Add insn-attr-common.h.
5760 (simple_rtl_generated_h): Add insn-attr-common.h.
5761 (build/genattr-common.o): New.
5762 (genprogrtl): Add attr-common.
5763 * genattr.c (main): Include insn-attr-common.h. Don't generate
5764 definitions of DELAY_SLOTS or INSN_SCHEDULING.
5765 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
5766
5767 2011-06-28 Georg-Johann Lay <avr@gjlay.de>
5768
5769 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
5770 avr-*-* and avr-*-rtems* targets.
5771
5772 * config/avr/elf.h: New file.
5773 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
5774 (TARGET_ASM_SELECT_SECTION): Define.
5775 (INIT_SECTION_ASM_OP): Undefine.
5776 (FINI_SECTION_ASM_OP): Undefine.
5777 (READONLY_DATA_SECTION_ASM_OP): Undefine.
5778 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
5779 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
5780 * config/avr/avr.h:
5781 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
5782 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
5783 (MAX_OFILE_ALIGNMENT): Move to elf.h.
5784 (STRING_LIMIT): Move to elf.h.
5785 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
5786 (ASM_DECLARE_OBJECT_NAME): Remove.
5787 (ESCAPES): Remove.
5788 (ASM_OUTPUT_SKIP): Remove.
5789 (DWARF2_DEBUGGING_INFO): Remove.
5790 (OBJECT_FORMAT_ELF): Remove.
5791 (USER_LABEL_PREFIX): Remove.
5792 (ASM_OUTPUT_EXTERNAL): Remove.
5793 (ASM_OUTPUT_ASCII): Remove.
5794 (TYPE_ASM_OP): Remove.
5795 (SIZE_ASM_OP): Remove.
5796 (WEAK_ASM_OP): Remove.
5797 (STRING_ASM_OP): Remove.
5798 (SET_ASM_OP): Remove.
5799 (ASM_WEAKEN_LABEL): Remove.
5800 (TYPE_OPERAND_FMT): Remove.
5801 (ASM_DECLARE_FUNCTION_SIZE): Remove.
5802 (ASM_FINISH_DECLARE_OBJECT): Remove.
5803 (NO_DOLLAR_IN_LABEL): Remove.
5804 (ASM_GENERATE_INTERNAL_LABEL): Remove.
5805 (ASM_OUTPUT_CASE_LABEL): Remove.
5806 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
5807 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
5808 (gas_output_ascii): Remove.
5809 (gas_output_limited_string): Remove.
5810 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
5811 * config/avr/avr-protos.h
5812 (gas_output_ascii): Remove prototye.
5813 (gas_output_limited_string): Remove prototype.
5814
5815 2011-06-27 Richard Earnshaw <rearnsha@arm.com>
5816
5817 PR target/48637
5818 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
5819 asm operands.
5820
5821 2011-06-27 Jan Hubicka <jh@suse.cz>
5822
5823 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
5824 node instead of references in node.
5825
5826 2011-06-27 Richard Henderson <rth@redhat.com>
5827
5828 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
5829 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
5830 inside ifdef.
5831
5832 2011-06-27 Jakub Jelinek <jakub@redhat.com>
5833
5834 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
5835
5836 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
5837 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
5838 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
5839 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
5840 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
5841 (evaluate_stmt, execute_fold_all_builtins): Handle
5842 BUILT_IN_ASSUME_ALIGNED.
5843 * tree-ssa-dce.c (propagate_necessity): Likewise.
5844 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
5845 call_may_clobber_ref_p_1): Likewise.
5846 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
5847 (expand_builtin_assume_aligned): New function.
5848 * doc/extend.texi (__builtin_assume_aligned): Document.
5849
5850 PR debug/49544
5851 * cselib.c (promote_debug_loc): If cselib_preserve_constants
5852 and l has two DEBUG_INSN owned locs instead of just one, adjust
5853 the second location's setting_insn too.
5854
5855 2011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5856
5857 PR libmudflap/38738
5858 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
5859
5860 2011-06-27 Nick Clifton <nickc@redhat.com>
5861
5862 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
5863 bit position of highest bit set into a count of the high zero bits.
5864
5865 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
5866
5867 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
5868
5869 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
5870
5871 PR lto/48492
5872 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
5873 to a NULL parent.
5874
5875 2011-06-27 Richard Guenther <rguenther@suse.de>
5876
5877 PR tree-optimization/49394
5878 * passes.c (execute_one_pass): Restore current_pass after
5879 applying IPA transforms.
5880
5881 2011-06-27 Kai Tietz <ktietz@redhat.com>
5882
5883 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
5884 out of type precision after operation.
5885 (find_bswap): Take for limit value the integer auto-promotion
5886 into account.
5887
5888 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
5889
5890 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
5891 forward scan as well.
5892
5893 2011-06-27 Tristan Gingold <gingold@adacore.com>
5894
5895 PR target/44241
5896 * config/vms/vms-protos.h: New file.
5897 * config/vms/vms-crtlmap.map: New file.
5898 * config/vms/vms.c: New file.
5899 * config/vms/make-crtlmap.awk: New file.
5900 * config/vms/vms-crtl.h: File removed.
5901 * config/vms/vms-crtl-64.h: File removed.
5902 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
5903 * config/alpha/vms64.h: Do not include vms-crtl-64.h
5904 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
5905 clear some builtins on VMS. Calls vms_patch_builtins.
5906 (avms_asm_output_external): Remove.
5907 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
5908 (struct crtl_name_spec): Remove
5909 (DO_CTRL_NAMES): Remove.
5910 * config/ia64/vms.h (struct crtl_name_spec): Remove
5911 (DO_CTRL_NAMES): Remove.
5912 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
5913 clear some builtins on VMS. Calls vms_patch_builtins.
5914 (ia64_asm_output_external): Remove DO_CRTL_NAME.
5915 * config/ia64/vms64.h: Do not include vms-crtl-64.h
5916 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
5917
5918 2011-06-27 Tristan Gingold <gingold@adacore.com>
5919
5920 * config/alpha/alpha.c (alpha_end_function): Always generate .end
5921 directive on VMS.
5922
5923 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
5924
5925 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
5926 the function receives nonlocal gotos.
5927
5928 2011-06-27 Richard Guenther <rguenther@suse.de>
5929
5930 PR tree-optimization/49536
5931 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
5932 For non-scalar inner types use a scalar type according to
5933 the scalar inner mode.
5934
5935 2011-06-27 Richard Guenther <rguenther@suse.de>
5936
5937 PR tree-optimization/49365
5938 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
5939
5940 2011-06-27 Richard Guenther <rguenther@suse.de>
5941
5942 PR tree-optimization/49169
5943 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
5944 the alignment of function decls.
5945
5946 2011-06-26 Iain Sandoe <iains@gcc.gnu.org>
5947
5948 PR target/47997
5949 * config/darwin.c (darwin_mergeable_string_section): Place string
5950 constants in '.cstring' rather than '.const' when CF/NSStrings are
5951 active.
5952
5953 2011-06-26 Eric Botcazou <ebotcazou@adacore.com>
5954
5955 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
5956 (emit_save_register_window): Likewise.
5957 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
5958 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
5959 Swap back %o7/%i7 in register naming.
5960
5961 2011-06-25 Iain Sandoe <iains@gcc.gnu.org>
5962
5963 PR driver/49371
5964 * config/darwin.c (darwin_override_options): Improve warning when
5965 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
5966 is given with fpie/fPIE.
5967 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
5968 * config/darwin9.h (PIE_SPEC): New.
5969
5970 2011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
5971
5972 * timevar.c (timevar_print): Increase width for display of timevar
5973 name.
5974
5975 2011-06-24 Jakub Jelinek <jakub@redhat.com>
5976
5977 PR c++/46400
5978 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
5979 instead of TYPE_CHAIN for chain_next for types.
5980
5981 2011-06-24 Richard Henderson <rth@redhat.com>
5982
5983 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
5984 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
5985 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
5986 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
5987 (sparc_flat_expand_prologue): Emit individual instructions
5988 instead of one of the above.
5989
5990 2011-06-24 Easwaran Raman <eraman@google.com>
5991
5992 PR rtl-optimization/49429
5993 PR target/49454
5994 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
5995 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
5996 used to copy y into x.
5997 * calls.c (initialize_argument_information): Mark
5998 an argument addressable if it is passed by invisible reference.
5999 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
6000 if it is passed by reference.
6001
6002 2011-06-24 H.J. Lu <hongjiu.lu@intel.com>
6003
6004 PR rtl-optimization/49504
6005 * rtlanal.c (nonzero_bits1): Properly handle addition or
6006 subtraction of a pointer in Pmode if pointers extend unsigned.
6007 (num_sign_bit_copies1): Likewise.
6008
6009 2011-06-24 Martin Jambor <mjambor@suse.cz>
6010
6011 PR tree-optimizations/49516
6012 * tree-sra.c (sra_modify_assign): Choose the safe path for
6013 aggregate copies if we also did scalar replacements.
6014
6015 2011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6016
6017 PR target/49335
6018 * config/arm/predicates.md (add_operator): New.
6019 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
6020
6021 2011-06-24 Andi Kleen <ak@linux.intel.com>
6022
6023 * tree-sra.c (type_internals_preclude_sra_p): Add msg
6024 parameter. Split up ifs and report reason in *msg.
6025 (reject): Add.
6026 (find_var_candiate): Add msg variable.
6027 Split up ifs and report reason to reject.
6028 (find_param_candidates): Add msg variable.
6029 Pass msg to type_internals_preclude_sra_p.
6030
6031 2011-06-23 Jeff Law <law@redhat.com>
6032
6033 PR middle-end/48770
6034 * reload.h (reload): Change to return a bool.
6035 * ira.c (ira): If requested by reload, run a fast DCE pass after
6036 reload has completed. Fix comment typo.
6037 * reload1.c (need_dce): New file scoped static.
6038 (reload): Set reload_completed here. Return whether or not a DCE
6039 pass after reload is needed.
6040 (delete_dead_insn): Set need_dce as needed.
6041
6042 PR middle-end/49465
6043 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
6044 to detect threading through joiner block. If there was already
6045 an edge to the new target, then do not change the PHI nodes.
6046
6047 2011-06-23 Jakub Jelinek <jakub@redhat.com>
6048
6049 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
6050 get_pointer_alignment to see if base isn't sufficiently aligned.
6051
6052 2011-06-23 Jan Hubicka <jh@suse.cz>
6053
6054 PR tree-optimize/49373
6055 * tree-pass.h (all_late_ipa_passes): Declare.
6056 * cgraphunit.c (init_lowered_empty_function): Fix properties.
6057 (cgraph_optimize): Execute late passes; remove unreachable funcions
6058 after materialization.
6059 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
6060 LTOing.
6061 * passes.c (all_late_ipa_passes): Declare.
6062 (dump_passes, register_pass): Handle late ipa passes.
6063 (init_optimization_passes): Move ipa_pta to late passes; schedule
6064 fixup_cfg at beggining of all_passes.
6065 (apply_ipa_transforms): New function.
6066 (execute_one_pass): When doing simple ipa pass, apply all transforms.
6067
6068 2011-06-23 Joseph Myers <joseph@codesourcery.com>
6069
6070 * params.c: Include common/common-target.h. Don't include tm.h.
6071 (lang_independent_params): Move from toplev.c.
6072 (global_init_params): New.
6073 * params.h (global_init_params): Declare.
6074 * target.def (default_params): Move to common-target.def.
6075 * toplev.c (lang_independent_options): Remove.
6076 (lang_independent_params): Move to params.c.
6077 (general_init): Use global_init_params.
6078 * common/common-target.def (option_default_params): Move from
6079 target.def.
6080 * common/config/ia64/ia64-common.c: Include params.h.
6081 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6082 from ia64.c.
6083 * common/config/rs6000/rs6000-common.c: Include params.h.
6084 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6085 from rs6000.c.
6086 * common/config/sh/sh-common.c: Include params.h.
6087 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6088 from sh.c.
6089 * common/config/spu/spu-common.c: Include params.h.
6090 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6091 from spu.c.
6092 * config/ia64/ia64.c (ia64_option_default_params,
6093 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
6094 * config/rs6000/rs6000.c (rs6000_option_default_params,
6095 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
6096 * config/sh/sh.c (sh_option_default_params,
6097 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
6098 * config/spu/spu.c (spu_option_default_params,
6099 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
6100 * Makefile.in (OBJS): Remove params.o.
6101 (OBJS-libcommon-target): Add params.o.
6102 (params.o, $(common_out_object_file)): Update dependencies.
6103 * doc/tm.texi: Regenerate.
6104
6105 2011-06-23 Alan Modra <amodra@gmail.com>
6106
6107 PR bootstrap/49383
6108 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
6109 invocation for 2011-06-09 changes.
6110
6111 2011-06-22 Jakub Jelinek <jakub@redhat.com>
6112
6113 PR libgomp/49490
6114 * omp-low.c (expand_omp_for_static_nochunk): Only
6115 use n ceil/ nthreads size for the first n % nthreads threads in the
6116 team instead of all threads except for the last few ones which
6117 get less work or none at all.
6118
6119 PR debug/49496
6120 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
6121 uses.
6122
6123 2011-06-22 Richard Guenther <rguenther@suse.de>
6124
6125 PR tree-optimization/49493
6126 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
6127 Refer to the alias target of variables.
6128 (associate_varinfo_to_alias_1): Remove.
6129 (ipa_pta_execute): Do not associate aliases with anything.
6130 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
6131 (cgraph_function_node): Likewise.
6132 (cgraph_function_or_thunk_node): Likewise.
6133 (varpool_variable_node): Likewise.
6134
6135 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
6136
6137 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
6138 * config.gcc (arm*-*-linux*): Default to gnu tls.
6139 (arm*-*-*): Add --with-tls option.
6140 (all_defaults): Add 'tls'.
6141
6142 2011-06-22 Richard Henderson <rth@redhat.com>
6143
6144 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
6145 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
6146 (dwarf2out_frame_debug_cfa_window_save): Rename from
6147 dwarf2out_window_save; make static.
6148 * tree.h (dwarf2out_window_save): Don't declare.
6149
6150 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
6151 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
6152 (emit_save_register_window): Rename from gen_save_register_window;
6153 emit the insn and add REG_CFA_* notes.
6154 (sparc_expand_prologue): Update to match.
6155 * config/sparc/sparc.md (save_register_window_1): Simplify from
6156 save_register_window<P:mode>.
6157
6158 2011-06-22 H.J. Lu <hongjiu.lu@intel.com>
6159
6160 PR target/49497
6161 * config/i386/i386.md (*lea_general_2): Always allow SImode.
6162 (*lea_general_2_zext): Likewise.
6163 (imul to lea peepholes): Use const359_operand and check
6164 TARGET_PARTIAL_REG_STALL.
6165
6166 * config/i386/predicates.md (const359_operand): New.
6167
6168 2011-06-22 Michael Matz <matz@suse.de>
6169
6170 * cgraphunit.c (assemble_thunk): Use correct return type.
6171
6172 2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
6173 Dmitry Melnik <dm@ispras.ru>
6174
6175 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
6176 (neon_output_shift_immediate): Ditto.
6177 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
6178 prototype.
6179 (neon_output_shift_immediate): Ditto.
6180 * config/arm/neon.md (vashl<mode>3): Modified constraint.
6181 (vashr<mode>3_imm): New insn pattern.
6182 (vlshr<mode>3_imm): Ditto.
6183 (vashr<mode>3): Modified constraint.
6184 (vlshr<mode>3): Ditto.
6185 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
6186 predicate.
6187 (imm_for_neon_rshift_operand): Ditto.
6188 (imm_lshift_or_reg_neon): Ditto.
6189 (imm_rshift_or_reg_neon): Ditto.
6190
6191 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
6192
6193 2011-06-22 Jakub Jelinek <jakub@redhat.com>
6194
6195 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
6196 builtin calls even if likelyvalue is not CONSTANT.
6197 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
6198 Return get_value_for_expr of first operand
6199 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
6200 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6201 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
6202 their non-checking counterparts.
6203 (call_may_clobber_ref_p_1): Likewise.
6204 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
6205 like their non-checking counterparts.
6206 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6207 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
6208 like their non-checking counterparts.
6209 (find_func_clobbers): Likewise.
6210 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
6211 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
6212
6213 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
6214 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
6215 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
6216 of base type reference as argument.
6217 (resolve_addr_in_expr): Likewise. Fix keep computation.
6218 (convert_descriptor_to_signed): Renamed to...
6219 (convert_descriptor_to_mode): ... this. For wider types convert to
6220 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
6221 (typed_binop): New function.
6222 (scompare_loc_descriptor, ucompare_loc_descriptor,
6223 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
6224 default to unsigned type instead of signed.
6225
6226 PR debug/47858
6227 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
6228 (gimple_build_debug_source_bind_stat): New prototype.
6229 (gimple_build_debug_source_bind): Define.
6230 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
6231 gimple_debug_source_bind_get_value,
6232 gimple_debug_source_bind_get_value_ptr,
6233 gimple_debug_source_bind_set_var,
6234 gimple_debug_source_bind_set_value): New inlines.
6235 * gimple.c (gimple_build_debug_source_bind_stat): New function.
6236 * gimple-pretty-print.c (dump_gimple_debug): Handle
6237 GIMPLE_DEBUG_SOURCE_BIND.
6238 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
6239 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6240 * tree-parloops.c (eliminate_local_variables,
6241 separate_decls_in_region): Likewise.
6242 (separate_decls_in_region_debug): Renamed from
6243 separate_decls_in_region_debug_bind. Handle
6244 gimple_debug_source_bind_p.
6245 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
6246 prototypes.
6247 (DECL_HAS_DEBUG_ARGS_P): Define.
6248 (struct tree_function_decl): Add has_debug_args_flag field.
6249 * tree.c (debug_args_for_decl): New variable.
6250 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
6251 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
6252 (rewrite_debug_stmt_uses): New function.
6253 (rewrite_stmt): Use it to rewrite debug stmt uses.
6254 * rtl.def (DEBUG_PARAMETER_REF): New.
6255 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
6256 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
6257 DEBUG_PARAMETER_REF.
6258 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
6259 * print-rtl.c (print_rtx): Likewise.
6260 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
6261 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
6262 debug stmts in the first bb.
6263 * tree-inline.c (remap_ssa_name): If remapping default def
6264 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
6265 a source bind debug stmt.
6266 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
6267 (maybe_move_debug_stmts_to_successors): Likewise.
6268 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
6269 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
6270 debug args vector from old_decl to new_decl.
6271 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
6272 or modified parameters, add debug bind stmts before call
6273 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
6274 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
6275 on DECL_DEBUG_EXPRs from debug args vector.
6276 (expand_debug_source_expr): New function.
6277 (expand_debug_locations): Use it for source bind insns.
6278 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
6279 * var-tracking.c (prepare_call_arguments): Add debug args
6280 to call_arguments if any.
6281 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
6282 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
6283 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
6284 (get_ref_die_offset, parameter_ref_descriptor): New functions.
6285 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
6286 (gen_subprogram_die): Handle parameters identified by
6287 DEBUG_PARAMETER_REF.
6288
6289 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
6290
6291 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
6292 * doc/install.texi (Configuration): Document --with-tls.
6293 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
6294 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
6295 (arm_tls_descseq_addr): New.
6296 (legitimize_tls_address): Add tlsdesc support.
6297 (arm_cannot_copy_insn_p): Check for tlscall.
6298 (arm_emit_tls_decoration): Likewise.
6299 * config/arm/arm.h (TARGET_GNU2_TLS): New.
6300 (OPTION_DEFAULT_SPECS): Add with-tls support.
6301 * config/arm/arm.md (R1_REGNUM): Define.
6302 (tlscall): New.
6303 * config/arm/arm.opt (tls_type): New enumeration type and values.
6304 (mtls-dialect): New switch.
6305 * config/arm/arm-opts.h (enum tls_type): New.
6306
6307 2011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
6308
6309 * attribs.c (register_attribute): Added assert to check that all
6310 attribute specs are registered with a name that is not empty and
6311 does not start with '_'.
6312 (decl_attributes): Avoid the lookup of the "naked" attribute spec
6313 if the function has no attributes.
6314 * tree.c (is_attribute_with_length_p): Removed.
6315 (is_attribute_p): Removed.
6316 (private_is_attribute_p): New.
6317 (private_lookup_attribute): New.
6318 (lookup_attribute): Removed.
6319 (lookup_ident_attribute): New.
6320 (remove_attribute): Require the first argument to be in the form
6321 'text', not '__text__'. Updated asserts.
6322 (merge_attributes): Use lookup_ident_attributes instead of
6323 lookup_attribute.
6324 (merge_dllimport_decl_attributes): Use remove_attribute.
6325 (attribute_list_contained): Likewise.
6326 (attribute_list_equal): Immediately return 1 if the arguments are
6327 identical pointers.
6328 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
6329 'int'. Require the first argument to be in the form 'text', not
6330 '__text__'. Require the second argument to be an identifier.
6331 (lookup_attribute): Made inline. Require the first argument to be
6332 in the form 'text', not '__text__'.
6333 (private_is_attribute_p, private_lookup_attribute): New.
6334 Updated comments.
6335
6336 2011-06-21 Andrew MacLeod <amacleod@redhat.com>
6337
6338 * builtins.c: Add sync_ or SYNC__ to builtin names.
6339 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
6340 * omp-low.c: Add sync_ or SYNC__ to builtin names.
6341
6342 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
6343
6344 PR target/33049
6345 * config/avr/avr.md (extzv): New expander.
6346 (*extzv): New insn.
6347 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
6348 * config/avr/constraints.md (C04): New constraint.
6349 * doc/md.texi (Machine Constraints): Document it.
6350
6351 2011-06-21 Jakub Jelinek <jakub@redhat.com>
6352
6353 PR middle-end/49489
6354 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
6355 unsignedp argument instead of 1 for clrsb_optab.
6356 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
6357 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
6358 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
6359 * optabs.c (widen_leading): Call widen_operand and expand_unop
6360 with 0 as unsignedp argument instead of 1 for clrsb_optab.
6361 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
6362
6363 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
6364
6365 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
6366
6367 2011-06-21 Bernd Schmidt <bernds@codesourcery.com>
6368
6369 * gensupport.c (add_define_attr): New static function.
6370 (is_predicable): Allow multi-alternative lists for the "predicable"
6371 attribute.
6372 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
6373 (process_one_cond_exec): Call alter_attrs_for_insn.
6374 * doc/md.texi (Defining Attributes): Mention some standard names.
6375 (Conditional Execution): Update documentation for "predicable".
6376
6377 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
6378 __builtin_clrsbll): Document.
6379 * doc/rtl.texi (clrsb): New entry.
6380 * optabs.c (widen_leading): Renamed from widen_clz. New argument
6381 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
6382 (expand_unop): Handle clrsb_optab.
6383 (init_optabs): Initialize it.
6384 * optabs.h (enum optab_index): New entry OTI_clrsb.
6385 (clrsb_optab): Define.
6386 * genopinit.c (optabs): Add an entry for it.
6387 * builtins.c (expand_builtin): Handle clrsb builtin functions.
6388 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
6389 BUILT_IN_CLRSBLL): New.
6390 * rtl.def (CLRSB): New code.
6391 * dwarf2out.c (mem_loc_descriptor): Handle it.
6392 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
6393 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
6394 and popcount.
6395 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
6396 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
6397 (__ctzDI2): Move declaration.
6398 * config/bfin/bfin.md (clrsbsi2): New expander.
6399 (signbitssi2): Use the CLRSB rtx.
6400 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
6401 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
6402
6403 2011-06-21 Richard Guenther <rguenther@suse.de>
6404
6405 * ipa-inline-transform.c (inline_transform): Fix previous change.
6406
6407 2011-06-21 Ira Rosen <ira.rosen@linaro.org>
6408
6409 PR tree-optimization/49478
6410 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
6411 with constant operand.
6412
6413 2011-06-21 Richard Guenther <rguenther@suse.de>
6414
6415 * ipa-inline-transform.c (inline_transform): Fix typo.
6416
6417 2011-06-21 Richard Guenther <rguenther@suse.de>
6418
6419 PR tree-optimization/49483
6420 * tree-vect-stmts.c (vectorizable_assignment): Also handle
6421 VIEW_CONVERT_EXPR conversions.
6422
6423 2011-06-21 Joseph Myers <joseph@codesourcery.com>
6424
6425 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
6426 * config/avr/avr-tables.opt: New file (generated).
6427 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
6428 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
6429 avr-mcus.def.
6430 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
6431 (avr_option_override): Don't process -mmcu= argument here. Set
6432 avr_current_device using avr_mcu_index.
6433 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
6434 * config/avr/avr.opt (mmcu=): Use Enum.
6435 * config/avr/t-avr (avr-devices.o): Update dependencies.
6436 ($(srcdir)/config/avr/avr-tables.opt): New.
6437 * target.def (help): Remove.
6438 * doc/tm.texi.in (TARGET_HELP): Remove.
6439 * doc/tm.texi: Regenerate.
6440 * opts.c: Don't include target.h.
6441 (common_handle_option): Don't call targetm.help.
6442 * system.h (TARGET_HELP): Poison.
6443 * Makefile.in (opts.o): Update dependencies.
6444
6445 2011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6446
6447 * config/usegld.h: New file.
6448 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
6449 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
6450 (LIB_SPEC): Likewise. Search /lib.
6451 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
6452 (RDYNAMIC_SPEC): Handle GNU ld.
6453 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
6454 Define.
6455 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
6456 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
6457 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
6458 (STACK_CHECK_STATIC_BUILTIN): Define.
6459 * config/sol2.opt (compat-bsd): Remove.
6460 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
6461 * config/sol2-bi.h: New file.
6462 * config/sol2-gld.h: Remove.
6463 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
6464 (NO_DBX_BNSYM_ENSYM): Remove.
6465 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6466 (STACK_CHECK_STATIC_BUILTIN): Remove.
6467 Test USE_GLD instead of TARGET_GNU_LD.
6468 * config/i386/sol2-10.h: Rename to ...
6469 * config/i386/sol2-bi.h .. this.
6470 (SUBTARGET_EXTRA_SPECS): Redefine.
6471 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
6472 (MULTILIB_DEFAULTS): Remove.
6473 (DEFAULT_ARCH32_P): Define.
6474 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
6475 (ARCH64_SUBDIR): Define.
6476 Test USE_GLD instead of TARGET_GNU_LD.
6477 (I386_EMULATION): Rename to ...
6478 (ARCH32_EMULATION): ... this.
6479 (X86_64_EMULATION): Rename to ...
6480 (ARCH64_EMULATION): ... this.
6481 (TARGET_LD_EMULATION): Remove.
6482 (LINK_ARCH_SPEC): Remove.
6483 * config/i386/sol2-gas.h: Remove.
6484 * config/i386/t-sol2-10: Rename to ...
6485 * config/i386/t-sol2-64: ... this.
6486 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
6487 (AS_SPARC64_FLAG): Define.
6488 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
6489 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
6490 depending on TARGET_CPU_DEFAULT.
6491 (CPP_CPU_SPEC): Redefine.
6492 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
6493 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
6494 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
6495 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
6496 ASM_ARCH_DEFAULT_SPEC): Redefine.
6497 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
6498 LINK_ARCH_DEFAULT_SPEC.
6499 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
6500 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
6501 (ARCH64_SUBDIR): Define.
6502 (LINK_ARCH64_SPEC): Redefine.
6503 (CC1_SPEC): Redefine.
6504 (OPTION_DEFAULT_SPECS): Redefine.
6505 (MULTILIB_DEFAULTS): Define.
6506 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
6507 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
6508 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
6509 (NO_DBX_BNSYM_ENSYM): Remove.
6510 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6511 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
6512 (TARGET_ASM_NAMED_SECTION): Likewise.
6513 (STACK_CHECK_STATIC_BUILTIN): Remove.
6514 * config/sparc/sol2-bi.h: Remove.
6515 * config/sparc/sol2-gas-bi.h: Remove.
6516 * config/sparc/sol2-gas.h: Remove.
6517 * config/sparc/sol2-gld-bi.h: Remove.
6518 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
6519 common parts ...
6520 (*-*-solaris2*): ... here.
6521
6522 2011-06-21 Christian Bruel <christian.bruel@st.com>
6523
6524 PR other/43564
6525 * ipa-inline.c (can_inline_edge_p): Check
6526 !DECL_DISREGARD_INLINE_LIMITS.
6527
6528 2011-06-21 Christian Bruel <christian.bruel@st.com>
6529
6530 PR middle-end/49139
6531 * cgraphunit.c (process_function_and_variable_attributes): warn when
6532 always_inline functions that are not inline.
6533 * ipa-inline-transform.c (inline_transform): Always call
6534 optimize_inline.
6535 * tree-inline.c (tree_inlinable_function_p): Use error instead
6536 of sorry.
6537 (expand_call_inline): Likewise.
6538
6539 2011-06-21 Jakub Jelinek <jakub@redhat.com>
6540
6541 * Makefile.in (dg_target_exps): Set.
6542 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
6543 instead of 7, try to divide it more evenly.
6544
6545 2011-06-20 Changpeng Fang <changpeng.fang@amd.com>
6546
6547 PR target/49089
6548 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
6549 (avx256_split_unaligned_store): New definition.
6550 (ix86_option_override_internal): Enable avx256 unaligned load/store
6551 splitting only when avx256_split_unaligned_load/store is set.
6552
6553 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
6554
6555 * regrename.c (scan_rtx_reg): Handle the case where we write to an
6556 open chain in a smaller mode without failing the entire block.
6557
6558 2011-06-21 Alan Modra <amodra@gmail.com>
6559
6560 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
6561 CONST high part large-toc address.
6562 (rs6000_tls_referenced_p): Make static.
6563 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
6564
6565 2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6566
6567 PR target/49385
6568 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
6569 one of the operands is a register.
6570
6571 2011-06-20 Kai Tietz <ktietz@redhat.com>
6572
6573 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
6574 operations in combination with binary and.
6575
6576 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
6577
6578 * regrename.c (do_replace): Don't update notes.
6579
6580 2011-06-20 Alan Modra <amodra@gmail.com>
6581
6582 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
6583 of toc-relative address in CONST.
6584 (rs6000_delegitimize_address): Recognize changed address.
6585 (rs6000_legitimize_reload_address): Likewise.
6586 (rs6000_emit_move): Don't force these constants to memory.
6587 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
6588 toc-relative address in CONST.
6589 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
6590 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
6591
6592 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
6593
6594 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
6595 (count_trailing_zeros): Likewise.
6596
6597 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
6598
6599 PR other/49325
6600 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
6601 .init_array can be used with .ctors on targets.
6602 * configure: Regenerated.
6603
6604 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
6605
6606 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
6607 if the element type is volatile.
6608
6609 2011-06-18 Jan Hubicka <jh@suse.cz>
6610
6611 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
6612 extra name aliases.
6613 (lto_symtab_resolve_can_prevail_p): Likewise.
6614 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
6615 * cgraphbuild.c (record_reference): Remove extra body alias code.
6616 (mark_load): Likewise.
6617 (mark_store): Likewise.
6618 * cgraph.h (varpool_node): Remove extra_name filed;
6619 add alias_of and extraname_alias.
6620 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
6621 (varpool_alias_aliased_node): New inline function.
6622 (varpool_variable_node): New function.
6623 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
6624 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
6625 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
6626 (input_varpool_node): Likewise.
6627 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
6628 (varpool_externally_visible_p): Remove extra body alias code.
6629 (function_and_variable_visibility): Likewise.
6630 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
6631 (ipa_pta_execute): Use it.
6632 * varpool.c (varpool_remove_node): Remove extra name alias code.
6633 (varpool_mark_needed_node): Likewise.
6634 (varpool_analyze_pending_decls): Analyze aliases.
6635 (assemble_aliases): New functoin.
6636 (varpool_assemble_decl): Use it.
6637 (varpool_create_variable_alias): New function.
6638 (varpool_extra_name_alias): Rewrite.
6639 (varpool_for_node_and_aliases): New function.
6640
6641 2011-06-18 Jakub Jelinek <jakub@redhat.com>
6642
6643 PR target/49411
6644 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
6645 last_arg_constant and last argument doesn't match its predicate,
6646 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
6647 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
6648 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
6649 spelling of error message.
6650 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
6651 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
6652 const_0_to_255_operand instead of const_int_operand.
6653
6654 Revert:
6655 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
6656
6657 * config/i386/sse.md (blendbits): Remove mode attribute.
6658 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
6659 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
6660 Check integer value of operand 3 in insn constraint.
6661
6662 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
6663
6664 PR rtl-optimization/48542
6665 * reload.c (find_equiv_reg): Stop looking when finding a
6666 setjmp-type call.
6667 * reload1.c (reload_as_needed): Invalidate all reload
6668 registers when crossing a setjmp-type call.
6669
6670 2011-06-16 Jeff Law <law@redhat.com>
6671
6672 * tree-ssa-threadupdate.c (struct redirection_data): New field
6673 intermediate_edge.
6674 (THREAD_TARGET2): Define.
6675 (redirection_data_eq): Also check that the intermediate edge is equal.
6676 (lookup_redirection_data): Drop useless argument. Extract the
6677 outgoing_edge and intermediate edge from E. Callers updated.
6678 (copy_phi_args, update_destination_phis): New functions.
6679 (fix_duplicate_block_edges): Likewise.
6680 (create_edge_and_update_destination_phis): Duplicate all the edges
6681 hung off e->aux. Use copy_phi_args.
6682 (create_duplicates): Use fix_duplicate_block_edges.
6683 (fixup_template_block): Likewise.
6684 (redirect_edges): If necessary, redirect the joiner block's incoming
6685 edge to the duplicate of the joiner block.
6686 (thread_block): Don't muck up loops when threading through a joiner
6687 block.
6688 (thread_through_loop_header): Handle threading through a joiner block.
6689 (mark_threaded_blocks, register_jump_thread): Likewise.
6690 * tree-flow.h (register_jump_thread): Add new argument. Callers
6691 updated.
6692 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
6693 (thread_across_edge): Handle threading through a joiner block.
6694
6695 2011-06-16 Martin Jambor <mjambor@suse.cz>
6696
6697 PR tree-optimization/49343
6698 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
6699 calculate offset, provide 2nd operand for the new COMPONENT_REF.
6700
6701 2011-06-16 Iain Sandoe <iains@gcc.gnu.org>
6702
6703 * config/darwin-protos.h (machopic_select_rtx_section): Move to
6704 inside RTX_CODE ifdef.
6705
6706 2011-06-16 Tom de Vries <tom@codesourcery.com>
6707
6708 PR target/45098
6709 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
6710 Disallow NULL pointer for pointer arithmetic.
6711
6712 2011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6713
6714 PR target/49398
6715 Revert.
6716 2011-06-10 Wei Guozhi <carrot@google.com>
6717
6718 PR target/45335
6719 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6720 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6721 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6722 related peephole2.
6723 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6724 related peephole2.
6725 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6726 (arm_legitimate_ldrd_p): New prototype.
6727 (arm_output_ldrd): New prototype.
6728 * config/arm/arm.c (arm_check_ldrd_operands): New function.
6729 (arm_legitimate_ldrd_p): New function.
6730 (arm_output_ldrd): New function.
6731
6732 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
6733
6734 PR middle-end/46500
6735 * doc/tm.texi.in: Update Copyright date.
6736 * doc/tm.texi: Regenerate.
6737 * targhooks.c (default_setup_incoming_varargs): Replace
6738 CUMULATIVE_ARGS* argument type with cumulative_args_t.
6739 (default_pretend_outgoing_varargs_named): Likewise.
6740 (hook_pass_by_reference_must_pass_in_stack): Likewise.
6741 (hook_callee_copies_named): Likewise.
6742 (default_function_arg_advance): Likewise.
6743 (default_function_arg): Likewise.
6744 (default_function_incoming_arg): Likewise.
6745 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
6746 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
6747 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
6748 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
6749 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
6750 * targhooks.h (default_setup_incoming_varargs): Likewise.
6751 (default_pretend_outgoing_varargs_named): Likewise.
6752 (hook_pass_by_reference_must_pass_in_stack): Likewise.
6753 (hook_callee_copies_named): Likewise.
6754 (default_function_arg_advance): Likewise.
6755 (default_function_arg): Likewise.
6756 (default_function_incoming_arg): Likewise.
6757 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
6758 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
6759 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
6760 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
6761 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
6762 * target.def (pass_by_reference): Likewise.
6763 (setup_incoming_varargs, strict_argument_naming): Likewise.
6764 (pretend_outgoing_varargs_named, callee_copies): Likewise.
6765 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
6766 (function_incoming_arg): Likewise.
6767 * target.h: Don't include "tm.h" .
6768 (cumulative_args_t): New typedef.
6769 [GCC_TM_H] (get_cumulative_args): New static inline function.
6770 [GCC_TM_H] (pack_cumulative_args): Likewise.
6771 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
6772 argument type with cumulative_args_t.
6773 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
6774 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
6775 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
6776 (frv_arg_partial_bytes, frv_function_arg): Likewise.
6777 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
6778 (frv_function_arg_1): Likewise.
6779 * config/s390/s390.c (s390_pass_by_reference): Likewise.
6780 (s390_function_arg_advance, s390_function_arg): Likewise.
6781 * config/m32c/m32c.c (m32c_function_arg): Likewise.
6782 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
6783 (m32c_strict_argument_naming): Likewise.
6784 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
6785 (spu_function_arg_advance): Likewise.
6786 (spu_setup_incoming_varargs): Likewise. Make static.
6787 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
6788 Remove prototype.
6789 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
6790 CUMULATIVE_ARGS* argument type with cumulative_args_t.
6791 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
6792 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
6793 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
6794 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
6795 (mep_pass_by_reference, mep_function_arg): Likewise.
6796 (mep_function_arg_advance): Likewise.
6797 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
6798 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
6799 (m32r_function_arg, m32r_function_arg_advance): Likewise.
6800 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
6801 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
6802 (ix86_function_arg, ix86_pass_by_reference): Likewise.
6803 (ix86_setup_incoming_varargs): Likewise.
6804 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
6805 (sh_strict_argument_naming): Likewise.
6806 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
6807 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
6808 (sh_function_arg_advance, sh_function_arg): Likewise.
6809 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
6810 (pdp11_function_arg_advance): Likewise.
6811 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
6812 Likewise.
6813 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
6814 * config/avr/avr.c (avr_function_arg): Likewise.
6815 (avr_function_arg_advance): Likewise.
6816 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
6817 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
6818 (xtensa_function_arg_1): Likewise.
6819 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
6820 Likewise.
6821 (xstormy16_function_arg): Likewise.
6822 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
6823 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
6824 (fr30_function_arg_advance): Likewise.
6825 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
6826 (lm32_function_arg, lm32_function_arg_advance): Likewise.
6827 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
6828 (moxie_function_arg, moxie_function_arg_advance): Likewise.
6829 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
6830 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
6831 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
6832 (cris_function_arg, cris_function_incoming_arg): Likewise.
6833 (cris_function_arg_advance, cris_function_arg_1): Likewise.
6834 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
6835 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
6836 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
6837 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
6838 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
6839 (mn10300_arg_partial_bytes): Likewise.
6840 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
6841 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
6842 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
6843 (ia64_function_arg_1): Likewise.
6844 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
6845 (m68k_function_arg): Likewise.
6846 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
6847 (rs6000_function_arg, setup_incoming_varargs): Likewise.
6848 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
6849 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
6850 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
6851 (picochip_arg_advance): Likewise.
6852 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
6853 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
6854 (mcore_function_arg_advance): Likewise.
6855 * config/score/score.c (score_pass_by_reference): Likewise.
6856 (score_function_arg_advance): Likewise.
6857 (score_arg_partial_bytes): Likewise. Make static.
6858 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
6859 * config/arm/arm.c (arm_arg_partial_bytes): Replace
6860 CUMULATIVE_ARGS* argument type with cumulative_args_t.
6861 (arm_function_arg, arm_function_arg_advance): Likewise.
6862 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
6863 * config/pa/pa.c (pa_pass_by_reference): Likewise.
6864 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
6865 (pa_function_arg): Likewise.
6866 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
6867 (mips_function_arg, mips_function_arg_advance): Likewise.
6868 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
6869 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
6870 * config/vax/vax.c (vax_function_arg): Likewise.
6871 (vax_function_arg_advance): Likewise.
6872 * config/h8300/h8300.c (h8300_function_arg): Likewise.
6873 (h8300_function_arg_advance): Likewise.
6874 * config/v850/v850.c (v850_pass_by_reference): Likewise.
6875 (v850_strict_argument_naming, v850_function_arg): Likewise.
6876 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
6877 (v850_setup_incoming_varargs): Likewise.
6878 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
6879 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
6880 (mmix_function_arg, mmix_pass_by_reference): Likewise.
6881 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
6882 with const void *.
6883 * config/bfin/bfin.c (setup_incoming_varargs): Replace
6884 CUMULATIVE_ARGS* argument type with cumulative_args_t.
6885 (bfin_function_arg_advance, bfin_function_arg): Likewise.
6886 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
6887 * calls.c (emit_call_1): Change type of args_so_far to
6888 cumulative_args_t. Changed all callers.
6889 (initialize_argument_information): Likewise.
6890 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
6891 * dse.c (get_call_args): Likewise.
6892 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
6893 * function.c (pass_by_reference, reference_callee_copied): Likewise.
6894 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
6895 New member args_so_far_v. Changed all users.
6896 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
6897 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
6898 * config/mips/mips.c (mips_output_args_xfer): Likewise.
6899 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
6900 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
6901 * config/microblaze/microblaze.c (microblaze_expand_prologue):
6902 Likewise.
6903 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
6904 m32r_pass_by_reference.
6905
6906 2011-06-16 Ira Rosen <ira.rosen@linaro.org>
6907
6908 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
6909 argument to be a VEC of statements.
6910 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
6911 assert that pattern statements have to have their vector type set.
6912 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
6913 Change the first argument to be a VEC of statements. Update
6914 documentation.
6915 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
6916 (vect_handle_widen_mult_by_const): New function.
6917 (vect_recog_widen_mult_pattern): Change the first argument to be a
6918 VEC of statements. Update documentation. Check that the constant is
6919 INTEGER_CST. Support multiplication by a constant that fits an
6920 intermediate type - call vect_handle_widen_mult_by_const.
6921 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
6922 call. Handle additional pattern statements if necessary.
6923
6924 2011-06-16 Nick Clifton <nickc@redhat.com>
6925
6926 PR target/49427
6927 * config.gcc: Set cpu_type to v850 for any V850 architecture.
6928 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
6929 md_file, extra_modes, out_file and extra_options are these are all
6930 deduced from cpu_type.
6931
6932 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
6933
6934 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
6935 truncation mask to 63.
6936
6937 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
6938
6939 PR target/49313
6940 PR target/29524
6941 * longlong.h: Add AVR support:
6942 (count_leading_zeros): New macro.
6943 (count_trailing_zeros): New macro.
6944 (COUNT_LEADING_ZEROS_0): New macro.
6945 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
6946 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
6947 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
6948 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
6949 (LIB2FUNCS_EXCLUDE): Add _clz.
6950 * config/avr/libgcc.S (XCALL): Move up in file.
6951 (XJMP): New C Macro.
6952 (DEFUN): New asm macro.
6953 (ENDF): New asm macro.
6954 (__ffssi2): New function.
6955 (__ffshi2): New function.
6956 (__loop_ffsqi2): New function.
6957 (__ctzsi2): New function.
6958 (__ctzhi2): New function.
6959 (__clzdi2): New function.
6960 (__clzsi2): New function.
6961 (__clzhi2): New function.
6962 (__paritydi2): New function.
6963 (__paritysi2): New function.
6964 (__parityhi2): New function.
6965 (__parityqi2): New function.
6966 (__popcounthi2): New function.
6967 (__popcountsi2): New function.
6968 (__popcountdi2): New function.
6969 (__popcountqi2): New function.
6970 (__bswapsi2): New function.
6971 (__bswapdi2): New function.
6972 (__ashldi3): New function.
6973 (__ashrdi3): New function.
6974 (__lshrdi3): New function.
6975 Fix suspicous lines.
6976
6977 2011-06-16 Richard Guenther <rguenther@suse.de>
6978
6979 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
6980 the same as x != 0.
6981 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
6982 to (bool) X & 1.
6983 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
6984 equality compares against zero for the lower bit.
6985
6986 2011-06-16 Jakub Jelinek <jakub@redhat.com>
6987
6988 PR tree-optimization/49419
6989 * tree-vrp.c (execute_vrp): Call init_range_assertions
6990 before estimate_numbers_of_iterations, call
6991 free_number_of_iterations_estimates before calling
6992 remove_range_assertions.
6993
6994 2011-06-16 Revital Eres <revital.eres@linaro.org>
6995
6996 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
6997 (struct partial_schedule): Add rows_length field.
6998 (verify_partial_schedule): Check rows_length.
6999 (ps_insert_empty_row): Handle rows_length.
7000 (create_partial_schedule): Likewise.
7001 (free_partial_schedule): Likewise.
7002 (reset_partial_schedule): Likewise.
7003 (create_ps_insn): Remove rest_count argument.
7004 (remove_node_from_ps): Update rows_length.
7005 (add_node_to_ps): Update rows_length and call create_ps_insn
7006 without passing row_rest_count.
7007 (rotate_partial_schedule): Update rows_length.
7008
7009 2011-06-16 Revital Eres <revital.eres@linaro.org>
7010
7011 * ddg.c (add_intra_loop_mem_dep): New function.
7012 (build_intra_loop_deps): Call it.
7013
7014 2011-06-13 Jeff Law <law@redhat.com>
7015
7016 * df-problems.c (df_lr_local_compute): Manually CSE
7017 PIC_OFFSET_TABLE_REGNUM.
7018 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
7019 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
7020
7021 2011-06-13 Jan Hubicka <jh@suse.cz>
7022
7023 * cgraphunit.c (handle_alias_pairs): New function.
7024 (cgraph_finalize_compilation_unit): Use it.
7025 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
7026 as externally visible.
7027
7028 2011-06-15 Richard Guenther <rguenther@suse.de>
7029
7030 * expr.c (expand_expr_real_2): Reduce all integral types to
7031 bitfield precision.
7032 (expand_expr_real_1): Likewise.
7033
7034 2011-06-15 Martin Jambor <mjambor@suse.cz>
7035
7036 PR tree-optimization/48613
7037 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
7038 ipa_node_params_vector is NULL.
7039
7040 2011-06-15 Jakub Jelinek <jakub@redhat.com>
7041
7042 PR debug/49382
7043 * dwarf2out.c (dw_loc_list_node): Add force field.
7044 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
7045 location in the list, even if it is modified before first real insn.
7046 (output_loc_list): Emit empty ranges with force flag set.
7047 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
7048
7049 2011-06-15 Alexander Monakov <amonakov@ispras.ru>
7050
7051 PR target/49349
7052 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
7053 (fence_to_rewind). Use it to notice when bookkeeping will be placed
7054 above a fence. Update comments.
7055 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
7056 placed just above it. Do not allow NULL place_to_insert.
7057
7058 2011-06-15 Ira Rosen <ira.rosen@linaro.org>
7059
7060 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
7061 (slpeel_tree_peel_loop_to_edge): Don't call
7062 remove_dead_stmts_from_loop.
7063 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
7064 remove irrelevant pattern statements. For irrelevant statements
7065 check if it is the last statement of a detected pattern, use
7066 corresponding pattern statement instead.
7067 (destroy_loop_vec_info): No need to remove pattern statements,
7068 only free stmt_vec_info.
7069 (vect_transform_loop): For irrelevant statements check if it is
7070 the last statement of a detected pattern, use corresponding
7071 pattern statement instead.
7072 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
7073 pattern statements. Set basic block for the new statement.
7074 (vect_pattern_recog): Update documentation.
7075 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
7076 operands of pattern statements.
7077 (vectorizable_call): Fix printing. In case of a pattern statement
7078 use the lhs of the original statement when creating a dummy
7079 statement to replace the original call.
7080 (vect_analyze_stmt): For irrelevant statements check if it is
7081 the last statement of a detected pattern, use corresponding
7082 pattern statement instead.
7083 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
7084 statements use gsi of the original statement.
7085
7086 2011-06-14 Joseph Myers <joseph@codesourcery.com>
7087
7088 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
7089 common/common-target-def.h.
7090 * target.def (default_target_flags, handle_option,
7091 supports_split_stack, optimization_table, init_struct,
7092 except_unwind_info, unwind_tables_default, have_named_sections):
7093 Move to common/common-target.def.
7094 * target.h (enum opt_levels, struct default_options): Move to
7095 common/common-target.h.
7096 * targhooks.c (default_except_unwind_info,
7097 dwarf2_except_unwind_info, sjlj_except_unwind_info,
7098 default_target_handle_option, empty_optimization_table): Move to
7099 common/common-targhooks.c.
7100 * targhooks.h (default_except_unwind_info,
7101 dwarf2_except_unwind_info, sjlj_except_unwind_info,
7102 default_target_handle_option, empty_optimization_table): Move to
7103 common/common-targhooks.h.
7104 * common/common-target-def.h: Include common/common-targhooks.h.
7105 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
7106 defined.
7107 * common/common-target.def (handle_option, option_init_struct,
7108 option_optimization_table, default_target_flags,
7109 except_unwind_info, supports_split_stack, unwind_tables_default,
7110 have_named_sections): Move from target.def.
7111 (HOOK_PREFIX): Undefine at end of file.
7112 * common/common-target.h: Include input.h.
7113 (enum opt_levels, struct default_options): Move from target.h.
7114 * common/common-targhooks.c, common/common-targhooks.h: New.
7115 * config.gcc (target_has_targetm_common): Default to yes.
7116 (moxie*): Set target_has_targetm_common=no.
7117 (hppa*-*-*): Don't set target_has_targetm_common=yes.
7118 * doc/tm.texi: Regenerate.
7119 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
7120 (C_TARGET_DEF_H): Add common/common-targhooks.h.
7121 (GCC_OBJS): Remove vec.o.
7122 (OBJS): Remove hooks.o and vec.o.
7123 (OBJS-libcommon-target): Add vec.o, hooks.o and
7124 common/common-targhooks.o.
7125 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
7126 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
7127 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
7128 cfglayout.o, $(out_object_file), $(common_out_object_file)):
7129 Update dependencies.
7130 (common/common-targhooks.o): New.
7131 * common/config/default-common.c: Include tm.h. Add FIXME comment.
7132 * common/config/pa/pa-common.c: Include more headers. Take
7133 copyright dates from pa.c.
7134 (pa_option_optimization_table, pa_handle_option,
7135 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
7136 TARGET_HANDLE_OPTION): Move from pa.c.
7137 * common/config/alpha/alpha-common.c,
7138 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
7139 common/config/bfin/bfin-common.c,
7140 common/config/cris/cris-common.c,
7141 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
7142 common/config/h8300/h8300-common.c,
7143 common/config/i386/i386-common.c,
7144 common/config/ia64/ia64-common.c,
7145 common/config/iq2000/iq2000-common.c,
7146 common/config/lm32/lm32-common.c,
7147 common/config/m32c/m32c-common.c,
7148 common/config/m32r/m32r-common.c,
7149 common/config/m68k/m68k-common.c,
7150 common/config/mcore/mcore-common.c,
7151 common/config/mep/mep-common.c,
7152 common/config/microblaze/microblaze-common.c,
7153 common/config/mips/mips-common.c,
7154 common/config/mmix/mmix-common.c,
7155 common/config/mn10300/mn10300-common.c,
7156 common/config/pdp11/pdp11-common.c,
7157 common/config/picochip/picochip-common.c,
7158 common/config/rs6000/rs6000-common.c,
7159 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
7160 common/config/score/score-common.c, common/config/sh/sh-common.c,
7161 common/config/sparc/sparc-common.c,
7162 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
7163 common/config/vax/vax-common.c,
7164 common/config/xstormy16/xstormy16-common.c,
7165 common/config/xtensa/xtensa-common.c: New.
7166 * config/alpha/alpha.c: Include common/common-target.h.
7167 (alpha_option_optimization_table, alpha_handle_option,
7168 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7169 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
7170 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
7171 * config/arm/arm.c (arm_option_optimization_table,
7172 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7173 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
7174 arm-common.c.
7175 * config/avr/avr.c (avr_option_optimization_table,
7176 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7177 to avr-common.c.
7178 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
7179 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
7180 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
7181 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
7182 * config/cris/cris.c (cris_option_optimization_table,
7183 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7184 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
7185 cris-common.c.
7186 * config/fr30/fr30.c (fr30_option_optimization_table,
7187 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
7188 to fr30-common.c.
7189 * config/frv/frv.c (frv_option_optimization_table,
7190 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
7191 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
7192 * config/h8300/h8300.c (h8300_option_optimization_table,
7193 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7194 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
7195 * config/i386/i386-protos.h (ix86_handle_option): Declare.
7196 * config/i386/i386.c: Include common/common-target.h.
7197 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
7198 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
7199 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
7200 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
7201 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
7202 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
7203 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
7204 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
7205 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
7206 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
7207 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
7208 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
7209 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
7210 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
7211 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
7212 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
7213 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
7214 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
7215 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
7216 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
7217 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
7218 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
7219 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
7220 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
7221 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
7222 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
7223 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
7224 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
7225 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
7226 ix86_option_optimization_table, ix86_option_init_struct,
7227 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
7228 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7229 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
7230 i386-common.c.
7231 * config/i386/t-i386 (i386.o): Update dependencies.
7232 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
7233 * config/ia64/ia64.c (ia64_option_optimization_table,
7234 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7235 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7236 ia64_handle_option): Move to ia64-common.c.
7237 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
7238 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
7239 * config/lm32/lm32.c (lm32_option_optimization_table,
7240 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7241 to lm32-common.c.
7242 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
7243 m32c-common.c.
7244 * config/m32r/m32r.c (m32r_option_optimization_table,
7245 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7246 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7247 m32r_handle_option): Move to m32r-common.c.
7248 (m32r_memory_move_cost): Remove comment referring to
7249 TARGET_HANDLE_OPTION.
7250 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
7251 Move to m68k-common.c.
7252 * config/mcore/mcore.c (mcore_option_optimization_table,
7253 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7254 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
7255 * config/mep/mep.c (mep_option_optimization_table,
7256 mep_handle_option, TARGET_HANDLE_OPTION,
7257 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
7258 Move to mep-common.c.
7259 * config/microblaze/microblaze.c
7260 (microblaze_option_optimization_table,
7261 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7262 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
7263 * config/mips/mips.c (mips_handle_option,
7264 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7265 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
7266 mips-common.c.
7267 * config/mmix/mmix.c (mmix_option_optimization_table,
7268 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7269 Move to mmix-common.c.
7270 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
7271 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
7272 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7273 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
7274 * config/pa/pa.c: Include common/common-target.h.
7275 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7276 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7277 pa_handle_option): Move to pa-common.c.
7278 (pa_option_override): Use targetm_common.except_unwind_info.
7279 (pa_asm_output_mi_thunk, pa_function_section): Use
7280 targetm_common.have_named_sections.
7281 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
7282 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7283 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7284 pdp11_handle_option, pdp11_option_init_struct): Move to
7285 pdp11-common.c.
7286 * config/picochip/picochip.c (picochip_option_optimization_table,
7287 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
7288 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
7289 * config/rs6000/rs6000.c: Include common/common-target.h.
7290 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
7291 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
7292 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
7293 rs6000_handle_option): Move to rs6000-common.c.
7294 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7295 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
7296 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7297 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
7298 * config/s390/s390.c (processor_flags_table,
7299 s390_option_optimization_table, s390_option_init_struct,
7300 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
7301 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7302 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
7303 * config/s390/s390.h (processor_flags_table): Declare.
7304 * config/score/score.c (score_option_optimization_table,
7305 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7306 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
7307 score_handle_option): Move to score-common.c.
7308 * config/sh/sh.c (sh_option_optimization_table,
7309 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7310 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7311 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
7312 * config/sparc/sparc.c: Include common/common-target.h.
7313 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7314 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
7315 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
7316 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
7317 spu_option_init_struct): Move to spu-common.c.
7318 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
7319 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
7320 * config/v850/v850.c (small_memory_physical_max,
7321 v850_handle_memory_optionn v850_handle_option,
7322 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7323 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
7324 v850-common.c.
7325 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
7326 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
7327 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7328 Move to xtensa-common.c.
7329 * cfglayout.c: Include common/common-target.h.
7330 (fixup_reorder_chain): Use targetm_common.have_named_sections.
7331 * cfgrtl.c: Include common/common-target.h.
7332 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
7333 targetm_common.have_named_sections.
7334 * dbxout.c: Include common/common-target.h.
7335 (dbxout_function_end): Use targetm_common.have_named_sections.
7336 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
7337 targetm_common.except_unwind_info.
7338 * dwarf2out.c: Include common/common-target.h.
7339 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
7340 dwarf2out_begin_prologue, dwarf2out_frame_init,
7341 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
7342 targetm_common.except_unwind_info.
7343 * except.c: Include common/common-target.h.
7344 (init_eh, finish_eh_generation,
7345 output_one_function_exception_table): Use
7346 targetm_common.except_unwind_info.
7347 (switch_to_exception_section): Use targetm_common.have_named_sections.
7348 * explow.c: Include common/common-target.h.
7349 * expr.c: Include common/common-target.h.
7350 (build_personality_function): Use targetm_common.except_unwind_info.
7351 * function.c: Include common/common-target.h.
7352 (expand_function_end): Use targetm_common.except_unwind_info.
7353 * haifa-sched.c: Include common/common-target.h.
7354 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
7355 * lto-opts.c: Include common/common-target.h instead of target.h.
7356 (lto_reissue_options): Use targetm_common.handle_option.
7357 * opts.c: Include common/common-target.h.
7358 (target_handle_option): Use targetm_common.handle_option.
7359 (init_options_struct): Update comment referring to
7360 targetm.target_option.optimization. Use
7361 targetm_common.default_target_flags,
7362 targetm_common.unwind_tables_default and
7363 targetm_common.option_init_struct.
7364 (default_options_optimization): Use
7365 targetm_common.option_optimization_table.
7366 (finish_options): Use targetm_common.except_unwind_info,
7367 targetm_common.unwind_tables_default,
7368 targetm_common.have_named_sections and
7369 targetm_common.supports_split_stack.
7370 * toplev.c: Include common/common-target.h.
7371 (process_options): Use targetm_common.have_named_sections.
7372 * tree-tailcall.c: Include common/common-target.h.
7373 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
7374 * tree.c: Include common/common-target.h.
7375 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
7376 * varasm.c: Include common/common-target.h.
7377 (resolve_unique_section, hot_function_section,
7378 default_function_section): Use targetm_common.have_named_sections.
7379
7380 2011-06-14 Easwaran Raman <eraman@google.com>
7381
7382 PR rtl-optimization/44194
7383 * dse.c: Include tree-flow.h
7384 (insn_info): Add new field non_frame_wild_read.
7385 (group_info): Add new fields escaped_n and escaped_p.
7386 (kill_on_calls): New variable.
7387 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
7388 (dse_step0): Initialize kill_on_calls.
7389 (can_escape): New function.
7390 (set_usage_bits): Add additional parameter; record information
7391 about escaped locations.
7392 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
7393 (dse_step2_nospill): Set kill_on_calls based on
7394 group->escaped_n and group->escaped_n.
7395 (add_wild_read): Refactor into...
7396 (reset_active_stores): ... New function, and
7397 (free_read_records): ... New function.
7398 (add_non_frame_wild_read): New function.
7399 (scan_insn): Call add_non_frame_wild_read on non-const calls.
7400 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
7401 (dse_step5_nospill): Call scan_reads_nospill for instructions
7402 marked as non_frame_wild_read.
7403 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
7404
7405 2011-06-14 Joseph Myers <joseph@codesourcery.com>
7406
7407 * common/common-target-def.h, common/common-target.def,
7408 common/common-target.h, common/config/default-common.c,
7409 common/config/pa/pa-common.c: New files.
7410 * Makefile.in (common_out_file, common_out_object_file,
7411 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
7412 (OBJS-libcommon-target): Include $(common_out_object_file).
7413 (prefix.o): Update dependencies.
7414 ($(common_out_object_file), common/common-target-hooks-def.h,
7415 s-common-target-hooks-def-h): New.
7416 (s-tm-texi): Also check timestamp on common-target.def.
7417 (build/genhooks.o): Update dependencies.
7418 * config.gcc (common_out_file, target_has_targetm_common): Define.
7419 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
7420 TARGET_ALWAYS_STRIP_DOTDOT.
7421 * configure.ac (common_out_object_file): Define.
7422 (common_out_file, common_out_object_file): Substitute.
7423 (common): Create directory.
7424 * configure: Regenerate.
7425 * doc/tm.texi.in (targetm_common): Document.
7426 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
7427 * doc/tm.texi: Regenerate.
7428 * genhooks.c (hook_array): Also include common/common-target.def.
7429 * prefix.c (tm.h): Don't include.
7430 (common/common-target.h): Include.
7431 (ALWAYS_STRIP_DOTDOT): Don't define.
7432 (update_path): Use targetm_common.always_strip_dotdot instead of
7433 ALWAYS_STRIP_DOTDOT.
7434 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
7435
7436 2011-06-14 David Li <davidxl@google.com>
7437
7438 * passes.c (execute_function_todo): Remove TODO_dump_func.
7439 (execute_one_pass): Remove TODO_dump_func.
7440 (execute_function_dump): New function.
7441 * tree-vrp.c: Remove TODO_dump_func.
7442 * regrename.c: Remove TODO_dump_func.
7443 * fwprop.c: Remove TODO_dump_func.
7444 * tree-into-ssa.c: Remove TODO_dump_func.
7445 * tree-complex.c: Remove TODO_dump_func.
7446 * tracer.c: Remove TODO_dump_func.
7447 * tree-loop-distribution.c: Remove TODO_dump_func.
7448 * postreload-gcse.c: Remove TODO_dump_func.
7449 * postreload.c: Remove TODO_dump_func.
7450 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
7451 * tree-tailcall.c: Remove TODO_dump_func.
7452 * ipa-cp.c: Remove TODO_dump_func.
7453 * final.c: Remove TODO_dump_func.
7454 * tree-emutls.c: Remove TODO_dump_func.
7455 * omp-low.c: Remove TODO_dump_func.
7456 * tree-ssa-dse.c: Remove TODO_dump_func.
7457 * tree-ssa-uncprop.c: Remove TODO_dump_func.
7458 * auto-inc-dec.c: Remove TODO_dump_func.
7459 * reorg.c: Remove TODO_dump_func.
7460 * tree-ssa-copyrename.c: Remove TODO_dump_func.
7461 * tree-ssa-ccp.c: Remove TODO_dump_func.
7462 * compare-elim.c: Remove TODO_dump_func.
7463 * mode-switching.c: Remove TODO_dump_func.
7464 * modulo-sched.c: Remove TODO_dump_func.
7465 * tree-call-cdce.c: Remove TODO_dump_func.
7466 * cse.c: Remove TODO_dump_func.
7467 * web.c: Remove TODO_dump_func.
7468 * tree-stdarg.c: Remove TODO_dump_func.
7469 * lto-streamer-out.c: Remove TODO_dump_func.
7470 * tree-ssa-math-opts.c: Remove TODO_dump_func.
7471 * tree-ssa-dom.c: Remove TODO_dump_func.
7472 * tree-nrv.c: Remove TODO_dump_func.
7473 * loop-init.c: Remove TODO_dump_func.
7474 * gimple-low.c: Remove TODO_dump_func.
7475 * ipa-inline.c: Remove TODO_dump_func.
7476 * tree-ssa-sink.c: Remove TODO_dump_func.
7477 * jump.c: Remove TODO_dump_func.
7478 * ifcvt.c: Remove TODO_dump_func.
7479 * tree-ssa-loop.c: Remove TODO_dump_func.
7480 * recog.c: Remove TODO_dump_func.
7481 * dse.c: Remove TODO_dump_func.
7482 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
7483 * matrix-reorg.c: Remove TODO_dump_func.
7484 * tree-eh.c: Remove TODO_dump_func.
7485 * regmove.c: Remove TODO_dump_func.
7486 * function.c: Remove TODO_dump_func.
7487 * tree-vectorizer.c: Remove TODO_dump_func.
7488 * ipa-split.c: Remove TODO_dump_func.
7489 * gcse.c: Remove TODO_dump_func.
7490 * tree-if-conv.c: Remove TODO_dump_func.
7491 * init-regs.c: Remove TODO_dump_func.
7492 * tree-ssa-phiopt.c: Remove TODO_dump_func.
7493 * implicit-zee.c: Remove TODO_dump_func.
7494 * lower-subreg.c: Remove TODO_dump_func.
7495 * bt-load.c: Remove TODO_dump_func.
7496 * tree-dfa.c: Remove TODO_dump_func.
7497 * except.c: Remove TODO_dump_func.
7498 * emit-rtl.c: Remove TODO_dump_func.
7499 * store-motion.c: Remove TODO_dump_func.
7500 * cfgexpand.c: Remove TODO_dump_func.
7501 * tree-cfgcleanup.c: Remove TODO_dump_func.
7502 * cfgcleanup.c: Remove TODO_dump_func.
7503 * tree-ssa-pre.c: Remove TODO_dump_func.
7504 * tree-sra.c: Remove TODO_dump_func.
7505 * tree-mudflap.c: Remove TODO_dump_func.
7506 * tree-ssa-copy.c: Remove TODO_dump_func.
7507 * cfglayout.c: Remove TODO_dump_func.
7508 * tree-ssa-forwprop.c: Remove TODO_dump_func.
7509 * tree-ssa-dce.c: Remove TODO_dump_func.
7510 * ira.c: Remove TODO_dump_func.
7511 * tree-ssa.c: Remove TODO_dump_func.
7512 * integrate.c: Remove TODO_dump_func.
7513 * tree-optimize.c: Remove TODO_dump_func.
7514 * tree-ssa-phiprop.c: Remove TODO_dump_func.
7515 * tree-object-size.c: Remove TODO_dump_func.
7516 * combine.c: Remove TODO_dump_func.
7517 * bb-reorder.c: Remove TODO_dump_func.
7518 * cprop.c: Remove TODO_dump_func.
7519 * var-tracking.c: Remove TODO_dump_func.
7520 * tree-profile.c: Remove TODO_dump_func.
7521 * tree-vect-generic.c: Remove TODO_dump_func.
7522 * reg-stack.c: Remove TODO_dump_func.
7523 * sched-rgn.c: Remove TODO_dump_func.
7524 * tree-ssa-structalias.c: Remove TODO_dump_func.
7525 * tree-switch-conversion.c: Remove TODO_dump_func.
7526 * tree-cfg.c: Remove TODO_dump_func.
7527 * tree-ssa-reassoc.c: Remove TODO_dump_func.
7528 * combine-stack-adj.c: Remove TODO_dump_func.
7529 * dce.c: Remove TODO_dump_func.
7530 * tree-ssanames.c: Remove TODO_dump_func.
7531 * regcprop.c: Remove TODO_dump_func.
7532
7533 2011-06-14 H.J. Lu <hongjiu.lu@intel.com>
7534
7535 PR middle-end/47364
7536 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
7537 and properly handle result not in Pmode.
7538
7539 2011-06-14 Robert Millan <rmh@gnu.org>
7540
7541 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
7542 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
7543 `config/linux.h'.
7544
7545 * config/i386/kfreebsd-gnu64.h: New file.
7546 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
7547 with `i386/kfreebsd-gnu64.h'.
7548
7549 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
7550 (GNU_USER_LINK_EMULATION64): New macros.
7551 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
7552 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
7553 of hardcoding `elf_i386' and `elf_x86_64'.
7554
7555 2011-06-14 Nick Clifton <nickc@redhat.com>
7556
7557 PR target/49403
7558 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
7559
7560 PR target/49402
7561 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
7562
7563 2011-06-14 Jakub Jelinek <jakub@redhat.com>
7564
7565 PR fortran/49103
7566 * tree.h (DECL_NONSHAREABLE): Define.
7567 (struct tree_decl_common): Change decl_common_unused to
7568 decl_nonshareable_flag.
7569 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
7570 Ignore vars with DECL_NONSHAREABLE bit set.
7571 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
7572 on stores to automatic aggregate vars.
7573
7574 PR rtl-optimization/49390
7575 Revert:
7576 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
7577
7578 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
7579 MEM_ALIAS_SET.
7580
7581 2011-06-14 Zdenek Dvorak <ook@ucw.cz>
7582 Tom de Vries <tom@codesourcery.com>
7583
7584 PR target/45098
7585 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
7586 Document changed semantics.
7587 (max_stmt_executions, max_stmt_executions_int): Declare.
7588 * tree-data-ref.c (estimated_loop_iterations)
7589 (estimated_loop_iterations_int): Move functions...
7590 * tree-ssa-loop-niter.c (estimated_loop_iterations)
7591 (estimated_loop_iterations_int): here.
7592 (record_estimate): Change nb_iterations_upper_bound and
7593 nb_iterations_estimate semantics.
7594 (max_stmt_executions, max_stmt_executions_int): New function.
7595 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
7596 (max_stmt_executions_tree): this.
7597 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
7598 estimated_loop_iterations_tree.
7599 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
7600 max_stmt_executions_int instead of estimated_loop_iterations_int.
7601 * predict.c (predict_loops): Idem.
7602 * tree-parloops.c (parallelize_loops): Idem.
7603 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
7604 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
7605 (init_omega_for_ddr_1): Idem.
7606 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
7607 (loop_prefetch_arrays): Idem
7608 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
7609 max_stmt_executions instead of estimated_loop_iterations.
7610 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
7611 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
7612 instead of nb_iterations_upper_bound.
7613
7614 2011-06-13 Jan Hubicka <jh@suse.cz>
7615
7616 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
7617
7618 2011-06-14 Richard Henderson <rth@redhat.com>
7619
7620 PR debug/48459
7621 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
7622 (based_loc_descr): Assert it's true.
7623 (compute_frame_pointer_to_fb_displacement): Set it, rather than
7624 aborting immediately.
7625
7626 2011-06-14 Sanjin Liu <scliu@faraday-tech.com>
7627 Mingfeng Wu <mingfeng@faraday-tech.com>
7628
7629 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
7630
7631 2011-06-13 Jan Hubicka <jh@suse.cz>
7632
7633 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
7634
7635 2011-06-13 Jan Hubicka <jh@suse.cz>
7636
7637 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
7638 similarly to DECL_COMDAT.
7639 * cgraphunit.c (cgraph_analyze_function): Likewise.
7640 * ipa.c (function_and_variable_visibility): Likewise.
7641
7642 2011-06-13 Jan Hubicka <jh@suse.cz>
7643
7644 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
7645 BINFO_VIRTUALS when streaming for ltrans unit.
7646
7647 2011-06-13 David Edelsohn <dje.gcc@gmail.com>
7648
7649 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
7650 (movdi_internal64): Same.
7651
7652 2011-06-13 Edmar Wienskoski <edmar@freescale.com>
7653
7654 PR target/44618
7655 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
7656 a set of similar patterns, where the MATCH_OPERAND for the function
7657 argument is replaced with individual references to hardware registers.
7658 (save_fpregs_<mode>): Ditto
7659 (restore_gpregs_<mode>): Ditto
7660 (return_and_restore_gpregs_<mode>): Ditto
7661 (return_and_restore_fpregs_<mode>): Ditto
7662 (return_and_restore_fpregs_aix_<mode>): Ditto
7663
7664 2011-06-13 Jan Hubicka <jh@suse.cz>
7665
7666 * ipa-utils.c (postorder_stack): New structure.
7667 (ipa_reverse_postorder): Handle aliases.
7668
7669 2011-06-13 Jan Hubicka <jh@suse.cz>
7670
7671 * ipa-inline.c (reset_edge_caches): Walk aliases.
7672 (update_caller_keys): Do not test inlinability of aliases.
7673 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
7674 (do_estimate_growth): Fix typo.
7675
7676 2011-06-13 Jan Hubicka <jh@suse.cz>
7677
7678 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
7679 (can_remove_node_now_p): ... here; handle same comdat groups.
7680 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
7681 (inline_call): Update use of can_remove_node_now_p.
7682
7683 2011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
7684
7685 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
7686 condition to disallow non-identical memory locations.
7687 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
7688 preference to bit manipulation instructions.
7689
7690 2011-06-13 Jan Hubicka <jh@suse.cz>
7691
7692 * cgraph.c (cgraph_for_node_thunks_and_aliases,
7693 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
7694 (nonremovable_p): New function.
7695 (cgraph_can_remove_if_no_direct_calls_p): New function.
7696 (used_from_object_file_p): New functoin.
7697 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
7698 references from aliases.
7699 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
7700 * ipa-inline.c (check_caller_edge): New function.
7701 (want_inline_function_called_once_p): Use it; accept aliases called
7702 once, too.
7703 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
7704
7705 2011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7706
7707 PR target/48454
7708 * config/arm/neon.md (vec_pack_trunc): Set the lengths
7709 correctly for the case with Quad vectors.
7710
7711 2011-06-13 Jakub Jelinek <jakub@redhat.com>
7712 Ira Rosen <ira.rosen@linaro.org>
7713
7714 PR tree-optimization/49352
7715 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
7716 all, make sure loop_use_stmt after the loop is a def stmt of a used
7717 SSA_NAME that is the only one defined inside of the loop. Don't
7718 check for COND_EXPR and GIMPLE_BINARY_RHS.
7719 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
7720 check_reduction is true.
7721
7722 2011-06-11 Jan Hubicka <jh@suse.cz>
7723
7724 PR middle-end/49373
7725 * ipa.c (cgraph_externally_visible_p): Check resolution info.
7726
7727 2011-06-11 Jan Hubicka <jh@suse.cz>
7728
7729 PR middle-end/48836
7730 * ipa-inline-transform.c: Include tree-pass.h
7731 (inline_transform): Set TODO_update_ssa_only_virtuals.
7732 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
7733
7734 2011-06-11 Jan Hubicka <jh@suse.cz>
7735
7736 PR middle-end/49378
7737 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
7738 aliases and thunks.
7739
7740 2011-06-12 Ira Rosen <ira.rosen@linaro.org>
7741
7742 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
7743 Take number of iterations to peel into account for equally frequent
7744 misalignment values.
7745
7746 2011-06-11 Jan Hubicka <jh@suse.cz>
7747
7748 * lto-streamer-out.c (produce_symtab): Stream out the newly
7749 represented aliases.
7750
7751 2011-06-11 Jan Hubicka <jh@suse.cz>
7752
7753 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
7754 varying args.
7755 (ipa_update_after_lto_read): Likewise.
7756 (ipa_write_node_info): Do not sream call_with_var_arguments.
7757 (ipa_read_node_info): Likewise.
7758
7759 2011-06-11 Jan Hubicka <jh@suse.cz>
7760
7761 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
7762
7763 2011-06-11 Jan Hubicka <jh@suse.cz>
7764
7765 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
7766 (lto_symtab_resolve_can_prevail_p): Likewise.
7767 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
7768 * cgraph.c (same_body_aliases_done): New global var.
7769 (cgraph_same_body_alias_1): Rename to ...
7770 (cgraph_create_function_alias): ... this one; reorg to new
7771 representation.
7772 (cgraph_same_body_alias): Use cgraph_create_function_alias;
7773 record references when asked to.
7774 (cgraph_add_thunk): Fix formating.
7775 (cgraph_get_node): Kill same body alias code.
7776 (cgraph_node_for_asm): Likewise.
7777 (cgraph_remove_same_body_alias): Remove.
7778 (cgraph_remove_node): Kill same body alias code.
7779 (cgraph_mark_address_taken_node): Mark also the aliased function
7780 as having address taken.
7781 (dump_cgraph_node): Dump same body aliases.
7782 (cgraph_for_node_thunks_and_aliases): Update for new alias
7783 representation.
7784 (cgraph_for_node_and_aliases): Likewise.
7785 * cgraph.h (same_body): Kll pointer.
7786 (same_body_alias): Update comment.
7787 (same_body_aliases_done): Declare.
7788 (cgraph_remove_same_body_alias): Remove declaration.
7789 (cgraph_create_function_alias): Declare.
7790 (cgraph_process_same_body_aliases): Declare.
7791 (cgraph_function_with_gimple_body_p): Check for alias.
7792 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
7793 (cgraph_alias_aliased_node): New function.
7794 (cgraph_function_node): Update for new aliases.
7795 (cgraph_function_or_thunk_node): Likewise.
7796 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
7797 (inline_call): Remove dead aliases.
7798 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
7799 name hack for same body aliases.
7800 (clone_of_p): Look through aliases.
7801 (verify_cgraph_node): Verify aliases.
7802 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
7803 (cgraph_process_same_body_aliases): New function.
7804 (process_function_and_variable_attributes): Disable weakref warning on
7805 alias.
7806 (cgraph_analyze_functions): Handle aliases.
7807 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
7808 (assemble_thunks): Rename to ...
7809 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
7810 (cgraph_expand_function): Remove alias output code.
7811 (cgraph_output_in_order): Skip aliases.
7812 (cgraph_preserve_function_body_p): Aliases don't need preserving.
7813 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
7814 (ipa_record_reference): Do not assert on alias references.
7815 (ipa_ref_has_aliases_p): New function.
7816 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
7817 (ipa_ref_has_aliases_p): Declare.
7818 * lto-cgraph.c (lto_output_node): Handle aliases.
7819 (input_node): Likewise.
7820 * lto-streamer-out.c (lto_output): Skip aliases.
7821 (produce_symtab): Kill same_body_alias code.
7822 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
7823 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
7824 * ipa-inline.c (update_caller_keys): Walk aliases.
7825 (inline_small_functions): Fix thinko in previous patch.
7826 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
7827 (function_and_variable_visibility): Do not walk same body aliases.
7828 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
7829 (ipa_pta_execute): Use it.
7830
7831 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
7832
7833 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
7834 (*vec_dupv2df): Rename from vec_dupv2df.
7835 (vec_dupv2df): New expander.
7836
7837 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
7838
7839 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
7840
7841 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
7842
7843 * config/i386/i386.md: Use default value in "isa" attribute.
7844 * config/i386/sse.md: Ditto.
7845 * config/i386/mmx.md: Ditto.
7846
7847 2011-06-10 Wei Guozhi <carrot@google.com>
7848
7849 PR target/45335
7850 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
7851 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
7852 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
7853 related peephole2.
7854 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
7855 related peephole2.
7856 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
7857 (arm_legitimate_ldrd_p): New prototype.
7858 (arm_output_ldrd): New prototype.
7859 * config/arm/arm.c (arm_check_ldrd_operands): New function.
7860 (arm_legitimate_ldrd_p): New function.
7861 (arm_output_ldrd): New function.
7862
7863 2011-06-10 David Li <davidxl@google.com>
7864
7865 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
7866 * passes.c (passr_eq): New function.
7867 (create_pass_tab): New function.
7868 (pass_traverse): New function.
7869 (dump_one_pass): New function.
7870 (dump_pass_list): New function.
7871 (dump_passes): New function.
7872
7873 2011-06-10 Jan Hubicka <jh@suse.cz>
7874
7875 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
7876 setting the nothrow flag.
7877 * ipa-reference.c (propagate): Skip aliases.
7878 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
7879 (propagate_nothrow): Skip aliases; do not update cgraph.
7880 (local_pure_const): Do not update cgraph.
7881 * tree-profile.c (tree_profiling): Do fixup_cfg.
7882
7883 2011-06-10 Jan Hubicka <jh@suse.cz>
7884
7885 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
7886 (cgraph_local_node_p): ... here; handle aliases.
7887 (has_addr_references_p): Break out from ...;
7888 (cgraph_remove_unreachable_nodes) ... here.
7889
7890 2011-06-10 Jan Hubicka <jh@suse.cz>
7891
7892 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
7893 * common.opt (flag_inline_functions_called_once): Do not
7894 initialize to 1.
7895
7896 2011-06-10 Jan Hubicka <jh@suse.cz>
7897
7898 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
7899 (ipcp_initialize_node_lattices): Do not deal with aliases;
7900 Do not try to propagate through thunks.
7901 (ipcp_change_tops_to_bottom): Do not deal with aliases.
7902
7903 2011-06-10 Jan Hubicka <jh@suse.cz>
7904
7905 * ipa-prop.c (ipa_write_node_info): Stream jump functions
7906 for indirect calls.
7907 (ipa_read_node_info): Likewise.
7908
7909 2011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7910
7911 PR lto/49302
7912 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
7913 (build_and_insert_call): Likewise.
7914 (build_and_insert_ref): New.
7915 (gimple_expand_builtin_pow): Minor cleanup.
7916 (gimple_expand_builtin_cabs): New.
7917 (execute_cse_sincos): Add case for BUILT_IN_CABS.
7918
7919 2011-06-10 Jan Hubicka <jh@suse.cz>
7920
7921 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
7922 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
7923 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
7924 (ipcp_propagate_stage): Skip aliases when propagating.
7925 (ipcp_need_redirect_p): Skip aliases.
7926 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
7927 collect_callers_of_node.
7928 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
7929 for aliases.
7930 (ipa_compute_jump_functions): Look through aliases.
7931
7932 2011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7933
7934 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
7935
7936 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
7937
7938 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
7939 Adjust comments.
7940 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
7941
7942 2011-06-10 Jan Hubicka <jh@suse.cz>
7943
7944 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
7945 Update call of gimple_get_virt_method_for_binfo.
7946 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
7947 refuse_thunks parameter.
7948 (gimple_fold_call): Update.
7949 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
7950
7951 2011-06-10 Jan Hubicka <jh@suse.cz>
7952
7953 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
7954 (not_all_callers_have_enough_arguments_p): ... this one; turn into
7955 worker for cgraph_for_node_and_aliases.
7956 (convert_callers_for_node): Break out from ...
7957 (convert_callers): ... here.
7958 (modify_function): Use collect_callers_of_node.
7959 (ipa_early_sra): Use cgraph_for_node_and_aliases.
7960
7961 2011-06-10 Richard Guenther <rguenther@suse.de>
7962
7963 PR tree-optimization/49361
7964 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
7965 when not already in gimple form.
7966
7967 2011-06-10 Richard Guenther <rguenther@suse.de>
7968
7969 PR bootstrap/49344
7970 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
7971 FOR_EACH_PHI_OR_STMT_USE.
7972
7973 2011-06-10 Jan Hubicka <jh@suse.cz>
7974
7975 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
7976 (clone_inlined_nodes): ... here.
7977 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
7978 to real destination prior inlining.
7979 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
7980 can_early_inline_edge_p, want_early_inline_function_p,
7981 want_early_inline_function_p, want_inline_small_function_p,
7982 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
7983 edge_badness, update_all_callee_keys, lookup_recursive_calls,
7984 add_new_edges_to_heap, inline_small_functions, flatten_function,
7985 inline_always_inline_functions, early_inline_small_functions): Use
7986 cgraph_function_or_thunk_node.
7987 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
7988 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
7989 (do_estimate_edge_growth_1): Break out from ...
7990 (do_estimate_growth) ... here; walk aliases.
7991 (inline_generate_summary): Skip aliases.
7992
7993 2011-06-10 Richard Guenther <rguenther@suse.de>
7994
7995 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
7996 forward when combining, visit inserted stmts when a stmt was changed.
7997
7998 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
7999
8000 * tree.h (error_operand_p): Add.
8001 * dbxout.c (dbxout_type_fields): Use the latter.
8002 * c-decl.c (add_stmt): Likewise.
8003 * gimplify.c (omp_add_variable, omp_notice_variable,
8004 gimplify_scan_omp_clauses): Likewise.
8005
8006 2011-06-10 Georg-Johann Lay <avr@gjlay.de>
8007
8008 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
8009 when a value is actually passed in regs.
8010
8011 2011-06-10 Eric Botcazou <ebotcazou@adacore.com>
8012 Laurent Rougé <laurent.rouge@menta.fr>
8013
8014 * doc/invoke.texi (SPARC options): Add -mflat.
8015 * config/sparc/sparc.opt: Likewise.
8016 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
8017 (sparc_flat_expand_prologue): Declare.
8018 (sparc_flat_expand_epilogue): Likewise.
8019 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
8020 (CPP_ENDIAN_SPEC): Replace with...
8021 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
8022 (CPP_SPEC): Adjust to above change.
8023 (EXTRA_SPECS): Likewise.
8024 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
8025 (INCOMING_REGNO): Likewise.
8026 (OUTGOING_REGNO): Likewise.
8027 (LOCAL_REGNO): Likewise.
8028 (SETUP_FRAME_ADDRESSES): Likewise.
8029 (FIXED_REGISTERS): Set 0 for %fp.
8030 (CALL_USED_REGISTERS): Likewise.
8031 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
8032 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
8033 (RETURN_ADDR_REGNUM): Define.
8034 (RETURN_ADDR_RTX): Use it.
8035 (INCOMING_RETURN_ADDR_REGNUM): Define.
8036 (INCOMING_RETURN_ADDR_RTX): Use it.
8037 (DWARF_FRAME_RETURN_COLUMN): Likewise.
8038 (EH_RETURN_REGNUM): Define.
8039 (EH_RETURN_STACKADJ_RTX): Use it.
8040 (EH_RETURN_HANDLER_RTX): Delete.
8041 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
8042 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
8043 Delete.
8044 (struct machine_function): Add frame_size, apparent_frame_size,
8045 frame_base_reg, frame_base_offset, n_global_fp_regs and
8046 save_local_in_regs_p fields.
8047 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
8048 sparc_frame_base_offset, sparc_n_global_fp_regs,
8049 sparc_save_local_in_regs_p): New macros.
8050 (sparc_option_override): Error out if -fcall-saved-REG is specified
8051 for Out registers.
8052 (eligible_for_restore_insn): Fix formatting.
8053 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
8054 (eligible_for_sibcall_delay): Likewise.
8055 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
8056 (sparc_legitimate_address_p): Adjust to above change.
8057 (save_global_or_fp_reg_p): New predicate.
8058 (return_addr_reg_needed_p): Likewise.
8059 (save_local_or_in_reg_p): Likewise.
8060 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
8061 (SORR_SAVE, SORR_RESTORE): Delete.
8062 (sorr_pred_t): New typedef.
8063 (sorr_act_t): New enum.
8064 (save_or_restore_regs): Rename to...
8065 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
8066 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
8067 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
8068 mechanism. Add CFI information for double-word saves in 32-bit mode.
8069 (emit_adjust_base_to_offset): New function extracted from...
8070 (emit_save_or_restore_regs): ...this. Rename the rest to...
8071 (emit_save_or_restore_regs_global_fp_regs): ...this.
8072 (emit_save_or_restore_regs_local_in_regs): New function.
8073 (gen_create_flat_frame_[123]): New functions.
8074 (sparc_expand_prologue): Use SIZE local variable. Adjust.
8075 (sparc_flat_expand_prologue): New function.
8076 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
8077 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
8078 (sparc_flat_expand_epilogue): New function.
8079 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
8080 (output_return): Likewise.
8081 (output_sibcall): Likewise.
8082 (sparc_output_mi_thunk): Likewise.
8083 (sparc_frame_pointer_required): Likewise.
8084 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
8085 function optimization.
8086 * config/sparc/sparc.md (flat): New attribute.
8087 (prologue): Add TARGET_FLAT handling.
8088 (save_register_window): Disable if TARGET_FLAT.
8089 (create_flat_frame_[123]): New patterns.
8090 (epilogue): Add TARGET_FLAT handling.
8091 (sibcall_epilogue): Likewise.
8092 (eh_return): New expander.
8093 (eh_return_internal): New insn and splitter.
8094 (return_internal): Add TARGET_FLAT handling.
8095 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
8096 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
8097 (nonlocal_goto): Add TARGET_FLAT handling.
8098 * config/sparc/t-elf: Add -mflat multilib.
8099 * config/sparc/t-leon: Likewise.
8100
8101 2011-06-10 Jan Hubicka <jh@suse.cz>
8102
8103 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
8104 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
8105 (self_recursive_p): Use cgraph_function_node.
8106 (propagate_pure_const): Likewise.
8107 (propagate_nothrow): Likewise.
8108 * ipa-reference.c (ipa_reference_get_not_read_global): Use
8109 cgraph_function_node.
8110 (propagate_bits): Likewise.
8111 (propagate): Likewise.
8112
8113 2011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8114 Richard Earnshaw <rearnsha@arm.com>
8115
8116 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
8117 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
8118 (*thumb2_movdi_vfp): Delete.
8119 (*arm_movdi_vfp_cortexa8): Delete.
8120 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
8121 (*movdi_vfp_cortexa8): Likewise.
8122
8123 2011-06-10 Richard Guenther <rguenther@suse.de>
8124
8125 * stor-layout.c (initialize_sizetypes): Give names to all
8126 sizetype kinds.
8127
8128 2011-06-10 Ira Rosen <ira.rosen@linaro.org>
8129
8130 PR tree-optimization/49318
8131 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
8132 irrelevant pattern statements.
8133
8134 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
8135
8136 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
8137
8138 PR bootstrap/49354
8139 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
8140 to last assignment.
8141
8142 2011-06-09 Jan Hubicka <jh@suse.cz>
8143
8144 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
8145 do not recompute reachable flag.
8146 (cgraph_finalize_function, cgraph_analyze_functions): Set
8147 redefined_extern_inline here.
8148
8149 2011-06-09 Jan Hubicka <jh@suse.cz>
8150
8151 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
8152 (cgraph_only_called_directly_p): ... this one; bring offline.
8153 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
8154 varpool_used_from_object_file_p): Drop names from the declaratoin.
8155 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
8156 collect_callers_of_node): New.
8157 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
8158 (cgraph_edge_recursive_p): Use cgraph_function_node.
8159 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
8160 (cgraph_node_cannot_be_local_p_1): Break out from ...
8161 (cgraph_node_can_be_local_p): ... here; walk aliases.
8162 (cgraph_for_node_thunks_and_aliases): New function.
8163 (cgraph_for_node_and_aliases): New function.
8164 (cgraph_make_node_local_1): Break out from ...
8165 (cgraph_make_node_local) ... here; use
8166 cgraph_for_node_thunks_and_aliases.
8167 (cgraph_set_nothrow_flag_1): Break out from ...
8168 (cgraph_set_nothrow_flag) ... here;
8169 use cgraph_for_node_thunks_and_aliases.
8170 (cgraph_set_const_flag_1): Break out from ...
8171 (cgraph_set_const_flag) ... here;
8172 use cgraph_for_node_thunks_and_aliases.
8173 (cgraph_set_pure_flag_1): Break out from ...
8174 (cgraph_set_pure_flag) ... here;
8175 use cgraph_for_node_thunks_and_aliases.
8176 (cgraph_propagate_frequency_1): Break out from ...
8177 (cgraph_propagate_frequency) ... here; use
8178 cgraph_for_node_thunks_and_aliases.
8179 (cgraph_used_from_object_file_p): Do not care about aliases.
8180 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
8181 New functions.
8182 (collect_callers_of_node_1, collect_callers_of_node): New functions.
8183
8184 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
8185
8186 PR rtl-optimization/49154
8187 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
8188 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
8189 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
8190 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
8191 * config/cris/cris.h (cris_register_move_cost): Remove
8192 !TARGET_V32 code. Tweak comments.
8193
8194 2011-06-09 Jan Hubicka <jh@suse.cz>
8195
8196 * cgraphbuild.c (record_eh_tables): Mark personality function as having
8197 address taken.
8198
8199 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
8200
8201 PR rtl-optimization/49154
8202 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
8203 is a matching slot in the hashtable, assign it to classes_ptr.
8204
8205 PR rtl-optimization/49154
8206 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
8207 register classes.
8208 * doc/tm.texi: Regenerate.
8209
8210 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
8211
8212 PR target/49307
8213 * config/sh/sh.md (UNSPEC_CHKADD): New.
8214 (chk_guard_add): New define_insn_and_split.
8215 (symGOT_load): Use chk_guard_add instead of blockage.
8216
8217 2011-06-09 Kai Tietz <ktietz@redhat.com>
8218
8219 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
8220
8221 2011-06-09 Eric Botcazou <ebotcazou@adacore.com>
8222
8223 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
8224
8225 2011-06-09 Wei Guozhi <carrot@google.com>
8226
8227 PR target/46975
8228 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
8229 (peephole2 for conditional move): Generate 16 bit instructions.
8230
8231 2011-06-09 Uros Bizjak <ubizjak@gmail.com>
8232
8233 * config/i386/i386.md (*movdi_internal_rex64): Merge
8234 alternatives 6 and 8.
8235
8236 2011-06-09 David Li <davidxl@google.com>
8237
8238 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
8239 * passes.c (passr_eq): New function.
8240 (create_pass_tab): New function.
8241 (pass_traverse): New function.
8242 (dump_one_pass): New function.
8243 (dump_pass_list): New function.
8244 (dump_passes): New function.
8245
8246 2011-06-09 David Li <davidxl@google.com>
8247
8248 * tree-complex.c (tree_lower_complex): Gate cleanup.
8249 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
8250 (execute_optimize_stdarg): Ditto.
8251 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
8252 (execute_cleanup_eh_1): Ditto.
8253 (execute_cleanup_eh): Ditto.
8254 * gcse.c (gate_rtl_pre): Ditto.
8255 (execute_rtl_pre): Ditto.
8256 * except.c (finish_eh_generation): Ditto.
8257 (convert_to_eh_region_ranges): Ditto.
8258 * cprop.c (one_cprop_pass): Ditto.
8259
8260 2011-06-09 Bernd Schmidt <bernds@codesourcery.com>
8261
8262 PR target/48673
8263 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
8264 in all basic blocks.
8265
8266 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8267
8268 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
8269 (HAVE_ENABLE_EXECUTE_STACK): Define.
8270 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
8271 (HAVE_ENABLE_EXECUTE_STACK): Define.
8272 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
8273 (HAVE_ENABLE_EXECUTE_STACK): Define.
8274 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
8275 (ENABLE_EXECUTE_STACK): Remove.
8276 (HAVE_ENABLE_EXECUTE_STACK): Define.
8277 [IN_LIBGCC2]: Don't include <windows.h>.
8278 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8279 (HAVE_ENABLE_EXECUTE_STACK): Define.
8280 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
8281 (HAVE_ENABLE_EXECUTE_STACK): Define.
8282 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
8283 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
8284 (HAVE_ENABLE_EXECUTE_STACK): Define.
8285 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
8286 (HAVE_ENABLE_EXECUTE_STACK): Define.
8287 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
8288 (HAVE_ENABLE_EXECUTE_STACK): Define.
8289 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8290 (HAVE_ENABLE_EXECUTE_STACK): Define.
8291 * config/alpha/alpha.c (alpha_trampoline_init): Test
8292 HAVE_ENABLE_EXECUTE_STACK.
8293 * config/i386/i386.c (ix86_trampoline_init): Likewise.
8294 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
8295 (sparc64_initialize_trampoline): Likewise.
8296 * libgcc2.c [L_enable_execute_stack]: Remove.
8297 * system.h (ENABLE_EXECUTE_STACK): Poison.
8298 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
8299 * doc/tm.texi: Regenerate.
8300 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
8301
8302 2011-06-09 Jakub Jelinek <jakub@redhat.com>
8303
8304 PR middle-end/49308
8305 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
8306 variable. After resetting and rescanning insn continue with previous
8307 statement.
8308
8309 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8310
8311 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
8312 (gcc_cv_ld_hidden): Likewise.
8313 * configure: Regenerate.
8314 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
8315 (ix86_stack_protect_fail): Mark unused.
8316 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
8317 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
8318 [TARGET_MACHO]: Don't define.
8319 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
8320 (TARGET_STACK_PROTECT_FAIL): Likewise.
8321 (rs6000_stack_protect_fail): Mark unused.
8322 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
8323 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
8324
8325 2011-06-08 Andi Kleen <ak@linux.intel.com>
8326
8327 * varasm.c (get_section): Print location of other conflict
8328 for section conflicts.
8329
8330 2011-06-08 Andi Kleen <ak@linux.intel.com>
8331
8332 * config/i386/driver-i386.c (host_detect_local_cpu):
8333 Add model 0x2d Intel CPU.
8334
8335 2011-06-08 Andi Kleen <ak@linux.intel.com>
8336
8337 * reginfo.c (global_regs_decl): Add.
8338 (globalize_reg): Add decl parameter. Compute location. Pass location
8339 to warnings and add inform. Store decl in global_regs_decl.
8340 * rtl.h (globalize_reg): Update prototype.
8341 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
8342
8343 2011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
8344
8345 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
8346
8347 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
8348
8349 PR target/49305
8350 * config/sh/predicates.md (general_movsrc_operand): Check
8351 mode for memory with indexed address for QI and HImode.
8352 (general_movdst_operand): Likewise.
8353
8354 2011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
8355
8356 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
8357
8358 2011-06-08 Alexandre Oliva <aoliva@redhat.com>
8359
8360 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
8361 (num_ssa_operands): Likewise.
8362 (op_iter_init_phiuse): Forward-declare.
8363 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
8364
8365 2011-06-08 Nick Clifton <nickc@redhat.com>
8366
8367 * doc/invoke.texi (ARM Options): Update description of
8368 -mthumb-interwork.
8369
8370 2011-06-08 H.J. Lu <hongjiu.lu@intel.com>
8371
8372 * config/i386/driver-i386.c (host_detect_local_cpu): Support
8373 unknown Intel family 0x6 CPUs.
8374
8375 2011-06-08 Martin Jambor <mjambor@suse.cz>
8376
8377 * tree-sra.c (mark_rw_status): Removed.
8378 (analyze_access_subtree): New parameter parent instead of
8379 mark_read and mark_write, propagate from that.
8380
8381 2011-06-08 Julian Brown <julian@codesourcery.com>
8382
8383 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
8384 for double-precision helper functions in hard-float mode if only
8385 single-precision arithmetic is supported in hardware.
8386
8387 2011-06-08 Alexander Monakov <amonakov@ispras.ru>
8388
8389 PR rtl-optimization/49303
8390 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
8391 code_motion_path_driver returned 0 or 1.
8392 (sel_region_finish): Clear h_d_i_d.
8393
8394 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
8395
8396 * config/sh/sh.c (prepare_move_operands): Set pic register
8397 appropriately for global and local dynamic tls models even
8398 if flag_pic is unset.
8399
8400 2011-06-07 Jason Merrill <jason@redhat.com>
8401
8402 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
8403
8404 2011-06-07 Xinliang David Li <davidxl@google.com>
8405 * passes.c (enable_disable_pass): Handle assembler name.
8406 (is_pass_explicitly_enabled_or_disabled): Ditto.
8407
8408 2011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8409
8410 PR tree-optimization/48497
8411 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
8412
8413 2011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8414
8415 PR tree-optimization/46728
8416 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
8417 to use gimple_val_nonnegative_real_p.
8418 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
8419 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
8420
8421 2011-06-07 H.J. Lu <hongjiu.lu@intel.com>
8422
8423 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
8424
8425 2011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
8426
8427 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
8428 constant vectors.
8429
8430 2011-06-07 Richard Guenther <rguenther@suse.de>
8431
8432 * stor-layout.c (initialize_sizetypes): Initialize all
8433 sizetypes based on target definitions.
8434 (set_sizetype): Remove.
8435 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
8436 * tree.h (set_sizetype): Remove.
8437
8438 2011-06-07 Nick Clifton <nickc@redhat.com>
8439
8440 * config.gcc: Unify V850 architecture options and add support for
8441 newer V850 architectures.
8442 * config/v850/t-v850e: Delete.
8443
8444 2011-06-07 Richard Guenther <rguenther@suse.de>
8445
8446 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
8447 Call set_sizetype from here.
8448
8449 2011-06-07 Andrew Stubbs <ams@codesourcery.com>
8450
8451 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
8452 (*maddhisi4tb, *maddhisi4tt): New define_insns.
8453
8454 2011-06-07 Bernd Schmidt <bernds@codesourcery.com>
8455 Andrew Stubbs <ams@codesourcery.com>
8456
8457 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
8458 multiplies.
8459 * doc/md.texi (Canonicalization of Instructions): Document widening
8460 multiply canonicalization.
8461
8462 2011-06-07 Jakub Jelinek <jakub@redhat.com>
8463
8464 PR gcov-profile/49299
8465 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
8466
8467 2011-06-07 Ira Rosen <ira.rosen@linaro.org>
8468
8469 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
8470 a pointer.
8471 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
8472 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
8473 vect_recog_pow_pattern): Likewise.
8474 (vect_pattern_recog_1): Remove declaration.
8475 (widened_name_p): Remove declaration. Add new argument to specify
8476 whether to check that both types are either signed or unsigned.
8477 (vect_recog_widen_mult_pattern): Update documentation. Handle
8478 unsigned patterns and multiplication by constants.
8479 (vect_pattern_recog_1): Update vect_recog_func references. Use
8480 statement information from the statement returned from pattern
8481 detection functions.
8482 (vect_pattern_recog): Update vect_recog_func reference.
8483 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
8484 multiplication by a constant use the type of the other operand.
8485
8486 2011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
8487
8488 PR rtl-optimization/49145
8489 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
8490
8491 2011-06-06 Jakub Jelinek <jakub@redhat.com>
8492
8493 PR debug/49262
8494 * dwarf2out.c (native_encode_initializer): Decrement count in each
8495 iteration.
8496
8497 PR debug/49294
8498 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
8499 non-MODE_INT modes.
8500
8501 PR c++/49264
8502 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
8503 if stmt folded into nothing.
8504 * tree-inline.c (fold_marked_statements): If a builtin at the end of
8505 a bb folded into nothing, just update cgraph edges and move to next bb.
8506 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
8507 to be NULL. Don't compute count and frequency if new_call is NULL.
8508
8509 2011-06-04 Diego Novillo <dnovillo@google.com>
8510
8511 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
8512 (cgraph.o): Likewise.
8513 (cgraphunit.o): Likewise.
8514 * cgraphunit.c: Include lto-streamer.h
8515 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
8516 if LTO is enabled.
8517 * lto-streamer-in.c (unpack_value_fields): Call
8518 streamer_hooks.unpack_value_fields if set.
8519 (lto_materialize_tree): For unhandled nodes, first try to
8520 call lto_streamer_hooks.alloc_tree, if it exists.
8521 (lto_input_ts_decl_common_tree_pointers): Move reading of
8522 DECL_INITIAL to lto_streamer_read_tree.
8523 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
8524 (lto_streamer_read_tree): New.
8525 (lto_reader_init): Rename from lto_init_reader.
8526 Move initialization code to lto/lto.c.
8527 * lto-streamer-out.c (pack_value_fields): Call
8528 streamer_hooks.pack_value_fields if set.
8529 (lto_output_tree_ref): For tree nodes that are not normally indexable,
8530 call streamer_hooks.indexable_with_decls_p before giving up.
8531 (lto_output_ts_decl_common_tree_pointers): Move handling
8532 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
8533 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
8534 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
8535 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
8536 (lto_streamer_write_tree): New.
8537 (lto_output): Call lto_streamer_init directly.
8538 (lto_writer_init): Remove.
8539 * lto-streamer.c (streamer_hooks): New.
8540 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
8541 instead of lto_preload_common_nodes.
8542 (lto_is_streamable): Move from lto-streamer.h
8543 (lto_streamer_hooks_init): New.
8544 (streamer_hooks): New.
8545 (streamer_hooks_init): New.
8546 * lto-streamer.h (struct output_block): Forward declare.
8547 (struct lto_input_block): Likewise.
8548 (struct data_in): Likewise.
8549 (struct bitpack_d): Likewise.
8550 (struct streamer_hooks): Declare.
8551 (streamer_hooks): Declare.
8552 (lto_streamer_hooks_init): Declare.
8553 (lto_streamer_write_tree): Declare.
8554 (lto_streamer_read_tree): Declare.
8555 (streamer_hooks_init): Declare.
8556 (lto_is_streamable): Move to lto-streamer.c
8557
8558 2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8559
8560 * longlong.h (smul_ppmm): The resulting register pair contains the
8561 higher order word first.
8562
8563 2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8564
8565 PR tree-optimization/46728
8566 * builtins.c (powi_table): Remove.
8567 (powi_lookup_cost): Remove.
8568 (powi_cost): Remove.
8569 (expand_powi_1): Remove.
8570 (expand_powi): Remove.
8571 (expand_builtin_pow_root): Remove.
8572 (expand_builtin_pow): Remove.
8573 (expand_builtin_powi): Eliminate handling of constant exponent.
8574 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
8575
8576 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
8577
8578 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
8579
8580 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
8581
8582 * dce.c (reset_unmarked_insns_debug_uses): New.
8583 (delete_unmarked_insns): Skip debug insns.
8584 (prescan_insns_for_dce): Likewise.
8585 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
8586 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
8587 active reg can be found.
8588 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
8589 (convert_regs_1): Use it.
8590
8591 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
8592
8593 * tree-pretty-print.c (dump_function_header): Add flags.
8594 Don't dump decl_uid with nouid.
8595 * tree-pretty-print.h (dump_function_header): Adjust.
8596 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
8597 * passes.c (pass_init_dump_file): Pass dump_flags on.
8598 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
8599
8600 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
8601
8602 PR bootstrap/49270
8603 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
8604
8605 2011-06-06 Mikael Pettersson <mikpe@it.uu.se>
8606
8607 PR tree-optimization/49243
8608 * calls.c (setjmp_call_p): Also check if fndecl has the
8609 returns_twice attribute.
8610
8611 2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8612
8613 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
8614 -ffast-math etc.
8615
8616 2011-06-06 Richard Henderson <rth@redhat.com>
8617 Georg-Johann Lay <avr@gjlay.de>
8618
8619 PR target/42210
8620 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
8621 New predicates.
8622 * config/avr/avr.md ("insv"): New insn expander.
8623 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
8624 "*insv.not.io", "*insv.reg"): New insns.
8625
8626 2011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
8627
8628 PR target/49285
8629 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
8630 to nonimmediate_operand from memory_operand for the operand that is to
8631 be forced to memory by the expander. Lose the constraints.
8632
8633 2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
8634
8635 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
8636 EH return when delayed branches are disabled.
8637
8638 2011-06-05 Uros Bizjak <ubizjak@gmail.com>
8639
8640 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
8641 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
8642 calculation.
8643 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
8644 Simplify MODE_V1DF and MODE_V2SF handling.
8645 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
8646 Simplify MODE_SF handling.
8647
8648 2011-06-04 Jan Hubicka <jh@suse.cz>
8649
8650 PR tree-optimization/48893
8651 PR tree-optimization/49091
8652 PR tree-optimization/49179
8653 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
8654 Bounds check.
8655
8656 2011-06-04 Jan Hubicka <jh@suse.cz>
8657
8658 PR lto/48954
8659 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
8660 bitmaps.
8661
8662 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
8663
8664 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
8665
8666 2011-06-04 Jakub Jelinek <jakub@redhat.com>
8667
8668 PR target/49281
8669 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
8670 to be strictly smaller than 1 << shiftcount.
8671
8672 2011-06-04 Jan Hubicka <jh@suse.cz>
8673
8674 PR tree-optimize/48929
8675 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
8676 of empty predicate.
8677
8678 2011-06-04 Alexandre Oliva <aoliva@redhat.com>
8679
8680 PR debug/48333
8681 * calls.c (emit_call_1): Prefer the __builtin declaration of
8682 builtin functions.
8683
8684 2011-06-03 Diego Novillo <dnovillo@google.com>
8685
8686 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
8687 (lto_input_tree_pointers): Likewise.
8688 * lto-streamer-out.c (pack_value_fields): Likewise.
8689 (lto_output_tree_pointers): Likewise.
8690 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
8691 and OPTIMIZATION_NODE.
8692
8693 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8694
8695 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
8696 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
8697 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
8698 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
8699 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
8700 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
8701 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
8702 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
8703 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
8704 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
8705 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
8706 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
8707 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
8708 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
8709 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
8710 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
8711 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
8712 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
8713 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
8714 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
8715 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
8716 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
8717 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
8718 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
8719 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
8720 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
8721 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
8722 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
8723 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
8724 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
8725 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
8726 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
8727 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
8728 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
8729 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
8730 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
8731 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
8732 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
8733 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
8734 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
8735 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
8736 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
8737 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
8738 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
8739 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
8740 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
8741 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
8742 * system.h (MD_UNWIND_SUPPORT): Poison.
8743 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
8744 * doc/tm.texi: Regenerate.
8745 * unwind-dw2.c: Include md-unwind-support.h instead of
8746 MD_UNWIND_SUPPORT.
8747 * config/ia64/unwind-ia64.c: Likewise.
8748 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8749
8750 2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
8751
8752 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
8753
8754 2011-06-03 Richard Henderson <rth@redhat.com>
8755 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8756
8757 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
8758 (sigill_hdlr): Correct insn, insn size.
8759 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
8760
8761 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8762
8763 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
8764 t-slibgcc-dummy.
8765 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
8766 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
8767 * config/mips/t-iris: Remove.
8768 * config/mips/t-irix6: New file.
8769 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
8770
8771 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8772
8773 * Makefile.in (LIB2ADDEHDEP): Remove.
8774 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
8775 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
8776 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
8777 * config/t-darwin (LIB2ADDEHDEP): Remove.
8778 * config/t-freebsd (LIB2ADDEHDEP): Remove.
8779 * config/t-linux (LIB2ADDEHDEP): Remove.
8780
8781 2011-06-03 Diego Novillo <dnovillo@google.com>
8782
8783 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
8784 (lto_register_var_decl_in_symtab): Likewise.
8785 (lto_register_function_decl_in_symtab): Likewise.
8786 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8787 logic to uniquify_nodes.
8788
8789 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8790
8791 * config/alpha/t-osf5: Remove.
8792 * config/alpha/t-osf-pthread: Remove.
8793 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
8794 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
8795
8796 2011-06-03 Julian Brown <julian@codesourcery.com>
8797
8798 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
8799 (strongarm1110): Use strongarm tuning.
8800 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
8801 * config/arm/arm.c (arm_strongarm_tune): New.
8802 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
8803 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
8804 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
8805 setting, using previous defaults or 1 for Cortex-A5.
8806 (arm_option_override): Set max_insns_skipped from current tuning.
8807
8808 2011-06-03 Nathan Sidwell <nathan@codesourcery.com>
8809
8810 * doc/install.texi (Options specification): Document --with-specs.
8811
8812 2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8813
8814 * config/arm/neon.md (orndi3_neon): Actually split it.
8815
8816 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
8817
8818 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
8819 * var-tracking.c (reverse_op): Limite recurse depth to 5.
8820
8821 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
8822
8823 PR debug/47590
8824 * target.def (delay_sched2, delay_vartrack): New.
8825 * doc/tm.texi.in: Update.
8826 * doc/tm.texi: Rebuild.
8827 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
8828 * var-tracking.c (gate_handle_var_tracking): Likewise.
8829 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
8830 (bfin_flag_var_tracking): Drop.
8831 (output_file_start): Don't save and override flag_var_tracking.
8832 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
8833 (bfin_reorg): Test original variables.
8834 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8835 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
8836 (ia64_flag_var_tracking): Drop.
8837 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8838 (ia64_file_start): Don't save and override flag_var_tracking.
8839 (ia64_override_options_after_change): Ditto
8840 flag_schedule_insns_after_reload.
8841 (ia64_reorg): Test original variables.
8842 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
8843 (picochip_flag_var_tracking): Drop.
8844 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8845 (picochip_option_override): Don't save and override
8846 flag_schedule_insns_after_reload.
8847 (picochip_asm_file_start): Ditto flag_var_tracking.
8848 (picochip_reorg): Test original variables.
8849 * config/spu/spu.c (spu_flag_var_tracking): Drop.
8850 (TARGET_DELAY_VARTRACK): Define.
8851 (spu_var_tracking): New.
8852 (spu_machine_dependent_reorg): Call it.
8853 (asm_file_start): Don't save and override flag_var_tracking.
8854
8855 2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
8856
8857 PR target/49163
8858 * config/sh/predicates.md (general_movsrc_operand): Return 0
8859 for memory and memory subreg of which address is an invalid
8860 indexed address for QI and HImode.
8861 (general_movdst_operand): Likewise.
8862
8863 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
8864
8865 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
8866 edges only, when there is a non-local label in the function.
8867 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
8868
8869 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
8870
8871 * config/i386/constraints.md (Y3): New register constraint.
8872 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
8873 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
8874 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
8875 *sse2_interleave_lowv2df.
8876
8877 2011-06-02 Julian Brown <julian@codesourcery.com>
8878
8879 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
8880 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
8881 (arm_cortex_a5_tune): New.
8882
8883 2011-06-02 Julian Brown <julian@codesourcery.com>
8884
8885 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
8886 * config/arm/arm.c (arm_default_branch_cost): New.
8887 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
8888 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
8889 (arm_fa726_tune): Set branch_cost field using
8890 arm_default_branch_cost.
8891 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
8892 current_tune structure.
8893 * dojump.c (tm_p.h): Include file.
8894
8895 2011-06-02 Julian Brown <julian@codesourcery.com>
8896
8897 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
8898 tuning.
8899 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
8900 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
8901 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
8902 field.
8903 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
8904 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
8905 (arm_fa726te_tune): Add prefer_constant_pool setting.
8906 (arm_v6t2_tune, arm_cortex_tune): New.
8907 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
8908 prefer_constant_pool setting.
8909
8910 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
8911
8912 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
8913 switch statement.
8914 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
8915 (*movdf_internal) <case 6,7,8>: Ditto.
8916
8917 * config/i386/constraints.md (Y4): New register constraint.
8918 * config/i386/sse.md (vec_set<mode>_0): Merge with
8919 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
8920 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
8921 *vec_extractv2di_1_sse.
8922 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
8923 and *vec_concatv2di_rex64_sse.
8924
8925 2011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
8926
8927 PR target/48807
8928 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
8929 of cgraph_local_info for null before attempting to use it.
8930
8931 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
8932
8933 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
8934 (current_function_dynamic_alloc_count): Delete.
8935 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
8936 (expand_builtin_nonlocal_goto): Remove obsolete comment.
8937 (expand_builtin_update_setjmp_buf): Remove dead code.
8938 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
8939 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
8940 support.
8941 * function.c (instantiate_virtual_regs): Likewise.
8942 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
8943 for a block with a single abnormal incoming edge.
8944 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
8945 (SETJMP_VIA_SAVE_AREA): Delete.
8946 * config/sparc/sparc-protos.h (load_got_register): Declare.
8947 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
8948 (load_got_register): Make global.
8949 (sparc_frame_pointer_required): Add 'static'.
8950 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
8951 (sparc_builtin_setjmp_frame_value): New function.
8952 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
8953 (save_stack_nonlocal): New expander.
8954 (restore_stack_nonlocal): Likewise.
8955 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
8956 (nonlocal_goto_internal): New insn.
8957 (goto_handler_and_restore): Delete.
8958 (builtin_setjmp_setup): Likewise.
8959 (do_builtin_setjmp_setup): Likewise.
8960 (setjmp): Likewise.
8961 (builtin_setjmp_receiver): New expander.
8962
8963 2011-06-01 David Li <davidxl@google.com>
8964
8965 PR middle-end/49261
8966 * tree-pretty-print.c (dump_function_header): Format cleanup.
8967
8968 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
8969
8970 PR target/49238
8971 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
8972 needed when original operands are used for msw_skip comparison.
8973
8974 2011-06-01 Jakub Jelinek <jakub@redhat.com>
8975
8976 PR debug/49250
8977 * var-tracking.c (add_uses, add_stores): Don't call
8978 cselib_subst_to_values on ENTRY_VALUE.
8979
8980 2011-06-01 Diego Novillo <dnovillo@google.com>
8981
8982 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
8983 output_record_start with LTO_null instead of output_zero.
8984 (lto_output_ts_binfo_tree_pointers): Likewise.
8985 (lto_output_tree): Likewise.
8986 (output_eh_try_list): Likewise.
8987 (output_eh_region): Likewise.
8988 (output_eh_lp): Likewise.
8989 (output_eh_regions): Likewise.
8990 (output_bb): Likewise.
8991 (output_function): Likewise.
8992 (output_unreferenced_globals): Likewise.
8993 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
8994 instead of NUM_TREE_CODES.
8995 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
8996 (lto_output_int_in_range): Change << to >> when shifting VAL.
8997
8998 2011-06-01 Diego Novillo <dnovillo@google.com>
8999
9000 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
9001 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
9002
9003 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
9004
9005 PR target/45074
9006 * optabs.h (valid_multiword_target_p): Declare.
9007 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
9008 doing multi-word operations.
9009 * optabs.c (expand_binop): Likewise.
9010 (expand_doubleword_bswap): Likewise.
9011 (expand_absneg_bit): Likewise.
9012 (expand_unop): Likewise.
9013 (expand_copysign_bit): Likewise.
9014 (multiword_target_p): New function.
9015
9016 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
9017
9018 PR rtl-optimization/48830
9019 PR rtl-optimization/48808
9020 PR rtl-optimization/48792
9021 * reload.c (push_reload): Check contains_reg_of_mode.
9022 * reload1.c (strip_paradoxical_subreg): New function.
9023 (gen_reload_chain_without_interm_reg_p): Use it to handle
9024 paradoxical subregs.
9025 (emit_output_reload_insns, gen_reload): Likewise.
9026
9027 2011-06-01 David Li <davidxl@google.com>
9028
9029 * predict.c : Change pass name
9030 * ipa.c: Ditto.
9031 * dce.c: Ditto.
9032 * tree-profile.c: Ditto.
9033 * except.c: Ditto.
9034
9035 2011-06-01 David Li <davidxl@google.com>
9036
9037 * tree-pretty-print.c (dump_function_header): New function.
9038 * final.c (rest_of_clean_state): Use header dumper.
9039 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
9040 * passes.c (pass_init_dump_file): Use header dumper.
9041
9042 2011-06-01 Jakub Jelinek <jakub@redhat.com>
9043
9044 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
9045 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
9046 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
9047 New functions.
9048 (mem_loc_descriptor): Use them.
9049
9050 * var-tracking.c (create_entry_value): New function.
9051 (vt_add_function_parameter): Use it.
9052
9053 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9054
9055 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
9056 Include <signal.h>, <ucontext.h>.
9057 (sigill_caught): Define.
9058 (sigill_hdlr): New function.
9059 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
9060 insns can be executed.
9061 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
9062 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
9063
9064 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9065
9066 * config/t-slibgcc-darwin: Move to ...
9067 * config/t-slibgcc-dummy: ... this. Clarify comments.
9068 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
9069 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
9070 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
9071 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
9072 Remove i386/t-crtstuff from tmake_file.
9073 (i[34567]86-*-solaris2*): Remove t-svr4,
9074 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
9075 t-slibgcc-dummy.
9076 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
9077 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
9078 sparc/t-crtfm from tmake_file.
9079 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
9080 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
9081 Remove extra_parts.
9082 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
9083 * config/i386/t-nwld (SHLIB_LINK): Remove.
9084 * config/i386/t-rtems-i386: Rename to ...
9085 * config/i386/t-rtems: ... this.
9086 ($(T)crti.o, $(T)crtn.o): Remove.
9087 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
9088 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
9089 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
9090 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
9091 EXTRA_MULTILIB_PARTS): Remove.
9092 * config/sparc/t-sol2-64: Likewise.
9093 * config/sparc/t-sol2: Remove.
9094 * config/sparc/t-crtin: Remove.
9095 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
9096 * config/i386/gmon-sol2.c: Remove.
9097 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
9098 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
9099 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
9100 * config/i386/sol2-gc1.asm: Remove.
9101 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
9102 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
9103 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
9104 * config/t-slibgcc-sld: Remove.
9105
9106 2011-06-01 Jakub Jelinek <jakub@redhat.com>
9107
9108 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
9109 base_type_for_mode with op_mode instead of mode.
9110
9111 2011-06-01 Paul Brook <paul@cpodesourcery.com>
9112
9113 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
9114 Cortex-A15.
9115 * config/arm/arm-tune.md: Regenerate.
9116 * config/arm/arm-tables.opt: Regenerate.
9117 * config/arm/arm.c (FL_DIV): Rename...
9118 (FL_THUMB_DIV): ... to this.
9119 (FL_ARM_DIV): Define.
9120 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
9121 (arm_arch_hwdiv): Remove.
9122 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
9123 (arm_issue_rate): Add cortexr5.
9124 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
9125 __ARM_ARCH_EXT_IDIV__.
9126 (TARGET_IDIV): Define.
9127 (arm_arch_hwdiv): Remove.
9128 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
9129 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
9130 (divsi3, udivsi3): New patterns.
9131 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
9132 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
9133
9134 2011-06-01 Martin Jambor <mjambor@suse.cz>
9135
9136 * ipa-utils.c (ipa_dfs_info): New field scc_no.
9137 * ipa-utils.c (searchc): Set scc_no.
9138
9139 2011-06-01 Martin Jambor <mjambor@suse.cz>
9140
9141 * ipa-utils.c (searchc_env): New field allow_overwritable.
9142 (searchc): do not ignore edges to overwritable nodes if indicated
9143 by env->allow_overwritable.
9144 (ipa_reduced_postorder): Set env.allow_overwritable.
9145
9146 2011-06-01 Richard Guenther <rguenther@suse.de>
9147
9148 * tree.c (free_lang_data): Do not reset boolean_type_node nor
9149 char_type_node.
9150 * lto-streamer.c (lto_record_common_node): Take node pointer,
9151 do not register types.
9152 (lto_preload_common_nodes): Explicitly skip preloading nodes
9153 that differ between frontends.
9154
9155 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
9156
9157 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
9158 NON_FLOAT_REGS.
9159
9160 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
9161
9162 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
9163 parameter value for dump. Dump cost on outermost call only.
9164 (rs6000_memory_move_cost): Dump cost on outermost call only.
9165
9166 2011-05-31 Jakub Jelinek <jakub@redhat.com>
9167
9168 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
9169 DW_OP_GNU_convert ops.
9170
9171 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
9172 cselib_preserve_constants.
9173 (cselib_lookup_1): If cselib_preserve_constants,
9174 a new VALUE is being created for REG and there is a VALUE for the
9175 same register in wider mode, add another loc with lowpart SUBREG of
9176 the wider VALUE.
9177 (cselib_subst_to_values): Handle ENTRY_VALUE.
9178 * var-tracking.c (replace_expr_with_values): Return NULL for
9179 ENTRY_VALUE too.
9180 * dwarf2out.c (convert_descriptor_to_signed): New function.
9181 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
9182 instead of two shifts.
9183 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
9184 the right mode if needed.
9185 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
9186 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
9187 convert_descriptor_to_signed.
9188 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
9189 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
9190
9191 PR target/48688
9192 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
9193
9194 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
9195
9196 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
9197 of X87MODEI12 and SWI48x instead of SSEMODEI24.
9198 (SWI248x): New mode iterator, rename from X87MODEI.
9199 (X87MODEI): Remove mode iterator.
9200 (X87MODEI12): Ditto.
9201 (SSEMODEI24): Ditto.
9202
9203 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
9204
9205 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
9206 * doc/invoke.texi: Document max-vartrack-expr-depth.
9207 * var-tracking.c (EXPR_DEPTH): New.
9208 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
9209
9210 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
9211
9212 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
9213 * config/i386/sse.md: Add n to negated FMA pattern names.
9214
9215 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
9216
9217 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
9218
9219 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
9220
9221 * gengtype-state.c (read_state_params_structs): Initialize previous.
9222
9223 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
9224
9225 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
9226 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
9227
9228 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
9229
9230 * config/i386/i386.md (*movtf_internal): Avoid allocating general
9231 registers. Penalize F*r->o alternative to prevent partial memory
9232 stalls. Slightly penalize *roF->*r alternative. Generate SSE
9233 CONST_DOUBLE immediates when optimizing function for size. Do not move
9234 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
9235 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
9236 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
9237 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
9238 alternatives.
9239 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
9240
9241 (fp_register_operand splitters): Use fp_register_operand
9242 constraint. Do not use FP_REG_P in insn condition.
9243 (any_fp_register_operand splitters): Use any_fp_register_operand
9244 constraint. Do not use ANY_FP_REG_P in insn condition.
9245
9246 2011-05-31 Jan Hubicka <jh@suse.cz>
9247
9248 * cgraph.h (cgraph_inline_failed_t): Give enum a name
9249 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
9250 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
9251 (lto_output_edge): Use output_enum and var_len_unsigned.
9252 (lto_output_varpool_node): Likewise.
9253 (input_overwrite_node): Do not take resolution parameter;
9254 extract it from a bitpack.
9255 (input_node): Do not read resolution; use input_enum and
9256 var_len_unsigned.
9257 (input_varpool_node): Likewise.
9258 (input_edge): Likewise.
9259 (input_cgraph_1): Likewise.
9260
9261 2011-05-31 Richard Guenther <rguenther@suse.de>
9262
9263 * gimple.c (gimple_register_canonical_type): Do not register
9264 any types via gimple_register_type.
9265
9266 2011-05-31 Jan Hubicka <jh@suse.cz>
9267
9268 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
9269 of thunks.
9270
9271 2011-05-31 Jakub Jelinek <jakub@redhat.com>
9272
9273 PR rtl-optimization/49235
9274 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
9275 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
9276
9277 2011-05-31 Ira Rosen <ira.rosen@linaro.org>
9278
9279 PR tree-optimization/49093
9280 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
9281 data references.
9282
9283 2011-05-31 Dodji Seketeli <dodji@redhat.com>
9284
9285 PR debug/49047
9286 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
9287 for concrete functions containing the code of cloned functions.
9288
9289 2011-05-31 Richard Guenther <rguenther@suse.de>
9290
9291 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
9292 to ...
9293 (forward_propagate_into_comparison_1): ... this.
9294 (forward_propagate_comparison): Rename to ...
9295 (forward_propagate_into_comparison): ... this. Split out
9296 real forward propagation code to ...
9297 (forward_propagate_comparison): ... this.
9298 (forward_propagate_into_gimple_cond): Remove looping.
9299 (forward_propagate_into_cond): Likewise.
9300 (simplify_not_neg_expr): Return whether we have done something.
9301 (simplify_gimple_switch): Likewise.
9302 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
9303 (ssa_forward_propagate_and_combine): ... this. Re-structure
9304 to do a forward forward-propagation walk on BBs and a backward
9305 stmt combining walk on BBs. Consistently re-scan changed statements.
9306 (pass_forwprop): Adjust.
9307
9308 2011-05-30 Ian Lance Taylor <iant@google.com>
9309
9310 * godump.c (go_format_type): Correct length of name added to
9311 obstack for anonymous field.
9312
9313 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
9314
9315 PR target/49186
9316 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
9317 part of the second operand is 0.
9318
9319 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
9320
9321 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
9322 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
9323 to memory for !TARGET_MEMORY_MISMATCH_STALL.
9324 (*movdf_internal_rex64): Do not penalize F->r alternative.
9325 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
9326 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
9327 when optimizing function for size. Do not move CONST_DOUBLEs
9328 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
9329 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
9330 SUBREGs. Do not check for MEM_P operands in the insn condition,
9331 check for ANY_FP_REGNO_P instead.
9332 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
9333 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
9334 function for speed.
9335 * config/i386/i386.c (ix86_option_override_internal): Do not
9336 set TARGET_INTEGER_DFMODE_MOVES here.
9337
9338 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
9339
9340 PR target/49168
9341 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
9342
9343 2011-05-30 Jakub Jelinek <jakub@redhat.com>
9344
9345 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
9346 DW_TAG_rvalue_reference_type even for
9347 -gdwarf-4 -fno-debug-types-section.
9348
9349 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9350
9351 PR tree-optimization/46728
9352 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
9353 (build_and_insert_binop): New.
9354 (gimple_expand_builtin_pow): Reorder args for
9355 build_and_insert_call; use build_and_insert_binop; add more
9356 optimizations for fractional exponents.
9357
9358 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
9359
9360 PR bootstrap/49190
9361
9362 Revert:
9363 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
9364
9365 * tree.h (struct tree_identifier): Inherit from tree_typed, not
9366 tree_common.
9367 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9368 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9369 TS_BASE instead of TS_COMMON.
9370 * varasm.c (assemble_name): Remove assert.
9371
9372 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
9373
9374 * config.gcc: Keep obselete list sorted.
9375
9376 2011-05-30 Jakub Jelinek <jakub@redhat.com>
9377 Eric Botcazou <ebotcazou@adacore.com>
9378
9379 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
9380 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
9381 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
9382 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
9383 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
9384
9385 2011-05-30 Richard Guenther <rguenther@suse.de>
9386
9387 * gimple.c (gimple_types_compatible_p_1): Compare record
9388 and union type members properly.
9389
9390 2011-05-30 Richard Guenther <rguenther@suse.de>
9391
9392 PR tree-optimization/49210
9393 * ipa-split.c (split_function): Care for the case where the call
9394 result is not trivially convertible to the result holding variable.
9395
9396 2011-05-30 Richard Guenther <rguenther@suse.de>
9397
9398 PR tree-optimization/49218
9399 * tree-vrp.c (adjust_range_with_scev): Properly check whether
9400 overflow occured.
9401
9402 2011-05-30 Richard Guenther <rguenther@suse.de>
9403
9404 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
9405 New function split out from ...
9406 (forward_propagate_into_gimple_cond): ... here. Adjust.
9407 (forward_propagate_into_cond): Likewise.
9408 (forward_propagate_comparison): Also propagate into
9409 comparisons on assignment RHS. Change return value to
9410 behave similar to forward_propagate_into_cond.
9411 (tree_ssa_forward_propagate_single_use_vars): Handle
9412 strict-overflow warnings properly for forward_propagate_comparison.
9413
9414 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9415
9416 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
9417 from plugin linker.
9418 * configure: Regenerate.
9419
9420 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
9421
9422 PR tree-optimization/49199
9423 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
9424 non-reduction operands are either defined in the loop or by induction.
9425
9426 2011-05-29 Xinliang David Li <davidxl@google.com>
9427
9428 * opts-global.c (handle_common_deferred_options): Handle new options.
9429 * passes.c (register_one_dump_file): Call register_pass_name.
9430 (execute_one_pass): Check explicit enable/disable flag.
9431 (passr_hash): New function.
9432 (passr_eq): Ditto.
9433 (register_pass_name): Ditto.
9434 (get_pass_by_name): Ditto.
9435 (pass_hash): Ditto.
9436 (pass_eq): Ditto.
9437 (enable_pass): Ditto.
9438 (disable_pass): Ditto.
9439 (is_pass_explicitly_enabled_or_disabled): Ditto.
9440
9441 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
9442
9443 * config/i386/i386.md (*movoi_internal_avx): Use
9444 standard_sse_constant_opcode for alternative 0.
9445 (*movti_internal_sse): Ditto.
9446 (*movti_internal_rex64): Use standard_sse_constant_opcode for
9447 alternative 2.
9448 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
9449 sselog1 type moves.
9450 (*movsi_internal): Ditto.
9451 (*movdi_internal): Ditto. Add ssecvt type moves.
9452
9453 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
9454
9455 PR target/48830
9456 * rtlanal.c (simplify_subreg_regno): Adjust comment.
9457
9458 2011-05-29 Jakub Jelinek <jakub@redhat.com>
9459
9460 PR rtl-optimization/49095
9461 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
9462 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
9463
9464 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
9465
9466 PR target/43995
9467 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
9468 recurse_p argument. Only follow register copies if it is set,
9469 and prevent mips_find_pic_call_symbol from recursing.
9470 (mips_find_pic_call_symbol): Add a recurse_p argument.
9471 Pass it to mips_pic_call_symbol_from_set.
9472 (mips_annotate_pic_calls): Update accordingly.
9473
9474 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
9475
9476 * emit-rtl.c (try_split): Use a loop to search for
9477 NOTE_INSN_CALL_ARG_LOCATIONs.
9478
9479 2011-05-29 Richard Guenther <rguenther@suse.de>
9480
9481 PR tree-optimization/49217
9482 * ipa-pure-const.c (propagate_pure_const): Fix typos.
9483
9484 2011-05-28 Jan Hubicka <jh@suse.cz>
9485
9486 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
9487 length.
9488 (string_slot_free): Remove
9489 (create_output_block): Initialize obstack.
9490 (destroy_output_block): Free obstack.
9491 (lto_string_index): Add PERSISTENT parameter; do not duplicate
9492 the string unless it needs to be added into the hash.
9493 (lto_output_string_with_length): Add persistent attribute;
9494 handle NULL strings.
9495 (lto_output_string): Add PERSISTENT parameter.
9496 (output_string_cst, output_identifier): Simplify.
9497 (lto_output_location_bitpack): Update.
9498 (lto_output_builtin_tree): Update.
9499 * lto-streamer.h (struct output_block): Add obstack.
9500 (lto_output_string, lto_output_string_with_length): Remove
9501 declarations; functions are static now.
9502
9503 2011-05-28 Jan Hubicka <jh@suse.cz>
9504
9505 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
9506 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
9507 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
9508 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
9509 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
9510 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
9511 unpack_ts_decl_with_vis_value_fields,
9512 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
9513 lto_get_builtin_tree): Use enum and variable length i/o.
9514 * basic-block.h (profile_status_d): Add PROFILE_LAST.
9515 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
9516 New functions.
9517 (bp_pack_enum, bp_unpack_enum): New macros.
9518
9519 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
9520
9521 * genrecog.c: Remove redundant forward declarations.
9522
9523 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
9524
9525 * config.gcc: Deprecate mips*-*-openbsd*.
9526
9527 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
9528
9529 PR bootstrap/49195
9530 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
9531 for match_op_dup.
9532
9533 2011-05-27 Andrew Pinski <pinskia@gmail.com>
9534
9535 PR middle-end/48981
9536 * gengtype.c (vec_prefix_type): New function.
9537 (note_def_vec): Use vec_prefix_type and change the length
9538 attribute to be based on the prefix.
9539 * vec.c: Include coretypes.h before vec.h.
9540 (struct vec_prefix): Remove.
9541 (vec_gc_p_reserve): Change the offsetof to sizeof.
9542 (vec_gc_p_reserve_exact): Likewise.
9543 (vec_heap_p_reserve): Likewise.
9544 (vec_heap_p_reserve_exact): Likewise.
9545 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
9546 (vec_stack_p_reserve): Change the offsetof to sizeof.
9547 (vec_stack_p_reserve_exact): Likewise.
9548 * vec.h (struct vec_prefix): New struct definition.
9549 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
9550 (VEC_T_GTY(T,B)): Likewise.
9551 (DEF_VEC_FUNC_P(T)): Use prefix field.
9552 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
9553 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
9554
9555 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9556
9557 PR tree-optimization/46728
9558 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
9559 (powi_as_mults): Add gimple_set_location.
9560 (build_and_insert_call): New.
9561 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
9562 0.5, 0.25, 0.75, 1./3., or 1./6.
9563
9564 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
9565
9566 * doc/contrib.texi: Update copyright years.
9567 (Contributors): Add Zdenek Sojka.
9568
9569 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
9570
9571 * c-decl.c (c_push_function_context): Copy the current statement
9572 list stack.
9573 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
9574 (finish_struct): Call building_stmt_list_p instead of checking
9575 cur_stmt_list.
9576 * c-parser.c (c_parser_postfix_expression): Likewise.
9577 * c-typeck.c (c_end_compound_stmt): Likewise.
9578 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
9579 * tree-iterator.c (stmt_list_cache): Change to a VEC.
9580 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
9581 (free_stmt_list): Likewise.
9582 * tree.h (struct tree_statement_list): Include typed_tree instead
9583 of tree_common.
9584 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
9585 as TS_TYPED instead of TS_COMMON.
9586
9587 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9588 Uros Bizjak <ubizjak@gmail.com>
9589
9590 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
9591 (HAVE_AS_IX86_TLSGDPTL): Define.
9592 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
9593 (HAVE_AS_IX86_TLSLDMPLT): Define.
9594 * configure: Regenerate.
9595 * config.in: Regenerate.
9596 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
9597 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
9598 TARGET_SUN_TLS, use @tlsgdplt or @plt.
9599 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
9600 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
9601 @tlsldmplt or @plt.
9602 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
9603
9604 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
9605
9606 * sched-int.h (struct _haifa_deps_insn_data): New members cond
9607 and reverse_cond.
9608 (INSN_COND, INSN_REVERSE_COND): New macros.
9609 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
9610 once.
9611 (sched_get_condition_with_rev): Cache the results, and look them up
9612 if possible.
9613 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
9614 are clobbered by the current insn.
9615 * target.def (exposed_pipline): New sched data hook.
9616 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
9617 * doc/tm.texi: Regenerate.
9618
9619 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9620
9621 PR tree-optimization/49170
9622 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
9623 sincos or cexp.
9624
9625 2011-05-27 Richard Guenther <rguenther@suse.de>
9626
9627 PR middle-end/49189
9628 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
9629 of comparisons.
9630
9631 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
9632
9633 * haifa-sched.c (sched_scan_info): Remove.
9634 (schedule_block): Call sched_extend_luids rather than sched_init_luids
9635 with NULL args.
9636 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
9637 Remove functions.
9638 (sched_scan): Remove.
9639 (sched_extend_luids): Renamed from luids_extend_insn and no longer
9640 static. All callers changed.
9641 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
9642 static. All callers changed.
9643 (sched_init_luids): Remove all arguments except the first. All
9644 callers changed. Don't use sched_scan.
9645 (haifa_init_h_i_d): Likewise.
9646 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
9647 manually rather than using sched_init_luids. Likewise with
9648 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
9649 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
9650 rather than sched_init_luids with NULL args.
9651 * sel-sched-ir.c (new_insns): Remove variable.
9652 (sched_scan): New static function, previously in haifa-sched.c. Remove
9653 all arguments but the first two; all callers changed.
9654 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
9655 rather than sched_init_luids.
9656 (sel_init_bbs): Remove second argument. All callers changed.
9657 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
9658 with NULL arguments.
9659 (create_insn_rtx_from_pattern): Likewise.
9660 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
9661 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
9662 (sched_init_insn_luid, sched_extend_luids): Declare.
9663 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
9664 declarations.
9665
9666 2011-05-27 Richard Guenther <rguenther@suse.de>
9667
9668 PR middle-end/49177
9669 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
9670 A CMP B ? (T) true : (T) false for non-integral types T again.
9671
9672 2011-05-27 Jan Hubicka <jh@suse.cz>
9673
9674 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
9675 so 0 means NULL string.
9676 (lto_output_string_with_length): ... here.
9677 (lto_output_string, output_string_cst, output_identifier): Update
9678 handling of NULL strings.
9679 (lto_output_location_bitpack): New function.
9680 (lto_output_location): Use it.
9681 (lto_output_tree_ref): Use output_record_start.
9682 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
9683 len values.
9684 * lto-streamer-in.c (string_for_index): Break out from ...; offset
9685 values by 1.
9686 (input_string_internal): ... here;
9687 (input_string_cst, input_identifier, lto_input_string): Update handling
9688 of NULL strings.
9689 (lto_input_location_bitpack): New function
9690 (lto_input_location): Use it.
9691 (unpack_ts_type_common_value_fields): Pack align & alias in var len
9692 values.
9693 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
9694 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
9695 (bp_pack_value): Sanity check the value range.
9696 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
9697 New functions.
9698 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
9699 New functions.
9700
9701 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
9702
9703 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
9704 call_arg_location instructions down the floor.
9705
9706 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
9707
9708 PR rtl-optimization/49154
9709 * ira.c (setup_pressure_classes): Process class without sublcasses
9710 as a candidate for pressure classes.
9711
9712 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
9713
9714 PR rtl-optimization/48575
9715 * genrecog.c (position_type): New enum.
9716 (position): New structure.
9717 (decision): Use position structure instead of a string.
9718 (root_pos, peep2_insn_pos_list): New variables.
9719 (next_position, compare_positions): New functions.
9720 (new_decision): Use position structures instead of strings.
9721 (maybe_both_true): Likewise.
9722 (change_state): Likewise.
9723 (write_tree): Likewise.
9724 (make_insn_sequence): Likewise.
9725
9726 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
9727
9728 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
9729 TS_BASE instead of TS_COMMON.
9730 (find_decls_types_r): Check for TS_TYPED structure before looking at
9731 TREE_TYPE.
9732 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
9733 Add chain field.
9734 (BLOCK_CHAIN): Use new chain field.
9735
9736 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
9737
9738 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
9739 moves expensive on Power7 also.
9740
9741 2011-05-26 Richard Guenther <rguenther@suse.de>
9742
9743 * fold-const.c (fold_unary_loc): Remove bogus code.
9744
9745 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
9746
9747 * tree.h (struct tree_identifier): Inherit from tree_typed, not
9748 tree_common.
9749 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9750 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9751 TS_BASE instead of TS_COMMON.
9752 * varasm.c (assemble_name): Remove assert.
9753
9754 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
9755
9756 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
9757 substituted first.
9758 * libgcc-std.ver: Delete file.
9759
9760 2011-05-26 Richard Guenther <rguenther@suse.de>
9761
9762 PR tree-optimization/48702
9763 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
9764 only when we know the base address is within bounds.
9765 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
9766 assume the base address of TARGET_MEM_REFs is in bounds.
9767
9768 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9769
9770 PR target/49099
9771 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
9772 declaration in TARGET_SOLARIS.
9773
9774 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
9775
9776 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
9777 The instruction is then expanded explicitly.
9778 (supported_compare): Callable instruction.
9779 (compare): Likewise.
9780
9781 2011-05-26 Jakub Jelinek <jakub@redhat.com>
9782
9783 PR c++/49165
9784 * gimplify.c (shortcut_cond_r): Don't special case
9785 COND_EXPRs if they have void type on one of their arms.
9786
9787 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
9788
9789 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
9790 to reduce duplication, and to achieve a slightly more logical order
9791 of operations.
9792
9793 2011-05-26 Jakub Jelinek <jakub@redhat.com>
9794
9795 PR tree-optimization/49161
9796 * tree-vrp.c (struct case_info): New type.
9797 (compare_case_labels): Sort case_info structs instead of
9798 trees, and not primarily by CASE_LABEL uids but by
9799 label_for_block indexes.
9800 (find_switch_asserts): Put case labels into struct case_info
9801 array instead of TREE_VEC, adjust sorting, compare label_for_block
9802 values instead of CASE_LABELs.
9803
9804 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9805
9806 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
9807 ("orndi3_neon"): Likewise.
9808 ("bic<mode>3_neon"): Likewise.
9809
9810 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
9811
9812 PR tree-optimization/49038
9813 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
9814 Ensure at least one epilogue iteration if required by data
9815 accesses with gaps.
9816 * tree-vectorizer.h (struct _loop_vec_info): Add new field
9817 to mark loops that require peeling for gaps.
9818 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
9819 (vect_get_known_peeling_cost): Take peeling for gaps into
9820 account.
9821 (vect_transform_loop): Generate epilogue if required by data
9822 access with gaps.
9823 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
9824 loop as requiring an epilogue if there are gaps in the end of
9825 the strided group.
9826
9827 2011-05-25 Ian Lance Taylor <iant@google.com>
9828
9829 * godump.c (go_format_type): Output the first field with a usable
9830 Go type, if any.
9831
9832 2011-05-25 Ian Lance Taylor <iant@google.com>
9833
9834 * godump.c (go_format_type): Check for invalid type names, pointer
9835 target types, and struct field types.
9836
9837 2011-05-25 Jason Merrill <jason@redhat.com>
9838
9839 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
9840
9841 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
9842
9843 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
9844
9845 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
9846
9847 * config/i386/i386.md (*movqi_extv_1)): Put back
9848 "register_operand" check in "type" calculation.
9849 (*movqi_extzv_2): Likewise.
9850
9851 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
9852
9853 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
9854
9855 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
9856
9857 PR bootstrap/49160
9858 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
9859 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
9860 __divxc3, __divtc3): Wrap definitions in #ifndef.
9861
9862 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
9863
9864 PR target/49142
9865 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
9866 "register_operand" check and replace q_regs_operand with
9867 QIreg_operand in "type" calculation.
9868 (*movqi_extv_1): Likewise.
9869 (*movqi_extzv_2_rex64): Likewise.
9870 (*movqi_extzv_2): Likewise.
9871
9872 * config/i386/predicates.md (QIreg_operand): New.
9873
9874 2011-05-25 Richard Guenther <rguenther@suse.de>
9875
9876 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
9877 type-based offset disambiguation, streamline MEM_REF and
9878 TARGET_MEM_REF handling.
9879
9880 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
9881
9882 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
9883 (bdesc_special_args): Add pause intrinsic.
9884
9885 * config/i386/i386.md (UNSPEC_PAUSE): New.
9886 (pause): Likewise.
9887 (*pause): Likewise.
9888 * config/i386/ia32intrin.h (__pause): Likewise.
9889
9890 * doc/extend.texi (X86 Built-in Functions): Add documentation for
9891 pause intrinsic.
9892
9893 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9894
9895 PR tree-optimization/46728
9896 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
9897 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
9898
9899 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
9900
9901 * tree.h (struct tree_exp): Inherit from struct tree_typed.
9902 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
9903 instead of TS_COMMON.
9904
9905 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
9906
9907 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
9908 LIBGCC2_GNU_PREFIX is defined.
9909 (__N): New macro.
9910 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
9911 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
9912 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
9913 __clz_tab): Define using __N.
9914 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
9915 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
9916 * target.def (libfunc_gnu_prefix): New hook.
9917 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
9918 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
9919 * doc/tm.texi: Regenerate.
9920 * system.h (LIBGCC2_GNU_PREFIX): Poison.
9921 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
9922 account.
9923 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
9924 (init_optabs): Likewise for the bswap libfuncs.
9925 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
9926 and divide.
9927 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
9928 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
9929 * libgcc-std.ver: Remove.
9930 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
9931 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
9932 libgcc-std.ver.
9933 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9934 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
9935 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
9936 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
9937 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
9938 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9939 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9940 * config/fixed-bit.h (FIXED_OP): Define differently depending on
9941 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
9942 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
9943
9944 2011-05-25 Jan Hubicka <jh@suse.cz>
9945
9946 * lto-streamer-out.c (output_record_start): Use lto_output_enum
9947 (lto_output_tree): Use output_record_start.
9948 * lto-streamer-in.c (input_record_start): Use lto_input_enum
9949 (lto_get_pickled_tree): Use input_record_start.
9950 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
9951 (lto_value_range_error): New function.
9952 * lto-streamer.h (lto_value_range_error): Declare.
9953 (lto_output_int_in_range, lto_input_int_in_range): New functions.
9954 (lto_output_enum, lto_input_enum): New macros.
9955
9956 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
9957
9958 * common.opt (flag_stack_usage_info): New variable.
9959 (-Wstack-usage): New option.
9960 * doc/invoke.texi (Warning options): Document -Wstack-usage.
9961 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
9962 <OPT_fstack_usage>: Likewise.
9963 * toplev.c (output_stack_usage): Handle -Wstack-usage.
9964 * calls.c (expand_call): Test flag_stack_usage_info variable instead
9965 of flag_stack_usage.
9966 (emit_library_call_value_1): Likewise.
9967 * explow.c (allocate_dynamic_stack_space): Likewise.
9968 * function.c (instantiate_virtual_regs ): Likewise.
9969 (prepare_function_start): Likewise.
9970 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
9971 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
9972 * config/arm/arm.c (arm_expand_prologue): Likewise.
9973 (thumb1_expand_prologue): Likewise.
9974 * config/avr/avr.c (expand_prologue): Likewise.
9975 * config/i386/i386.c (ix86_expand_prologue): Likewise.
9976 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
9977 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
9978 * config/mips/mips.c (mips_expand_prologue): Likewise.
9979 * config/pa/pa.c (hppa_expand_prologue): Likewise.
9980 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
9981 * config/s390/s390.c (s390_emit_prologue): Likewise.
9982 * config/sh/sh.c (sh_expand_prologue): Likewise.
9983 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
9984 * config/spu/spu.c (spu_expand_prologue): Likewise.
9985
9986 2011-05-25 Richard Guenther <rguenther@suse.de>
9987
9988 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
9989 (gimple_canonical_types_compatible_p): Likewise.
9990
9991 2011-05-25 Jan Hubicka <jh@suse.cz>
9992
9993 PR middle-end/49062
9994 * ipa.c (function_and_variable_visibility): Only add to same
9995 comdat group list if DECL_ONE_ONLY.
9996
9997 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
9998
9999 PR rtl-optimization/49014
10000 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
10001
10002 2011-05-25 Jakub Jelinek <jakub@redhat.com>
10003
10004 PR target/49128
10005 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
10006
10007 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
10008
10009 PR rtl-optimization/48757
10010 * ira-build.c (loop_with_eh_edge_p): Rename to
10011 loop_with_complex_edge_p, check edges on complexity, make function
10012 conditional.
10013 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
10014 conditional.
10015
10016 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
10017
10018 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
10019 force flag_ira_share_save_slots to 0.
10020
10021 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
10022
10023 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
10024 (vt_initialize): Set PROLOGUE_BB unconditionally.
10025 Add block comment about CFA_BASE_RTX machinery.
10026 Reset FP_CFA_OFFSET to -1 on all invalid paths.
10027 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
10028
10029 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
10030
10031 PR objc/48187
10032 * c-parser.c (c_parser_objc_class_instance_variables): More robust
10033 parsing of syntax error in ObjC instance variable lists. In
10034 particular, avoid an infinite loop if there is a stray ']'.
10035 Updated error message.
10036
10037 2011-05-24 Ian Lance Taylor <iant@google.com>
10038
10039 * godump.c (go_define): Don't accept a string immediately after
10040 another operand.
10041
10042 2011-05-24 Ian Lance Taylor <iant@google.com>
10043
10044 * godump.c (struct godump_container): Add invalid_hash field.
10045 (go_format_type): Return false if type is found in invalid_hash.
10046 (go_output_typedef): Add invalid type to invalid_hash.
10047 (go_finish): Create and delete invalid_hash.
10048
10049 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10050
10051 PR tree-optimization/46728
10052 * tree-ssa-math-opts.c (powi_table): New.
10053 (powi_lookup_cost): New.
10054 (powi_cost): New.
10055 (powi_as_mults_1): New.
10056 (powi_as_mults): New.
10057 (gimple_expand_builtin_powi): New.
10058 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
10059 (gate_cse_sincos): Remove sincos/cexp restriction.
10060
10061 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10062
10063 PR target/3746
10064 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
10065 mips-tdump native.
10066 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
10067 * mips-tdump.c: Likewise.
10068
10069 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
10070
10071 PR target/49128
10072 * config/i386/driver-i386.c (host_detect_local_cpu): Always
10073 add -mno-XXX. Handle FMA.
10074
10075 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
10076
10077 PR rtl-optimization/48633
10078 * ira-build.c (loop_with_eh_edge_p): New function.
10079 (mark_loops_for_removal): Use it.
10080
10081 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
10082
10083 PR rtl-optimization/48971
10084 * ira.c (setup_pressure_classes): Don't check register move cost
10085 for classes with one registers. Don't add pressure class if there
10086 is a pressure class with the same available hard registers.
10087 Check contains_reg_of_mode. Fix a typo in collecting
10088 temp_hard_regset. Ignore hard registers not belonging to a class.
10089
10090 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
10091
10092 PR target/49133
10093 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
10094
10095 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
10096 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10097
10098 PR gcov-profile/48845
10099 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
10100
10101 2011-05-24 Richard Guenther <rguenther@suse.de>
10102
10103 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
10104 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
10105 (gimple_types_compatible_p_1): Adjust.
10106 (iterative_hash_canonical_type): Do not bother about complete vs.
10107 incomplete types.
10108 (gimple_canonical_types_compatible_p): Likewise.
10109
10110 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10111
10112 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
10113
10114 2011-05-24 Richard Guenther <rguenther@suse.de>
10115
10116 PR bootstrap/49078
10117 * gimple.c (gimple_register_canonical_type): Revert
10118 previous change.
10119 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
10120 does not for a tree for the case where it matters. Cache
10121 pointer-type alias-sets.
10122
10123 2011-05-24 Joseph Myers <joseph@codesourcery.com>
10124
10125 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
10126 (OBJS): Remove options.o, opts-common.o and prefix.o.
10127 (OBJS-libcommon-target): New.
10128 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
10129 (BACKEND): Include libcommon-target.a.
10130 (MOSTLYCLEANFILES): Include libcommon-target.a.
10131 (libcommon-target.a): New.
10132 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
10133 prefix.o.
10134
10135 2011-05-23 Joseph Myers <joseph@codesourcery.com>
10136
10137 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
10138 parts of output shared with the driver.
10139 * optc-gen.awk: Don't generate parts of output not shared with the
10140 driver.
10141 * opth-gen.awk: Remove GCC_DRIVER conditionals.
10142 * doc/options.texi (SourcerInclude): Mention options-save.c.
10143 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
10144 (OBJS): Add options-save.o.
10145 (options-save.c, options-save.o): New.
10146 (options.o): Update dependencies.
10147 (gcc-options.o): Remove.
10148 (mostlyclean): Remove options-save.c.
10149
10150 2011-05-23 Jakub Jelinek <jakub@redhat.com>
10151
10152 PR debug/49032
10153 * dbxout.c: Include cgraph.h.
10154 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
10155 and without value expr, return NULL if no varpool node exists for
10156 it or if it is not needed.
10157 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
10158
10159 PR c/49120
10160 * c-decl.c (start_decl): Convert expr to void_type_node.
10161
10162 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
10163
10164 PR rtl-optimization/48826
10165 * emit-rtl.c (try_split): When splitting a call that is followed
10166 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
10167
10168 2011-05-23 Jakub Jelinek <jakub@redhat.com>
10169
10170 * cfgexpand.c (expand_debug_expr): For unused non-addressable
10171 parameters passed in memory prefer using DECL_INCOMING_RTL over
10172 the pseudos it will be copied into.
10173
10174 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
10175
10176 PR target/47315
10177 * config/i386/i386.c (ix86_option_override_internal): Save the
10178 initial options after checking vzeroupper.
10179
10180 2011-05-23 David Li <davidxl@google.com>
10181
10182 PR tree-optimization/48988
10183 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
10184 Initialize has_valid_pred for each pred chain.
10185
10186 2011-05-23 Richard Guenther <rguenther@suse.de>
10187
10188 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
10189 (iterative_hash_gimple_type): Always hash type names.
10190
10191 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
10192
10193 * c-typeck.c (build_function_call_vec): Tweak call to
10194 check_function_arguments.
10195
10196 2011-05-23 Richard Guenther <rguenther@suse.de>
10197
10198 PR tree-optimization/49115
10199 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
10200 is not necessarily carried out, do not claim it kills the ref.
10201 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
10202
10203 2011-05-23 Richard Guenther <rguenther@suse.de>
10204
10205 PR middle-end/15419
10206 * builtins.c (fold_builtin_memory_op): Be less restrictive about
10207 what pointer types we accept for folding.
10208
10209 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10210
10211 * gthr-gnat.c: Remove.
10212 * gthr-gnat.h: Remove.
10213 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
10214 * config/t-freebsd (LIB2ADDEH): Likewise.
10215 * config/t-linux (LIB2ADDEH): Likewise.
10216 * config/t-sol2 (LIB2ADDEH): Likewise.
10217 * config/ia64/t-vms (LIB2ADDEH): Likewise.
10218 * configure.ac (target_thread_file): Remove gnat handling.
10219 * configure: Regenerate.
10220 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
10221
10222 2011-05-23 Tristan Gingold <gingold@adacore.com>
10223 Eric Botcazou <ebotcazou@adacore.com>
10224
10225 * gcov.c (create_file_names): If no object directory is specified,
10226 keep the directory of the file.
10227
10228 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10229
10230 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
10231 * configure: Regenerate.
10232
10233 2011-05-23 Jakub Jelinek <jakub@redhat.com>
10234
10235 PR middle-end/48973
10236 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
10237 failed and the comparison has a single bit signed type, use
10238 constm1_rtx instead of const1_rtx for true value.
10239 (do_store_flag): If ops->type is single bit signed type, disable
10240 signel bit test optimization and pass -1 instead of 1 as last
10241 parameter to emit_store_flag_force.
10242
10243 2011-05-23 Tom de Vries <tom@codesourcery.com>
10244
10245 PR target/45098
10246 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
10247 function.
10248 (infer_loop_bounds_from_undefined): Use new function.
10249
10250 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
10251
10252 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
10253 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
10254 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
10255 and -O0 otherwise.
10256 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
10257
10258 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
10259
10260 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
10261 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
10262 returns true.
10263
10264 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
10265
10266 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
10267
10268 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
10269
10270 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
10271 UNSPEC_MOVE_PIC pattern.
10272
10273 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
10274
10275 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
10276 (sparc-*-rtems*): Likewise.
10277 (sparc64-*-elf*): Likewise.
10278 (sparc64-*-rtems*): Likewise.
10279 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
10280 * config/sparc/t-crtin: New file.
10281 * config/sparc/t-sol2 (crti.o): Delete rule.
10282 (crtn.o): Likewise.
10283 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
10284 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
10285 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
10286 (ENDFILE_SPEC): Add crtn.o.
10287
10288 2011-05-22 Tom de Vries <tom@codesourcery.com>
10289
10290 PR middle-end/48689
10291 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
10292 CODE_CONTAINS_STRUCT (TS_COMMON).
10293
10294 2011-05-22 Jakub Jelinek <jakub@redhat.com>
10295
10296 PR middle-end/49029
10297 * expmed.c (extract_fixed_bit_field): Test whether target can be used
10298 only after deciding which mode to use.
10299
10300 2011-05-22 Tom de Vries <tom@codesourcery.com>
10301
10302 PR target/45098
10303 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
10304 for call to get_shiftadd_cost.
10305
10306 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
10307
10308 PR target/49104
10309 * config/i386/cpuid.h (bit_MMXEXT): New define.
10310
10311 2011-05-22 Nick Clifton <nickc@redhat.com>
10312
10313 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
10314 initialisation of non-existant args[2] element. Use args[] array
10315 not arg[] array to pass arguments to build_function_type_list.
10316
10317 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
10318
10319 PR tree-optimization/49087
10320 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
10321
10322 2011-05-21 Jason Merrill <jason@redhat.com>
10323
10324 PR c++/49092
10325 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
10326 static storage duration.
10327
10328 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
10329
10330 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
10331 frame pointer.
10332
10333 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
10334
10335 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
10336 false if there are call-saved registers here...
10337 (sparc_can_use_return_insn_p): ...but here instead.
10338 (save_or_restore_regs): Fix thinko.
10339 (sparc_expand_prologue): Use current_function_is_leaf.
10340 (sparc_frame_pointer_required): Likewise.
10341
10342 2011-05-21 Nick Clifton <nickc@redhat.com>
10343
10344 PR target/49098
10345 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
10346
10347 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
10348
10349 * gengtype.c (walk_type): Implemented "atomic" GTY option.
10350 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
10351
10352 2011-05-21 Joseph Myers <joseph@codesourcery.com>
10353
10354 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
10355 * optc-gen.awk: Move common code to opt-read.awk.
10356 * opth-gen.awk: Likewise.
10357 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
10358
10359 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
10360
10361 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
10362
10363 2011-05-20 Tom de Vries <tom@codesourcery.com>
10364
10365 PR target/45098
10366 * tree-ssa-loop-ivopts.c: Include expmed.h.
10367 (get_shiftadd_cost): New function.
10368 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
10369
10370 2011-05-20 Jakub Jelinek <jakub@redhat.com>
10371
10372 PR bootstrap/49086
10373 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
10374 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
10375
10376 2011-05-20 Joseph Myers <joseph@codesourcery.com>
10377
10378 * Makefile.in: Update comment referring to $(OBJS-common).
10379
10380 2011-05-20 Ian Lance Taylor <iant@google.com>
10381
10382 * godump.c (go_output_typedef): Put enum constants in the macro
10383 hash table to avoid duplicate Go const definitions.
10384
10385 2011-05-20 Joseph Myers <joseph@codesourcery.com>
10386
10387 * Makefile.in (LIBDEPS): Add libcommon.a.
10388 (LIBS): Likewise.
10389 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
10390 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
10391 pretty-print.o and version.o.
10392 (OBJS-libcommon): New.
10393 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
10394 (BACKEND): Add libcommon.a.
10395 (MOSTLYCLEANFILES): Likewise.
10396 (libcommon.a): New.
10397 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
10398 (cpp$(exeext)): Likewise.
10399 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
10400 pretty-print.o and input.o.
10401 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
10402 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
10403 (errors.o): Remove.
10404 (mips-tfile): Don't explicitly use version.o.
10405 (mips-tdump): Likewise.
10406 (gcov.o): Depend on $(DIAGNOSTIC_H).
10407 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
10408 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
10409 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
10410 * gcov-dump.c: Include intl.h and diagnostic.h.
10411 (main): Initialize diagnostics.
10412 * gcov.c: Include diagnostic.h.
10413 (fnotice): Remove.
10414 (main): Initialize diagnostics.
10415 * lto-wrapper.c: Include diagnostic.h.
10416 (main): Initialize diagnostics.
10417
10418 2011-05-20 Michael Matz <matz@suse.de>
10419
10420 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
10421
10422 2011-05-20 Michael Matz <matz@suse.de>
10423 Richard Guenther <rguenther@suse.de>
10424
10425 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
10426 use lto_streamer_cache_append directly instead of returning a VEC.
10427 (preload_common_node): Remove.
10428 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
10429 track seen nodes.
10430 (lto_streamer_cache_create): Call lto_preload_common_nodes.
10431
10432 2011-05-20 Richard Guenther <rguenther@suse.de>
10433
10434 PR tree-optimization/49079
10435 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
10436 MEM_REFs correctly for the trailing array access detection.
10437 Special case constants the same way as decls for overall size
10438 constraining.
10439
10440 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
10441
10442 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
10443 argument expansion.
10444
10445 2011-05-20 Jakub Jelinek <jakub@redhat.com>
10446
10447 PR tree-optimization/49073
10448 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
10449 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
10450 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
10451
10452 2011-05-20 Richard Guenther <rguenther@suse.de>
10453
10454 PR middle-end/48849
10455 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
10456 of pointer types the same way the middle-end does.
10457
10458 2011-05-20 Richard Guenther <rguenther@suse.de>
10459
10460 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
10461 or pointer-to chains. Delay all fixup to uniquify_nodes.
10462
10463 2011-05-19 Quentin Neill <quentin.neill@amd.com>
10464
10465 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
10466 (fma4_fmaddsub): Likewise
10467
10468 2011-05-19 Jan Hubicka <jh@suse.cz>
10469
10470 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
10471 (GIMPLE_TYPE_PAIR_SIZE): New macro.
10472 (type_pair_cache): New static var.
10473 (lookup_type_pair): Use fixed sized custom hash; make inline.
10474 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
10475 calls of lookup_type_pair.
10476 (print_gimple_types_stats): Remove cache stats.
10477 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
10478 and gtc_ob.
10479
10480 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
10481
10482 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
10483 when TARGET_RDRND is active.
10484 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
10485 Generate dummy SImode target register when target is NULL.
10486
10487 2011-05-19 Joseph Myers <joseph@codesourcery.com>
10488
10489 * config/arm/arm-fpus.def: New.
10490 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
10491 arm-fpus.def.
10492 * config/arm/arm-tables.opt: Regenerate.
10493 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
10494 (arm_option_override): Don't decode FPU name to string here.
10495 * config/arm/arm.opt (mfpu=): Use Enum.
10496 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
10497 Update dependencies.
10498
10499 2011-05-19 Joseph Myers <joseph@codesourcery.com>
10500
10501 * collect2.c: Include diagnostic.h.
10502 (fatal_perror, fatal, error, fancy_abort): Remove.
10503 (main): Set progname. Call xmalloc_set_program_name and
10504 diagnostic_initialize.
10505 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
10506 scan_libraries, resolve_lib_name): Call fatal_error instead of
10507 fatal and fatal_perror.
10508 * collect2.h (error, fatal, fatal_perror): Don't declare.
10509 * tlink.c: Include diagnostic-core.h.
10510 (recompile_files): Call fatal_error instead of fatal_perror.
10511 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
10512 pretty-print.o and input.o.
10513 (collect2.o, tlink.o): Update dependencies.
10514
10515 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10516
10517 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
10518
10519 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10520
10521 PR target/40483
10522 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
10523 COMDAT group syntax, both SPARC and x86 variants.
10524 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
10525 * configure: Regenerate.
10526 * config/sol2.h (TARGET_SOLARIS): Define.
10527 (PUSHSECTION_FORMAT): Remove.
10528 (SECTION_NAME_FORMAT): Define.
10529 * config/sol2.c: Include hashtab.h.
10530 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
10531 expansion, using SECTION_NAME_FORMAT.
10532 (solaris_comdat_htab): New variable.
10533 (struct comdat_entry): Define.
10534 (comdat_hash): New function.
10535 (comdat_eq): New function.
10536 (solaris_elf_asm_comdat_section): New function.
10537 (solaris_define_comdat_signature): New function.
10538 (solaris_code_end): New function.
10539 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
10540 (solaris_code_end): Declare.
10541 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
10542 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
10543 solaris_code_end.
10544 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
10545 Remove ATTRIBUTE_UNUSED.
10546 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
10547 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
10548 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
10549 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
10550 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
10551 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
10552 (PUSHSECTION_FORMAT): Remove.
10553 (SECTION_NAME_FORMAT): Redefine.
10554
10555 2011-05-19 Kai Tietz <ktietz@redhat.com>
10556
10557 * tree-cfg.c (verify_gimple_assign_binary): Barf on
10558 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
10559 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
10560
10561 2011-05-19 Anatoly Sokolov <aesok@post.ru>
10562 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10563
10564 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
10565
10566 2011-05-19 Richard Guenther <rguenther@suse.de>
10567
10568 PR middle-end/48985
10569 * tree-object-size.c (addr_object_size): If the pointed-to
10570 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
10571
10572 2011-05-19 Richard Guenther <rguenther@suse.de>
10573
10574 * gimple.c (gimple_types_compatible_p_1): Compare names of
10575 the types themselves.
10576 (iterative_hash_gimple_type): And hash them that way.
10577 (gimple_register_type_1): If we register a main variant properly
10578 initialize the leader to ourselves.
10579
10580 2011-05-19 Tom de Vries <tom@codesourcery.com>
10581
10582 PR target/45098
10583 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
10584 get_loop_invariant_expr_id.
10585 (get_loop_invariant_expr_id): Use get_expr_id.
10586 (parm_decl_cost): New function.
10587 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
10588 Improve bound cost estimation. Use different inv_expr_id for elim and
10589 express cases.
10590
10591 2011-05-19 Tom de Vries <tom@codesourcery.com>
10592
10593 PR target/45098
10594 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
10595 cost_base.cost == 0.
10596
10597 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
10598
10599 PR target/49002
10600 * config/i386/sse.md
10601 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
10602 load cast.
10603
10604 2011-05-18 Jakub Jelinek <jakub@redhat.com>
10605
10606 PR tree-optimization/49039
10607 * tree-vrp.c (extract_range_from_binary_expr): For
10608 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
10609 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
10610
10611 2011-05-18 Tom de Vries <tom@codesourcery.com>
10612
10613 PR target/45098
10614 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
10615
10616 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
10617
10618 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
10619 (*tls_global_dynamic_64): Ditto.
10620 (*tls_local_dynamic_base_32_gnu): Ditto.
10621 (*tls_local_dynamic_base_64): Ditto.
10622 (tls_initial_exec_64_sun): Ditto.
10623
10624 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
10625
10626 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
10627 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
10628 bf592-none.
10629 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
10630 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
10631 * config/bfin/bfin.c (bfin_cpus): Add bf592.
10632 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10633 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
10634 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
10635 * config/bfin/elf.h (LIB_SPEC): Add bf592.
10636
10637 2011-05-18 Joseph Myers <joseph@codesourcery.com>
10638
10639 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
10640 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
10641 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
10642 target_thread_pointer, arm_structure_size_boundary, struct
10643 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
10644 struct abi_name, arm_all_abis): Remove.
10645 (arm_option_override) Don't process most enumerated option values here.
10646 Don't process target_fpe_name here. Work with integer not string for
10647 structure size boundary; use separate diagnostics for each case.
10648 * config/arm/arm.h (enum float_abi_type, enum
10649 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
10650 to arm-opts.h.
10651 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
10652 arm_structure_size_boundary): Remove.
10653 * config/arm/arm.opt (mabi=): Use Enum and Init.
10654 (arm_abi_type): New Enum and EnumValue entries.
10655 (mfloat-abi=): Use Enum and Init.
10656 (float_abi_type): New Enum and EnumValue entries.
10657 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
10658 (mfp16-format=): Use Enum and Init.
10659 (arm_fp16_format_type): New Enum and EnumValue entries.
10660 (mstructure-size-boundary=): Use UInteger and Init.
10661 (mtp=): Use Enum and Init.
10662 (arm_tp_type): New Enum and EnumValue entries.
10663
10664 2011-05-18 Richard Guenther <rguenther@suse.de>
10665
10666 PR tree-optimization/49018
10667 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
10668 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
10669 gimple_has_side_effects.
10670
10671 2011-05-18 Richard Guenther <rguenther@suse.de>
10672
10673 * gimple.c (gimple_register_type_1): New function, split out from ...
10674 (gimple_register_type): ... here. Avoid infinite recursion.
10675
10676 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
10677
10678 PR tree-optimization/41881
10679 * tree-vectorizer.h (struct _loop_vec_info): Add new field
10680 reduction_chains along with a macro for its access.
10681 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
10682 (destroy_loop_vec_info): Free reduction chains.
10683 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
10684 (vect_is_slp_reduction): New function.
10685 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
10686 (vect_create_epilog_for_reduction): Support SLP reduction chains.
10687 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
10688 definition types for reduction chains.
10689 (vect_supported_load_permutation_p): Don't allow permutations for
10690 reduction chains.
10691 (vect_analyze_slp_instance): Support reduction chains.
10692 (vect_analyze_slp): Try to build SLP instance from reduction chains.
10693 (vect_get_constant_vectors): Handle reduction chains.
10694 (vect_schedule_slp_instance): Mark the first statement of the
10695 reduction chain as reduction.
10696
10697 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
10698
10699 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
10700 names for group elements access.
10701 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
10702 reduction chains as well. Remove data reference and interleaving
10703 related words from the fields names.
10704 * tree-vect-loop.c (vect_transform_loop): Use new names for group
10705 elements access.
10706 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
10707 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
10708 vect_update_interleaving_chain, vect_same_range_drs,
10709 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
10710 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
10711 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
10712 vect_analyze_group_access, vect_analyze_data_ref_access,
10713 vect_create_data_ref_ptr, vect_transform_strided_load,
10714 vect_record_strided_load_vectors): Likewise.
10715 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
10716 vect_model_load_cost, vectorizable_store, vectorizable_load,
10717 vect_remove_stores, new_stmt_vec_info): Likewise.
10718 * tree-vect-slp.c (vect_build_slp_tree,
10719 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
10720
10721 2011-05-18 Richard Guenther <rguenther@suse.de>
10722
10723 PR middle-end/48989
10724 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
10725 operand verification.
10726 (verify_gimple_assign_binary): Likewise.
10727 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
10728 to non-1-precision BOOLEAN_TYPEs.
10729
10730 2011-05-18 Tom de Vries <tom@codesourcery.com>
10731
10732 PR target/45098
10733 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
10734
10735 2011-05-18 Jakub Jelinek <jakub@redhat.com>
10736
10737 PR tree-optimization/49000
10738 * tree-ssa.c (execute_update_addresses_taken): Call
10739 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
10740 be rewritten and decl has been marked for renaming, reset
10741 the debug stmt.
10742
10743 2011-05-17 Joseph Myers <joseph@codesourcery.com>
10744
10745 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
10746 enum_opts_set when testing if attributes have set -mfpmath=.
10747
10748 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
10749
10750 * config/mips/mips.c (mips_handle_option): Remove unused variable.
10751
10752 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
10753
10754 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
10755 info->entry with 0
10756 * tree-inline.c (maybe_inline_call_in_expr): Initialize
10757 id.transform_lang_insert_block with NULL.
10758
10759 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
10760
10761 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
10762 (output_fp_compare): Change args 3 and 4 to bool.
10763 (ix86_expand_call): Change arg 6 to bool.
10764 (ix86_attr_length_immediate_default): Change arg 2 to bool.
10765 (ix86_attr_length_vex_default): Change arg 3 to bool.
10766 * config/i386/i386.md: Update all uses.
10767 * config/i386/i386.c: Ditto.
10768 (ix86_flags_dependent): Change return type to bool.
10769
10770 2011-05-17 Richard Guenther <rguenther@suse.de>
10771
10772 * gimple.c (type_hash_pair_compare): Fix comparison.
10773
10774 2011-05-17 Richard Guenther <rguenther@suse.de>
10775
10776 * gimple.c (iterative_hash_gimple_type): Simplify singleton
10777 case some more, fix final hash value of the non-singleton case.
10778
10779 2011-05-17 Richard Guenther <rguenther@suse.de>
10780
10781 PR bootstrap/49013
10782 Revert
10783 2011-05-16 Richard Guenther <rguenther@suse.de>
10784
10785 * gimple.c (gimple_types_compatible_p_1): Use names of the
10786 type itself, not its main variant.
10787 (iterative_hash_gimple_type): Likewise.
10788
10789 2011-05-17 Richard Guenther <rguenther@suse.de>
10790
10791 * gimple.c (gimple_register_canonical_type): Use the main-variant
10792 leader for computing the canonical type.
10793
10794 2011-05-17 Nick Clifton <nickc@redhat.com>
10795
10796 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
10797 moves.
10798
10799 * config/rx/rx.md: Add peephole to remove redundant extensions
10800 after loads.
10801 (bitset_in_memory): Use rx_restricted_mem_operand.
10802 (bitinvert_in_memory): Likewise.
10803 (bitclr_in_memory): Likewise.
10804
10805 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
10806 Nick Clifton <nickc@redhat.com>
10807
10808 * config/rx/rx.md: Add peepholes to match a register move followed
10809 by a comparison of the moved register. Replace these with an
10810 addition of zero that does both actions in one instruction.
10811
10812 2011-05-17 Jakub Jelinek <jakub@redhat.com>
10813
10814 PR target/48986
10815 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
10816 predicate to allow CONST_INT.
10817 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
10818
10819 2011-05-16 Joseph Myers <joseph@codesourcery.com>
10820
10821 * opts-common.c (opt_enum_arg_to_value): New.
10822 * opts.h (opt_enum_arg_to_value): Declare.
10823 * config/i386/i386.opt (fpmath): Remove.
10824 (mfpmath=): Use Enum, Init and Save.
10825 (fpmath_unit): New Enum and EnumValue entries.
10826 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
10827 name for function fpmath state.
10828 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
10829 * config/i386/i386.c: Include diagnostic.h.
10830 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
10831 (ix86_target_string): Take enum fpmath_unit value instead of string.
10832 (ix86_debug_options): Update call to ix86_target_string.
10833 (ix86_option_override_internal): Don't process fpmath strings here.
10834 (x86_function_specific_save, ix86_function_specific_restore):
10835 Don't handle fpmath state specially.
10836 (ix86_function_specific_print): Pass fpmath state to
10837 ix86_target_string instead of printing in this function.
10838 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
10839 Handle enum attributes.
10840 (IX86_ATTR_ENUM, ix86_opt_enum): New.
10841 (ix86_valid_target_attribute_tree): Update option_strings
10842 handling. Handle fpmath as enum option.
10843 (ix86_can_inline_p): Update field names for function fpmath state.
10844 (ix86_expand_builtin): Update call to ix86_target_string.
10845 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
10846 (ix86_fpmath): Remove.
10847 * config/i386/t-i386 (i386.o): Update dependencies.
10848
10849 2011-05-16 Joseph Myers <joseph@codesourcery.com>
10850
10851 PR preprocessor/48677
10852 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
10853 from decoded_options[0], not from itself.
10854
10855 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
10856
10857 * config/i386/constraints.md (z): New constraint.
10858 * config/i386/i386.c (c): New mode attribute.
10859 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
10860 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
10861 constraint for operand 0.
10862 (*call_vzeroupper): Ditto.
10863 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
10864 (*call_rex64_ms_sysv_vzeroupper): Ditto.
10865 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
10866 Use "lzm" constraint for operand 0.
10867 (*call_pop_vzeroupper): Ditto.
10868 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
10869 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
10870 constraint for operand 0.
10871 (*sibcall_vzeroupper): Ditto.
10872 (*sibcall_rex64_ms_sysv): Ditto.
10873 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
10874 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
10875 *sibcall_pop_1. Use "Uz" constraint for operand 0.
10876 (*sibcall_pop_vzeroupper): Ditto.
10877 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
10878 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
10879 mode iterator. Use "<c>zm" constraint for operand 1.
10880 (*call_value_vzeroupper): Ditto.
10881 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
10882 for operand 1.
10883 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
10884 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
10885 *call_value_pop_1. Use "lzm" constraint for operand 1.
10886 (*call_value_pop_vzeroupper): Ditto.
10887 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
10888 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
10889 mode iterator. Use "Uz" constraint for operand 1.
10890 (*sibcall_value_vzeroupper): Ditto.
10891 (*sibcall_value_rex64_ms_sysv): Ditto.
10892 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
10893 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
10894 constraint for operand 1.
10895 (*sibcall_value_pop_vzeroupper): Ditto.
10896 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
10897 and "z" constraint for operand 2.
10898 (*tls_global_dynamic_32_gnu): Ditto.
10899 (*tls_local_dynamic_base_32_gnu): Ditto.
10900 (*tls_local_dynamic_base_64): Ditto.
10901 (*tls_local_dynamic_32_once): Ditto.
10902 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
10903 Update all callers.
10904 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
10905
10906 2011-05-16 Richard Guenther <rguenther@suse.de>
10907
10908 * gimple.c (gimple_types_compatible_p_1): Use names of the
10909 type itself, not its main variant.
10910 (iterative_hash_gimple_type): Likewise.
10911
10912 2011-05-16 Richard Guenther <rguenther@suse.de>
10913
10914 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
10915 always visit pointer target and function result and argument types.
10916
10917 2011-05-16 Jason Merrill <jason@redhat.com>
10918
10919 PR c++/48999
10920 * tree-inline.c (copy_statement_list): Put back recursion.
10921
10922 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
10923
10924 PR target/27663
10925 PR target/41076
10926 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
10927 * config/avr/avr.md ("*ior<mode>qi.byte0",
10928 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
10929
10930 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
10931
10932 PR target/45099
10933 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
10934 register is needed for a function argument.
10935
10936 2011-05-16 Richard Guenther <rguenther@suse.de>
10937
10938 * gimple.c (struct type_hash_pair): New type.
10939 (type_hash_pair_compare): New function.
10940 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
10941
10942 2011-05-16 Revital Eres <revital.eres@linaro.org>
10943
10944 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
10945
10946 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
10947
10948 * config/i386/i386.md (floating point move splitters): Fix
10949 usage of standard_80387_constant_p.
10950 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
10951
10952 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
10953
10954 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
10955
10956 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
10957
10958 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
10959 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
10960 (tree_ssa_lim_finalize): Likewise.
10961
10962 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
10963
10964 * config/i386/constraint.md (Yd, Yx): New register constraints.
10965 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
10966 Yd conditional register constraint.
10967 (*movtf_internal): Use standard_sse_constant_opcode.
10968 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
10969 Yx conditional register constraint.
10970 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
10971 Yd conditional register constraint. Use standard_sse_constant_p to
10972 check for valid SSE constants and call standard_sse_constant_opcode to
10973 output SSE insn.
10974 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
10975 constants and call standard_sse_constant_opcode to output SSE insn.
10976 * config/i386/i386.c (ix86_option_ovverride_internal): Set
10977 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
10978 optimize_size is set.
10979 (standard_sse_constant_opcode): Output conditional AVX insn templates.
10980
10981 2011-05-14 Tobias Burnus <burnus@net-b.de>
10982
10983 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
10984
10985 2011-05-13 Martin Jambor <mjambor@suse.cz>
10986
10987 * ipa-prop.c (ipa_cst_from_jfunc): New function.
10988 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
10989 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
10990 (evaluate_conditions_for_ipcp_clone): Removed.
10991 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
10992 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
10993 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
10994
10995 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
10996
10997 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
10998 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
10999 lieu of MAY_HAVE_DEBUG_STMTS.
11000 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
11001 debug statements if !MAY_HAVE_DEBUG_STMTS.
11002
11003 2011-05-13 Martin Thuresson <martint@google.com>
11004
11005 PR gcov-profile/47793
11006 * libgcov.c (gcov_exit): Support relative profile paths.
11007 * doc/invoke.texi (-fprofile-dir): Update for above change.
11008
11009 2011-05-13 Richard Guenther <rguenther@suse.de>
11010
11011 * gimple.c (gimple_canonical_types_compatible_p): Do not use
11012 type-pair caching, do not compare hashes.
11013
11014 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
11015
11016 PR middle-end/48965
11017 * tree-cfg.c (edge_to_cases_cleanup): Return true.
11018 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
11019
11020 2011-05-13 Kai Tietz <ktietz@redhat.com>
11021
11022 * gimplify.c (gimplify_expr): Make sure operand is boolified.
11023 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
11024 compatible type for TRUTH_NOT_EXPR.
11025
11026 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
11027
11028 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
11029 (ix86_hard_regno_mode_ok): Change return value to bool. Use
11030 can_create_pseudo_p ().
11031
11032 2011-05-13 Richard Guenther <rguenther@suse.de>
11033
11034 PR lto/48978
11035 * gimple.c (iterative_hash_gimple_type): Revert change in
11036 pointer target and function result and argument hashing.
11037
11038 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
11039
11040 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
11041 (*movxf_internal_nointeger): Ditto.
11042 (*movdf_internal_rex64): Ditto.
11043 (*movdf_internal): Ditto.
11044 (*movdf_internal_nointeger): Ditto.
11045 (*movsf_internal): Ditto.
11046 (sincos splitters): Use can_create_pseudo ().
11047
11048 2011-05-13 Joseph Myers <joseph@codesourcery.com>
11049
11050 * config/i386/i386-opts.h: New.
11051 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
11052 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
11053 ix86_section_threshold): Remove.
11054 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
11055 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
11056 OPT_mbranch_cost_.
11057 (ix86_option_override_internal): Don't decode strings for options
11058 other than -march=, -mtune= and -mfpmath=. Don't allow for
11059 __attribute__ uses in remaining diagnostics for options with
11060 string arguments. Don't check for integer arguments being negative.
11061 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
11062 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
11063 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
11064 ix86_branch_cost, ix86_section_threshold): Remove.
11065 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
11066 HeaderInclude.
11067 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
11068 but not Var.
11069 (masm=): Use Enum and Init.
11070 (asm_dialect): New Enum and EnumValue entries.
11071 (mbranch-cost=): Use UInteger.
11072 (mlarge-data-threshold=): Use UInteger and Init.
11073 (mcmodel=): Use Enum and Init.
11074 (cmodel): New Enum and EnumValue entries.
11075 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
11076 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
11077 mregparm=): Use UInteger.
11078 (mstringop-strategy=): Use Enum and Init.
11079 (stringop_alg): New Enum and EnumValue entries.
11080 (mtls-dialect=): Use Enum and Init.
11081 (tls_dialect): New Enum and EnumValue entries.
11082 (mabi=): Use Enum and Init.
11083 (calling_abi): New Enum and EnumValue entries.
11084 (mveclibabi=): Use Enum and Init.
11085 (ix86_veclibabi): New Enum and EnumValue entries.
11086
11087 2011-05-13 Nick Clifton <nickc@redhat.com>
11088
11089 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
11090 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
11091
11092 2011-05-13 Kai Tietz <ktietz@redhat.com>
11093
11094 PR middle-end/48984
11095 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
11096 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
11097 (gimple_boolify): Check for cast for boolean_type_node instead for
11098 BOOLEAN_TYPE.
11099
11100 2011-05-13 Richard Guenther <rguenther@suse.de>
11101
11102 PR tree-optimization/48172
11103 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
11104 multiplying by number of iterations for equal step.
11105 (vect_create_cond_for_alias_checks): Likewise.
11106
11107 2011-05-13 Andreas Schwab <schwab@redhat.com>
11108
11109 * configure.ac: Use AS_HELP_STRING throughout.
11110 * configure: Regenerate.
11111
11112 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
11113
11114 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
11115 (ix86_emit_restore_regs_using_mov): Likewise.
11116 (ix86_emit_restore_sse_regs_using_mov): Likewise.
11117
11118 2011-05-12 Anatoly Sokolov <aesok@post.ru>
11119
11120 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
11121 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
11122 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
11123 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
11124 RTX_OK_FOR_OLO10_P): ...here.
11125 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
11126 SYMBOLIC_CONST.
11127
11128 2011-05-12 Kai Tietz <ktietz@redhat.com>
11129
11130 * gimplify.c (gimple_boolify): Re-boolify expression
11131 arguments even if expression type is of kind BOOLEAN_TYPE.
11132 (gimplify_boolean_expr): Removed.
11133 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
11134 and XOR. Additional take care that we keep expression's type.
11135 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
11136 of TRUTH_AND|OR|XOR_EXPR.
11137
11138 2011-05-12 Jakub Jelinek <jakub@redhat.com>
11139
11140 PR tree-optimization/48975
11141 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
11142 on all bbs here and free and clear ifc_bbs at the end.
11143
11144 2011-05-12 Richard Guenther <rguenther@suse.de>
11145
11146 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
11147 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
11148 until after simple checks.
11149 (gimple_types_compatible_p): Likewise.
11150 (iterative_hash_gimple_type): Always hash pointer targets
11151 and function return and argument types.
11152 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
11153 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
11154 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
11155 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
11156 completely in the simple compare section.
11157 (gimple_register_canonical_type): Query the cache again after
11158 registering.
11159
11160 2011-05-12 Richard Guenther <rguenther@suse.de>
11161
11162 PR tree-optimization/48172
11163 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
11164 the number of iterations from the segment size calculation.
11165 (vect_create_cond_for_alias_checks): Adjust.
11166
11167 2011-05-12 Jakub Jelinek <jakub@redhat.com>
11168
11169 PR debug/48967
11170 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
11171 if validate_subreg fails.
11172
11173 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
11174
11175 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
11176 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
11177 early.
11178
11179 2011-05-12 DJ Delorie <dj@redhat.com>
11180
11181 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
11182 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
11183 created builtin into rx_builtins array.
11184 (rx_builtin_decl): New function.
11185 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
11186
11187 2011-05-12 DJ Delorie <dj@redhat.com>
11188 Nick Clifton <nickc@redhat.com>
11189
11190 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
11191 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
11192 (rx_is_legitimate_address): Add pre-decrement and post-increment
11193 addressing in HImode and QImode. Fix test for out of range
11194 REG+INT addressing.
11195 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
11196 (rx_align_for_label): Test label before extracting its usage count.
11197 (rx_adjust_insn_lengths): Fix selection of insn codes.
11198 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
11199
11200 2011-05-11 Jason Merrill <jason@redhat.com>
11201
11202 * tree.c (type_hash_canon): Use struct tree_type_non_common.
11203
11204 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
11205
11206 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
11207 reindent the subsequent block.
11208
11209 2011-05-11 Satoru Takabayashi <satorux@google.com>
11210 Paul Pluzhnikov <ppluzhnikov@google.com>
11211
11212 * doc/install.texi (Configuration): Document --with-linker-hash-style.
11213 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
11214 * config.in: Add LINKER_HASH_STYLE.
11215 * configure.ac: Add --with-linker-hash-style.
11216 * configure: Regenerate.
11217
11218 2011-05-11 Richard Guenther <rguenther@suse.de>
11219
11220 PR middle-end/48964
11221 * gimple.c (iterative_hash_canonical_type): Fix typo.
11222
11223 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
11224
11225 * config/i386/i386.c (legitimize_tls_address)
11226 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
11227 expanders directly for TARGET_GNU2_TLS. Determine pic and
11228 __tls_get_addr symbol reference here. Update call to
11229 gen_tls_global_dynamic_{32,64} for added arguments.
11230 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
11231 expanders directly for TARGET_GNU2_TLS. Determine
11232 __tls_get_addr symbol reference here. Update call to
11233 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
11234 unique UNSPEC REG_EQUIV to libcall block.
11235 (ix86_tls_get_addr): Declare static.
11236 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
11237 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
11238 Do not determine pic and __tls_get_addr symbol reference here. Do not
11239 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
11240 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
11241 (tls_global_dynamic_64): Add operand 2. Do not determine
11242 __tls_get_addr symbol reference here. Do not call
11243 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
11244 (tls_local_dynamic_base64): Ditto for operand 1.
11245
11246 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
11247
11248 * function.c (expand_function_start): Initialize stack_check_probe_note
11249 only if the generic stack checking mechanism is used.
11250
11251 2011-05-11 Richard Guenther <rguenther@suse.de>
11252
11253 PR tree-optimization/15256
11254 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
11255 (A & B) | C, combine (A op CST1) op CST2.
11256 (tree_ssa_forward_propagate_single_use_vars): Only bother to
11257 visit assigns that have uses.
11258
11259 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
11260
11261 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
11262 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
11263 (unpack_ts_type_common_value_fields): ...this. Update comment.
11264 (unpack_value_fields): Adjust for renaming.
11265 (lto_input_ts_type_tree_pointers): Split into...
11266 (lto_input_ts_type_common_tree_pointer): ...this and...
11267 (lto_input_ts_type_non_common_tree_pointers): ...this.
11268 (lto_input_tree_pointers): Adjust for above split.
11269 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
11270 (pack_ts_type_common_value_fields): ...this. Update comment.
11271 (lto_output_ts_type_tree_pointers): Split into...
11272 (lto_output_ts_type_common_tree_pointers): ...this and...
11273 (lto_output_ts_type_non_common_tree_pointers): ...this.
11274 (lto_output_tree_pointers): Adjust for above split.
11275 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
11276 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
11277 * stor-layout.c (vector_type_mode): Adjust location of mode field.
11278 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
11279 Define.
11280 (struct tree_type): Split into...
11281 (struct tree_type_common: ...this and...
11282 (struct tree_type_with_lang_specific): ...this and...
11283 (struct tree_type_non_common): ...this. Adjust accessor macros
11284 accordingly.
11285 (TYPE_VALUES_RAW): Define.
11286 (union tree_node): Update for above changes.
11287 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
11288 TS_TYPE_NON_COMMON.
11289 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
11290 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
11291 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
11292 * treestructu.def (TS_TYPE): Remove.
11293 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
11294 Define.
11295
11296 2011-05-11 Jakub Jelinek <jakub@redhat.com>
11297
11298 PR debug/48159
11299 * tree-ssa.c (reset_debug_uses): New function.
11300 * tree-flow.h (reset_debug_uses): New prototype.
11301 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
11302 * tree-loop-distribution.c (generate_loops_for_partition): Call
11303 reset_debug_uses on the stmts that will be removed. Keep around
11304 all debug stmts, don't count them as bits in partition bitmap.
11305 (generate_builtin): Don't count debug stmts or labels as bits in
11306 partition bitmap.
11307
11308 2011-05-11 Richard Guenther <rguenther@suse.de>
11309
11310 * gimple.c (gimple_type_hash_1): Merge with ...
11311 (gimple_type_hash): ... this.
11312 (gtc_visit): Remove mode parameter and simplify accordingly.
11313 (gimple_types_compatible_p_1): Likewise.
11314 (gimple_types_compatible_p): Likewise.
11315 (iterative_hash_gimple_type): Likewise.
11316 (visit): Likewise.
11317 (gimple_type_eq): Adjust.
11318
11319 2011-05-11 Revital Eres <revital.eres@linaro.org>
11320
11321 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
11322 enters the branch create an anti edge in the opposite direction
11323 to prevent the creation of reg-moves.
11324 * modulo-sched.c: Adjust comment to reflect the fact we are
11325 scheduling closing branch.
11326 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
11327 (stage_count): New field in struct partial_schedule.
11328 (calculate_stage_count): New function.
11329 (normalize_sched_times): Rename to reset_sched_times and handle
11330 incrementing the sched time of the nodes by a constant value
11331 passed as parameter.
11332 (duplicate_insns_of_cycles): Skip closing branch.
11333 (sms_schedule_by_order): Schedule closing branch.
11334 (ps_insn_find_column): Handle closing branch.
11335 (sms_schedule): Call reset_sched_times and adjust the code to
11336 support scheduling of the closing branch.
11337 (ps_insert_empty_row): Update calls to normalize_sched_times
11338 and rotate_partial_schedule functions.
11339
11340 2011-05-11 Richard Guenther <rguenther@suse.de>
11341
11342 PR middle-end/48953
11343 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
11344
11345 2011-05-11 Joseph Myers <joseph@codesourcery.com>
11346
11347 * opts.c (finish_options): Move warning settings from process_options.
11348 * toplev.c (process_options): Move warning settings to finish_options.
11349
11350 2011-05-11 Richard Guenther <rguenther@suse.de>
11351
11352 PR tree-optimization/18041
11353 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
11354 (simplify_bitwise_binary): ... this. Handle operand conversions
11355 by applying them to the result instead.
11356 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
11357
11358 2011-05-11 Richard Guenther <rguenther@suse.de>
11359
11360 * gimple.c (gimple_canonical_types_compatible_p): Split out
11361 from gimple_types_compatible_p and friends. Do not recurse
11362 to pointed-to types.
11363 (gimple_canonical_type_eq): Use it.
11364 (iterative_hash_canonical_type): Split out from
11365 iterative_hash_gimple_type and friends. Do not recurse
11366 to pointed-to types.
11367 (gimple_canonical_type_hash): Use it, allocate the hash here.
11368
11369 2011-05-11 Revital Eres <revital.eres@linaro.org>
11370
11371 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
11372 recognizing doloop.
11373
11374 2011-05-11 Revital Eres <revital.eres@linaro.org>
11375
11376 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
11377 instead of PREV_INSN.
11378
11379 2011-05-11 Revital Eres <revital.eres@linaro.org>
11380
11381 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
11382 * loop-doloop.c (doloop_condition_get): Likewise.
11383 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
11384 (doloop_end): New.
11385 * config/arm/arm.md (*addsi3_compare0): Remove "*".
11386
11387 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
11388
11389 * tree.def (CASE_LABEL_EXPR): Add an operand.
11390 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
11391
11392 2011-05-10 Joseph Myers <joseph@codesourcery.com>
11393
11394 * c-decl.c (c_override_global_bindings_to_false): Remove.
11395 (global_bindings_p): Don't check
11396 c_override_global_bindings_to_false.
11397 * c-tree.h (c_override_global_bindings_to_false): Remove.
11398 * c-typeck.c (composite_type): Don't set
11399 c_override_global_bindings_to_false.
11400
11401 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
11402
11403 PR target/48857, 48495
11404 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
11405 (VSX_MODE): Ditto.
11406 (VSX_MOVE_MODE): Ditto.
11407 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
11408 VSX vector types. Add V2DImode.
11409 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
11410 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
11411 (MODES_TIEABLE_P): Ditto.
11412
11413 * config/rs6000/rs6000.c (rs6000_emit_move): Use
11414 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
11415 VSX_VECTOR_MODE.
11416 (init_cumulative_args): Ditto.
11417 (rs6000_function_arg_boundary): Ditto.
11418 (rs6000_function_arg_advance_1): Ditto.
11419 (rs6000_function_arg): Ditto.
11420 (rs6000_function_ok_for_sibcall): Ditto.
11421 (emit_frame_save): Ditto.
11422 (rs6000_function_value): Ditto.
11423 (rs6000_libcall_value): Ditto.
11424
11425 2011-05-10 Joseph Myers <joseph@codesourcery.com>
11426
11427 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11428 i386/darwin-lib.h to $libgcc_tm_file.
11429 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
11430
11431 2011-05-10 Joseph Myers <joseph@codesourcery.com>
11432
11433 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
11434
11435 2011-05-10 Joseph Myers <joseph@codesourcery.com>
11436
11437 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
11438 * config/rs6000/rs6000-tables.opt: New file (generated).
11439 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
11440 rs6000/rs6000-tables.opt to extra_options.
11441 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
11442 * config/rs6000/rs6000.c (rs6000_select): Remove.
11443 (processor_target_table): Move contents to rs6000-cpus.def.
11444 (darwin_rs6000_override_options): Check
11445 global_options_set.x_rs6000_cpu_index instead of
11446 rs6000_select[1].string.
11447 (rs6000_option_override_internal): Likewise.
11448 (rs6000_handle_option): Don't assert that global structures are in
11449 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
11450 (rs6000_default_cpu): New variable.
11451 (rs6000_file_start): Set it instead of local default_cpu. Check
11452 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
11453 global_options_set.x_rs6000_tune_index instead of rs6000_select.
11454 (rs6000_darwin_file_start): Check rs6000_default_cpu and
11455 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
11456 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
11457 rs6000_select): Remove.
11458 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
11459 Remove.
11460 (mcpu=, mtune=): Use Var, Init, Enum and Save.
11461 * config/rs6000/t-rs6000
11462 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
11463 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11464 global_options_set.x_rs6000_cpu_index instead of
11465 rs6000_select[1].string.
11466 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11467 global_options_set.x_rs6000_cpu_index instead of
11468 rs6000_select[1].string.
11469
11470 2011-05-10 Joseph Myers <joseph@codesourcery.com>
11471
11472 * config.gcc (libgcc_tm_file): Define instead of including files
11473 from ../../libgcc/config/ in tm_file.
11474 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
11475 * configure: Regenerate.
11476 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
11477 libgcc_tm.h, cs-libgcc_tm.h): New.
11478 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
11479 (clean): Remove libgcc_tm.h.
11480 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
11481 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
11482 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
11483
11484 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
11485
11486 PR target/48896
11487 * config/avr/avr.c (avr_ret_register): Return unsigned int
11488 instead of int.
11489 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
11490 it to avr_libcall_value.
11491 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
11492 expand_expr.
11493 (avr_expand_binop_builtin): Ditto.
11494 (avr_expand_unop_builtin): Ditto.
11495
11496 2011-05-10 DJ Delorie <dj@redhat.com>
11497
11498 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
11499 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
11500 * config/rx/rx.c (rx_align_for_label): Add label and
11501 uses_threshold parameters. Do not align when the label is not
11502 used enough.
11503 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
11504
11505 2011-05-10 Richard Guenther <rguenther@suse.de>
11506
11507 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
11508 a series of conversions and apply foldings similar to what
11509 fold-const does.
11510 (tree_ssa_forward_propagate_single_use_vars): Call it.
11511
11512 2011-05-10 Jakub Jelinek <jakub@redhat.com>
11513
11514 PR tree-optimization/48611
11515 PR tree-optimization/48794
11516 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
11517 referenced from RESX or EH_DISPATCH arguments.
11518
11519 PR debug/48928
11520 * dfp.c (decimal_to_decnumber): Handle conversion from
11521 dconst{1,2,m1,half}.
11522
11523 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
11524
11525 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
11526 for !flag_prefer_avx128.
11527 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
11528
11529 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
11530
11531 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
11532 (fold_ternary_loc): Use expr_location_or.
11533
11534 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
11535
11536 PR debug/48853
11537 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
11538 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
11539 Pmode and mem_mode is not VOIDmode.
11540
11541 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
11542
11543 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
11544 TYPE_QUAL_RESTRICT): Convert to enum.
11545
11546 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
11547
11548 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
11549 (const_pow2_1_to_8_operand): Ditto.
11550 (const_pow2_1_to_128_operand): Ditto.
11551 (const_pow2_1_to_32768_operand): Ditto.
11552 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
11553 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
11554 in insn constraint to check integer value of operand 3.
11555 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
11556
11557 (PINSR_MODE): New mode iterator.
11558 (sse2p4_1): New mode attribute.
11559 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
11560 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
11561 iterator. Use const_int_operand instead of
11562 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
11563 exact_log2 in insn constraint to check integer value of operand 3.
11564
11565 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
11566
11567 * config/i386/sse.md (blendbits): Remove mode attribute.
11568 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
11569 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
11570 Check integer value of operand 3 in insn constraint.
11571
11572 2011-05-09 Richard Guenther <rguenther@suse.de>
11573
11574 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
11575 for diagnostics.
11576 (lto_symtab_merge): Likewise. Do not register types here.
11577 (lto_symtab_merge_decls_2): Likewise.
11578 (lto_symtab_merge_decls_1): Likewise.
11579 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
11580 * gimple.c (enum gtc_mode): Declare.
11581 (gimple_types_compatible_p): Make static.
11582
11583 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11584
11585 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
11586 temporary register to match Pmode.
11587
11588 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
11589
11590 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
11591 and *vec_concatv4si_1_avx.
11592
11593 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
11594
11595 PR rtl-optimization/48927
11596 * ira-conflicts.c (commutative_constraint_p): Use
11597 recog_data.alternative_enabled_p to disable alternatives where
11598 "enabled" attribute is false.
11599 (get_dup_num): Ditto.
11600 * ira-lives.c (single_reg_class): Ditto.
11601 (ira_implicitly_set_insn_hard_regs): Ditto.
11602
11603 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
11604
11605 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
11606 (dataflow_set_preserve_mem_locs): Likewise.
11607
11608 2011-05-09 Philipp Thomas <pth@suse.de>
11609
11610 * config/mep/mep.c (mep_validate_vliw): Syntax description
11611 should not be translated.
11612
11613 2011-05-09 Joseph Myers <joseph@codesourcery.com>
11614
11615 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
11616 * config/mips/mips-tables.opt: New file (generated).
11617 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
11618 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
11619 MIPS_ARCH_OPTION_NATIVE): Define.
11620 * config/mips/mips.c (mips_cpu_info_table): Move contents to
11621 mips-cpus.def.
11622 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
11623 mips_parse_cpu): Remove.
11624 (mips_cpu_info_from_opt, mips_default_arch): New.
11625 (mips_handle_option): Don't assert that global structures are in
11626 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
11627 (mips_option_override): Use new variables and functions to set
11628 state of these options. Use strcmp to check for individual CPU names.
11629 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
11630 definition.
11631 * config/mips/mips.opt (march=): Use ToLower and Enum.
11632 (mips): Use ToLower, Enum and Var.
11633 (mtune=): Use ToLower and Enum.
11634 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
11635
11636 2011-05-08 Jan Hubicka <jh@suse.cz>
11637
11638 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
11639 Arrange type pairs to be UID ordered.
11640 (gimple_lookup_type_leader): Make inline.
11641
11642 2011-05-09 Nick Clifton <nickc@redhat.com>
11643
11644 PR target/48899
11645 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
11646 PROCESSOR_DEFAULT.
11647
11648 PR target/48897
11649 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
11650 variable 's'.
11651
11652 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
11653
11654 * combine.c (simplify_comparison): Abstract out parts into...
11655 (simplify_compare_const): ... new function.
11656 (try_combine): Generalize parallel arithmetic/compare combining
11657 to call simplify_compare_const() and CANONICALIZE_COMPARE().
11658
11659 2011-05-08 Jan Hubicka <jh@suse.cz>
11660
11661 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
11662 (cgraph_create_virtual_clone): Call hooks once virtual clone
11663 is finished.
11664 * cgraph.h (cgraph_clone_node): Update prototype.
11665 * ipa-cp.c (ipcp_estimate_growth): Use
11666 estimate_ipcp_clone_size_and_time.
11667 * ipa-inline-transform.c (clone_inlined_nodes): Update.
11668 * lto-cgraph.c (input_node): Update.
11669 * ipa-inline.c (recursive_inlining): Update.
11670 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
11671 (evaluate_conditions_for_known_args): Break out from ...
11672 (evaluate_conditions_for_edge): ... here.
11673 (evaluate_conditions_for_ipcp_clone): New function.
11674 (inline_node_duplication_hook): Update clone summary based
11675 on parameter map.
11676 (estimate_callee_size_and_time): Rename to ...
11677 (estimate_node_size_and_time): take NODE instead of EDGE;
11678 take POSSIBLE_TRUTHS as argument.
11679 (estimate_callee_size_and_time): Update.
11680 (estimate_ipcp_clone_size_and_time): New function.
11681 (do_estimate_edge_time): Update.
11682
11683 2011-05-08 Richard Guenther <rguenther@suse.de>
11684
11685 PR middle-end/48908
11686 PR middle-end/48905
11687 * expmed.c (expand_shift_1): Compute adjusted constant shift
11688 amount manually.
11689
11690 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
11691
11692 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
11693
11694 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
11695
11696 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
11697
11698 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
11699
11700 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
11701
11702 2011-05-07 Jan Hubicka <jh@suse.cz>
11703
11704 * ipa-inline-transform.c (inline_call): Account when program size
11705 decreases.
11706 * ipa-inline.c (relative_time_benefit): New function.
11707 (edge_badness): Reorganize to be power 2 based; fix thinko when
11708 computing badness for negative growth; update comments to match
11709 reality; better dumps.
11710
11711 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
11712
11713 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
11714 type to bool and adjust comment.
11715 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
11716 (fold_mathfn_compare): Remove calls to global_bindings_p.
11717 (fold_inf_compare): Likewise.
11718 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
11719 * c-tree.h (global_bindings_p): Adjust prototype.
11720 * c-decl.c (global_bindings_p): Return bool and simplify.
11721
11722 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
11723
11724 PR tree-optimization/48837
11725 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
11726 when accumulator transformation is performed.
11727
11728 2011-05-06 Jan Hubicka <jh@suse.cz>
11729
11730 * i386.h (ix86_tune_indices): Add
11731 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
11732 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
11733 * i386.c (initial_ix86_tune_features): Add
11734 X86_SOFTARE_PREFETCHING_BENEFICIAL.
11735 (software_prefetching_beneficial_p): Remove predicate.
11736 (ix86_option_override_internal): Use new macro.
11737
11738 2011-05-06 Jan Hubicka <jh@suse.cz>
11739
11740 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
11741
11742 2011-05-06 Jan Hubicka <jh@suse.cz>
11743
11744 * cgraph.c (cgraph_add_thunk): Create real function node instead
11745 of alias node; finalize it and mark needed/reachale; arrange visibility
11746 to be right and add it into the corresponding same comdat group list.
11747 (dump_cgraph_node): Dump thunks.
11748 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
11749 cgraph_function_with_gimple_body_p,
11750 cgraph_first_function_with_gimple_body,
11751 cgraph_next_function_with_gimple_body): New functions.
11752 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
11753 New macros.
11754 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
11755 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
11756 * cgraphunit.c (cgraph_finalize_function): Only look into possible
11757 devirtualization when optimizing.
11758 (verify_cgraph_node): Verify thunks.
11759 (cgraph_analyze_function): Analyze thunks.
11760 (cgraph_mark_functions_to_output): Output thunks only in combination
11761 with function they are assigned to.
11762 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
11763 alias into normal node.
11764 (assemble_thunks): New functoin.
11765 (cgraph_expand_function): Use it.
11766 * lto-cgraph.c (lto_output_node): Stream thunks.
11767 (input_overwrite_node): Stream in thunks.
11768 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
11769 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
11770 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
11771 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
11772 (inline_analyze_function): Do not care about thunk jump functions.
11773 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
11774 * ipa-prop.c (ipa_prop_write_jump_functions): Use
11775 cgraph_function_with_gimple_body_p.
11776 * passes.c (do_per_function_toporder): Use
11777 cgraph_function_with_gimple_body_p.
11778 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
11779 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
11780 (function_called_by_processed_nodes_p): Likewise.
11781
11782 2011-05-06 Joseph Myers <joseph@codesourcery.com>
11783
11784 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
11785 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
11786 entries.
11787 (mabi=): Replace with separate entries for mabi=altivec,
11788 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
11789 mabi=ieeelongdouble and mabi=ibmlongdouble.
11790 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
11791 check for -mabi=spe without SPE ABI support here.
11792 (rs6000_handle_option): Replace OPT_mabi_ handling with
11793 OPT_mabi_altivec and OPT_mabi_spe handling.
11794
11795 2011-05-06 Cary Coutant <ccoutant@google.com>
11796
11797 * dwarf2out.c (contains_subprogram_definition): New function.
11798 (should_move_die_to_comdat): Call it.
11799
11800 2011-05-06 Jeff Law <law@redhat.com>
11801
11802 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
11803 remove_ctrl_stmt_and_useless_edges.
11804 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
11805 (fixup_template_block, thread_single_edge): Likewise.
11806 (mark_threaded_blocks): Use THREAD_TARGET.
11807
11808 2011-05-06 Alan Modra <amodra@gmail.com>
11809
11810 PR target/48900
11811 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
11812 const0_rtx as the arg to the dummy __tls_get_addr libcall.
11813
11814 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
11815
11816 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
11817 constraint modifier to "r".
11818
11819 2011-05-06 Joseph Myers <joseph@codesourcery.com>
11820
11821 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
11822 fall through for OPT_mcmodel_.
11823
11824 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11825
11826 * config/s390/s390.c (s390_asm_trampoline_template): Comment
11827 instruction sizes.
11828 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
11829
11830 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11831
11832 PR target/47930
11833 * config/arm/arm.opt (marm): Document it.
11834 (mthumb): Reject negative variant.
11835
11836 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
11837
11838 PR target/48898
11839 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
11840 Fix typo in "ccvt" variable name.
11841
11842 2011-05-06 Tristan Gingold <gingold@adacore.com>
11843
11844 PR target/48895
11845 * config/vms/vms-ar.c (main): Remove cwd variable.
11846
11847 2011-05-06 Jakub Jelinek <jakub@redhat.com>
11848
11849 PR debug/48902
11850 * var-tracking.c (prepare_call_arguments): Move else before #endif.
11851
11852 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
11853
11854 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
11855 * gimplify.c (gimplify_switch_expr): Likewise.
11856 * omp-low.c (expand_omp_sections): Likewise.
11857 * tree-eh.c (lower_try_finally_switch): Likewise.
11858 (lower_eh_dispatch): Likewise.
11859 * tree.h (build_case_label): Declare.
11860 * tree.c (build_case_label): Define.
11861
11862 2011-05-05 Jason Merrill <jason@redhat.com>
11863
11864 PR c++/40975
11865 * tree-inline.c (copy_tree_r): Use copy_statement_list.
11866 (copy_statement_list): Don't recurse.
11867 * stor-layout.c (copy_self_referential_tree_r): Don't allow
11868 STATEMENT_LIST.
11869
11870 2011-05-05 Joseph Myers <joseph@codesourcery.com>
11871
11872 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
11873 through from -mfpu= handling.
11874 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
11875
11876 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
11877
11878 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
11879 POST_MODIFY.
11880
11881 2011-05-05 Steve Ellcey <sje@cup.hp.com>
11882
11883 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
11884 for 11.31.
11885 (hppa[12]*-*-hpux11*): Ditto.
11886 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
11887 * config/ia64/hpux-unix2003.h: New.
11888 * config/pa/pa-hpux1131.opt: New.
11889 * config/pa/pa-hpux1131.h: New.
11890 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
11891 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
11892 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
11893
11894 2011-05-05 Jakub Jelinek <jakub@redhat.com>
11895
11896 PR debug/48853
11897 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
11898 instead of mode as 3rd argument to recursive call.
11899 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
11900 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
11901 VOIDmode.
11902 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
11903 don't give up if mode is Pmode and mem_mode is not VOIDmode.
11904 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
11905 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
11906
11907 2011-05-05 Julian Brown <julian@codesourcery.com>
11908
11909 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
11910 parenthesis in D-register case.
11911
11912 2011-05-05 Joseph Myers <joseph@codesourcery.com>
11913
11914 * opt-functions.awk (var_type_struct): Handle Enum options.
11915 * optc-gen.awk: Don't check range of variables of character type.
11916 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
11917 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
11918 rs6000_sdata_name, rs6000_explicit_options): Remove.
11919 (rs6000_option_override_internal): Check for -malign-power here.
11920 Use global_options_set instead of rs6000_explicit_options.
11921 (rs6000_parse_fpu_option): Remove.
11922 (rs6000_handle_option): Access variables via opts and opts_set
11923 pointers. Use error_at and warning_at. Add fall-through
11924 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
11925 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
11926 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
11927 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
11928 here. Don't use rs6000_parse_fpu_option.
11929 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
11930 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
11931 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
11932 (mrecip=): Use Var.
11933 (mspe): Use Var and Save.
11934 (mtraceback=): Use Enum and Var.
11935 (rs6000_traceback_type): New Enum and EnumValue entries.
11936 (mfloat-gprs=): Use Enum, Var and Save.
11937 (rs6000_float_gprs): New Enum and EnumValue entries.
11938 (mlong-double-): use Var and Save.
11939 (msched-costly-dep=, minsert-sched-nops=): Use Var.
11940 (malign-): Use Enum and Var.
11941 (rs6000_alignment_flags): New Enum and EnumValue entries.
11942 (mfpu=): Use Enum.
11943 (fpu_type_t): New Enum and EnumValue entries.
11944 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11945 global_options_set instead of rs6000_explicit_options.
11946 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11947 global_options_set instead of rs6000_explicit_options.
11948 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11949 global_options_set instead of rs6000_explicit_options.
11950 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11951 global_options_set instead of rs6000_explicit_options.
11952 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
11953 global_options_set instead of rs6000_explicit_options.
11954 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11955 global_options_set instead of rs6000_explicit_options.
11956 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
11957 definition.
11958 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11959 global_options_set instead of rs6000_explicit_options.
11960 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
11961 (rs6000_cmodel): New Enum and EnumValue entries.
11962 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11963 global_options_set instead of rs6000_explicit_options.
11964 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
11965 (mtls-size=): Use Enum and Var.
11966 (rs6000_tls_size): New Enum and EnumValue entries.
11967
11968 2011-05-05 Michael Matz <matz@suse.de>
11969
11970 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
11971 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
11972 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
11973 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
11974 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
11975 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
11976 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
11977 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
11978 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
11979 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
11980 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
11981 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
11982 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
11983 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
11984 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
11985 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
11986
11987 2011-05-05 Richard Guenther <rguenther@suse.de>
11988
11989 * expmed.c (expand_variable_shift): Rename to ...
11990 (expand_shift_1): ... this. Take an expanded shift amount.
11991 For rotates recurse directly not building trees for the shift amount.
11992 (expand_variable_shift): Wrap around expand_shift_1.
11993 (expand_shift): Adjust.
11994
11995 2011-05-05 Jakub Jelinek <jakub@redhat.com>
11996
11997 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
11998
11999 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
12000
12001 * tree.h (get_pending_sizes): Remove prototype.
12002 (put_pending_size): Likewise.
12003 (put_pending_sizes): Likewise.
12004 * stor-layout.c (pending_sizes): Delete.
12005 (get_pending_sizes): Likewise.
12006 (put_pending_size): Likewise.
12007 (put_pending_sizes): Likewise.
12008 (variable_size): Do not call put_pending_size and tidy up.
12009 * function.h (struct function): Remove dont_save_pending_sizes_p.
12010 * lto-streamer-in.c (input_function): Do not stream it.
12011 * lto-streamer-out.c (output_function): Likewise.
12012 * tree-inline.c (initialize_cfun): Do not copy it.
12013 * c-decl.c (store_parm_decls): Do not set it.
12014 * omp-low.c (create_task_copyfn): Likewise.
12015 * tree-optimize.c (tree_rest_of_compilation): Likewise.
12016
12017 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
12018
12019 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
12020 conditions.
12021 (*movdf_internal): Ditto.
12022 (*movdf_internal_nointeger): Ditto.
12023 (*movsf_internal): Ditto.
12024
12025 2011-05-05 Joseph Myers <joseph@codesourcery.com>
12026
12027 * c-decl.c (finish_decl): Don't call get_pending_sizes.
12028 (grokparm): Add parameter expr. Pass it to grokdeclarator.
12029 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
12030 (c_variable_size): Remove.
12031 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
12032 call put_pending_sizes.
12033 (get_parm_info): Add parameter expr. Use it to set
12034 arg_info->pending_sizes.
12035 (store_parm_decls): Use arg_info->pending_sizes instead or calling
12036 get_pending_sizes.
12037 * c-parser.c (c_parser_parms_declarator): Update call to
12038 c_parser_parms_list_declarator.
12039 (c_parser_parms_list_declarator): Take parameter expr. Update
12040 call to push_parm_decl. Update recursive call. Don't call
12041 get_pending_sizes. Update calls to get_parm_info.
12042 (c_parser_objc_method_definition): Update calls to
12043 c_parser_objc_method_decl and objc_start_method_definition.
12044 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
12045 (c_parser_objc_method_decl): Add parameter expr. Update call to
12046 grokparm.
12047 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
12048 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
12049 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
12050
12051 2011-05-05 Michael Hope <michael.hope@linaro.org>
12052
12053 PR pch/45979
12054 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
12055 __ARM_EABI__ hosts.
12056
12057 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12058
12059 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
12060 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
12061 (spu_output_mi_thunk): New function.
12062
12063 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12064
12065 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
12066 targetm.asm_out.print_operand.
12067 * config/sol2.c: Include target.h.
12068
12069 2011-05-04 Jan Hubicka <jh@suse.cz>
12070
12071 * ipa-inline.c (reset_edge_caches): New function.
12072 (update_caller_keys): Add check_inlinablity_for; do not
12073 reset edge caches; remove now unnecesary loop.
12074 (update_callee_keys): Add comments; reset node_growth_cache of callee.
12075 (update_all_callee_keys): Likewise.
12076 (inline_small_functions): Sanity check cache; update code
12077 recomputing it.
12078
12079 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
12080
12081 PR rtl-optimization/47612
12082 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
12083 as the last insn of the sequence to be moved.
12084
12085 2011-05-04 Tobias Burnus <burnus@net-b.de>
12086
12087 PR fortran/48864
12088 * doc/invoke.texi (Ofast): Document that it
12089 enables Fortran's -fno-protect-parens.
12090
12091 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
12092
12093 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
12094
12095 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
12096
12097 * stor-layout.c (variable_size): Do not issue errors.
12098
12099 2011-05-04 Richard Guenther <rguenther@suse.de>
12100
12101 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
12102 for array-ref indices.
12103 (tree_coverage_counter_addr): Likewise.
12104 (build_fn_info_type): Use size_int for index types.
12105 (build_gcov_info): Likewise.
12106
12107 2011-05-04 Richard Guenther <rguenther@suse.de>
12108
12109 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
12110 to build_int_cst.
12111 * c-typeck.c (really_start_incremental_init): Use bitsize_int
12112 for constructor indices.
12113 (push_init_level): Likewise.
12114
12115 2011-05-04 Richard Guenther <rguenther@suse.de>
12116
12117 * explow.c (promote_mode): Move variable declarations before code.
12118
12119 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
12120
12121 * tree.h (build_function_type_array): Declare.
12122 (build_varargs_function_type_array): Declare.
12123 (build_function_type_vec, build_varargs_function_type_vec): Define.
12124 * tree.c (build_function_type_array_1): New function.
12125 (build_function_type_array): New function.
12126 (build_varargs_function_type_array): New function.
12127
12128 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
12129
12130 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
12131 before setting STMT_VINFO_TYPE.
12132
12133 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12134
12135 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
12136 instead of spu_pass_by_reference.
12137
12138 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12139
12140 * calls.c (emit_library_call_value_1): Invoke
12141 promote_function_mode hook on libcall arguments.
12142 * explow.c (promote_function_mode, promote_mode): Handle TYPE
12143 argument being NULL.
12144 * targhooks.c (default_promote_function_mode): Lisewise.
12145 * config/s390/s390.c (s390_promote_function_mode): Likewise.
12146 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
12147
12148 * doc/tm.texi: Document that TYPE argument might be NULL.
12149
12150 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12151
12152 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
12153
12154 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12155
12156 From Bernd Schmidt
12157 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
12158
12159 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12160
12161 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
12162 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
12163 Move ...
12164 * mips-tfile.c: ... here.
12165 Don't include coretypes.h, tm.h, filenames.h.
12166 (saber_stop): Remove definition and all calls.
12167 [__SABER__]: Remove.
12168 (__LINE__): Remove default.
12169 (Size_t, Ptrdiff_t): Remove definitions.
12170 Replace by size_t, ptrdiff_t.
12171 [!MIPS_DEBUGGING_INFO]: Remove.
12172 (SHASH_SIZE, THASH_SIZE): Remove defaults.
12173 (progname): Add const.
12174 (STATIC): Remove.
12175 Replace all uses by static.
12176 (ALIGN_SYMTABLE_OFFSET): Remove default.
12177 * mips-tdump.c: Don't include coretypes.h, tm.h.
12178 Remove !MIPS_IS_STAB guard.
12179 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
12180 $(TM_H), filenames.h dependencies.
12181 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
12182
12183 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12184
12185 From Jie Zhang
12186 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
12187 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12188
12189 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12190
12191 From Bernd Schmidt
12192 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
12193 account and save/restore RETS.
12194 (PROFILE_BEFORE_PROLOGUE): Define.
12195 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
12196 the push insn to use predecrement.
12197
12198 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12199
12200 From Jie Zhang
12201 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
12202
12203 2011-05-04 Nick Clifton <nickc@redhat.com>
12204
12205 * config/mn10300/mn10300.c: Include cfgloop.h.
12206 (DUMP): New macro.
12207 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
12208 Lcc or a FLcc insn into the instruction stream.
12209 (mn10300_block_contains_call): New function. Returns true if the
12210 given basic block contains a CALL insn.
12211 (mn10300_loop_contains_call_insn): New function. Returns true if
12212 the given loop contains a CALL insn.
12213 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
12214 to use the SETLB and Lcc or FLcc insns.
12215 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
12216 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
12217 * config/mn10300/mn10300.opt (msetlb): New option. Used to
12218 disable the SETLB optimization.
12219 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
12220 __SETLB__ or __NO_SETLB__.
12221 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
12222 (movsf_internal): Handle MDR register.
12223 (cmpsi): Make visible.
12224 (setlb): New pattern.
12225 (Lcc): New pattern.
12226 (FLcc): New pattern.
12227
12228 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
12229
12230 PR target/48860
12231 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
12232 for reg<->xmm moves.
12233 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
12234 (vec_concatv2di_rex64_sse): Ditto.
12235 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
12236 (*vec_extractv2di_1_rex64): Ditto.
12237
12238 Revert:
12239 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
12240
12241 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12242 reg<->xmm moves.
12243 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
12244
12245 2011-05-04 Richard Guenther <rguenther@suse.de>
12246
12247 * tree.h (int_const_binop): Remove notrunc argument.
12248 * fold-const.c (int_const_binop): Remove notrunc argument. Always
12249 create integer constants that are properly truncated.
12250 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
12251 (const_binop): Remove zero notrunc argument to int_const_binop.
12252 (size_binop_loc): Likewise.
12253 (fold_div_compare): Likewise.
12254 (maybe_canonicalize_comparison_1): Likewise.
12255 (fold_comparison): Likewise.
12256 (fold_binary_loc): Likewise.
12257 (multiple_of_p): Likewise.
12258 * expr.c (store_constructor): Likewise.
12259 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
12260 (maybe_fold_stmt_addition): Likewise.
12261 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
12262 * stor-layout.c (layout_type): Likewise.
12263 * tree-data-ref.c (tree_fold_divides_p): Likewise.
12264 * tree-sra.c (build_ref_for_offset): Likewise.
12265 (build_user_friendly_ref_for_offset): Likewise.
12266 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
12267 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
12268 * tree-ssa-loop-niter.c (inverse): Likewise.
12269 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12270 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
12271 * tree-switch-conversion.c (check_range): Likewise.
12272 (build_constructors): Likewise.
12273 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
12274 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
12275 (extract_range_from_assert): Likewise.
12276 (vrp_int_const_binop): Likewise.
12277 (extract_range_from_binary_expr): Likewise.
12278 (extract_range_from_unary_expr): Likewise.
12279 (check_array_ref): Likewise.
12280 (find_case_label_range): Likewise.
12281 (simplify_div_or_mod_using_ranges): Likewise.
12282 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
12283 comparing case labels for merging.
12284
12285 2011-05-03 Mark Wielaard <mjw@redhat.com>
12286
12287 * dwarf2out.c (debug_str_hash_forced): Removed.
12288 (gen_label_for_indirect_string): Removed.
12289 (get_debug_string_label): Removed.
12290 (AT_string_form): Generate label directly.
12291 (output_indirect_string): Test indirect_string_node for
12292 DW_FORM_strp instead of checking label and refcount.
12293 (prune_indirect_string): Removed.
12294 (prune_unused_types): Don't check debug_str_hash_forced or
12295 call prune_indirect_string.
12296
12297 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
12298
12299 PR other/48093
12300 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
12301
12302 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
12303
12304 PR debug/47994
12305 PR debug/47919
12306 * combine.c (try_combine): Skip debug insns at m_split tests.
12307
12308 2011-04-26 Mark Wielaard <mjw@redhat.com>
12309
12310 PR42288
12311 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
12312 when info_section_emitted.
12313
12314 2011-05-03 Joseph Myers <joseph@codesourcery.com>
12315
12316 * config/mips/mips-opts.h: New.
12317 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
12318 to mips-opts.h.
12319 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
12320 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
12321 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
12322 via opts pointer.
12323 * config/mips/mips.h (enum mips_code_readable_setting): Move to
12324 mips-opts.h.
12325 (mips_abi, mips_code_readable): Don't declare.
12326 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
12327 (mabi=): Use Enum and Var.
12328 (mips_abi): New Enum and EnumValue entries.
12329 (mcode-readable=): Use Enum and Var.
12330 (mips_code_readable_setting): New Enum and EnumValue entries.
12331 (mr10k-cache-barrier=): Use Enum and Var.
12332 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
12333
12334 2011-05-03 Jan Hubicka <jh@suse.cz>
12335
12336 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
12337 replace hash by pointer map.
12338 (cgraph_node_set_element_def, cgraph_node_set_element,
12339 const_cgraph_node_set_element, varpool_node_set_element_def,
12340 varpool_node_set_element, const_varpool_node_set_element): Remove.
12341 (free_cgraph_node_set, free_varpool_node_set): New function.
12342 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
12343 * tree-emutls.c: Free varpool node set.
12344 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
12345 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12346 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
12347 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12348 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
12349 Move here from ipa.c; implement using pointer_map
12350 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
12351 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12352 debug_cgraph_node_set, varpool_node_set_new,
12353 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12354 dump_varpool_node_set, debug_varpool_node_set):
12355 Move to ipa-uitls.c.
12356 * passes.c (ipa_write_summaries): Update.
12357
12358 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12359
12360 From Mike Frysinger:
12361 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
12362 bf542/bf544/bf547/bf548/bf549.
12363
12364 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
12365
12366 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
12367
12368 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12369
12370 From Bernd Schmidt:
12371 * config/bfin/bfin.md (MOVCC): New mode_macro.
12372 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
12373 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
12374 comments from generated assembly.
12375
12376 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12377
12378 From Bernd Schmidt
12379 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
12380 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
12381 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
12382 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
12383 * config/bfin/lib1funcs.asm (___muldi3): New function.
12384
12385 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12386
12387 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
12388 build_function_type_list instead of build_function_type.
12389 Rearrange initialization of `args' to do so.
12390
12391 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12392
12393 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
12394 instead of build_function_type.
12395
12396 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12397
12398 * config/rs6000/rs6000.c (spe_init_builtins): Call
12399 build_function_type_list instead of build_function_type.
12400 (paired_init_builtins, altivec_init_builtins): Likewise.
12401 (builtin_function_type): Likewise.
12402
12403 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12404
12405 * config/sh/sh.c (sh_media_init_builtins): Call
12406 build_function_type_list instead of build_function_type.
12407
12408 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12409
12410 * config/sparc/sparc.c (sparc_file_end): Call
12411 build_function_type_list instead of build_function_type.
12412
12413 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12414
12415 * config/alpha/alpha.c (alpha_init_builtins): Call
12416 build_function_type_list instead of build_function_type.
12417
12418 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12419
12420 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
12421 build_function_type_list instead of build_function_type.
12422
12423 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12424
12425 * config/iq2000/i2000.c (iq2000_init_builtins): Call
12426 build_function_type_list instead of build_function_type.
12427 Delete `endlink' variable.
12428
12429 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12430
12431 * config/avr/avr.c (avr_init_builtins): Call
12432 build_function_type_list instead of build_function_type.
12433
12434 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12435
12436 * config/picochip/picochip.c (picochip_init_builtins): Call
12437 build_function_type_list instead of build_function_type.
12438 Delete `endlink' variable.
12439
12440 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12441
12442 * config/bfin/bfin.c (bfin_init_builtins): Call
12443 build_function_type_list instead of build_function_type.
12444
12445 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12446
12447 From Bernd Schmidt
12448 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
12449 that's not CONST_INT. Seemingly redundant check is due to PR39768.
12450
12451 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12452
12453 From Jie Zhang:
12454 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
12455 libbffastfp overrides libgcc when -mfast-fp.
12456
12457 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12458
12459 Originally from Bernd Schmidt
12460 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
12461 * config/bfin/bfin.c (override_options): Test it and error if
12462 TARGET_FDPIC.
12463
12464 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12465
12466 Originally From Bernd Schmidt
12467 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
12468 FD-PIC.
12469
12470 2011-05-03 Jeff Law <law@redhat.com>
12471
12472 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
12473 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
12474 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
12475 than accessing AUX field directly. Free the AUX field before
12476 clearing it.
12477 (thread_block, thread_through_loop_header): Likewise.
12478 (thread_single_edge, mark_threaded_blocks): Likewise.
12479 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
12480 (register_jump_thread): Do not attempt to thread to a NULL edge.
12481
12482 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
12483
12484 * function.c (init_function_start): Call decide_function_section.
12485 * varasm.c (decide_function_section): New function.
12486 (assemble_start_function): When not using
12487 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
12488 or first_function_block_is_cold.
12489 * rtl.h (decide_function_section): Declare.
12490
12491 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
12492 Jakub Jelinek <jakub@redhat.com>
12493
12494 PR target/48774
12495 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
12496 only succeed if req_mode is the same as set_mode.
12497
12498 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
12499
12500 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
12501 * genemit.c (gen_exp): Handle RETURN.
12502 * emit-rtl.c (verify_rtx_sharing): Likewise.
12503 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
12504 * rtl.c (copy_rtx): RETURN is shared.
12505 * rtl.h (enum global_rtl_index): Add GR_RETURN.
12506 (ret_rtx): New.
12507 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
12508 * config/s390/s390.c (s390_emit_epilogue): Likewise.
12509 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
12510 * config/cris/cris.c (cris_expand_return): Likewise.
12511 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
12512 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
12513 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
12514 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
12515 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
12516 Likewise.
12517 * config/v850/v850.c (expand_epilogue): Likewise.
12518 * config/bfin/bfin.c (bfin_expand_call): Likewise.
12519 * config/arm/arm.md (epilogue): Likewise.
12520 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
12521 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
12522 variable to ret_reg.
12523
12524 2011-05-03 Richard Guenther <rguenther@suse.de>
12525
12526 PR lto/48846
12527 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
12528 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
12529 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
12530
12531 2011-05-03 Richard Guenther <rguenther@suse.de>
12532
12533 * c-decl.c (grokdeclarator): Instead of looking at
12534 TREE_OVERFLOW check if the constant fits in the index type.
12535
12536 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
12537
12538 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
12539 (vec_store_lanes<mode><mode>): Likewise.
12540
12541 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
12542
12543 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
12544 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
12545 convert_optab_index values.
12546 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
12547 * genopinit.c (optabs): Initialize the new optabs.
12548 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
12549 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
12550 (expand_STORE_LANES): New functions.
12551 * tree.h (build_array_type_nelts): Declare.
12552 * tree.c (build_array_type_nelts): New function.
12553 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
12554 (vect_model_load_cost): Likewise.
12555 (vect_store_lanes_supported, vect_load_lanes_supported)
12556 (vect_record_strided_load_vectors): Declare.
12557 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
12558 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
12559 (vect_transform_strided_load): Split out statement recording into...
12560 (vect_record_strided_load_vectors): ...this new function.
12561 * tree-vect-stmts.c (create_vector_array, read_vector_array)
12562 (write_vector_array, create_array_ref): New functions.
12563 (vect_model_store_cost): Add store_lanes_p argument.
12564 (vect_model_load_cost): Add load_lanes_p argument.
12565 (vectorizable_store): Try to use store-lanes functions for
12566 interleaved stores.
12567 (vectorizable_load): Likewise load-lanes and loads.
12568 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
12569 to vect_model_store_cost.
12570 (vect_build_slp_tree): Likewise vect_model_load_cost.
12571
12572 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
12573
12574 * hooks.h (hook_bool_mode_uhwi_false): Declare.
12575 * hooks.c (hook_bool_mode_uhwi_false): New function.
12576 * target.def (array_mode_supported_p): New hook.
12577 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
12578 * doc/tm.texi: Regenerate.
12579 * stor-layout.c (mode_for_array): New function.
12580 (layout_type): Use it.
12581 * config/arm/arm.c (arm_array_mode_supported_p): New function.
12582 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
12583
12584 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
12585
12586 PR target/48723
12587 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
12588 for -fstack-check if the size to allocate is negative.
12589
12590 2011-05-02 Lawrence Crowl <crowl@google.com>
12591
12592 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
12593 (timevar_cond_start): New for starting a timer only when it is not
12594 already running.
12595 (timevar_cond_stop): New for stopping a timer when it was not already
12596 running.
12597
12598 * timevar.c (timevar_stop): Enable start/stop timers to start again.
12599 (timevar_cond_start): New as above.
12600 (timevar_cond_stop): New as above.
12601
12602 * timevar.def: Add start/stop timers for compiler phases,
12603 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
12604 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
12605 and TV_PHASE_FINALIZE.
12606 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
12607 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
12608 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
12609 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
12610 Make unused TV_OVERLOAD into a start/stop timer.
12611
12612 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
12613 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
12614 to indicate that they are start/stop timers.
12615
12616 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
12617 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
12618 Move initialization to do_compile.
12619 (do_compile): Add initialization from above.
12620 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
12621
12622 * c-decl.c (c_write_global_declarations): Add start/stop of
12623 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
12624
12625 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
12626 or TV_PARSE_INLINE, as appropriate.
12627 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
12628 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
12629
12630 2011-05-02 Jason Merrill <jason@redhat.com>
12631
12632 PR c++/40975
12633 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
12634
12635 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
12636
12637 PR c/35445
12638 * c-decl.c (finish_decl): Only create a composite if the types are
12639 compatible.
12640
12641 2011-05-02 Joseph Myers <joseph@codesourcery.com>
12642
12643 * config/fr30/fr30-protos.h (Mmode): Don't define.
12644 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
12645 definition where used.
12646 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
12647 define. Expand definitions where used.
12648 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
12649 Expand definitions where used.
12650 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
12651 rx_function_arg, rx_function_arg_advance,
12652 rx_function_arg_boundary): Expand definitions of those macros.
12653 * config/v850/v850-protos.h (Mmode): Don't define. Expand
12654 definition where used.
12655
12656 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
12657
12658 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12659 reg<->xmm moves.
12660 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
12661 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
12662 with *movv2sf_internal_rex64_avx.
12663 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
12664 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
12665 Use %v prefix in insn mnemonic to handle TARGET_AVX.
12666 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
12667 "vex" in "prefix" attribute calculation.
12668 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
12669
12670 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
12671
12672 PR target/47951
12673 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
12674 inputs match the output.
12675
12676 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
12677
12678 PR target/47955
12679 * config/m68k/m68k.c (m68k_expand_prologue): Set
12680 current_function_static_stack_size.
12681
12682 2011-05-02 Jan Hubicka <jh@suse.cz>
12683
12684 * lto-streamer.c (lto_streamer_cache_insert_1,
12685 lto_streamer_cache_lookup, lto_streamer_cache_create,
12686 lto_streamer_cache_delete): Use pointer map instead of hashtable.
12687 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
12688
12689 2011-05-02 Joseph Myers <joseph@codesourcery.com>
12690
12691 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
12692 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
12693 config/m68k/t-opts: New files.
12694 * config/m68k/m68k-tables.opt: New file (generated).
12695 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
12696 extra_options and m68k/t-opts to tmake_file.
12697 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
12698 (all_isas): Initialize using m68k-isas.def.
12699 (all_microarchs): Initialize using m68k-microarchs.def.
12700 (m68k_find_selection): Remove.
12701 (m68k_handle_option): Don't assert that global structures are in
12702 use. Use error_at. Access variables via opts pointer. Don't
12703 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
12704 directly for -m68020-40 and -m68020-60.
12705 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
12706 m68k_tune_entry here.
12707 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
12708 to m68k-opts.h.
12709 (m68k_library_id_string): Remove declaration.
12710 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
12711 (m68k_library_id_string): New Variable.
12712 (march=, mcpu=, mtune=): Use Enum and Var.
12713
12714 2011-05-02 Richard Guenther <rguenther@suse.de>
12715
12716 * varasm.c (output_constructor_regular_field): Compute zero-based
12717 index with double-ints. Make sure to ICE instead of producing
12718 wrong code.
12719 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
12720 in asserts. Properly use a signed type.
12721
12722 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
12723
12724 * config/i386/sse.md (V): New mode iterator.
12725 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
12726 TARGET_SSE2.
12727 (V_256): Rename from AVX256MODE.
12728 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
12729 condition to all users.
12730 (VF1): Ditto.
12731 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
12732 condition to all users.
12733 (VF_128): Make V4SF mode unconditional.
12734 (VF_256): Rename from AVX256MODEF2P.
12735 (VI4F_128): Rename from SSEMODE4S.
12736 (VI8F_128): Rename from SSEMODE2D.
12737 (VI4F_256): Rename from AVX256MODE8P.
12738 (VI8F_256): Rename from AVX256MODE4P.
12739 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
12740 (ssescalarmodesuffix): Remove SF and DF modes.
12741 (SSEMODE124): Remove.
12742 (SSEMODE1248): Ditto.
12743 (SSEMODEF2P): Ditto.
12744 (AVXMODEF2P): Ditto.
12745 (AVXMODEFDP): Ditto.
12746 (AVXMODEFSP): Ditto.
12747 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
12748 unconditional.
12749 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
12750 unconditional.
12751 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
12752 xop_pcmov_<mode>256. Use V mode iterator.
12753
12754 Adjust RTX patterns globally for renamed mode attributes.
12755
12756 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12757
12758 * haifa-sched.c (sched_emit_insn): Emit insn before first
12759 non-scheduled insn. Inform back-end about new insn. Add
12760 new insn to scheduled_insns list.
12761
12762 2011-05-02 Richard Guenther <rguenther@suse.de>
12763
12764 PR tree-optimization/48822
12765 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
12766 (process_scc): Indicate which iteration we start.
12767
12768 2011-05-02 Jan Hubicka <jh@suse.cz>
12769
12770 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
12771 (lto_section_overrun): New.
12772 * lto-section-out.c (append_block): Rename to ...
12773 (lto_append_block): ... this one; export.
12774 (lto_output_1_stream): Move lto lto-streamer.h
12775 (lto_output_data_stream): Update.
12776 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
12777 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
12778 functions.
12779
12780 2011-05-02 Richard Guenther <rguenther@suse.de>
12781
12782 * tree.c (tree_code_counts): New global array.
12783 (record_node_allocation_statistics): Count individual tree codes.
12784 (dump_tree_statistics): Dump individual code stats.
12785
12786 2011-05-01 Jan Hubicka <jh@suse.cz>
12787
12788 * ipa-inline.c (caller_growth_limits): Fix thinko when
12789 looking for largest stack frame.
12790 * ipa-inline.h (dump_inline_summary): Declare.
12791 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
12792 on stack usage.
12793 (dump_inline_summary): Export.
12794 (debug_inline_summary): Declare as DEBUG_FUNCTION.
12795
12796 2011-05-01 Anatoly Sokolov <aesok@post.ru>
12797
12798 * reginfo.c (memory_move_cost): Change rclass argument type form
12799 'enum reg_class' to reg_class_t.
12800 * reload.h (memory_move_cost): Update prototype.
12801 * postreload.c reload_cse_simplify_set): Change type dclass var to
12802 reg_class_t.
12803 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
12804 Update prototype.
12805 (ira_allocate_and_set_costs): Change aclass argument type form
12806 'enum reg_class' to reg_class_t.
12807 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
12808 Change aclass argument type to reg_class_t.
12809 (update_conflict_hard_reg_costs): Change type aclass and pref vars
12810 to reg_class_t.
12811 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
12812 memory_move_cost call.
12813
12814 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
12815 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
12816 Change type tmp var to reg_class_t.
12817
12818 2011-04-30 Jan Hubicka <jh@suse.cz>
12819
12820 * ipa-inline.c (can_inline_edge_p): Disregard limits when
12821 inlining into function with flatten attribute.
12822 (want_inline_small_function_p): Be more realistic about inlining
12823 cold calls where callee size grows.
12824
12825 2011-04-30 Jan Hubicka <jh@suse.cz>
12826
12827 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
12828 flags.
12829
12830 2011-04-30 Anatoly Sokolov <aesok@post.ru>
12831
12832 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
12833 PRINT_OPERAND_PUNCT_VALID_P): Remove.
12834 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
12835 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
12836 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12837 (print_operand): Rename to...
12838 (sparc_print_operand): ...this. Make static. Adjust
12839 sparc_print_operand function call.
12840 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
12841 functions.
12842
12843 2011-04-30 Jan Hubicka <jh@suse.cz>
12844
12845 PR middle-end/48752
12846 * ipa-inline.c (early_inliner): Disable when doing late
12847 addition of function.
12848
12849 2011-04-30 Jakub Jelinek <jakub@redhat.com>
12850
12851 * dwarf2out.c (get_address_mode): New inline.
12852 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
12853 if not dwarf_strict emit
12854 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
12855 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
12856 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
12857 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
12858 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
12859 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
12860 mem_loc_descriptor callers.
12861 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
12862 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
12863 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
12864 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
12865 (base_types): New variable.
12866 (get_base_type_offset, calc_base_type_die_sizes,
12867 base_type_for_mode, mark_base_types, base_type_cmp,
12868 move_marked_base_types): New functions.
12869 (calc_die_sizes): Assert that die_offset is 0 or equal to
12870 next_die_offset.
12871 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
12872 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
12873 callers. If not dwarf_strict, call mem_loc_descriptor even for
12874 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
12875 (gen_subprogram_die): Don't give up on call site parameters
12876 with non-integral or large integral modes. Adjust
12877 mem_loc_descriptor callers.
12878 (prune_unused_types): Call prune_unused_types_mark on base_types
12879 vector entries.
12880 (resolve_addr): Call mark_base_types.
12881 (dwarf2out_finish): Call move_marked_base_types.
12882
12883 PR tree-optimization/48809
12884 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
12885 type.
12886 (gen_inbound_check): Don't compute index_expr - range_min in utype
12887 again, instead reuse SSA_NAME initialized in build_arrays.
12888 Remove two useless gsi_for_stmt calls.
12889
12890 2011-04-29 Jeff Law <law@redhat.com>
12891
12892 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
12893
12894 2011-04-29 Martin Jambor <mjambor@suse.cz>
12895
12896 * cgraph.h (cgraph_postorder): Remove declaration.
12897 * ipa-utils.h (ipa_free_postorder_info): Declare.
12898 (ipa_reverse_postorder): Likewise.
12899 * cgraphunit.c: Include ipa-utils.h.
12900 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
12901 * ipa-inline.c: Include ipa-utils.h.
12902 (ipa_inline): Update call to ipa_reverse_postorder.
12903 * ipa-pure-const.c (propagate_pure_const): Update call to
12904 ipa_reduced_postorder and ipa_print_order. Call
12905 ipa_free_postorder_info to clean up.
12906 (propagate_nothrow): Likewise.
12907 * ipa-reference.c (propagate): Removed a useless call to
12908 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
12909 and ipa_print_order. Call ipa_free_postorder_info to clean up.
12910 * ipa.c: Include ipa-utils.h.
12911 (ipa_profile): Update call to ipa_reverse_postorder.
12912 (cgraph_postorder): Moved to...
12913 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
12914 (ipa_utils_print_order): Renamed to ipa_print_order.
12915 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
12916 comments.
12917 (ipa_free_postorder_info): New function.
12918 * passes.c: Include ipa-utils.h.
12919 (do_per_function_toporder): Update call to ipa_reverse_postorder.
12920 (ipa_write_summaries): Likewise.
12921 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
12922 (cgraphunit.o): Likewise.
12923 (ipa.o): Likewise.
12924 (ipa-inline.o): Likewise.
12925
12926 2011-04-29 Jan Hubicka <jh@suse.cz>
12927
12928 * gcc.dg/tree-ssa/inline-10.c: New testcase.
12929 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
12930 * ipa-inline.h (clause_t): Turn into unsigned int.
12931 * ipa-inline-analysis.c (add_clause): Do more simplification.
12932 (and_predicates): Shortcut more cases.
12933 (predicates_equal_p): Move forward; check that clauses are properly
12934 ordered.
12935 (or_predicates): Shortcut more cases.
12936 (edge_execution_predicate): Rewrite as...
12937 (set_cond_stmt_execution_predicate): ... this function; handle
12938 __builtin_constant_p.
12939 (set_switch_stmt_execution_predicate): New .
12940 (compute_bb_predicates): New.
12941 (will_be_nonconstant_predicate): Update TODO.
12942 (estimate_function_body_sizes): Use compute_bb_predicates
12943 and free them later, always try to estimate if stmt is constant.
12944 (estimate_time_after_inlining, estimate_size_after_inlining):
12945 Gracefully handle optimized out edges.
12946 (read_predicate): Fix off by one error.
12947
12948 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
12949
12950 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
12951
12952 2011-04-27 Xinliang David Li <davidxl@google.com>
12953
12954 * tree-profile.c (init_ic_make_global_vars): Set
12955 tls attribute on ic vars.
12956 * coverage.c (coverage_end_function): Initialize
12957 function_list with zero.
12958
12959 2011-04-29 Richard Guenther <rguenther@suse.de>
12960
12961 * builtins.c (fold_builtin_classify_type): Use integer_type_node
12962 for the type of the result.
12963 (fold_builtin_isascii): Likewise.
12964 (fold_builtin_toascii): Use integer_type_node where appropriate.
12965 (fold_builtin_logb): Likewise.
12966 (fold_builtin_frexp): Likewise.
12967 (fold_builtin_strstr): Likewise.
12968 (fold_builtin_strpbrk): Likewise.
12969 (fold_builtin_fputs): Likewise.
12970 (fold_builtin_sprintf): Likewise.
12971 (fold_builtin_snprintf): Likewise.
12972 (fold_builtin_printf): Likewise.
12973 (do_mpfr_remquo): Use a proper type for the assigned constant.
12974 (do_mpfr_lgamma_r): Likewise.
12975 * dwarf2out.c (resolve_one_addr): Use size_int.
12976 * except.c (init_eh): Likewise.
12977 (assign_filter_values): Use integer_type_node for filter values.
12978 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
12979 indices.
12980 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
12981 for EH region numbers.
12982 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
12983 for the shift amount.
12984
12985 2011-04-29 Richard Guenther <rguenther@suse.de>
12986
12987 * expr.h (expand_shift): Rename to ...
12988 (expand_variable_shift): ... this.
12989 (expand_shift): Take a constant shift amount.
12990 * expmed.c (expand_shift): Rename to ...
12991 (expand_variable_shift): ... this.
12992 (expand_shift): New wrapper around expand_variable_shift.
12993 * expr.c (convert_move, emit_group_load_1, emit_group_store,
12994 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
12995 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
12996 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
12997 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
12998 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
12999 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
13000 emit_store_flag_1, emit_store_flag): Likewise.
13001 * builtins.c (expand_builtin_signbit): Likewise.
13002 * calls.c (load_register_parameters): Likewise.
13003 * function.c (assign_parm_setup_block): Likewise.
13004 * lower-subreg.c (resolve_shift_zext): Likewise.
13005 * optabs.c (widen_bswap, expand_abs_nojump,
13006 expand_one_cmpl_abs_nojump, expand_float): Likewise.
13007 * spu/spu.c (spu_expand_extv): Likewise.
13008 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
13009
13010 2011-04-29 Richard Guenther <rguenther@suse.de>
13011
13012 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
13013 for the remapped region number.
13014 * predict.c (build_predict_expr): Use integer_type_node for the
13015 predict kind.
13016 * fold-const.c (fold_binary_loc): Use integer_type_node for
13017 the shift amount. Use a proper type for the PLUS_EXPR operand.
13018
13019 2011-04-29 Michael Matz <matz@suse.de>
13020
13021 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
13022 other trees that just builtins.
13023 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
13024
13025 2011-04-29 Richard Guenther <rguenther@suse.de>
13026
13027 * tree-nested.c (get_trampoline_type): Use size_int.
13028 (get_nl_goto_field): Likewise.
13029 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
13030 for all indexes.
13031 (lower_eh_constructs_2): Likewise.
13032 (lower_resx): Likewise.
13033 (lower_eh_dispatch): Likewise.
13034 * tree-mudflap.c (mf_build_string): Use size_int.
13035 (mudflap_register_call): Use integer_type_node for the flag.
13036 (mudflap_enqueue_constant): Use size_int.
13037 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
13038 instead of rebuilding it.
13039
13040 2011-04-29 Richard Guenther <rguenther@suse.de>
13041
13042 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
13043 Handle OBJ_TYPE_REF.
13044 (find_func_aliases_for_call): Use it more consistently.
13045
13046 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
13047
13048 * haifa-sched.c (last_nondebug_scheduled_insn): New.
13049 (rank_for_schedule): Use it.
13050 (schedule_block): Set it.
13051
13052 2011-04-28 David Li <davidxl@google.com>
13053
13054 * tree.c (crc32_string): Use crc32_byte.
13055 (crc32_byte): New function.
13056 * tree.h (crc32_byte): New function.
13057 * gcov.c (read_graph_file): Handle new cfg_cksum.
13058 (read_count_file): Ditto.
13059 * profile.c (instrument_values): Ditto.
13060 (get_exec_counts): Ditto.
13061 (read_profile_edge_counts): Ditto.
13062 (compute_branch_probabilities): Ditto.
13063 (compute_value_histograms): Ditto.
13064 (branch_prob): Ditto.
13065 (end_branch_prob): Ditto.
13066 * coverage.c (read_counts_file): Ditto.
13067 (get_coverage_counts): Ditto.
13068 (tree_coverage_counter_addr): Ditto.
13069 (coverage_checksum_string): Ditto.
13070 (coverage_begin_output): Ditto.
13071 (coverage_end_function): Ditto.
13072 (build_fn_info_type): Ditto.
13073 (build_fn_info_value): Ditto.
13074 * libgcov.c (gcov_exit): Ditto.
13075 * gcov-dump.c (tag_function): Ditto.
13076 (compute_checksum): Remove.
13077
13078 2011-04-29 Alan Modra <amodra@gmail.com>
13079
13080 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
13081 unspec plus offset. Tidy macho code.
13082
13083 2011-04-29 Martin Jambor <mjambor@suse.cz>
13084
13085 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
13086 node instead of a decl. Update all callers.
13087 * cgraph.h: Update declaration.
13088
13089 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
13090
13091 PR tree-optimization/48765
13092 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
13093 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
13094 to indicate if loop aware SLP is being used. Scan the statements
13095 and update the vectorization factor according to the type of
13096 vectorization before statement analysis.
13097 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
13098 pass it to vect_analyze_loop_operations.
13099 (vectorizable_reduction): Set number of copies to 1 in case of pure
13100 SLP statement.
13101 * tree-vect-stmts.c (vectorizable_conversion,
13102 vectorizable_assignment, vectorizable_shift,
13103 vectorizable_operation, vectorizable_type_demotion,
13104 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
13105 Likewise.
13106 (vectorizable_condition): Move the check that it is not SLP
13107 vectorization before the number of copies check.
13108 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
13109 to vectorize the loop using SLP.
13110
13111 2011-04-28 Jakub Jelinek <jakub@redhat.com>
13112
13113 PR middle-end/48597
13114 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
13115 inline asm.
13116
13117 2011-04-28 Joseph Myers <joseph@codesourcery.com>
13118
13119 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
13120 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
13121 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13122 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
13123 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
13124 linux*.h headers.
13125 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
13126 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13127 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13128 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13129 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13130 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
13131 REG_NAME.
13132 * config/i386/linux.h (REG_NAME): Don't define.
13133 * config/i386/linux64.h (REG_NAME): Don't define.
13134 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
13135 Undefine before defining.
13136
13137 2011-04-28 Jan Hubicka <jh@suse.cz>
13138
13139 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
13140 nonconstant_names array.
13141 (estimate_function_body_sizes): Build nonconstant_names array; handle
13142 BUILT_IN_CONSTANT_P.
13143
13144 2011-04-28 Richard Guenther <rguenther@suse.de>
13145
13146 PR bootstrap/48804
13147 Revert
13148 2011-04-28 Richard Guenther <rguenther@suse.de>
13149
13150 * tree-ssa-structalias.c (solve_constraints): Build succ graph
13151 as late as possible.
13152
13153 2011-04-28 Richard Guenther <rguenther@suse.de>
13154
13155 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
13156 (debug_constraint): Do it here.
13157 (dump_constraints): And here.
13158 (rewrite_constraints): And here.
13159 (dump_constraint_edge): Remove.
13160 (dump_constraint_graph): Rewrite to produce DOT output.
13161 (solve_constraints): Build succ graph as late as possible.
13162 Dump constraint graphs before and after solving.
13163
13164 2011-04-28 Richard Guenther <rguenther@suse.de>
13165
13166 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13167 New function split out from ...
13168 (find_func_aliases): ... here. Call it.
13169 (find_func_aliases_for_call): Likewise.
13170
13171 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
13172
13173 * internal-fn.h (internal_fn_name_array): Declare.
13174 (internal_fn_flags_array): Likewise.
13175
13176 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
13177
13178 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
13179 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
13180 Move from sse.md.
13181 (ssemodefsuffix): Remove.
13182 (ssevecmodesuffix): New mode attribute.
13183 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
13184 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
13185 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
13186 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
13187 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
13188 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
13189 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
13190 ssemodesuffix mode attribute.
13191 (float splitters): Use ssevecmodesuffix mode attribute.
13192 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
13193 (sseinsmode): Rename from avxvecmode.
13194 (avxsizesuffix): Rename from avxmodesuffix.
13195 (sseintvecmode): Rename from avxpermvecmode.
13196 (ssedoublevecmode): Rename from ssedoublesizemode.
13197 (ssehalfvecmode): Rename from avxhalfvecmode.
13198 (ssescalarmode): Rename from avxscalarmode.
13199 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
13200 templates for ssemodesuffix mode attribute.
13201 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
13202 mode attribute.
13203
13204 Adjust RTX patterns globally for renamed mode attributes.
13205
13206 2011-04-27 Jan Hubcika <jh@suse.cz>
13207
13208 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
13209 * ipa-inline-analysis.c: Include alloc-pool.h.
13210 (edge_predicate_pool): New.
13211 (trye_predicate_p): New function
13212 (false_predicate_p): New function.
13213 (add_clause): Sanity check that false clauses are "optimized";
13214 never add clauses to predicate that is already known to be false.
13215 (and_predicate): Use flase_predicate_p.
13216 (evaulate_predicate): Rename to ...
13217 (evaluate_predicate): ... this one; update all callers; assert
13218 that false is not listed among possible truths.
13219 (dump_predicate): Use true_predicate_p.
13220 (account_size_time): Use false_predicate_p.
13221 (evaulate_conditions_for_edge): Rename to ...
13222 (evaluate_conditions_for_edge) ... this one.
13223 (edge_set_predicate): New function.
13224 (inline_edge_duplication_hook): Duplicate edge predicates.
13225 (inline_edge_removal_hook): Free edge predicates.
13226 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
13227 (dump_inline_summary): Update.
13228 (estimate_function_body_sizes): Set edge predicates.
13229 (estimate_calls_size_and_time): Handle predicates.
13230 (estimate_callee_size_and_time): Update.
13231 (remap_predicate): Add toplev_predicate; update comment.
13232 (remap_edge_predicates): New function.
13233 (inline_merge_summary): Compute toplev predicate; update.
13234 (read_predicate): New function.
13235 (read_inline_edge_summary): Use it.
13236 (inline_read_section): Likewise.
13237 (write_predicate): New function.
13238 (write_inline_edge_summary): Use it.
13239 (inline_write_summary): Likewise.
13240 (inline_free_summary): Free alloc pool and edge summary vec.
13241
13242 2011-04-27 Richard Guenther <rguenther@suse.de>
13243
13244 * tree-ssa-structalias.c (changed_count): Remove.
13245 (changed): Use a bitmap.
13246 (unify_nodes): Adjust.
13247 (do_sd_constraint): Likewise.
13248 (do_ds_constraint): Likewise.
13249 (do_complex_constraint): Likewise.
13250 (solve_graph): Likewise.
13251
13252 2011-04-27 Jan Hubicka <jh@suse.cz>
13253
13254 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
13255
13256 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
13257
13258 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
13259 (avx_vperm2f128_*_operand): Ditto.
13260 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
13261 Use avx_vpermilp_parallel in insn condition.
13262 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
13263 Use avx_vperm2f128_parallel in insn condition.
13264
13265 2011-04-27 Richard Guenther <rguenther@suse.de>
13266
13267 * Makefile.in (tree-ssa-structalias.o): Remove
13268 gt-tree-ssa-structalias.h dependency.
13269 (GTFILES): Remove tree-ssa-structalias.c.
13270 * tree.c (allocate_decl_uid): New function.
13271 (make_node_stat): Use it.
13272 (copy_node_stat): Likewise.
13273 * tree.h (allocate_decl_uid): Declare.
13274 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
13275 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
13276 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
13277 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
13278 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
13279 (struct heapvar_map): Likewise.
13280 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
13281 heapvar_insert): Likewise.
13282 (make_heapvar_for): Rename to ...
13283 (make_heapvar): ... this. Simplify.
13284 (fake_var_decl_obstack): New global var.
13285 (build_fake_var_decl): New function.
13286 (make_constraint_from_heapvar): Adjust.
13287 (handle_lhs_call): Likewise.
13288 (create_function_info_for): Likewise.
13289 (intra_create_variable_infos): Likewise.
13290 (init_alias_vars): Allocate fake_var_decl_obstack.
13291 (init_alias_heapvars, delete_alias_heapvars): Remove.
13292 (compute_points_to_sets): Do not call init_alias_heapvars.
13293 (ipa_pta_execute): Likewise.
13294 (delete_points_to_sets): Free fake_var_decl_obstack.
13295
13296 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13297
13298 * config/spu/divmovti4.c (union qword_UTItype): New data type.
13299 (si_from_UTItype, si_to_UTItype): New functions.
13300 (__udivmodti4): Use them to implement type-punning.
13301 * config/spu/multi3.c (union qword_TItype): New data type.
13302 (si_from_TItype, si_to_TItype): New functions.
13303 (__multi3): Use them to implement type-punning.
13304
13305 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13306
13307 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
13308
13309 2011-04-27 Jan Hubicka <jh@suse.cz>
13310
13311 * ipa-prop.c (function_insertion_hook_holder): New holder.
13312 (ipa_add_new_function): New function.
13313 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
13314 Register/deregister holder.
13315
13316 2011-04-27 Richard Guenther <rguenther@suse.de>
13317
13318 PR tree-optimization/48772
13319 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
13320
13321 2011-04-27 Richard Guenther <rguenther@suse.de>
13322
13323 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
13324 TARGET_MEM_REF handling.
13325
13326 2011-04-27 Nick Clifton <nickc@redhat.com>
13327
13328 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
13329 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
13330 (REG_CLASS_NAMES): Likewise.
13331 (REG_CLASS_CONTENTS): Likewise.
13332 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
13333 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
13334 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
13335 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
13336 (EVEN_REGS): New macro. Alias for QUAD_REGS.
13337 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
13338 duplicate register classes.
13339 (frv_class_likely_spilled_p): Likewise.
13340 (frv_register_move_cost): Likewise.
13341
13342 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
13343 end of the regno_reg_class array.
13344
13345 2011-04-27 Jakub Jelinek <jakub@redhat.com>
13346
13347 PR c/48742
13348 * c-typeck.c (build_binary_op): Don't wrap arguments if
13349 int_operands is true.
13350
13351 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
13352
13353 PR target/48767
13354 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
13355 targetm.calls.must_pass_in_stack for void type.
13356
13357 2011-04-26 Jan Hubicka <jh@suse.cz>
13358
13359 * cgraphbuild.c (build_cgraph_edges): Update call
13360 of cgraph_create_edge and cgraph_create_indirect_edge.
13361 * cgraph.c (cgraph_create_edge_including_clones,
13362 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
13363 cgraph_update_edges_for_call_stmt_node): Do not take nest
13364 argument; do not initialize call_stmt_size/time.
13365 (dump_cgraph_node): Do not dump nest.
13366 (cgraph_clone_edge): Do not take loop_nest argument;
13367 do not propagate it; do not clone call_stmt_size/time.
13368 (cgraph_clone_node): Likewise.
13369 (cgraph_create_virtual_clone): Update.
13370 * cgraph.h (struct cgraph_edge): Remove
13371 call_stmt_size/call_stmt_time/loop_nest.
13372 (cgraph_create_edge, cgraph_create_indirect_edge,
13373 cgraph_create_edge_including_clones, cgraph_clone_node): Update
13374 prototype.
13375 * tree-emutls.c (gen_emutls_addr): Update.
13376 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
13377 loop_nest; handle indirect calls, too.
13378 (clone_inlined_nodes): Do not care about updating inline summaries.
13379 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
13380 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
13381 stream call_stmt_size/call_stmt_time/loop_nest.
13382 * ipa-inline.c (edge_badness): Update.
13383 (ipa_inline): dump summaries after inlining.
13384 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
13385 New.
13386 (inline_edge_summary): New function.
13387 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
13388 (inline_edge_removal_hook): Handle edge summaries.
13389 (inline_edge_duplication_hook): New hook.
13390 (inline_summary_alloc): Alloc hooks.
13391 (initialize_growth_caches): Do not register removal hooks.
13392 (free_growth_caches); Do not free removal hook.
13393 (dump_inline_edge_summary): New function.
13394 (dump_inline_summary): Use it.
13395 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
13396 (inline_update_callee_summaries): New function.
13397 (inline_merge_summary): Use it.
13398 (do_estimate_edge_time, do_estimate_edge_growth): Update.
13399 (read_inline_edge_summary): New function.
13400 (inline_read_section): Use it.
13401 (write_inline_edge_summary): New function.
13402 (inline_write_summary): Use it.
13403 (inline_free_summary): Free edge new holders.
13404 * tree-inline.c (copy_bb): Update.
13405
13406 2011-04-26 Jason Merrill <jason@redhat.com>
13407
13408 * tree-eh.c (lower_try_finally_switch): Create the label along with
13409 the CASE_LABEL_EXPR.
13410
13411 2011-04-26 David S. Miller <davem@davemloft.net>
13412 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13413
13414 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
13415 * configure: Regenerate.
13416
13417 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
13418
13419 PR target/48258
13420 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
13421 reduction.
13422 (VEC_reduc): New code iterator and splitters for vector reduction.
13423 (VEC_reduc_name): Ditto.
13424 (VEC_reduc_rtx): Ditto.
13425 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
13426 (reduc_<VEC_reduc_name>_v4sf): Ditto.
13427
13428 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
13429 support for extracting SF on VSX.
13430
13431 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
13432 generating xscvspdp.
13433 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
13434 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
13435 double add, minimum, maximum vector reduction.
13436 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
13437 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
13438 optimize double vector reduction.
13439 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
13440
13441 2011-04-26 Joseph Myers <joseph@codesourcery.com>
13442
13443 * config/fr30/fr30.h (inhibit_libc): Don't define.
13444 * config/m32r/m32r-protos.h: Correct comment.
13445 * config/v850/v850.h (GHS_default_section_names,
13446 GHS_current_section_names): Use tree, not union tree_node *.
13447
13448 2011-04-26 Xinliang David Li <davidxl@google.com>
13449
13450 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
13451 * c-family/c-opts.c (c_common_handle_option): Set
13452 warn_maybe_uninitialized.
13453 * opts.c (common_handle_option): Ditto.
13454 * common.opt: New option.
13455 * tree-ssa.c (warn_uninit): Add one more parameter.
13456 (warn_uninitialized_var): Pass warning code.
13457 * tree-flow.h: Interface change.
13458
13459 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13460
13461 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
13462 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
13463 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
13464
13465 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13466
13467 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
13468 * config/mips/mips.opt (mmips-tfile): Remove.
13469
13470 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
13471 mips-tdump reference to ...
13472 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
13473 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
13474 reference by Tru64 UNIX.
13475
13476 2011-04-26 Jakub Jelinek <jakub@redhat.com>
13477
13478 PR debug/48768
13479 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
13480 is error_mark_node, set value to NULL.
13481
13482 PR tree-optimization/48734
13483 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
13484 if return value from maybe_fold_*_comparsions isn't something
13485 the code is prepared to handle.
13486
13487 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
13488
13489 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
13490 mode check.
13491 (ext_QIreg_nomode_operands): Remove.
13492 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
13493 (*andsi_1): Ditto.
13494 (*andhi_1): Ditto.
13495
13496 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
13497
13498 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
13499
13500 2011-04-26 Richard Guenther <rguenther@suse.de>
13501
13502 * c-typeck.c (build_unary_op): Do not expand array-refs via
13503 pointer arithmetic. Only adjust qualifiers for function types.
13504
13505 2011-04-26 Richard Guenther <rguenther@suse.de>
13506
13507 PR middle-end/48694
13508 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
13509 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
13510 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
13511 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
13512
13513 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
13514
13515 * doc/extend.texi: Document __underlying_type.
13516
13517 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
13518
13519 * config/rs6000/titan.md (automata_option "progress"): Remove.
13520
13521 2011-04-25 Jeff Law <law@redhat.com>
13522
13523 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
13524
13525 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
13526
13527 * system.h (ENUM_BITFIELD): Remove.
13528
13529 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
13530 Eric Botcazou <ebotcazou@adacore.com>
13531
13532 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
13533 for STORE_FLAG_VALUE==-1 case.
13534
13535 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
13536
13537 PR target/43804
13538 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
13539 LEGITIMATE_PIC_OPERAND_P.
13540
13541 2011-04-24 Jan Hubicka <jh@suse.cz>
13542
13543 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
13544 WPA hack.
13545 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
13546 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
13547 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
13548 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
13549 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
13550 Sanity check predicate length.
13551 (remap_predicate): Likewise; sanity check jump functions.
13552 (inline_read_section, inline_write_summary): Sanity check
13553 predicate length.
13554
13555 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
13556
13557 PR other/48748
13558 * doc/extend.texi (Type Traits): Document __is_standard_layout,
13559 __is_literal_type, and __is_trivial; update throughout about
13560 possibly cv-qualified void types.
13561
13562 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
13563
13564 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
13565 testsuite and make it version agnostic.
13566
13567 2011-04-22 Jan Hubicka <jh@suse.cz>
13568
13569 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
13570
13571 2011-04-23 Jakub Jelinek <jakub@redhat.com>
13572
13573 PR c/48685
13574 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
13575 to VOID_TYPE even around MODIFY_EXPR.
13576
13577 2011-04-22 Mike Stump <mikestump@comcast.net>
13578
13579 * gensupport.c (read_md_rtx): Fix typo in comment.
13580 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
13581 comment.
13582
13583 2011-04-22 Jan Hubicka <jh@suse.cz>
13584
13585 * gengtype.c (open_base_files): Add ipa-inline.h include.
13586 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
13587 ipa-prop.c; update all uses.
13588 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
13589 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
13590 merge summary of inlined function into former caller.
13591 * ipa-inline.c (max_benefit): Remove.
13592 (edge_badness): Compensate for removal of benefits.
13593 (update_caller_keys): Use
13594 reset_node_growth_cache/reset_edge_growth_cache.
13595 (update_callee_keys): Likewise.
13596 (update_all_callee_keys): Likewise.
13597 (inline_small_functions): Do not collect max_benefit; do not reset
13598 estimated_growth; call free_growth_caches and initialize_growth_caches.
13599 * ipa-inline.h (struct condition, type clause_t, struct predicate,
13600 struct size_time_entry): New structures.
13601 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
13602 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
13603 and estimated_growth.
13604 (edge_growth_cache_entry): New structure.
13605 (node_growth_cache, edge_growth_cache): New global vars.
13606 (estimate_growth): Turn into inline.
13607 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
13608 initialize_growth_caches, free_growth_caches): Declare.
13609 (estimate_edge_growth): Rewrite.
13610 (estimate_edge_time): Implement as inline cache lookup.
13611 (reset_node_growth_cache, reset_edge_growth_cache): New inline
13612 functions.
13613 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
13614 (NUM_CONDITIONS): New constant.
13615 (predicate_conditions): New enum.
13616 (IS_NOT_CONSTANT): New constant.
13617 (edge_removal_hook_holder): New var.
13618 (node_growth_cache, edge_growth_cache): New global vars.
13619 (true_predicate, single_cond_predicate, false_predicate,
13620 not_inlined_predicate, add_condition, add_clause, and_predicates,
13621 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
13622 dump_clause, dump_predicate, account_size_time,
13623 evaulate_conditions_for_edge): New functions.
13624 (inline_summary_alloc): Move to heap.
13625 (inline_node_removal_hook): Clear condition and entry vectors.
13626 (inline_edge_removal_hook): New function.
13627 (initialize_growth_caches, free_growth_caches): New function.
13628 (dump_inline_summary): Update.
13629 (edge_execution_predicate): New function.
13630 (will_be_nonconstant_predicate): New function.
13631 (estimate_function_body_sizes): Compute BB and constantness predicates.
13632 (compute_inline_parameters): Do not clear estimated_growth.
13633 (estimate_edge_size_and_time): New function.
13634 (estimate_calls_size_and_time): New function.
13635 (estimate_callee_size_and_time): New function.
13636 (remap_predicate): New function.
13637 (inline_merge_summary): New function.
13638 (do_estimate_edge_time): New function based on...
13639 (estimate_edge_time): ... this one.
13640 (do_estimate_edge_growth): New function.
13641 (do_estimate_growth): New function based on....
13642 (estimate_growth): ... this one.
13643 (inline_analyze_function): Analyze after deciding on jump functions.
13644 (inline_read_section): New function.
13645 (inline_read_summary): Use it.
13646 (inline_write_summary): Write all the new data.
13647 * ipa-prop.c (ipa_get_param_decl_index): Export.
13648 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
13649 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
13650 Declare.
13651 (ipa_get_lattice): Move here from ipa-cp.c
13652 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
13653 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
13654 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
13655 cgraph_edge_inlinable_p): Remove.
13656 * cgraphunit.c: Include ipainline.h
13657 (cgraph_process_new_functions): Update call of
13658 compute_inline_parameters.
13659
13660 2011-04-22 Richard Guenther <rguenther@suse.de>
13661
13662 * tree.c (build_int_cst): Properly create canonicalized integer
13663 constants.
13664 (build_int_cst_type): Remove scary comments.
13665
13666 2011-04-22 Xinliang David Li <davidxl@google.com>
13667
13668 * toplev.c (process_options): Enable -Werror=coverage-mismatch
13669 by default when -Wno-error is not specified.
13670 * opts-global.c (decode_options): Remove call to
13671 control_warning_options.
13672
13673 2011-04-22 Jakub Jelinek <jakub@redhat.com>
13674
13675 PR tree-optimization/48717
13676 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
13677 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
13678
13679 2011-04-22 Joseph Myers <joseph@codesourcery.com>
13680
13681 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
13682 definition where used.
13683
13684 2011-04-22 Jakub Jelinek <jakub@redhat.com>
13685
13686 PR c/48716
13687 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
13688 TREE_STATIC variables declared inside of some OpenMP construct.
13689
13690 2011-04-22 Martin Jambor <mjambor@suse.cz>
13691
13692 PR middle-end/48585
13693 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
13694
13695 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
13696
13697 PR c/36750
13698 * c-typeck.c (pop_init_level): Do not warn about initializing
13699 with ` = {0}'.
13700
13701 2011-04-22 Alan Modra <amodra@gmail.com>
13702
13703 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
13704 when returning call_cookie.
13705 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
13706 pointers, to functions with no more vector args than the current
13707 function, and some non-local calls for ABI_V4.
13708 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
13709 sibcall_nonlocal_aix64): Combine to ..
13710 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
13711 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
13712 (sibcall_value_nonlocal_aix<mode>): ..likewise.
13713 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
13714 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
13715 operand.
13716 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
13717 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
13718 sibcall_value_symbolic_64): Delete.
13719
13720 2011-04-21 Xinliang David Li <davidxl@google.com>
13721
13722 * cgraph.h: Remove pid.
13723 * cgraph.c: Remove pid.
13724 * value-prof.c (init_node_map): New function.
13725 (del_node_map): New function.
13726 (find_func_by_funcdef_no): New function.
13727 (gimple_ic_transform): Call new function.
13728 * cgraphunit.c (cgraph_finalize_function): Remove pid.
13729 * function.c (get_last_funcdef_no): New function.
13730 * function.h (get_last_funcdef_no): New function.
13731 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
13732 to libgcov function.
13733 (tree-profiling): Call node map init and delete function.
13734
13735 2011-04-21 Ian Lance Taylor <iant@google.com>
13736
13737 * godump.c (go_format_type): Use exported Go name for anonymous
13738 field name.
13739
13740 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13741
13742 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
13743 Call builtin_function_type_list instead of builtin_function_type.
13744 (UNARY, BINARY, TRINARY, QUAD): Likewise.
13745
13746 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13747
13748 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
13749 build_function_type_list instead of build_function_type.
13750 Delete variable `endlink'.
13751
13752 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13753
13754 * config/s390/s390.c (s390_init_builtins): Call
13755 build_function_type_list instead of build_function_type.
13756
13757 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13758
13759 * config/ia64/ia64.c (ia64_init_builtins): Call
13760 build_function_type_list instead of builtin_function_type.
13761
13762 2011-04-21 Easwaran Raman <eraman@google.com>
13763
13764 * cfgexpand.c (stack_var): Remove OFFSET...
13765 (add_stack_var): ...and its reference here...
13766 (expand_stack_vars): ...and here.
13767 (stack_var_cmp): Sort by descending order of size.
13768 (partition_stack_vars): Change heuristic.
13769 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
13770 (dump_stack_var_partition): Add newline after each partition.
13771
13772 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
13773 Jeff Law <law@redhat.com>
13774
13775 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
13776 * gengtype.c (matching_file_name_substitute): Likewise.
13777
13778 2011-04-21 Richard Guenther <rguenther@suse.de>
13779
13780 PR lto/48703
13781 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
13782
13783 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
13784
13785 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
13786
13787 2011-04-21 Richard Guenther <rguenther@suse.de>
13788
13789 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
13790 file name.
13791
13792 2011-04-21 Richard Guenther <rguenther@suse.de>
13793
13794 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
13795 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
13796 Use DECL_P, not SSA_VAR_P.
13797 (ptr_derefs_may_alias_p): Likewise.
13798 (ptr_deref_may_alias_ref_p_1): Likewise.
13799 (decl_refs_may_alias_p): Likewise.
13800 (refs_may_alias_p_1): Likewise.
13801 (ref_maybe_used_by_call_p_1): Likewise.
13802 (call_may_clobber_ref_p_1): Likewise.
13803 (indirect_ref_may_alias_decl_p): Assume indirect refrences
13804 are either MEM_REF or TARGET_MEM_REF.
13805 (indirect_refs_may_alias_p): Likewise.
13806 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
13807 for MEM_EXPR of indirect calls.
13808
13809 2011-04-21 Tristan Gingold <gingold@adacore.com>
13810
13811 * vmsdbgout.c (write_srccorr): Compute file length from the string.
13812 (dst_file_info_struct): Remove flen field.
13813 (lookup_filename): Remove code that set flen field.
13814
13815 2011-04-21 Tristan Gingold <gingold@adacore.com>
13816
13817 * config/ia64/ia64.c (ia64_start_function): Add a guard.
13818
13819 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
13820
13821 PR target/48708
13822 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
13823 vec_extract and vec_concat for non-SSE4_1 targets.
13824
13825 2011-04-21 Richard Guenther <rguenther@suse.de>
13826
13827 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
13828 return statements.
13829
13830 2011-04-21 Joseph Myers <joseph@codesourcery.com>
13831
13832 * config/i386/cygming.h (union tree_node, TREE): Don't define or
13833 undefine.
13834 (FILE): Don't undefine.
13835
13836 2011-04-21 Joseph Myers <joseph@codesourcery.com>
13837
13838 * config/alpha/alpha.c (struct machine_function): Use rtx, not
13839 struct rtx_def *.
13840 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
13841 struct rtx_def *.
13842 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
13843 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
13844 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
13845 rtx_def *.
13846 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
13847 definitions where used.
13848 * config/microblaze/microblaze.h (struct microblaze_args): Use
13849 rtx, not struct rtx_def *.
13850 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
13851 rtx_def *.
13852 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
13853 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
13854 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
13855 not struct rtx_def *.
13856 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
13857 struct rtx_def *.
13858 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
13859 rtx_def *.
13860 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
13861
13862 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
13863
13864 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
13865 operand_equal_p to compare DR_BASE_ADDRESSes.
13866 (vect_check_interleaving): Likewise.
13867
13868 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
13869
13870 PR target/46329
13871 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
13872 for all Neon struct constants.
13873
13874 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
13875
13876 * target.def (legitimate_constant_p): New hook.
13877 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
13878 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
13879 * doc/tm.texi: Regenerate.
13880 * hooks.h (hook_bool_mode_rtx_true): Declare.
13881 * hooks.c (hook_bool_mode_rtx_true): Define.
13882 * system.h (LEGITIMATE_CONSTANT_P): Poison.
13883 * calls.c (precompute_register_parameters): Replace uses of
13884 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
13885 (emit_library_call_value_1): Likewise.
13886 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
13887 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
13888 * ira-costs.c (scan_one_insn): Likewise.
13889 * recog.c (general_operand, immediate_operand): Likewise.
13890 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
13891 * reload1.c (init_eliminable_invariants): Likewise.
13892
13893 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
13894 mode argument.
13895 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
13896 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
13897 argument.
13898 (TARGET_LEGITIMATE_CONSTANT_P): Define.
13899 * config/alpha/predicates.md (input_operand): Update call to
13900 alpha_legitimate_constant_p.
13901
13902 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
13903 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
13904 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
13905 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13906 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
13907 (arm_legitimate_constant_p): New functions.
13908 (arm_cannot_force_const_mem): Make static.
13909
13910 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
13911
13912 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
13913 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
13914 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
13915 instead of bfin_legitimate_constant_p.
13916 (bfin_legitimate_constant_p): Make static. Add a mode argument.
13917 (TARGET_LEGITIMATE_CONSTANT_P): Define.
13918
13919 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
13920
13921 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
13922
13923 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
13924 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
13925 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13926 (frv_legitimate_constant_p): Make static. Add a mode argument.
13927
13928 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
13929 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
13930 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
13931
13932 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
13933 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
13934 * config/i386/i386.c (legitimate_constant_p): Rename to...
13935 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
13936 argument.
13937 (ix86_cannot_force_const_mem): Update accordingly.
13938 (ix86_legitimate_address_p): Likewise.
13939 (TARGET_LEGITIMATE_CONSTANT_P): Define.
13940 * config/i386/i386.md: Update commentary.
13941
13942 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
13943 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
13944 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13945 (ia64_legitimate_constant_p): Make static. Add a mode argument.
13946
13947 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
13948
13949 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
13950 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
13951 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13952 (lm32_legitimate_constant_p): Make static. Add a mode argument.
13953
13954 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
13955 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
13956 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
13957
13958 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
13959 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13960 (m32r_legitimate_constant_p): New function.
13961
13962 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
13963 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
13964 LEGITIMATE_CONSTANT_P.
13965 (LEGITIMATE_CONSTANT_P): Delete.
13966 * config/m68k/m68k.c (m68k_expand_prologue): Call
13967 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
13968 (m68k_legitimate_constant_p): New function.
13969 * config/m68k/m68k.md: Update comments.
13970
13971 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
13972 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13973 (mcore_legitimate_constant_p): New function.
13974
13975 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
13976 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
13977 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
13978 Add a mode argument.
13979 (mep_legitimate_address): Update accordingly.
13980 (TARGET_LEGITIMATE_CONSTANT_P): Define.
13981
13982 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
13983 Delete.
13984 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
13985 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
13986 static. Check OP's mode for VOIDmode.
13987 (microblaze_legitimate_constant_p): New function.
13988 (TARGET_LEGITIMATE_CONSTANT_P): Define.
13989
13990 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
13991 * config/mips/mips.c (mips_legitimate_constant_p): New function.
13992 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
13993 (TARGET_LEGITIMATE_CONSTANT_P): Define.
13994 * config/mips/predicates.md: Update comments.
13995
13996 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
13997 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
13998 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13999 (mmix_legitimate_constant_p): Make static, return a bool, and take
14000 a mode argument.
14001 (mmix_print_operand_address): Update accordingly.
14002
14003 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
14004 Delete.
14005 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
14006 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
14007 static. Add a mode argument.
14008 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14009
14010 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
14011
14012 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
14013 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14014 (pa_legitimate_constant_p): New function.
14015
14016 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
14017
14018 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
14019 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14020 (pdp11_legitimate_constant_p): New function.
14021
14022 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
14023 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14024 (rs6000_legitimate_constant_p): New function.
14025
14026 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
14027 (rx_legitimate_constant_p): ...this.
14028 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
14029 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
14030 (rx_legitimate_constant_p): ...this.
14031 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14032 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
14033
14034 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
14035 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
14036 * config/s390/s390.c (legitimate_constant_p): Rename to...
14037 (s390_legitimate_constant_p): ...this. Make static, return a bool,
14038 and add a mode argument.
14039 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14040
14041 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
14042
14043 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
14044 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14045 (sh_legitimate_constant_p): New function.
14046
14047 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
14048 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
14049 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14050 (legitimate_constant_p): Rename to...
14051 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
14052 argument.
14053 (constant_address_p): Update accordingly.
14054
14055 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
14056 argument and return a bool.
14057 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
14058 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14059 (spu_legitimate_constant_p): Add a mode argument and return a bool.
14060 (spu_rtx_costs): Update accordingly.
14061 * config/spu/predicates.md (vec_imm_operand): Likewise.
14062
14063 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
14064
14065 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
14066 * config/v850/v850.c (v850_legitimate_constant_p): New function.
14067 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14068
14069 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
14070 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
14071 * config/vax/vax.c (legitimate_constant_p): Likewise.
14072
14073 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
14074 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14075 (xtensa_legitimate_constant_p): New function.
14076
14077 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
14078
14079 * target.def (cannot_force_const_mem): Add a mode argument.
14080 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
14081 * doc/tm.texi: Regenerate.
14082 * hooks.h (hook_bool_mode_rtx_false): Declare.
14083 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
14084 (hook_bool_mode_const_rtx_true): Likewise.
14085 (hook_bool_mode_rtx_false): New function.
14086 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
14087 to be non-VOID. Update call to cannot_force_const_mem.
14088 (find_reloads): Update accordingly.
14089 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
14090 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
14091 argument.
14092 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
14093 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
14094 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
14095 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
14096 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
14097 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
14098 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
14099 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14100 (m68k_cannot_force_const_mem): ...this new function.
14101 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
14102 argument.
14103 (mips_const_insns, mips_legitimize_const_move): Update calls.
14104 (mips_secondary_reload_class): Likewise.
14105 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14106 (pa_cannot_force_const_mem): ...this new function.
14107 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
14108 (rs6000_cannot_force_const_mem): ...this new function.
14109 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
14110 argument.
14111 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
14112 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
14113 to...
14114 (xtensa_cannot_force_const_mem): ...this new function.
14115
14116 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
14117
14118 * config/mips/mips.c (mips16_build_function_stub): Call
14119 build_function_type_list instead of build_function_type.
14120 (mips16_build_call_stub): Likewise.
14121
14122 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
14123
14124 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
14125 instead of build_function_type.
14126
14127 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
14128
14129 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
14130 instead of build_function_type.
14131
14132 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
14133
14134 PR target/48678
14135 * config/i386/i386.md (insv): Change operand 0 constraint to
14136 "register_operand". Change operand 1 and 2 constraint to
14137 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
14138 * config/i386/sse.md (sse4_1_pinsrb): Export.
14139 (sse2_pinsrw): Ditto.
14140 (sse4_1_pinsrd): Ditto.
14141 (sse4_1_pinsrq): Ditto.
14142 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
14143 * config/i386/i386.c (ix86_expand_pinsr): New.
14144
14145 2011-04-20 Easwaran Raman <eraman@google.com>
14146
14147 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
14148 containing union type only with -fstrict-aliasing.
14149
14150 2011-04-20 Jim Meyering <meyering@redhat.com>
14151
14152 Remove useless if-before-free tests.
14153 * calls.c (expand_call, save_area): Likewise.
14154 * cfgcleanup.c (try_forward_edges): Likewise.
14155 * collect2.c (collect_execute): Likewise.
14156 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
14157 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
14158 * coverage.c (coverage_checksum_string): Likewise.
14159 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
14160 * cselib.c (cselib_init): Likewise.
14161 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
14162 (df_set_clean_cfg): Likewise.
14163 * function.c (free_after_compilation): Likewise.
14164 * gcc.c (do_spec_1, main): Likewise.
14165 * gcov.c (create_file_names): Likewise.
14166 * gensupport.c (identify_predicable_attribute): Likewise.
14167 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
14168 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
14169 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
14170 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
14171 * ipa-pure-const.c (local_pure_const): Likewise.
14172 * ipa-reference.c (propagate): Likewise.
14173 * ira-costs.c (free_ira_costs): Likewise.
14174 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
14175 * matrix-reorg.c (mat_free): Likewise.
14176 * prefix.c (get_key_value): Likewise.
14177 * profile.c (compute_value_histograms): Likewise.
14178 * reload1.c (free_reg_equiv): Likewise.
14179 * sched-deps.c (free_deps): Likewise.
14180 * sel-sched-ir.c (fence_clear): Likewise.
14181 * sese.c (set_rename, if_region_set_false_region): Likewise.
14182 * tree-data-ref.c (free_rdg): Likewise.
14183 * tree-eh.c (lower_try_finally): Likewise.
14184 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
14185 * tree-ssa-live.c (delete_var_map): Likewise.
14186 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
14187 * tree-ssa-pre.c (phi_trans_add): Likewise.
14188
14189 2011-04-20 Jakub Jelinek <jakub@redhat.com>
14190
14191 PR tree-optimization/48611
14192 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
14193 beyond ERT_MUST_NOT_THROW region.
14194
14195 2011-04-20 Catherine Moore <clm@codesourcery.com>
14196
14197 * config/mips/mips.opt (mfix-24k): New.
14198 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
14199 * config/mips/mips.md (length): Increase by 4 for stores if
14200 fixing 24K errata.
14201 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
14202 all noreorder if fixing 24K errata.
14203 * doc/invoke.texi: Document mfix-24k.
14204
14205 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
14206
14207 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
14208 quad-word modes, reduce to 9-bit index range when above 1016 limit.
14209
14210 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
14211
14212 * config/arm/arm.c (arm_gen_constant): Move movw support ....
14213 (const_ok_for_op): ... to here.
14214
14215 2011-04-20 Kai Tietz <ktietz@redhat.com>
14216
14217 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
14218 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
14219
14220 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
14221
14222 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
14223
14224 2011-04-20 Richard Guenther <rguenther@suse.de>
14225
14226 PR tree-optimization/47892
14227 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
14228 are if-convertible.
14229
14230 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
14231
14232 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
14233
14234 2011-04-20 Tristan Gingold <gingold@adacore.com>
14235
14236 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
14237
14238 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
14239
14240 PR target/18145
14241
14242 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
14243 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
14244 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
14245 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
14246 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
14247
14248 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
14249 New prototype.
14250
14251 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
14252 (avr_asm_named_section, avr_asm_output_aligned_common,
14253 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
14254 New functions to update...
14255 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
14256 (avr_asm_init_sections): Overwrite section callbacks for
14257 data_section, bss_section.
14258 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
14259 from here to...
14260 (avr_file_end): ...here.
14261
14262 2011-04-20 Richard Guenther <rguenther@suse.de>
14263
14264 PR middle-end/48695
14265 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
14266 objects and types here. Adjust for their offset before comparing.
14267
14268 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
14269
14270 * tree-vect-stmts.c (vectorizable_store): Only chain one related
14271 statement per copy.
14272
14273 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
14274
14275 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
14276 (GIMPLE_H): Include $(INTERNAL_FN_H).
14277 (OBJS-common): Add internal-fn.o.
14278 (internal-fn.o): New rule.
14279 * internal-fn.def: New file.
14280 * internal-fn.h: Likewise.
14281 * internal-fn.c: Likewise.
14282 * gimple.h: Include internal-fn.h.
14283 (GF_CALL_INTERNAL): New gf_mask.
14284 (gimple_statement_call): Put fntype into a union with a new
14285 internal_fn field.
14286 (gimple_build_call_internal): Declare.
14287 (gimple_build_call_internal_vec): Likewise.
14288 (gimple_call_same_target_p): Likewise.
14289 (gimple_call_internal_p): New function.
14290 (gimple_call_internal_fn): Likewise.
14291 (gimple_call_fntype): Return null for internal calls.
14292 (gimple_call_set_fntype): Assert that the function is not internal.
14293 (gimple_call_set_fn): Likewise.
14294 (gimple_call_set_fndecl): Likewise.
14295 (gimple_call_set_internal_fn): New function.
14296 (gimple_call_addr_fndecl): Handle null functions.
14297 (gimple_call_return_type): Likewise null types.
14298 * gimple.c (gimple_build_call_internal_1): New function.
14299 (gimple_build_call_internal): Likewise.
14300 (gimple_build_call_internal_vec): Likewise.
14301 (gimple_call_same_target_p): Likewise.
14302 (gimple_call_flags): Handle calls to internal functions.
14303 (gimple_call_fnspec): New function.
14304 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
14305 (gimple_has_side_effects): Handle null functions.
14306 (gimple_rhs_has_side_effects): Likewise.
14307 (gimple_call_copy_skip_args): Handle calls to internal functions.
14308 * cfgexpand.c (expand_call_stmt): Likewise.
14309 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
14310 * gimple-fold.c (gimple_fold_call): Handle null functions.
14311 (gimple_fold_stmt_to_constant_1): Don't fold
14312 calls to internal functions.
14313 * gimple-low.c (gimple_check_call_args): Handle calls to internal
14314 functions.
14315 * gimple-pretty-print.c (dump_gimple_call): Likewise.
14316 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
14317 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
14318 (do_warn_unused_result): Likewise.
14319 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
14320 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
14321 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
14322 the target of a call.
14323 (initialize_hash_element): Update accordingly.
14324 (hashable_expr_equal_p): Use gimple_call_same_target_p.
14325 (iterative_hash_hashable_expr): Handle calls to internal functions.
14326 (print_expr_hash_elt): Likewise.
14327 * tree-ssa-pre.c (can_value_number_call): Likewise.
14328 (eliminate): Handle null functions.
14329 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
14330 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
14331 (find_func_aliases): Likewise.
14332 * value-prof.c (gimple_ic_transform): Likewise.
14333 (gimple_indirect_call_to_profile): Likewise.
14334 * lto-streamer-in.c (input_gimple_stmt): Likewise.
14335 * lto-streamer-out.c (output_gimple_stmt): Likewise.
14336
14337 2011-04-19 Jan Hubicka <jh@suse.cz>
14338
14339 * ipa-inline-transform.c (save_inline_function_body): Add comments.
14340 * ipa-inline.c (inline_small_functions): Compute summaries first,
14341 populate heap later.
14342
14343 2011-04-19 Jan Hubicka <jh@suse.cz>
14344
14345 * cgraph.h (save_inline_function_body): Remove.
14346 * ipa-inline-transform.c: New file, broke out of...
14347 * ipa-inline.c: ... this one; Update toplevel comment.
14348 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
14349 make global.
14350 (update_noncloned_frequencies): Move to ipa-inline-transform.c
14351 (cgraph_mark_inline_edge): Rename to inline_call; move to
14352 ipa-inline-transform.c.
14353 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
14354 move to ipa-inline-transform.c
14355 (recursive_inlining, inline_small_functions, flatten_function,
14356 ipa_inline, inline_always_inline_functions,
14357 early_inline_small_functions): Update.
14358 (inline_transform): Move to ipa-inline-transform.c.
14359 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
14360 Declare.
14361 * Makefile.in (ipa-inline-transform.o): New file.
14362 * cgraphunit.c (save_inline_function_body): Move to
14363 ipa-inline-transform.c
14364
14365 2011-04-19 DJ Delorie <dj@redhat.com>
14366
14367 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
14368 registers if we already know there aren't any.
14369 (m32c_emit_epilogue): Don't emit a barrier here.
14370 (m32c_emit_eh_epilogue): Likewise.
14371 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
14372 operands at expand time.
14373 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
14374 int" wchar type.
14375 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
14376 duplicates. Provide aliases instead.
14377 * config/m32c/prologue.md (eh_return): Emit a barrier here.
14378 (eh_epilogue): Add a "(return)" here as a hint to other parts of
14379 the compiler.
14380
14381 2011-04-19 Anatoly Sokolov <aesok@post.ru>
14382
14383 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
14384 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
14385 (general_or_i64_p, sparc_register_move_cost): New function.
14386
14387 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14388
14389 * doc/install.texi (Configuration, --enable-threads): Remove mach.
14390 Add lynx, mipssde. Sort table.
14391
14392 2011-04-19 Xinliang David Li <davidxl@google.com>
14393
14394 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
14395 not negative.
14396
14397 2011-04-19 Jakub Jelinek <jakub@redhat.com>
14398
14399 PR target/48678
14400 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
14401 is a SUBREG with non-MODE_INT mode inside of it.
14402
14403 2011-04-19 Martin Jambor <mjambor@suse.cz>
14404
14405 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
14406 also according to actual contants.
14407 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
14408 (gimple_fold_call): Use it.
14409 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
14410
14411 2011-04-19 Martin Jambor <mjambor@suse.cz>
14412
14413 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
14414 non-pointer assignments.
14415
14416 2011-04-19 Martin Jambor <mjambor@suse.cz>
14417
14418 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
14419 account anc_offset and otr_type from the indirect edge info.
14420 * ipa-prop.c (get_ancestor_addr_info): New function.
14421 (compute_complex_ancestor_jump_func): Assignment analysis moved to
14422 get_ancestor_addr_info, call it.
14423 (ipa_note_param_call): Do not initialize information about polymorphic
14424 calls, return the indirect call graph edge. Remove the last
14425 parameter, adjust all callers.
14426 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
14427 parameters. Initialize polymorphic information in the indirect edge.
14428
14429 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
14430
14431 PR lto/48148
14432 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
14433 the types if they have different enumeration identifiers.
14434
14435 2011-04-19 Jan Hubicka <jh@suse.cz>
14436
14437 * cgraph.h (cgraph_optimize_for_size_p): Declare.
14438 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
14439 * predict.c (cgraph_optimize_for_size_p): Break out from ...
14440 (optimize_function_for_size_p) ... here.
14441
14442 2011-04-19 Richard Guenther <rguenther@suse.de>
14443
14444 PR lto/48207
14445 * tree.c (free_lang_data): Do not reset the decl-assembler-name
14446 langhook.
14447
14448 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
14449
14450 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
14451 if DECL_NO_INLINE_WARNING_P is set on the function.
14452
14453 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
14454
14455 PR fortran/47976
14456 * reload1.c (inc_for_reload): Return void. All callers changed.
14457 (emit_input_reload_insns): Don't try to delete previous output
14458 reloads to a register, or record spill_reg_store for autoincs.
14459
14460 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
14461
14462 * gengtype.h: Updated copyright year.
14463 (struct input_file_st): Add inpisplugin field.
14464 (type_fileloc): New function.
14465 * gengtype.c
14466 (write_typed_struct_alloc_def): Add gcc_assert.
14467 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
14468 (write_typed_alloc_defns): Don't output for plugin files.
14469 (input_file_by_name): Clear inpisplugin field.
14470 (main): Set inpisplugin field for plugin files.
14471
14472 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
14473
14474 * gengtype-state.c (string_eq): New.
14475 (read_state): Use string_eq instead of strcmp when creating the
14476 state_ident_tab.
14477
14478 2011-04-19 Wei Guozhi <carrot@google.com>
14479
14480 PR target/47855
14481 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
14482 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
14483 linkage.
14484 * config/arm/constraints.md (Uu): New constraint.
14485 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
14486
14487 2011-04-19 Tristan Gingold <gingold@adacore.com>
14488
14489 * config.gcc (-*-*-*vms): Added.
14490 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
14491 definitions moved.
14492 * config/vms/vms-ld.c: New file.
14493 * config/vms/vms-ar.c: New file.
14494 * config/vms/t-vmsnative: New file.
14495
14496 2011-04-18 Xinliang David Li <davidxl@google.com>
14497
14498 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
14499
14500 2011-04-18 Jakub Jelinek <jakub@redhat.com>
14501
14502 PR middle-end/48661
14503 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
14504 if TREE_TYPE (v) is non-NULL.
14505
14506 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
14507 gimple_get_virt_mehtod_for_binfo.
14508 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
14509 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
14510 callers.
14511 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
14512
14513 2011-04-18 Michael Matz <matz@suse.de>
14514 Steve Ellcey <sje@cup.hp.com>
14515
14516 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
14517 use its mode as source mode if it isn't VOIDmode.
14518
14519 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
14520
14521 * doc/passes.texi: Fill crossref nodes.
14522
14523 2011-04-18 Jim Meyering <meyering@redhat.com>
14524
14525 Fix doubled-word typos in comments and strings
14526 * config/alpha/vms-unwind.h: s/for for/for/
14527 * config/arm/unwind-arm.h: Likewise.
14528 * config/microblaze/microblaze.c: Likewise.
14529 * config/sh/constraints.md: s/in in/in/
14530 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
14531
14532 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
14533
14534 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
14535 (AVX_FLOAT_MODE_P): Ditto.
14536 (AVX128_VEC_FLOAT_MODE_P): Ditto.
14537 (AVX256_VEC_FLOAT_MODE_P): Ditto.
14538 (AVX_VEC_FLOAT_MODE_P): Ditto.
14539 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
14540 (UNSPEC_MASKSTORE): Ditto.
14541 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
14542 Merge from <sse>_movmsk<ssemodesuffix> and
14543 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
14544 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
14545 iterator.
14546 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
14547 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
14548 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
14549
14550 2011-04-18 Jan Hubicka <jh@suse.cz>
14551
14552 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
14553
14554 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
14555 (want_inline_function_called_once_p): Break out the logic from
14556 ipa_inline.
14557 (edge_badness): Ensure that profile is not misupdated.
14558 (lookup_recursive_calls): Prioritize by call frequencies.
14559 (inline_small_functions): Move program size estimates here;
14560 actually process whole queue even when unit growth has been
14561 met. (to properly compute inline_failed reasons and for the
14562 case unit size decrease.) Revisit comments on recursive inlining.
14563 (ipa_inline): Remove unit summary code; first inline hot calls
14564 of functions called once, cold calls next.
14565 (order, nnodes): Remove unused variables.
14566 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
14567 (GTFILES): Remove ipa-inline.c
14568 * sel-sched.c (fill_insns): Silence uninitialized var warning.
14569
14570 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
14571
14572 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
14573
14574 2011-04-18 Jie Zhang <jie@codesourcery.com>
14575 Richard Earnshaw <rearnsha@arm.com>
14576
14577 * arm.c (neon_builtin_type_bits): Remove.
14578 (typedef enum neon_builtin_mode): New.
14579 (T_MAX): Don't define.
14580 (typedef enum neon_builtin_datum): Remove bits, codes[],
14581 num_vars and base_fcode. Add mode, code and fcode.
14582 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
14583 VAR10): Change accordingly.
14584 (neon_builtin_data[]): Change accordingly
14585 (arm_init_neon_builtins): Change accordingly.
14586 (neon_builtin_compare): Remove.
14587 (locate_neon_builtin_icode): Remove.
14588 (arm_expand_neon_builtin): Change accordingly.
14589
14590 * arm.h (enum arm_builtins): Move to ...
14591 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
14592
14593 * arm.c (arm_builtin_decl): Declare.
14594 (TARGET_BUILTIN_DECL): Define.
14595 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
14596 (arm_builtin_decls[]): New.
14597 (arm_init_neon_builtins): Store builtin declarations in
14598 arm_builtin_decls[].
14599 (arm_init_tls_builtins): Likewise.
14600 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
14601 (arm_builtin_decl): New.
14602
14603 2011-04-18 Richard Guenther <rguenther@suse.de>
14604
14605 * tree.c (upper_bound_in_type): Build properly canonicalized
14606 INTEGER_CSTs.
14607 (lower_bound_in_type): Likewise.
14608
14609 2011-04-18 Richard Guenther <rguenther@suse.de>
14610
14611 * gimple.h (gimple_call_addr_fndecl): New function.
14612 (gimple_call_fndecl): Use it.
14613 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
14614 for direct calls.
14615 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
14616 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
14617
14618 2011-04-18 Richard Guenther <rguenther@suse.de>
14619
14620 PR middle-end/48650
14621 * tree.c (build_string): STRING_CST is now derived from tree_typed.
14622
14623 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
14624
14625 PR lto/48492
14626 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
14627 DECL_IN_CONSTANT_POOL without RTL.
14628
14629 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
14630 Ira Rosen <ira.rosen@linaro.org>
14631
14632 PR target/48252
14633 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
14634 to match neon_vzip/vuzp/vtrn_internal.
14635 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
14636 outputs explicitly dependent on both inputs.
14637 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
14638
14639 2011-04-18 Jakub Jelinek <jakub@redhat.com>
14640
14641 PR tree-optimization/48616
14642 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
14643 whether the shift is by scalar or vector based on whether all SLP
14644 scalar stmts have the same rhs.
14645
14646 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
14647
14648 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
14649 memory operands.
14650
14651 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
14652
14653 PR target/43700
14654 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
14655 registers.
14656
14657 2011-04-17 Jan Hubicka <jh@suse.cz>
14658
14659 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
14660 * cgrpahunit.c (cgraph_finalize_function): Do not set
14661 finalized_by_frontend.
14662 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
14663 finalized_by_frontend.
14664
14665 2011-04-17 Jan Hubicka <jh@suse.cz>
14666
14667 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
14668 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
14669 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
14670 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
14671 method.
14672 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
14673 gimple-fold.c
14674 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
14675
14676 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
14677
14678 PR lto/48538
14679 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
14680 is non-null before accessing it.
14681 (input_cgraph): Remove trailing spaces.
14682
14683 2011-04-17 Revital Eres <revital.eres@linaro.org>
14684
14685 * params.def (sms-min-sc): New param flag.
14686 * modulo-sched.c (sms_schedule): Use it.
14687 * doc/invoke.texi (sms-min-sc): Document it.
14688
14689 2011-04-17 Jan Hubicka <jh@suse.cz>
14690
14691 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
14692 present, also set gimple_call_set_cannot_inline.
14693 * ipa-inline.c: Update toplevel comment.
14694 (MAX_TIME): Remove.
14695 (cgraph_clone_inlined_nodes): Fix linebreaks.
14696 (cgraph_check_inline_limits): Restructure to ...
14697 (caller_growth_limits): ... this one; be more tolerant
14698 on growth in nested inline chains; add explanatory comment;
14699 fix stack accounting thinko introduced by previous patch.
14700 (cgraph_default_inline_p): Remove.
14701 (report_inline_failed_reason): New function.
14702 (can_inline_edge_p): New function.
14703 (can_early_inline_edge_p): New function.
14704 (leaf_node_p): Move upwards in file.
14705 (want_early_inline_function_p): New function.
14706 (want_inline_small_function_p): New function.
14707 (want_inline_self_recursive_call_p): New function.
14708 (cgraph_edge_badness): Rename to ...
14709 (edge_badness) ... this one; fix linebreaks.
14710 (update_edge_key): Update call of edge_baddness; add
14711 detailed dump about queue updates.
14712 (update_caller_keys): Use can_inline_edge_p and
14713 want_inline_small_function_p.
14714 (cgraph_decide_recursive_inlining): Rename to...
14715 (recursive_inlining): Use can_inline_edge_p and
14716 want_inline_self_recursive_call_p; simplify and remove no longer
14717 valid FIXME.
14718 (cgraph_set_inline_failed): Remove.
14719 (add_new_edges_to_heap): Use can_inline_edge_p and
14720 want_inline_small_function_p.
14721 (cgraph_decide_inlining_of_small_functions): Rename to ...
14722 (inline_small_functions): ... this one; cleanup; use
14723 can/want predicates; cleanup debug ouput; work edges till fibheap
14724 is exhausted and do not stop once unit growth is reached; remove
14725 later loop processing remaining edges.
14726 (cgraph_flatten): Rename to ...
14727 (flatten_function): ... this one; use can_inline_edge_p
14728 and can_early_inline_edge_p predicates.
14729 (cgraph_decide_inlining): Rename to ...
14730 (ipa_inline): ... this one; remove unreachable nodes before
14731 inlining functions called once; simplify the pass.
14732 (cgraph_perform_always_inlining): Rename to ...
14733 (inline_always_inline_functions): ... this one; use
14734 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
14735 (cgraph_decide_inlining_incrementally): Rename to ...
14736 (early_inline_small_functions): ... this one; simplify
14737 using new predicates; cleanup; make dumps prettier.
14738 (cgraph_early_inlining): Rename to ...
14739 (early_inliner): newer inline regular functions into always-inlines;
14740 fix updating of call stmt summaries.
14741 (pass_early_inline): Update for new names.
14742 (inline_transform): Fix formating.
14743 (gate_cgraph_decide_inlining): Rename to ...
14744 (pass_ipa_inline): ... this one.
14745 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
14746 * ipa-inline-analysis.c (dump_inline_summary): Update.
14747 (compute_inline_parameters): Do not compute disregard_inline_limits;
14748 look for mismatching arguments.
14749 (estimate_growth): Fix handlig of non-trivial self recursion.
14750 (inline_read_summary): Do not read info->disregard_inline_limits.
14751 (inline_write_summary): Do not write info->disregard_inline_limits.
14752 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
14753 and move all checks into can_inline_edge_p predicate; re-enable code
14754 comparing optimization levels.
14755 (expand_call_inline): Do not test inline_forbidden_into_p.
14756 * Makefile.in (ipa-inline.o): Update arguments.
14757
14758 2011-04-17 Revital Eres <revital.eres@linaro.org>
14759
14760 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
14761
14762 2011-04-17 Revital Eres <revital.eres@linaro.org>
14763
14764 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
14765
14766 2011-04-17 Michael Matz <matz@suse.de>
14767
14768 PR tree-optimization/48622
14769 PR lto/48645
14770 * ipa-inline-analysis.c (inline_read_summary): Read size/time
14771 in same order as they're written.
14772
14773 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14774
14775 * config/pa/predicates.md: Reorganize and simplify predicates.
14776 Eliminate duplicate code checks.
14777 (arith_operand): Rename to arith14_operand
14778 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
14779 * config/pa/pa.md: Use renamed operands.
14780 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
14781 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
14782 arith11_operand, adddi3_operand, indexed_memory_operand,
14783 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
14784 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
14785 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
14786 move_dest_operand, move_src_operand, prefetch_cc_operand,
14787 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
14788 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
14789 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
14790 div_operand, int5_operand, movb_comparison_operator,
14791 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
14792 arith_double_operand, ireg_operand, lhs_lshift_operand,
14793 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
14794 integer_store_memory_operand): Likewise.
14795 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
14796 (integer_store_memory_operand, read_only_operand,
14797 function_label_operand, borx_reg_operand,
14798 non_hard_reg_operand): Likewise.
14799 (eq_neq_comparison_operator): Delete unused operator.
14800 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
14801 function_label_operand.
14802 (emit_move_sequence): Likewise.
14803
14804 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
14805
14806 * config/i386/sse.md (sseunpackmode): New mode attribute.
14807 (ssepackmode): Ditto.
14808 (vec_pack_trunc_<mode>): Macroize expander from
14809 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
14810 (vec_unpacks_lo_<mode>): Macroize expander from
14811 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14812 (vec_unpacks_hi_<mode>): Macroize expander from
14813 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14814 (vec_unpacku_lo_<mode>): Macroize expander from
14815 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14816 (vec_unpacku_hi_<mode>): Macroize expander from
14817 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14818 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
14819 ix86_expand_sse4_unpack.
14820 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
14821
14822 2011-04-16 Jan Hubicka <jh@suse.cz>
14823
14824 * cgraphbuild.c: Include ipa-inline.h.
14825 (reset_inline_failed): Use initialize_inline_failed.
14826 * cgraph.c: Include ipa-inline.h.
14827 (cgraph_create_node_1): Do not initialize estimated_growth.
14828 (initialize_inline_failed): More to ipa-inline-analysis.c
14829 (dump_cgraph_node): Do not dump inline flags.
14830 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
14831 and disregard_inline_limits flags.
14832 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
14833 time, size, estimated_growth.
14834 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
14835 Update.
14836 * cgraphunit.c (cgraph_decide_is_function_needed): Use
14837 DECL_DISREGARD_INLINE_LIMITS.
14838 (cgraph_analyze_function): Do not initialize
14839 node->local.disregard_inline_limits.
14840 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
14841 inlinable, versionable and disregard_inline_limits.
14842 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
14843 cgraph_check_inline_limits, cgraph_default_inline_p,
14844 cgraph_edge_badness, update_caller_keys, update_callee_keys,
14845 add_new_edges_to_heap): Update.
14846 (cgraph_decide_inlining_of_small_function): Update; set
14847 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
14848 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
14849 cgraph_decide_inlining_incrementally): Update.
14850 * ipa-inline.h (inline_summary): Add inlinable, versionable,
14851 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
14852 time, size and estimated_growth parameters.
14853 (estimate_edge_growth): Update.
14854 (initialize_inline_failed): Declare.
14855 * ipa-split.c: Include ipa-inline.h
14856 (execute_split_functions): Update.
14857 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
14858 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
14859 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
14860 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
14861 estimated_growth to INT_MIN.
14862 (inline_node_duplication_hook): Likewise.
14863 (dump_inline_summary): Dump new fields.
14864 (compute_inline_parameters): Update.
14865 (estimate_edge_time, estimate_time_after_inlining,
14866 estimate_size_after_inlining, estimate_growth, inline_read_summary,
14867 inline_write_summary):
14868 (initialize_inline_failed): Move here from cgraph.c.
14869 * tree-sra.c: Include ipa-inline.h.
14870 (ipa_sra_preliminary_function_checks): Update.
14871 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
14872 ipa-inline.h.
14873
14874 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
14875
14876 * config/i386/sse.md (V16): New mode iterator.
14877 (VI1, VI8): Ditto.
14878 (AVXMODEQI, AVXMODEDI): Remove.
14879 (sse2, sse3): New mode attribute.
14880 (mov<mode>): Use V16 mode iterator.
14881 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
14882 (push<mode>1): Use V16 mode iterator.
14883 (movmisalign<mode>): Ditto.
14884 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
14885 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
14886 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
14887 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
14888 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
14889 avx_movdqu<avxmodesuffix>.
14890 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
14891 *avx_movdqu<avxmodesuffix>.
14892 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
14893 avx_lddqu<avxmodesuffix>.
14894 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
14895 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
14896 avx_movnt<AVXMODEDI:mode>.
14897 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
14898 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
14899
14900 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
14901
14902 PR target/48629
14903 * haifa-sched.c (prune_ready_list, schedule_block): Use
14904 sched_pressure_p rather than flag_sched_pressure.
14905
14906 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
14907
14908 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
14909 cgraph_get_node instead of cgraph_get_create_node.
14910
14911 2011-04-15 Jakub Jelinek <jakub@redhat.com>
14912
14913 * cfgexpand.c (expand_debug_expr): Use
14914 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
14915
14916 2011-04-15 Michael Matz <matz@suse.de>
14917
14918 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
14919 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
14920 * function.c (gimplify_parameters): Ditto.
14921 * gimplify.c (gimplify_vla_decl): Ditto.
14922
14923 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
14924 (gimple_call_set_alloca_for_var): New inline function.
14925 (gimple_call_alloca_for_var_p): Ditto.
14926 * gimple.c (gimple_build_call_from_tree): Remember
14927 CALL_ALLOCA_FOR_VAR_P state.
14928 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
14929
14930 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
14931 calls if they were for VLA objects.
14932
14933 2011-04-15 Martin Jambor <mjambor@suse.cz>
14934
14935 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
14936 of ADR_EXPRs.
14937
14938 2011-04-15 Martin Jambor <mjambor@suse.cz>
14939
14940 PR middle-end/48601
14941 * tree-emutls.c (lower_emutls_function_body): Call
14942 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
14943 result is non-NULL.
14944
14945 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
14946
14947 * c-decl.c (detect_field_duplicates): Call
14948 objc_detect_field_duplicates instead of objc_get_interface_ivars.
14949
14950 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
14951
14952 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
14953 * gimple.c (gimple_asm_clobbers_memory_p): Define.
14954 * ipa-pure-const.c (check_stmt): Call it.
14955 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
14956
14957 2011-04-15 Richard Guenther <rguenther@suse.de>
14958
14959 PR tree-optimization/48290
14960 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
14961 Properly decide inhibiting propagation based on the valueized
14962 operand. Do loop-closed SSA form preserving here ...
14963 (init_copy_prop): ... not here.
14964
14965 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
14966
14967 PR target/48612
14968 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
14969 (*ieee_smax<mode>3): Likewise.
14970
14971 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14972
14973 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
14974 Replace match_operand with match_dup for the third operand in
14975 these expanders.
14976
14977 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
14978
14979 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
14980 to track processing of conditionals. Update all callers.
14981 (try_combine, simplify_if_then_else): Update.
14982
14983 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
14984
14985 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
14986 -fsched-pressure.
14987
14988 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
14989
14990 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
14991 instead of match_operand for operand 3.
14992
14993 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
14994
14995 * recog.h (insn_operand_data): Add an "allows_mem" field.
14996 * genoutput.c (output_operand_data): Initialize it.
14997 * optabs.c (maybe_legitimize_operand_same_code): New function.
14998 (maybe_legitimize_operand): Use it when matching the original
14999 op->value.
15000
15001 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
15002
15003 * gimplify.c: Fix issues in comments throughout.
15004 (voidify_wrapper_expr): Fix long line.
15005 (build_stack_save_restore): Likewise.
15006 (gimplify_loop_expr): Likewise.
15007 (gimplify_compound_lval): Likewise.
15008 (gimplify_init_ctor_eval): Likewise.
15009 (gimplify_modify_expr_rhs): Likewise.
15010 (omp_notice_threadprivate_variable): Likewise.
15011
15012 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
15013
15014 * cfgexpand.c (expand_call_stmt): Convert the function type to the
15015 original one if this is not a builtin function.
15016
15017 2011-04-14 Jakub Jelinek <jakub@redhat.com>
15018
15019 PR target/48605
15020 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
15021 offset it as needed based on top 2 bits in operands[3], change
15022 MEM mode to SFmode and mask those 2 bits away from operands[3].
15023
15024 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
15025
15026 * c-parser.c (c_parser_objc_protocol_definition): Updated for
15027 change from objc_declare_protocols() to objc_declare_protocol().
15028
15029 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
15030
15031 * config/i386/sse.md (sse4_1): New mode attribute.
15032 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
15033 avx_blend<ssemodesuffix><avxmodesuffix> and
15034 sse4_1_blend<ssemodesuffix> using VF mode iterator.
15035 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
15036 avx_blendv<ssemodesuffix><avxmodesuffix> and
15037 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
15038 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
15039 avx_dp<ssemodesuffix><avxmodesuffix> and
15040 sse4_1_dp<ssemodesuffix> using VF mode iterator.
15041 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
15042 (sse4_1_packusdw): Merge with *avx_packusdw.
15043 (sse4_1_pblendvb): Merge with *avx_pblendvb.
15044 (sse4_1_pblendw): Merge with *avx_pblendw.
15045 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
15046 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
15047 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
15048 VF mode iterator.
15049 (sse4_1_round<ssescalarmodesuffix>): Merge with
15050 *avx_round<ssescalarmodesuffix>.
15051 (aesenc): Merge with *avx_aesenc.
15052 (aesenclast): Merge with *avx_aesenclast.
15053 (aesdec): Merge with *avx_aesdec.
15054 (aesdeclast): Merge with *avx_aesdeclast.
15055 (pclmulqdq): Merge with *pclmulqdq.
15056 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
15057 New predicate.
15058 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
15059
15060 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
15061
15062 PR middle-end/48608
15063 * cfgexpand.c (get_decl_align_unit): Renamed to ...
15064 (align_local_variable): This. Update DECL_ALIGN.
15065 (add_stack_var): Updated.
15066 (expand_one_stack_var): Likewise.
15067
15068 2011-04-14 Richard Guenther <rguenther@suse.de>
15069
15070 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
15071 Remove.
15072 (dse_initialize_block_local_data, dse_leave_block,
15073 record_voperand_set, get_stmt_uid): Likewise.
15074 (dse_possible_dead_store_p): Allow any kind of killing stmt.
15075 (dse_optimize_stmt): Remove voperand set handling code.
15076 Simplify and improve to handle any kind of killing stmt.
15077 (dse_record_phi): Remove.
15078 (dse_enter_block): Simplify.
15079 (tree_ssa_dse): Likewise.
15080 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
15081
15082 2011-04-14 Jan Hubicka <jh@suse.cz>
15083
15084 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
15085 * cgraph.h (struct inline_summary): Move to ipa-inline.h
15086 (cgraph_local_info): Remove inline_summary.
15087 * ipa-cp.c: Include ipa-inline.h.
15088 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
15089 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
15090 accesor.
15091 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
15092 (input_overwrite_node): Do not set inline summary.
15093 (input_node): Do not stream inline summary.
15094 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
15095 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
15096 growth; we do not have inline parameters computed for that anyway.
15097 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
15098 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
15099 (inline_summary_t): New type and VECtor.
15100 (debug_inline_summary, dump_inline_summaries): Declare.
15101 (inline_summary): Use VOCtor.
15102 (estimate_edge_growth): Kill hack computing call stmt size directly.
15103 * lto-section-in.c (lto_section_name): Add inline section.
15104 * ipa-inline-analysis.c: Include lto-streamer.h
15105 (node_removal_hook_holder, node_duplication_hook_holder): New holders
15106 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
15107 (inline_summary_vec): Define.
15108 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
15109 dump_inline_summaries): New functions.
15110 (estimate_function_body_sizes): Properly compute size/time of outgoing
15111 calls.
15112 (compute_inline_parameters): Alloc inline_summary; do not compute
15113 size/time of incomming calls.
15114 (estimate_edge_time): Avoid missing time summary hack.
15115 (inline_read_summary): Read inline summary info.
15116 (inline_write_summary): Write inline summary info.
15117 (inline_free_summary): Free all hooks and inline summary vector.
15118 * lto-streamer.h: Add LTO_section_inline_summary section.
15119 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
15120 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
15121
15122 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15123
15124 * tree-vectorizer.h (vect_strided_store_supported): Add a
15125 HOST_WIDE_INT argument.
15126 (vect_strided_load_supported): Likewise.
15127 (vect_permute_store_chain): Return void.
15128 (vect_transform_strided_load): Likewise.
15129 (vect_permute_load_chain): Delete.
15130 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
15131 count argument. Check that the count is a power of two.
15132 (vect_strided_load_supported): Likewise.
15133 (vect_permute_store_chain): Return void. Update after above changes.
15134 Assert that the access is supported.
15135 (vect_permute_load_chain): Likewise.
15136 (vect_transform_strided_load): Return void.
15137 * tree-vect-stmts.c (vectorizable_store): Update calls after
15138 above interface changes.
15139 (vectorizable_load): Likewise.
15140 (vect_analyze_stmt): Don't check for strided powers of two here.
15141
15142 2011-04-14 Richard Guenther <rguenther@suse.de>
15143
15144 PR tree-optimization/48590
15145 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
15146 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15147 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
15148 BUILT_IN_STACK_SAVE.
15149 * tree-ssa-dce.c (propagate_necessity): Handle
15150 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15151
15152 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
15153
15154 * c-parser.c (c_parser_objc_class_declaration): Updated call to
15155 objc_declare_class.
15156
15157 2011-04-14 Richard Guenther <rguenther@suse.de>
15158
15159 * tree.h (get_object_alignment_1): Declare.
15160 * builtins.c (get_object_alignment_1): Split out worker from ...
15161 (get_object_alignment): ... here.
15162 * fold-const.c (get_pointer_modulus_and_residue): Use
15163 get_object_alignment_1.
15164
15165 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15166
15167 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
15168 type parameter.
15169 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
15170 parameter. Generalise code to handle arrays as well as vectors.
15171 (vect_setup_realignment): Update accordingly.
15172 * tree-vect-stmts.c (vectorizable_store): Likewise.
15173 (vectorizable_load): Likewise.
15174
15175 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15176
15177 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
15178 within the per-copy loop.
15179
15180 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15181
15182 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
15183 in the dump file.
15184
15185 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15186
15187 * doc/options.texi (Negative): Explicitly mention that the
15188 Negative chain must be circular.
15189
15190 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
15191
15192 * function.h (block_chainon): Declare.
15193 * function.c (block_chainon): Define.
15194
15195 2011-04-14 Anatoly Sokolov <aesok@post.ru>
15196 Eric Weddington <eric.weddington@atmel.com>
15197 Georg-Johann Lay <avr@gjlay.de>
15198
15199 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
15200 New Includes
15201 (avr_init_builtins, avr_expand_builtin,
15202 avr_expand_delay_cycles, avr_expand_unop_builtin,
15203 avr_expand_binop_builtin ): New functions.
15204 (avr_builtin_id): New enum
15205 (struct avr_builtin_description): New struct
15206 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
15207 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
15208
15209 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
15210 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
15211 UNSPECV_DELAY_CYCLES): new enumeration values
15212 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
15213 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
15214 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
15215 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
15216 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
15217 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
15218 "fmulsu"): New insns
15219
15220 * config/avr/avr-c.c: fix line endings
15221 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
15222 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
15223 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
15224 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
15225 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
15226
15227 * doc/extend.texi (AVR Built-in Functions): New node
15228 (Target Builtins): Add documentation of AVR
15229 built-in functions.
15230
15231 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
15232
15233 PR target/44643
15234 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
15235 alone. Error if non-const data has attribute progmem.
15236
15237 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15238
15239 * tree.h (struct tree_constructor): Include tree_typed instead of
15240 tree_common.
15241 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
15242 TS_TYPED instead of TS_COMMON.
15243
15244 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
15245
15246 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
15247 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
15248 (sse2_psadbw): Merge with *avx_psadbw.
15249 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
15250 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
15251 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
15252 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
15253 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
15254 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
15255 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
15256 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
15257 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
15258 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
15259 (ssse3_palignrti): Merge with *avx_palignrti.
15260
15261 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15262
15263 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
15264 * tree-ssanames.c (fini_ssanames): VEC_free it.
15265 (make_ssa_name_fn): Update for VECness of free_ssanames.
15266 (release_ssa_name, release_dead_ssa_names): Likewise.
15267 * tree.h (struct tree_ssa_name): Include tree_typed instead of
15268 tree_common.
15269 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
15270 TS_TYPED instead of TS_COMMON.
15271
15272 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15273
15274 * postreload-gcse.c (gcse_after_reload_main): Add calls to
15275 statistics_counter_event.
15276 * tree-ssa-copyrename.c (stats): Define.
15277 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
15278 statistics_counter_event.
15279 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
15280 (bswap_stats, widen_mul_stats): Define.
15281 (insert_reciprocals): Increment rdivs_inserted.
15282 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
15283 rfuncs_inserted. Add calls to statistics_counter_event.
15284 (execute_cse_sincos_1): Increment inserted.
15285 (execute_cse_sincos): Zeroize sincos_stats. Add call to
15286 statistics_counter_event.
15287 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
15288 of bswap_stats. Add calls to statistics_counter_event.
15289 (convert_mult_to_widen): Increment widen_mults_inserted.
15290 (convert_plusminus_to_widen): Increment maccs_inserted.
15291 (convert_mult_to_fma): Increment fmas_inserted.
15292 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
15293 calls to statistics_counter_event.
15294
15295 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
15296
15297 PR rtl-optimization/48455
15298 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
15299 `temp_costs->mem_cost'.
15300
15301 2011-04-13 Jan Hubicka <jh@suse.cz>
15302
15303 * ipa-inline.h: New file.
15304 * ipa-inline-analysis.c: New file. Broken out of ...
15305 * ipa-inline.c: ... this file; update toplevel comment;
15306 include ipa-inline.h
15307 (inline_summary): Move to ipa-inline.h
15308 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
15309 ipa-inline-analysis.c.
15310 (cgraph_estimate_time_after_inlining): Rename to
15311 estiamte_time_after_inlining; move to ipa-inline-analysis.c
15312 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
15313 to estimate_edge_growth.
15314 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
15315 rename to estimate_size_after_inlining.
15316 (cgraph_mark_inline_edge): Update for new naming convention.
15317 (cgraph_check_inline_limits): Likewise.
15318 (cgraph_edge_badness): Likewise.
15319 (cgraph_decide_recursive_inlining): Likewise.
15320 (cgraph_decide_inlining_of_small_functions): Likewise.
15321 (cgraph_decide_inlining_incrementally): Likewise.
15322 (cgraph_estimate_growth): Rename to estimate_growth; move to
15323 ipa-inline-analysis.c.
15324 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
15325 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
15326 (compute_inline_parameters): Likewise.
15327 (compute_inline_parameters_for_current): Likewise.
15328 (pass_inline_parameters): Likewise.
15329 (inline_indirect_intraprocedural_analysis): Likewise.
15330 (analyze_function): Rename to inline_analyze_function; likewise.
15331 (add_new_function): Move to ipa-inline-analysis.c.
15332 (inline_generate_summary): Likewise.
15333 (inline_read_summary): Likewise.
15334 (inline_write_summary): Likewise.
15335 * Makefile.in (ipa-inline-analysis.c): New file.
15336
15337 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15338
15339 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
15340 * configure: Regenerate.
15341
15342 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15343
15344 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
15345 instead of tree_common.
15346 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
15347 Likewise.
15348 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
15349 TS_TYPED rather than TS_COMMON.
15350 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
15351
15352 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
15353
15354 PR target/45263
15355 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
15356 r20 around calls of __tablejump_elpm__
15357
15358 2011-04-13 Jakub Jelinek <jakub@redhat.com>
15359
15360 PR middle-end/48591
15361 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
15362 NULL.
15363 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
15364
15365 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
15366
15367 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
15368 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
15369 (cfi_vec): New typedef.
15370 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
15371 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
15372 (cie_cfi_vec): New static variable.
15373 (cie_cfi_head): Delete.
15374 (add_cfi): Accept a cfi_vec * as first argument. All callers and
15375 declaration changed. Use vector rather than list operations.
15376 (new_cfi): Don't initialize the dw_cfi_next field.
15377 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
15378 rather than list operations.
15379 (lookup_cfa): Use vector rather than list operations.
15380 (output_cfis): New argument upto. Accept a cfi_vec rather than
15381 a dw_cfi_ref list head as argument. All callers changed.
15382 Iterate over the vector using upto as a maximum index.
15383 (output_all_cfis): New static function.
15384 (output_fde): Use vector rather than list operations. Use the
15385 new upto argument for output_cfis rather than manipulating a
15386 list.
15387 (dwarf2out_begin_prologue): Change initializations to match
15388 new struct members.
15389 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
15390 from the vector length rather than searching for the end of a list.
15391 Use output_all_cfis.
15392 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
15393
15394 2011-04-13 Nick Clifton <nickc@redhat.com>
15395
15396 * config/rx/rx.md (movmemsi): Do not use this pattern when
15397 volatile pointers are involved.
15398
15399 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
15400
15401 * config/i386/sse.md (pinsrbits): Remove.
15402 (sse2_packsswb): Merge with *avx_packsswb.
15403 (sse2_packssdw): Merge with *avx_packssdw.
15404 (sse2_packuswb): Merge with *avx_packuswb.
15405 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
15406 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
15407 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
15408 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
15409 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
15410 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
15411 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
15412 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
15413 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
15414 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
15415 (sse2_loadld): Merge with *avx_loadld.
15416 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
15417 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
15418 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
15419 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
15420 (vec_concatv2di): Merge with *vec_concatv2di_avx.
15421
15422 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
15423
15424 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
15425 calling TREE_CHAIN.
15426 * print-tree.c (print_node): Likewise.
15427 * tree-inline.c (copy_tree_r): Likewise.
15428 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
15429 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
15430 instead of TS_COMMON.
15431 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
15432 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
15433 (copy_node_stat): Zero TREE_CHAIN only if necessary.
15434 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
15435 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
15436 ...and these...
15437 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
15438 * tree.h: ...here.
15439 (TREE_CHAIN): Check for a TS_COMMON structure.
15440 (TREE_TYPE): Check for a TS_TYPED structure.
15441
15442 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
15443
15444 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
15445 cgraph_get_create_node instead of cgraph_node.
15446
15447 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
15448
15449 * c-parser.c (c_parser_initelt): Updated call to
15450 objc_build_message_expr.
15451 (c_parser_postfix_expression): Likewise.
15452
15453 2011-04-12 Kai Tietz <ktietz@redhat.com>
15454
15455 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
15456 MASK_MS_BITFIELD_LAYOUT bit.
15457
15458 2011-04-12 Jakub Jelinek <jakub@redhat.com>
15459
15460 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
15461 assert it is always true.
15462 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
15463 moves.
15464
15465 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
15466
15467 * c-parser.c (c_lex_one_token): Rewritten conditional used when
15468 compiling Objective-C to be more efficient.
15469
15470 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
15471
15472 * opts-common.c (decode_cmdline_options_to_array): Remove variable
15473 argv_copied.
15474
15475 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15476
15477 * recog.h, genoutput.c, optabs.c: Revert last patch.
15478
15479 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
15480
15481 PR target/48090
15482 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
15483
15484 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15485
15486 * recog.h (insn_operand_data): Add an "allows_mem" field.
15487 * genoutput.c (output_operand_data): Initialize it.
15488 * optabs.c (maybe_legitimize_operand_same_code): New function.
15489 (maybe_legitimize_operand): Use it when matching the original
15490 op->value.
15491
15492 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15493
15494 * genpreds.c (process_define_predicate): Move most processing
15495 to gensupport.c. Continue to validate the expression.
15496 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
15497 (process_define_predicate): Move processing to gensupport.c.
15498 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
15499 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
15500 (compute_predicate_codes): Moved from genrecog.c. Add lineno
15501 argument.
15502 (valid_predicate_name_p): New function, split out from old
15503 genpreds.c:process_define_predicate.
15504 (process_define_predicate): New function, combining code from
15505 old genpreds.c and genrecog.c functions.
15506 (process_rtx): Call it for DEFINE_PREDICATE and
15507 DEFINE_SPECIAL_PREDICATE.
15508
15509 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15510
15511 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
15512 size of a '%A' memory reference.
15513 (T_DREG, T_QREG): New neon_builtin_type_bits.
15514 (arm_init_neon_builtins): Assert that the load and store operands
15515 are neon_struct_operands.
15516 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
15517 (NEON_ARG_MEMORY): New builtin_arg.
15518 (neon_dereference_pointer): New function.
15519 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
15520 Handle NEON_ARG_MEMORY.
15521 (arm_expand_neon_builtin): Update after above interface changes.
15522 Use NEON_ARG_MEMORY for loads and stores.
15523 * config/arm/predicates.md (neon_struct_operand): New predicate.
15524 * config/arm/iterators.md (V_two_elem): Tweak formatting.
15525 (V_three_elem): Use BLKmode for accesses that have no associated mode.
15526 (V_four_elem): Tweak formatting.
15527 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
15528 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
15529 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
15530 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
15531 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
15532 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
15533 (neon_vst4<mode>): Replace pointer operand with a memory operand.
15534 Use %A in the output template.
15535 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
15536 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
15537 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
15538 the width of the memory access. Remove post-increment.
15539 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
15540
15541 2011-04-12 Nick Clifton <nickc@redhat.com>
15542
15543 * config/v850/v850.c (expand_prologue): Do not use the CALLT
15544 instruction for interrupt handlers if the target is the basic V850
15545 architecture.
15546 (expand_epilogue): Likewise.
15547
15548 2011-04-12 Jakub Jelinek <jakub@redhat.com>
15549
15550 PR rtl-optimization/48549
15551 * combine.c (propagate_for_debug): Also stop after BB_END of
15552 this_basic_block. Process LAST and just stop processing after it.
15553 (combine_instructions): If last_combined_insn has been deleted,
15554 set last_combined_insn to its PREV_INSN.
15555
15556 2011-04-12 Richard Guenther <rguenther@suse.de>
15557
15558 PR tree-optimization/46076
15559 * gimple.h (struct gimple_statement_call): Add fntype field.
15560 (gimple_call_fntype): Adjust.
15561 (gimple_call_set_fntype): New function.
15562 * gimple.c (gimple_build_call_1): Set the call function type.
15563 * gimplify.c (gimplify_call_expr): Preserve the function
15564 type the frontend used for the call.
15565 (gimplify_modify_expr): Likewise.
15566 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
15567 function type.
15568 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
15569 function type.
15570 * tree-ssa.c (useless_type_conversion_p): Function pointer
15571 conversions are useless.
15572
15573 2011-04-12 Martin Jambor <mjambor@suse.cz>
15574
15575 * cgraph.h (cgraph_node): Remove function declaration.
15576 (cgraph_create_node): Declare.
15577 (cgraph_get_create_node): Likewise.
15578 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
15579 Updated all callers.
15580 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
15581 the decl does not already exist. Call cgraph_get_create_node instead
15582 of cgraph_node.
15583 (cgraph_get_create_node): New function.
15584 (cgraph_same_body_alias): Update comment.
15585 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
15586 assert it does not return NULL.
15587 (cgraph_update_edges_for_call_stmt): Likewise.
15588 (cgraph_clone_edge): Likewise.
15589 (cgraph_create_virtual_clone): Likewise.
15590 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
15591 instead of cgraph_node.
15592 (cgraph_add_new_function): Call cgraph_create_node or
15593 cgraph_get_create_node instead of cgraph_node.
15594 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
15595 instead of cgraph_node.
15596 (record_eh_tables): Likewise.
15597 (mark_address): Likewise.
15598 (mark_load): Likewise.
15599 (build_cgraph_edges): Call cgraph_get_create_node instead
15600 of cgraph_node.
15601 (rebuild_cgraph_edges): Likewise.
15602 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
15603 instead of cgraph_node.
15604 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
15605 cgraph_node.
15606 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
15607 cgraph_create_node instead of cgraph_node.
15608 * c-decl.c (finish_function): Call cgraph_get_create_node instead
15609 of cgraph_node.
15610 * lto-cgraph.c (input_node): Likewise.
15611 * lto-streamer-in.c (input_function): Likewise.
15612 * varasm.c (mark_decl_referenced): Likewise.
15613 (assemble_alias): Likewise.
15614
15615 2011-04-12 Martin Jambor <mjambor@suse.cz>
15616
15617 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
15618 instead of cgraph_node and assert it does not return NULL.
15619 * lto-streamer-in.c (lto_read_body): Likewise.
15620 * omp-low.c (new_omp_context): Likewise.
15621 (create_task_copyfn): Likewise.
15622 * tree-emutls.c (lower_emutls_function_body): Likewise.
15623 * matrix-reorg.c (transform_allocation_sites): Likewise.
15624
15625 2011-04-12 Jakub Jelinek <jakub@redhat.com>
15626
15627 PR c/48552
15628 * c-typeck.c (build_asm_expr): Error out on attempts to use
15629 void type outputs or inputs for constraints that allow reg or
15630 don't allow memory.
15631
15632 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
15633 Richard Earnshaw <rearnsha@arm.com>
15634
15635 PR target/48250
15636 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
15637 to use sign-magnitude offsets. Reject unsupported unaligned
15638 cases. Add detailed description in comments.
15639 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
15640 condition from TARGET_32BIT to TARGET_ARM.
15641
15642 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
15643
15644 * tree.h (struct typed_tree): New.
15645 (struct tree_common): Include it instead of tree_base.
15646 (TREE_TYPE): Update for new location of type field.
15647 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
15648 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
15649 (union tree_node): Add typed field.
15650 * treestruct.def (TS_TYPED): New.
15651 * lto-streamer.c (check_handled_ts_structures): Handle it.
15652 * tree.c (MARK_TS_TYPED): New macro.
15653 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
15654
15655 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
15656
15657 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
15658 (force_nonfallthru): Do not alter the loop nest if no basic block
15659 was created.
15660
15661 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
15662
15663 * config/i386/sse.md (VI): New mode iterator.
15664 (SSEMODEI): Remove.
15665 (AVX256MODEI): Ditto.
15666 (AVXMODEF4P): Ditto.
15667 (avxvecpsmode): Ditto.
15668 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
15669 (sse2_andnot<mode>3): New expander.
15670 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
15671 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
15672 (<any_logic:code><mode>3): Use VI mode iterator.
15673 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
15674 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
15675 (*andnottf3): Handle AVX three-operand constraints.
15676 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
15677
15678 2011-04-11 Joseph Myers <joseph@codesourcery.com>
15679 Robert Millan <rmh@gnu.org>
15680
15681 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
15682 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
15683 GNU_USER_DYNAMIC_LINKER64): Define.
15684 (REG_NAME): Don't undefine.
15685 (MD_UNWIND_SUPPORT): Undefine.
15686 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
15687 (REG_NAME): Don't undefine.
15688 (MD_UNWIND_SUPPORT): Undefine.
15689 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
15690
15691 2011-04-11 Joseph Myers <joseph@codesourcery.com>
15692
15693 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
15694 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
15695
15696 2011-04-11 Xinliang David Li <davidxl@google.com>
15697
15698 * value-profile.c (check_ic_target): New function.
15699 (gimple_ic_transform): Sanity check indirect call target.
15700 * gimple-low.c (gimple_check_call_args): Interface change.
15701 (gimple_check_call_matching_types): New function.
15702 * tree-inline.c (tree_can_inline_p): Call new function.
15703
15704 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
15705
15706 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
15707 tree-pretty-print.h & realmpfr.h.
15708
15709 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
15710
15711 PR middle-end/48464
15712 * ira.c (setup_pressure_classes): Fix typo in loop condition.
15713 (setup_allocno_and_important_classes): Ditto.
15714
15715 2011-04-11 Joseph Myers <joseph@codesourcery.com>
15716
15717 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
15718 GNU_USER_DYNAMIC_LINKER.
15719 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
15720 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15721 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
15722 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15723 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15724 GNU_USER_TARGET_OS_CPP_BUILTINS.
15725 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
15726 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15727 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15728 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15729 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
15730 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15731 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15732 GNU_USER_TARGET_OS_CPP_BUILTINS.
15733 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15734 GNU_USER_DYNAMIC_LINKER.
15735 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15736 GNU_USER_TARGET_OS_CPP_BUILTINS.
15737 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
15738 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15739 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
15740 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15741 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
15742 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
15743 GNU_USER_DYNAMIC_LINKER64): Remove.
15744 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
15745 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15746 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15747 GNU_USER_DYNAMIC_LINKER.
15748 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15749 GNU_USER_TARGET_OS_CPP_BUILTINS.
15750 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15751 GNU_USER_TARGET_OS_CPP_BUILTINS.
15752 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
15753 to GNU_USER_TARGET_OS_CPP_BUILTINS.
15754 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15755 GNU_USER_TARGET_OS_CPP_BUILTINS.
15756 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
15757 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
15758 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
15759 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
15760 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15761 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15762 GNU_USER_DYNAMIC_LINKER.
15763 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15764 GNU_USER_TARGET_OS_CPP_BUILTINS.
15765 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
15766 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15767 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15768 GNU_USER_DYNAMIC_LINKER.
15769 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15770 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15771 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
15772 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15773 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15774 GNU_USER_DYNAMIC_LINKER.
15775 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
15776 GNU_USER_DYNAMIC_LINKERN32.
15777 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
15778 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
15779 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
15780 GNU_USER_DYNAMIC_LINKER32.
15781 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
15782 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15783 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15784 GNU_USER_DYNAMIC_LINKER.
15785 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15786 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15787 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
15788 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15789 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15790 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
15791 GNU_USER_DYNAMIC_LINKER32.
15792 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
15793 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
15794 GNU_USER_DYNAMIC_LINKER.
15795 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
15796 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15797 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15798 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
15799 GNU_USER_DYNAMIC_LINKER64.
15800 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
15801 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15802 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15803 GNU_USER_DYNAMIC_LINKER.
15804 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
15805 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15806 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15807 GNU_USER_DYNAMIC_LINKER.
15808 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
15809 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15810 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15811 GNU_USER_DYNAMIC_LINKER32.
15812 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15813 GNU_USER_DYNAMIC_LINKER64.
15814 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15815 GNU_USER_DYNAMIC_LINKER64.
15816 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
15817 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15818 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
15819 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15820 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15821
15822 2011-04-11 Joseph Myers <joseph@codesourcery.com>
15823
15824 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
15825 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
15826 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
15827 GNU_USER_DYNAMIC_LINKER.
15828 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
15829 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
15830 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
15831 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
15832 GNU_USER_DYNAMIC_LINKER64.
15833 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
15834 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
15835 GNU_USER_LINK_EMULATION.
15836 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
15837 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
15838 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
15839 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
15840 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
15841 CPP_SPEC, CC1_SPEC): Remove.
15842 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
15843 (GNU_USER_DYNAMIC_LINKER): Define.
15844 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
15845 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
15846 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
15847 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
15848 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
15849 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
15850 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
15851 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
15852 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
15853 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
15854 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
15855 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
15856 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
15857 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
15858 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
15859 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
15860 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15861 GNU_USER_DYNAMIC_LINKER.
15862 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15863 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
15864 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15865 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
15866 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15867 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
15868 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
15869 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
15870 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
15871 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
15872
15873 2011-04-11 Kai Tietz <ktietz@redhat.com>
15874
15875 PR target/9601
15876 PR target/11772
15877 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
15878 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
15879 comment.
15880 (ix86_is_msabi_thiscall): Removed.
15881 (ix86_is_type_thiscall): Likewise.
15882 (ix86_get_callcvt): New function.
15883 (ix86_comp_type_attributes): Simplify check.
15884 (ix86_function_regparm): Use ix86_get_callcvt for calling
15885 convention attribute checks.
15886 (ix86_return_pops_args): Likewise.
15887 (ix86_static_chain): Likewise.
15888 (x86_this_parameter): Likewise.
15889 (x86_output_mi_thunk): Likewise.
15890 (ix86_function_type_abi): Optimize check for types without attributes.
15891 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
15892 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
15893 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
15894 by flag-values.
15895 (IX86_BASE_CALLCVT): Helper macro.
15896 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
15897 Use ix86_get_callcvt for calling convention attribute checks and avoid
15898 symbol-decoration for stdcall in TARGET_RTD case.
15899 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
15900 Likewise.
15901 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
15902 for declaration.
15903
15904 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
15905
15906 * config/i386/sse.md (VI_128): New mode iterator.
15907 (VI12_128): Rename from SSEMODE12.
15908 (VI14_128): Rename from SSEMODE14.
15909 (VI124_128): New mode iterator.
15910 (VI24_128): Rename from SSEMODE248.
15911 (VI248_128): Rename from SSEMODE248.
15912 (SSEMODE124C8): Remove.
15913 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
15914 (*sse2_<plusminus_insn><mode>3): Merge with
15915 *avx_<plusminus_insn><mode>3.
15916 (*mulv8hi3): Merge with *avx_mulv8hi3.
15917 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
15918 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
15919 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
15920 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
15921 (ashr<mode>3): Merge with *avx_ashr<mode>3.
15922 (lshr<mode>3): Merge with *avx_lshr<mode>3.
15923 (ashl<mode>3): Merge with *avx_ashl<mode>3.
15924 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
15925 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
15926 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15927 (*<smaxmin:code>v8hi3): Ditto.
15928 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
15929 (*<smaxmin:code>v16qi3): Ditto.
15930 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
15931 (*sse2_eq<mode>3): Ditto.
15932 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
15933 (*sse2_gt<mode>3): Ditto.
15934 (vcondv2di): Split out of vcond<mode>.
15935 (vconduv2di): Split out of vcondu<mode>.
15936
15937 2011-04-11 Richard Guenther <rguenther@suse.de>
15938
15939 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
15940 before calling tree_low_cst.
15941
15942 2011-04-11 Richard Guenther <rguenther@suse.de>
15943
15944 * stor-layout.c (layout_type): Compute all array index size operations
15945 in the original type.
15946 (initialize_sizetypes): Add comment.
15947 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
15948
15949 2011-04-11 Joseph Myers <joseph@codesourcery.com>
15950
15951 * common.opt (Tbss=, Tdata=, Ttext=): New options.
15952
15953 2011-04-11 Martin Jambor <mjambor@suse.cz>
15954
15955 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
15956 of cgraph_node, handle NULL return value.
15957 (cgraph_global_info): Likewise.
15958 (cgraph_rtl_info): Likewise.
15959 * tree-inline.c (estimate_num_insns): Likewise.
15960 * gimplify.c (unshare_body): Likewise.
15961 (unvisit_body): Likewise.
15962 (gimplify_body): Likewise.
15963 * predict.c (optimize_function_for_size_p): Likewise.
15964 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
15965 (call_may_clobber_ref_p_1): Likewise.
15966 * varasm.c (function_section_1): Likewise.
15967 (assemble_start_function): Likewise.
15968
15969 2011-04-11 Martin Jambor <mjambor@suse.cz>
15970
15971 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
15972 of cgraph_node.
15973 * final.c (rest_of_clean_state): Likewise.
15974 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
15975 * passes.c (pass_init_dump_file): Likewise.
15976 (execute_all_ipa_transforms): Likewise.
15977 (function_called_by_processed_nodes_p): Likewise.
15978 * predict.c (maybe_hot_frequency_p): Likewise.
15979 (probably_never_executed_bb_p): Likewise.
15980 (compute_function_frequency): Likewise.
15981 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
15982 (unnest_nesting_tree_1): Likewise.
15983 (lower_nested_functions): Likewise.
15984 * tree-optimize.c (execute_fixup_cfg): Likewise.
15985 (tree_rest_of_compilation): Likewise.
15986 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
15987 * tree-sra.c (ipa_early_sra): Likewise.
15988 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
15989 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
15990 * ipa.c (record_cdtor_fn): Likewise.
15991 * ipa-inline.c (cgraph_early_inlining): Likewise.
15992 (compute_inline_parameters_for_current): Likewise.
15993 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
15994 * ipa-pure-const.c (local_pure_const): Likewise.
15995 * ipa-split.c (split_function): Likewise.
15996 (execute_split_functions): Likewise.
15997 * cgraphbuild.c (build_cgraph_edges): Likewise.
15998 (rebuild_cgraph_edges): Likewise.
15999 (cgraph_rebuild_references): Likewise.
16000 (remove_cgraph_callee_edges): Likewise.
16001 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
16002 (verify_cgraph_node): Likewise.
16003 (cgraph_analyze_functions): Likewise.
16004 (cgraph_preserve_function_body_p): Likewise.
16005 (save_inline_function_body): Likewise.
16006 (save_inline_function_body): Likewise.
16007 * tree-inline.c (copy_bb): Likewise.
16008 (optimize_inline_calls): Likewise.
16009
16010 2011-04-11 Martin Jambor <mjambor@suse.cz>
16011
16012 PR tree-optimization/48195
16013 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
16014 ipa_check_create_edge_args.
16015 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
16016 ipa_check_create_edge_args.
16017 * ipa-inline.c (inline_generate_summary): Do not call
16018 ipa_check_create_node_params and ipa_check_create_edge_args.
16019 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
16020 ipa_check_create_edge_args.
16021
16022 2011-04-09 Anatoly Sokolov <aesok@post.ru>
16023
16024 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
16025 instead of loop.
16026 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
16027 * function.c (record_hard_reg_sets): Likewise.
16028 * ira.c (compute_regs_asm_clobbered): Likewise.
16029 * sched-deps.c (sched_analyze_1): Likewise.
16030 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
16031
16032 2011-04-09 Xinliang David Li <davidxl@google.com>
16033
16034 PR tree-optimization/PR48484
16035 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
16036 has_valid_pred lazily
16037
16038 2011-04-09 Duncan Sands <baldrick@free.fr>
16039
16040 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
16041
16042 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
16043
16044 * combine.c (combine_validate_cost): Adjust comments. Set registered
16045 cost of I0 to zero at the end, if any.
16046
16047 2011-04-08 Xinliang David Li <davidxl@google.com>
16048
16049 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
16050 to insane profile data.
16051
16052 2011-04-08 Xinliang David Li <davidxl@google.com>
16053
16054 * ipa-cp.c (ipcp_update_profiling): Correct
16055 negative scale factor due to insane profile data.
16056
16057 2011-04-08 Xinliang David Li <davidxl@google.com>
16058
16059 * final.c (dump_basic_block_info): New function.
16060 (final): Dump basic block.
16061 (final_scan_insn): Remove old dump.
16062
16063 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
16064
16065 PR target/47829
16066 * config.gcc (i386-*-freebsd): Disable unwind table generation for
16067 crtbegin/crtend.
16068
16069 2011-04-08 Michael Matz <matz@suse.de>
16070
16071 PR middle-end/48389
16072 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
16073 functions.
16074 (rebuild_jump_labels): Call rebuild_jump_labels_1.
16075 * rtl.h (rebuild_jump_labels_chain): Declare.
16076 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
16077 insns inserted on edges.
16078
16079 2011-04-08 Joseph Myers <joseph@codesourcery.com>
16080
16081 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
16082 * config/arm/arm-arches.def: New.
16083 * config/arm/arm-opts.h: New.
16084 * config/arm/genopt.sh: New.
16085 * config/arm/arm-tables.opt: New (generated).
16086 * config/arm/arm.c (arm_handle_option, arm_target_help,
16087 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
16088 (all_architectures): Get most table contents from arm-arches.def.
16089 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
16090 arm_selected_tune here.
16091 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
16092 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
16093 (march=, mcpu=, mtune=): Use Enum and Var.
16094 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
16095 (arm.o): Update dependencies.
16096
16097 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
16098
16099 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
16100 of header_file.
16101 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
16102 (write_typed_alloc_defns): Likewise.
16103 (main): Calls write_typed_alloc_defns with output_header.
16104
16105 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
16106
16107 PR inline-asm/48435
16108 * ira-color.c (setup_profitable_hard_regs): Add comments.
16109 Don't take prohibited hard regs into account.
16110 (setup_conflict_profitable_regs): Rename to
16111 get_conflict_profitable_regs.
16112 (check_hard_reg_p): Check prohibited hard regs.
16113
16114 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
16115
16116 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
16117 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
16118 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
16119
16120 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16121
16122 PR target/48366
16123 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
16124 move from floating point to shift amount register.
16125 (emit_move_sequence): Remove secondary reload support for floating
16126 point to shift amount amount register copies.
16127 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
16128 amount register copies.
16129 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
16130 register, return false if mode isn't a scalar integer mode.
16131 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
16132
16133 2011-04-08 Richard Guenther <rguenther@suse.de>
16134
16135 * gimple.c (gimple_call_flags): Remove kludge.
16136
16137 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
16138
16139 * sel-sched.c (sel_region_init): Move call to
16140 sel_setup_region_sched_flags after setup_current_loop_nest.
16141
16142 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
16143
16144 PR rtl-optimization/48272
16145 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
16146 init_insn_reg_pressure_info. Adjust a caller.
16147 * sched-int.h (init_insn_reg_pressure_info): Declare.
16148 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
16149 when sched-pressure is enabled.
16150
16151 2011-04-08 Richard Guenther <rguenther@suse.de>
16152
16153 * gimple.c (gimple_set_modified): Do not queue calls to
16154 MODIFIED_NORETURN_CALLS here ...
16155 * tree-ssa-operands.c (update_stmt_operands): ... but here.
16156
16157 2011-04-08 Richard Guenther <rguenther@suse.de>
16158
16159 PR lto/48467
16160 * toplev.c (lang_dependent_init): Do not open asm_out_file
16161 in WPA mode, nor perform debug machinery initialization.
16162 (finalize): Do not unlink asm_out_file in WPA mode.
16163
16164 2011-04-08 Richard Guenther <rguenther@suse.de>
16165
16166 * gimple.h (gimple_call_fntype): New function.
16167 (gimple_call_return_type): Use it.
16168 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
16169 * gimple-low.c (gimple_check_call_args): Likewise.
16170 * gimple.c (gimple_call_flags): Likewise.
16171 (gimple_call_arg_flags): Likewise.
16172 (gimple_call_return_flags): Likewise.
16173 * tree-cfg.c (verify_gimple_call): Likewise.
16174 (do_warn_unused_result): Likewise.
16175 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
16176 * value-prof.c (gimple_ic_transform): Fix fndecl check.
16177
16178 2011-04-08 Dmitry Melnik <dm@ispras.ru>
16179
16180 PR rtl-optimization/48235
16181 * sel-sched.c (code_motion_process_successors): Recompute the last
16182 insn in basic block if control flow changed.
16183 (code_motion_path_driver): Ditto. Recompute the first insn as well.
16184 Update condition for ilist_remove.
16185
16186 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
16187
16188 PR rtl-optimization/48302
16189 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
16190 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
16191 it to record added preheader blocks.
16192 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
16193 on to sel_add_loop_preheaders.
16194 (sel_region_init): Move call to setup_current_loop_nest after
16195 sel_init_bbs.
16196
16197 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
16198
16199 PR target/48273
16200 * cfgloop.h (loop_has_exit_edges): New helper.
16201 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
16202 non-clonable.
16203 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
16204 that have no exit edges.
16205
16206 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
16207
16208 PR rtl-optimization/48442
16209 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
16210 all callers. Adjust assert.
16211
16212 2011-04-08 Jakub Jelinek <jakub@redhat.com>
16213
16214 PR tree-optimization/48377
16215 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
16216 is_packed to true even for types with smaller TYPE_ALIGN than
16217 TYPE_SIZE.
16218
16219 2011-04-08 Richard Guenther <rguenther@suse.de>
16220
16221 PR bootstrap/48513
16222 * doc/tm.texi: Re-generate.
16223
16224 2011-04-08 Wei Guozhi <carrot@google.com>
16225
16226 PR target/47855
16227 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
16228 * config/arm/arm.c (arm_attr_length_push_multi): New function.
16229 * config/arm/arm.md (*push_multi): Change the length computation to
16230 call a C function.
16231
16232 2011-04-08 Anatoly Sokolov <aesok@post.ru>
16233
16234 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
16235 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
16236 * doc/tm.texi: Regenerate.
16237 * system.h (ASM_OUTPUT_BSS): Poison.
16238 * varasm.c (asm_output_bss): Remove function.
16239 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
16240
16241 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
16242 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
16243 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
16244 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16245 Likewise.
16246 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16247 Likewise.
16248 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16249 Likewise.
16250 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
16251
16252 2011-04-07 Joseph Myers <joseph@codesourcery.com>
16253
16254 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
16255 EnumValue lines.
16256
16257 2011-04-07 Joseph Myers <joseph@codesourcery.com>
16258
16259 * config/m68k/m68k.c (m68k_handle_option): Don't handle
16260 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
16261 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
16262 OPT_mcpu32.
16263 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16264 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
16265 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
16266 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
16267 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
16268 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
16269 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
16270 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
16271 options. Don't map other m68k options manually. Don't handle
16272 old-style options as canonical.
16273 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
16274 * doc/install.texi (m68k-*-*): Document binutils version requirement.
16275
16276 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
16277
16278 * basic-block.h (force_nonfallthru): Move to...
16279 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
16280 (force_nonfallthru): ...here.
16281 * cfghooks.c (force_nonfallthru): New function.
16282 * cfgrtl.c (force_nonfallthru): Rename into...
16283 (rtl_force_nonfallthru): ...this.
16284 (commit_one_edge_insertion): Do not set AUX field.
16285 (commit_edge_insertions): Do not discover new basic blocks.
16286 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
16287 (cfg_layout_rtl_cfg_hooks): Likewise.
16288 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
16289 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
16290 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
16291
16292 2011-04-07 Anatoly Sokolov <aesok@post.ru>
16293
16294 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
16295 Remove macros.
16296
16297 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
16298
16299 * config/i386/sse.md: Update copyright year.
16300 (avxcvtvecmode): Remove.
16301 (sse_movhlps): Merge with *avx_movhlps.
16302 (sse_movlhps): Merge with *avx_movlhps.
16303 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
16304 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
16305 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
16306 (sse_loadhps): Merge with *avx_loadhps.
16307 (sse_storelps): Merge with *avx_storelps.
16308 (sse_loadlps): Merge with *avx_loadlps.
16309 (sse_movss): Merge with *avx_movss.
16310 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
16311 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
16312 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
16313 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
16314 (vec_set<mode>_0): Ditto.
16315 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
16316 (sse4_1_insertps): Merge with *avx_insertps.
16317 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
16318 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
16319 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
16320 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
16321 (sse2_storehpd): Merge with *avx_storehpd.
16322 (sse2_loadhpd): Merge with *avx_loadhpd.
16323 (sse2_loadlpd): Merge with *avx_loadlpd.
16324 (sse2_movsd): Merge with *avx_movsd.
16325 (*vec_concatv2df): Merge with *vec_concatv2df.
16326
16327 2011-04-07 Jakub Jelinek <jakub@redhat.com>
16328
16329 PR debug/48343
16330 * combine.c (combine_instructions): Add last_combined_insn,
16331 update it if insn is after it, pass it to all try_combine calls.
16332 (try_combine): Add last_combined_insn parameter, pass it instead of
16333 i3 to propagate_for_debug.
16334
16335 2011-04-07 Nick Clifton <nickc@redhat.com>
16336
16337 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
16338 to handle MDR <-> data register transfers.
16339 (movhi_internal): Likewise.
16340
16341 2011-04-07 Alan Modra <amodra@gmail.com>
16342
16343 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
16344 previous stack info.
16345
16346 2011-04-07 Tom de Vries <tom@codesourcery.com>
16347
16348 PR target/43920
16349 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
16350 flow_find_cross_jump. Swap variables to implement backward replacement.
16351 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
16352
16353 2011-04-07 Tom de Vries <tom@codesourcery.com>
16354
16355 PR target/43920
16356 * cfgcleanup.c (walk_to_nondebug_insn): New function.
16357 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
16358 and bb2.
16359 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
16360 src1 or src2. Redirect edges to the last basic block. Update
16361 frequency and count on multiple basic blocks in case of fallthru.
16362
16363 2011-04-07 Tom de Vries <tom@codesourcery.com>
16364
16365 PR target/43920
16366 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
16367 function.
16368 (old_insns_match_p): Change return type. Replace return false/true
16369 with return dir_none/dir_both. Use can_replace_by.
16370 (flow_find_cross_jump): Add dir_p parameter. Init replacement
16371 direction from dir_p. Register replacement direction in dir, last_dir
16372 and afterlast_dir. Handle new return type of old_insns_match_p using
16373 merge_dir. Return replacement direction in dir_p.
16374 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
16375 return type of old_insns_match_p.
16376 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
16377 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
16378 flow_find_cross_jump.
16379 * basic-block.h (enum replace_direction): New type.
16380 (flow_find_cross_jump): Add parameter to declaration.
16381
16382 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
16383
16384 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
16385 (AVXMODEDCVTPS2DQ): Ditto.
16386 (VEC_FLOAT_MODE): Ditto.
16387 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
16388 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16389 (<any_logic:code><mode>3): Use VF mode iterator.
16390 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
16391 Use VF mode iterator.
16392 (copysign<mode>3): Use VF mode iterator.
16393 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
16394 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16395 (*<any_logic:code><MODEF:mode>3): Merge with
16396 *avx_<any_logic:code><MODEF:mode>3.
16397 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
16398 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
16399 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
16400 (avx_cvtdq2ps<avxmodesuffix>): Remove.
16401 (sse2_cvtdq2ps): Use %v modifier.
16402 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
16403 (avx_cvtps2dq<avxmodesuffix>): Remove.
16404 (sse2_cvtps2dq): Use %v modifier.
16405 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
16406 (avx_cvttps2dq<avxmodesuffix>): Remove.
16407 (sse2_cvttps2dq): Use %v modifier.
16408 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
16409 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
16410 (sse2_cvtsd2siq): Fix insn template.
16411 (sse2_cvtsd2siq_2): Ditto.
16412 (sse2_cvttsd2siq): Ditto.
16413 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
16414 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
16415
16416 2011-04-06 Joseph Myers <joseph@codesourcery.com>
16417
16418 * gcov-io.c: Use GCC Runtime Library Exception.
16419
16420 2011-04-06 Jakub Jelinek <jakub@redhat.com>
16421
16422 PR debug/48466
16423 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
16424 as base_reg whatever register reg has been eliminated to, instead
16425 of hardcoding STACK_POINTER_REGNUM.
16426
16427 2011-04-06 Joseph Myers <joseph@codesourcery.com>
16428
16429 * doc/tm.texi.in: Document C target hooks as separate from general
16430 target hooks.
16431 * doc/tm.texi: Regenerate.
16432 * genhooks.c (struct hook_desc): Add docname field.
16433 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
16434 docname field.
16435 (hook_array): Include c-target.def.
16436 (emit_documentation): Use docname field in output.
16437 (emit_init_macros): Take docname argument. Only emit definitions
16438 for hooks matching docname.
16439 (main): Expect additional arguments in all cases. Pass argument
16440 to emit_init_macros.
16441 * target.def: Move initial macro definitions and comments to
16442 target-hooks-macros.h.
16443 (gcc_targetcm): Move to c-family/c-target.def.
16444 * target.h (targetcm): Move declaration to c-family/c-target.h.
16445 * targhooks.c (default_handle_c_option): Move to
16446 c-family/c-opts.c.
16447 * targhooks.h (default_handle_c_option): Move declaration to
16448 c-family/c-common.h.
16449 * target-hooks-macros.h: New file.
16450 * config.gcc (target_has_targetcm): Define and use to add to
16451 c_target_objs and cxx_target_objs.
16452 * config/default-c.c: New file.
16453 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
16454 of target.h and target-def.h.
16455 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
16456 (darwin_objc_construct_string, darwin_cfstring_ref_p,
16457 darwin_check_cfstring_format_arg): Make static.
16458 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16459 TARGET_STRING_OBJECT_REF_TYPE_P,
16460 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
16461 * config/darwin-protos.h (darwin_objc_construct_string,
16462 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
16463 declare.
16464 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16465 TARGET_STRING_OBJECT_REF_TYPE_P,
16466 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
16467 * config/t-darwin (darwin-c.o): Update dependencies.
16468 * system.h (TARGET_HAS_TARGETCM): Poison.
16469 * Makefile.in (TARGET_H): Update.
16470 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
16471 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
16472 (default-c.o): New target.
16473 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
16474 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
16475 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
16476 c-target.def.
16477 (build/genhooks.o): Update dependencies.
16478
16479 2011-04-06 Richard Guenther <rguenther@suse.de>
16480
16481 * ipa-inline.c (enum inlining_mode): Remove.
16482 (cgraph_flatten): Use some other token.
16483 (cgraph_edge_early_inlinable_p): New function, split out from ...
16484 (cgraph_perform_always_inlining): New function, split out from ...
16485 (cgraph_decide_inlining_incrementally): ... here.
16486 (cgraph_mark_inline_edge): Adjust.
16487 (cgraph_early_inlining): Re-structure.
16488 (pass_early_inline): Require SSA form.
16489
16490 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
16491 Julian Brown <julian@codesourcery.com>
16492 Mark Shinwell <shinwell@codesourcery.com>
16493
16494 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
16495 LO_REGS only for Thumb-1.
16496 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
16497 be used in short instructions when optimising for size on Thumb-2.
16498
16499 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
16500
16501 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
16502 associated with user returns to be preserved.
16503
16504 2011-04-06 Tristan Gingold <gingold@adacore.com>
16505
16506 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
16507 symbol_queue_size, DBXOUT_DECR_NESTING,
16508 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
16509 if XCOFF_DEBUGGING_INFO.
16510
16511 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
16512
16513 * config/i386/i386.md (attribute isa): New.
16514 (attribute enabled): New.
16515 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
16516 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
16517 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
16518 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
16519 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
16520 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16521 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
16522 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
16523
16524 * config/i386/sse.md (VF): New mode iterator.
16525 (VF1): Ditto.
16526 (VF2): Ditto.
16527 (VF_128): Ditto.
16528 (SSEMODEF4): Remove.
16529 (attribute sse): Handle V8SF and V4DF modes.
16530 (<absneg:code><mode>2): Use VF mode iterator.
16531 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
16532 mode iterator.
16533 (<plusminus_insn><mode>3): Use VF mode iterator.
16534 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
16535 Use VF mode iterator.
16536 (<sse>_vm<plusminus_insn><mode>3): Merge with
16537 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
16538 (mul<mode>3): Use VF mode iterator.
16539 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
16540 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
16541 mode iterator.
16542 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
16543 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
16544 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
16545 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
16546 mode iterator.
16547 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
16548 Use VF1 mode iterator.
16549 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
16550 (sqrt<VF2:mode>2): New expander.
16551 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
16552 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
16553 and sqrtv2df2. Use VF mode iterator.
16554 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
16555 mode iterator.
16556 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
16557 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
16558 Use VF1 mode iterator.
16559 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
16560 (<smaxmin:code><mode>3): Use VF mode iterator.
16561 (*<smaxmin:code><mode>3_finite): Merge with
16562 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
16563 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16564 (<sse>_vm<smaxmin:code><mode>2): Merge with
16565 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
16566 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
16567 mode iterator.
16568 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
16569 mode iterator.
16570 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
16571 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
16572 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
16573 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
16574 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
16575 VF mode iterator.
16576 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
16577 Use VF_128 mode iterator.
16578 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
16579 mode iterator.
16580 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
16581 VF_128 mode iterator.
16582 (vcond<mode>): Use VF mode iterator.
16583 * config/i386/predicates.md (sse_comparison_operator): Merge with
16584 avx_comparison_float_operator. Do not declare as special_predicate.
16585 * config/i386/i386.c (struct builtin_description): Update for renamed
16586 compare patterns.
16587 (ix86_expand_args_builtin): Ditto.
16588 (ix86_expand_sse_compare_mask): Ditto.
16589
16590 2011-04-06 Richard Guenther <rguenther@suse.de>
16591
16592 * tree-inline.c (estimate_num_insns): For calls simply account
16593 for all passed arguments and a used return value.
16594
16595 2011-04-06 Richard Guenther <rguenther@suse.de>
16596
16597 PR tree-optimization/47663
16598 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
16599 call_stmt_time fields.
16600 (cgraph_edge_inlinable_p): Declare.
16601 (cgraph_edge_recursive_p): New inline function.
16602 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
16603 (cgraph_clone_edge): Copy it.
16604 * ipa-inline.c (cgraph_estimate_edge_time): New function.
16605 Account for call stmt time.
16606 (cgraph_estimate_time_after_inlining): Take edge argument.
16607 (cgraph_estimate_edge_growth): Account call stmt size.
16608 (cgraph_estimate_size_after_inlining): Take edge argument.
16609 (cgraph_mark_inline_edge): Adjust.
16610 (cgraph_check_inline_limits): Likewise.
16611 (cgraph_recursive_inlining_p): Remove.
16612 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
16613 (cgraph_decide_recursive_inlining): Take edge argument and
16614 adjust.
16615 (cgraph_decide_inlining_of_small_functions): Do not avoid
16616 diags for recursive inlining here.
16617 (cgraph_flatten): Adjust.
16618 (cgraph_decide_inlining_incrementally): Likewise.
16619 (estimate_function_body_sizes): Remove call cost handling.
16620 (compute_inline_parameters): Initialize caller edge call costs.
16621 (cgraph_estimate_edge_growth): New function.
16622 (cgraph_estimate_growth): Use it.
16623 (cgraph_edge_badness): Likewise.
16624 (cgraph_check_inline_limits): Take an edge argument.
16625 (cgraph_decide_inlining_of_small_functions): Adjust.
16626 (cgraph_decide_inlining): Likewise.
16627 * tree-inline.c (estimate_num_insns): Only account for call
16628 return value if it is used.
16629 (expand_call_inline): Avoid diagnostics on recursive inline
16630 functions here.
16631 * lto-cgraph.c (lto_output_edge): Output edge call costs.
16632 (input_edge): Input edge call costs.
16633
16634 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16635
16636 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
16637
16638 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
16639
16640 * doc/invoke.texi (Spec Files): Fix typo.
16641
16642 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
16643
16644 * profile.c (branch_prob): Move declaration of local variable. Remove
16645 obsolete ??? comment. Expand the location explicitly instead of using
16646 the LOCATION_FILE and LOCATION_LINE macros.
16647
16648 2011-04-06 Wei Guozhi <carrot@google.com>
16649
16650 PR target/47855
16651 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
16652 (arm_cond_branch): Likewise.
16653 (arm_cond_branch_reversed): Likewise.
16654 (arm_jump): Likewise.
16655 (push_multi): Likewise.
16656 * config/arm/constraints.md (Py): New constraint.
16657
16658 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16659
16660 PR bootstrap/48471
16661 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
16662 Move these...
16663 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
16664 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
16665 #ifdef DBX_DEBUGGING_INFO.
16666
16667 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
16668
16669 PR bootstrap/48403
16670 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
16671 if old and new states differ.
16672
16673 2011-04-05 Joseph Myers <joseph@codesourcery.com>
16674
16675 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
16676 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
16677 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16678 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
16679 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
16680 mcfv4e): Use Alias.
16681 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
16682 ColdFire options to -mcpu= options.
16683
16684 2011-04-05 Jeff Law <law@redhat.com>
16685
16686 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
16687 check if BB is a successor of LOOP->header and return
16688 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
16689
16690 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
16691
16692 * cprop.c (struct reg_use): Remove.
16693 (reg_use_table): Make an array of RTX.
16694 (find_used_regs, constprop_register, local_cprop_pass,
16695 bypass_block): Simplify users of reg_use_table.
16696 (cprop_insn): Likewise. Iterate if copy propagation succeeded
16697 on one of the uses found by find_used_regs.
16698
16699 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16700
16701 PR bootstrap/48469
16702 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
16703 declaration.
16704
16705 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16706
16707 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
16708 as an rtx.
16709 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
16710
16711 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
16712
16713 PR middle-end/48441
16714 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
16715
16716 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16717
16718 * combine.c: Include obstack.h.
16719 (struct insn_link): Define.
16720 (uid_log_links): Adjust type.
16721 (FOR_EACH_LOG_LINK): New macro.
16722 (insn_link_obstack): Declare.
16723 (alloc_insn_link): Define.
16724 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
16725 type of link variables.
16726 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
16727 (try_combine, record_promoted_values, distribute_notes): Likewise.
16728 (distribute_links): Likewise. Tweak prototype.
16729 (clear_log_links): Delete.
16730 (adjust_for_new_dest): Call alloc_insn_link.
16731 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
16732
16733 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16734
16735 * gcse.c (modify_mem_list): Convert to an array of VECs.
16736 (canon_modify_mem_list, compute_transp): Tweak formatting.
16737 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
16738 (load_killed_in_block_p): Likewise.
16739 (record_last_mem_set_info): Likewise.
16740 (clear_modify_mem_tables): Likewise.
16741
16742 2011-04-05 Tom de Vries <tom@codesourcery.com>
16743
16744 PR middle-end/48461
16745 * function.c (emit_use_return_register_into_block): Only define if
16746 HAVE_return.
16747
16748 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
16749
16750 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
16751
16752 2011-04-05 Joseph Myers <joseph@codesourcery.com>
16753
16754 * config/rx/rx-opts.h: New.
16755 * config/rx/rx.c (rx_cpu_type): Remove.
16756 (rx_handle_option): Don't assert that global structures are in
16757 use. Access variables via opts pointer. Defer most handling of
16758 OPT_mint_register_. Use error_at.
16759 (rx_option_override): Handle deferred OPT_mint_register_ here.
16760 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
16761 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
16762 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
16763 (rx_cpu_types): New Enum and EnumValue entries.
16764 (mint-register=): Use Defer and use Var accordingly.
16765
16766 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16767
16768 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
16769 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
16770 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
16771 Move these...
16772 (debug_free_queue, debug_nesting, symbol_queue_index):
16773 ...and these...
16774 * dbxout.c: ...to here. Make static.
16775
16776 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16777
16778 * gcse.c (modify_pair): Define. Define a VEC of it.
16779 (canon_modify_mem_list): Convert to an array of VECs.
16780 (free_insn_expr_list_list): Delete.
16781 (clear_modify_mem_tables): Call VEC_free instead.
16782 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
16783 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
16784 (canon_list_insert, compute_transp): Likewise.
16785
16786 2011-04-05 Tom de Vries <tom@codesourcery.com>
16787
16788 PR target/43920
16789 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
16790 for size.
16791
16792 2011-04-05 Tom de Vries <tom@codesourcery.com>
16793
16794 PR target/43920
16795 * function.c (emit_use_return_register_into_block): New function.
16796 (thread_prologue_and_epilogue_insns): Use
16797 emit_use_return_register_into_block.
16798
16799 2011-04-05 Tom de Vries <tom@codesourcery.com>
16800
16801 PR target/43920
16802 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
16803 insn.
16804
16805 2011-04-05 Tom de Vries <tom@codesourcery.com>
16806
16807 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
16808
16809 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
16810
16811 * config/arm/arm.md (define_constants for unspec): Replace with
16812 define_c_enum.
16813 (define_constants for unspecv): Replace with define_c_enum.
16814 * config/arm/neon.md (define_constants for unspec): Replace with
16815 define_c_enum.
16816
16817 2011-04-04 Richard Henderson <rth@redhat.com>
16818
16819 PR bootstrap/48400
16820 * dwarf2out.c (output_line_info): Always emit line info from
16821 at least one section.
16822 (dwarf2out_init): Create text_section_line_info here ...
16823 (set_cur_line_info_table): ... not here.
16824
16825 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
16826
16827 PR target/48380
16828 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
16829 not called.
16830
16831 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
16832
16833 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
16834
16835 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
16836 (expr_equiv_p): Remove.
16837 (insert_set_in_table): Look at <dest, src> pair instead of expr.
16838 (hash_scan_set): Update call to insert_set_in_table.
16839 (dump_hash_table): Dump <dest, src> pair.
16840 (lookup_set): Simplify. Lookup <dest, src> pair.
16841 (compute_transp): Remove, fold heavily simplified code into...
16842 (compute_local_properties): ...here. Expect COMP and TRANSP
16843 unconditionally.
16844 (find_avail_set): Take set directly from struct expr.
16845 (find_bypass-set): Likewise.
16846 (bypass_block): Likewise.
16847 (cprop_insn): Likewise. Remove redundant INSN_P test.
16848
16849 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
16850 checks on form of COND from find_implicit_sets to here.
16851 (find_implicit_sets): Cleanup control flow. Split critical edges
16852 if it exposes implicit sets. Allocate/resize implicit_sets as
16853 necessary.
16854 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
16855 changed something. Run df_analyze after find_implicit_sets if any
16856 edges were split. Do not allocate implicit_sets here.
16857
16858 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
16859 (gcse_obstack): Renamed to cprop_obstack.
16860 (GNEW, GNEWVEC, GNEWVAR): Remove.
16861 (gmalloc): Remove.
16862 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
16863 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
16864 (gcse_alloc): Likewise, and rename to cprop_alloc.
16865 (alloc_gcse_men, free_gcse_mem): Remove.
16866 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
16867 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
16868 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
16869
16870 * cprop.c (oprs_not_set_p): Remove.
16871 (mark_set, mark_clobber): Remove.
16872 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
16873 (reg_not_set_p): New function.
16874 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
16875 (cprop_insn): Likewise.
16876 (cprop_jump): Use FOR_EACH_EDGE.
16877
16878 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
16879
16880 PR bootstrap/48403
16881 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
16882 (rank_for_schedule): Use scheduled_insns vector instead of
16883 last_scheduled_insn.
16884 (ok_for_early_queue_removal): Likewise.
16885 (queue_to_ready): Search forward in nonscheduled_insns_begin if
16886 we have a dbg_cnt.
16887 (choose_ready): Likewise.
16888 (commit_schedule): Use VEC_iterate.
16889 (schedule_block): Initialize nonscheduled_insns_begin. If we have
16890 a dbg_cnt, use it and ensure the first insn is in the ready list.
16891 (haifa_sched_init): Allocate scheduled_insns.
16892 (sched_extend_ready_list): Don't allocate it; reserve space.
16893 (haifa_sched_finish): Free it.
16894
16895 2011-04-04 Joseph Myers <joseph@codesourcery.com>
16896
16897 * optc-gen.awk: Always remove type from Variable entry before
16898 recording in var_seen.
16899
16900 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
16901
16902 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
16903 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
16904 call to tidy_fallthru_edges.
16905
16906 2011-04-04 Joseph Myers <joseph@codesourcery.com>
16907
16908 * doc/options.texi (ToLower): Document.
16909 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
16910 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
16911 * opts.h (cl_option): Add cl_tolower field.
16912 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
16913 arguments with lowercase strings.
16914 * config/rx/rx.opt (mcpu=): Add ToLower.
16915 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
16916 argument.
16917
16918 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
16919
16920 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
16921
16922 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
16923
16924 * config/vax/vax.c: Include reload.h.
16925
16926 2011-04-04 Anatoly Sokolov <aesok@post.ru>
16927
16928 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
16929 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
16930 (sparc_preferred_reload_class): New function.
16931
16932 2011-04-04 Jakub Jelinek <jakub@redhat.com>
16933
16934 PR debug/48401
16935 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
16936 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
16937
16938 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
16939
16940 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
16941 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
16942
16943 2011-04-03 Anatoly Sokolov <aesok@post.ru>
16944
16945 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
16946 (ASM_OUTPUT_ALIGNED_BSS): Define.
16947
16948 2011-04-03 Michael Matz <matz@suse.de>
16949
16950 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
16951 and next_slot members.
16952 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
16953 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
16954 (lto_streamer_cache_append): Declare.
16955 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
16956 unsigned index, remove offset parameter, ensure that we append
16957 or update existing entries.
16958 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
16959 parameter, update next_slot for append.
16960 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
16961 parameter.
16962 (lto_streamer_cache_insert_at): Likewise.
16963 (lto_streamer_cache_append): New function.
16964 (lto_streamer_cache_lookup): Use unsigned index.
16965 (lto_streamer_cache_get): Likewise.
16966 (lto_record_common_node): Don't test tree_node_can_be_shared.
16967 (preload_common_node): Adjust call to lto_streamer_cache_insert.
16968 (lto_streamer_cache_delete): Don't free offsets member.
16969 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
16970 (lto_output_string_with_length): Use lto_output_data_stream.
16971 (lto_output_tree_header): Remove ix parameter, don't write it.
16972 (lto_output_builtin_tree): Likewise.
16973 (lto_write_tree): Adjust callers to above, don't track and write
16974 offset, write unsigned index.
16975 (output_unreferenced_globals): Don't emit all global vars.
16976 (write_global_references): Use unsigned indices.
16977 (lto_output_decl_state_refs): Likewise.
16978 (write_symbol): Likewise.
16979 * lto-streamer-in.c (lto_input_chain): Move earlier.
16980 (input_function): Use unsigned index.
16981 (input_alias_pairs): Don't read and then ignore all global vars.
16982 (lto_materialize_tree): Remove ix_p parameter, don't read index,
16983 don't pass it back, use lto_streamer_cache_append.
16984 (lto_register_var_decl_in_symtab): Use unsigned index.
16985 (lto_register_function_decl_in_symtab): Likewise.
16986 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
16987 index.
16988 (lto_get_builtin_tree): Don't read index, use
16989 lto_streamer_cache_append.
16990 (lto_read_tree): Adjust call to lto_materialize_tree.
16991
16992 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
16993 don't use function calls in arguments to MIN.
16994
16995 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
16996 twice.
16997
16998 * gimple.c (gimple_type_leader_entry): Mark deletable.
16999
17000 2011-04-03 Alan Modra <amodra@gmail.com>
17001
17002 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
17003
17004 2011-04-03 Michael Matz <matz@suse.de>
17005
17006 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
17007 an integer.
17008 * tree.h (tree_decl_non_common.vindex): Adjust comment.
17009
17010 2011-04-03 Michael Matz <matz@suse.de>
17011
17012 * cgraphbuild.c (record_reference): Canonicalize constructor values.
17013 * gimple-fold.c (canonicalize_constructor_val): Accept being called
17014 without function context.
17015 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
17016 current_function_decl and cfun.
17017
17018 2011-04-03 Michael Matz <matz@suse.de>
17019
17020 * tree.c (decl_init_priority_insert): Don't create entry for
17021 default priority.
17022 (decl_fini_priority_insert): Ditto.
17023 (fields_compatible_p, find_compatible_field): Remove.
17024 * tree.h (fields_compatible_p, find_compatible_field): Remove.
17025 * gimple.c (gimple_compare_field_offset): Adjust block comment.
17026
17027 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
17028
17029 * combine.c (try_combine): Remove useless local variable.
17030
17031 2011-04-03 Richard Guenther <rguenther@suse.de>
17032 Ira Rosen <ira.rosen@linaro.org>
17033
17034 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
17035 non-variable offsets and compare the remaining bases of the two
17036 accesses instead of looking for exact same data-ref.
17037
17038 2011-04-02 Kai Tietz <ktietz@redhat.com>
17039
17040 PR target/48416
17041 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
17042
17043 * i386.c (ix86_is_msabi_thiscall): New helper function.
17044 (ix86_is_type_thiscall): New helper function.
17045 (ix86_comp_type_attributes): Handle thiscall for method-functions
17046 special.
17047 (init_cumulative_args): Likewise.
17048 (find_drap_reg): Likewise.
17049 (ix86_static_chain): Likewise.
17050 (x86_this_parameter): Likewise.
17051 (x86_output_mi_thunk): Likewise.
17052
17053 2011-04-01 Olivier Hainque <hainque@adacore.com>
17054 Nicolas Setton <setton@adacore.com>
17055 Eric Botcazou <ebotcazou@adacore.com>
17056
17057 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
17058 (add_gnat_descriptive_type_attribute): New function.
17059 (gen_array_type_die): Call it.
17060 (gen_enumeration_type_die): Likewise.
17061 (gen_struct_or_union_type_die): Likewise.
17062 (modified_type_die): Likewise.
17063 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
17064 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
17065 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
17066
17067 2011-04-01 Jakub Jelinek <jakub@redhat.com>
17068
17069 PR bootstrap/48148
17070 * dwarf2out.c (resolve_addr): Don't call force_decl_die
17071 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
17072
17073 Revert:
17074 2011-03-17 Richard Guenther <rguenther@suse.de>
17075
17076 PR bootstrap/48148
17077 * lto-cgraph.c (input_overwrite_node): Clear the abstract
17078 origin for decls in other ltrans units.
17079 (input_varpool_node): Likewise.
17080
17081 2011-04-01 Jakub Jelinek <jakub@redhat.com>
17082
17083 PR middle-end/48335
17084 * expr.c (expand_assignment): Handle all possibilities
17085 if TO_RTX is CONCAT.
17086 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
17087 (store_split_bit_field): If SUBREG_REG (op0) or
17088 op0 itself has smaller mode than word, return it
17089 for offset 0 and const0_rtx for out-of-bounds stores.
17090 If word is const0_rtx, skip it.
17091
17092 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
17093
17094 * config/h8300/h8300.c (print_operand_address): Rename to...
17095 (h8300_print_operand_address): ...this. Make static. Adjust comments.
17096 Call h8300_print_operand and h8300_print_operand_address instead of
17097 print_operand and print_operand_address. Declare.
17098 (print_operand): Renake to...
17099 (h8300_print_operand): ...this. Make static. Adjust comments.
17100 Call h8300_print_operand instead of print_operand. Declare.
17101 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
17102 (h8300_register_move_cost): Likewise.
17103 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
17104 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
17105 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
17106 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
17107 * config/h8300/h8300-protos.h (print_operand): Delete.
17108 (print_operand_address): Delete.
17109
17110 2011-04-01 Richard Henderson <rth@redhat.com>
17111
17112 PR 48400
17113 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
17114 in strict mode before dwarf4. Re-order tests to early out
17115 before switching sections.
17116
17117 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
17118
17119 * config/h8300/constraints.md: New file.
17120 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
17121 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
17122 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
17123 * config/h8300/predicates.md (bit_operand): Likewise.
17124 (incdec_operand): Use satisfies_constraint_M and
17125 satisfies_constraint_O. Don't use C code block.
17126 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
17127 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
17128 (compute_mov_length): Use satisfies_constraint_G.
17129 (fix_bit_operand): Use satisfies_constraint_U.
17130 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
17131 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
17132 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
17133 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
17134 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
17135 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
17136 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17137 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
17138 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
17139 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
17140 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
17141 (EXTRA_MEMORY_CONSTRAINT): Delete.
17142
17143 2011-04-01 Andrew Pinski <pinskia@gmail.com>
17144 Michael Meissner <meissner@linux.vnet.ibm.com>
17145
17146 PR target/48262
17147 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
17148 operands, as per the specifications.
17149
17150 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
17151 (vec_extract_evenv4sf): Ditto.
17152 (vec_extract_evenv8hi): Ditto.
17153 (vec_extract_evenv16qi): Ditto.
17154 (vec_extract_oddv4si): Ditto.
17155
17156 2011-03-31 Mark Wielaard <mjw@redhat.com>
17157
17158 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
17159 high_pc attribute if the CU has no associated code. Only output
17160 DW_AT_entry_pc for CU if not generating strict dwarf and
17161 dwarf_version < 4.
17162
17163 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
17164
17165 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
17166 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
17167 out of ...
17168 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
17169 * final.c (final_start_function): Call the new function rather
17170 than using a NULL argument for dwarf2out_frame_debug.
17171
17172 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
17173 that contains the prologue.
17174
17175 * haifa-sched.c (queue_insn): New arg REASON. All callers
17176 changed. Print it in debugging output.
17177
17178 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
17179
17180 * sched-ebb.c (begin_schedule_ready): Remove second argument.
17181 Split most of the code into...
17182 (begin_move_insn): ... here. New function.
17183 (ebb_sched_info): Add a pointer to it.
17184 * haifa-sched.c (scheduled_insns): New static variable.
17185 (sched_extend_ready_list): Allocate it.
17186 (schedule_block): Use it to record the order of scheduled insns.
17187 Perform RTL changes to move insns only after all scheduling
17188 decisions have been made.
17189 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
17190 begin_move_insn field.
17191 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
17192 * sched-int.h (struct haifa_sched_info): Remove second argument
17193 from begin_schedule_ready hook. Add new member begin_move_insn.
17194 * sched-rgn.c (begin_schedule_ready): Remove second argument.
17195 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
17196
17197 * haifa-sched.c (prune_ready_list): New function, broken out of
17198 schedule_block.
17199 (schedule_block): Use it.
17200
17201 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17202
17203 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
17204
17205 2011-04-01 Kai Tietz <ktietz@redhat.com>
17206
17207 * config.gcc (*-*-mingw*): Allow as option the
17208 posix threading model.
17209 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
17210 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
17211 definition.
17212 (CPP_SPEC): Add pthread/no-pthread handling.
17213 (LIB_SPEC): Likewise.
17214 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
17215 (LIB_SPEC): Likewise.
17216 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
17217 flag to pass -pthread option for shared libgcc build.
17218 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
17219 for shared libgcc build.
17220 * config/i386/t-mingw-pthread: New file.
17221 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
17222 New define to enable use of library pthread by default.
17223 * config/i386/mingw.opt (pthread): New driver option.
17224 (no-pthread): New driver option.
17225 * config/i386/cygming.opt: Make sure trailing empty line is retained.
17226 * config/i386/mingw-w64.opt: Likewise.
17227
17228 2011-04-01 Gary Funck <gary@intrepid.com>
17229
17230 * c-decl.c (grokdeclarator): Fix formatting.
17231
17232 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
17233
17234 * expr.c (emit_block_move_via_movmem): Use n_generator_args
17235 instead of n_operands.
17236 (set_storage_via_setmem): Likewise.
17237 * optabs.c (maybe_gen_insn): Likewise.
17238 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
17239 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
17240 (mips_expand_builtin_direct): Likewise.
17241 * config/spu/spu.c (expand_builtin_args): Likewise.
17242
17243 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
17244
17245 * recog.h (insn_data_d): Add n_generator_args.
17246 * genoutput.c (data): Likewise.
17247 (output_insn_data): Print it.
17248 (max_opno, num_dups): Delete.
17249 (scan_operands): Just fill in "d->operand[...]".
17250 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
17251
17252 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
17253
17254 * gensupport.h (pattern_stats): New structure.
17255 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
17256 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
17257 (max_operand_1, max_operand_vec): Delete.
17258 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
17259
17260 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
17261
17262 * emit-rtl.c (emit_pattern_after_setloc): New function.
17263 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
17264 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
17265 (emit_pattern_after): New function.
17266 (emit_insn_after, emit_jump_insn_after): Call it.
17267 (emit_call_insn_after, emit_debug_insn_after): Likewise.
17268 (emit_pattern_before_setloc): New function.
17269 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
17270 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
17271 Likewise.
17272 (emit_pattern_before): New function.
17273 (emit_insn_before, emit_jump_insn_before): Call it.
17274 (emit_call_insn_before, emit_debug_insn_before): Likewise.
17275
17276 2011-03-31 Richard Henderson <rth@redhat.com>
17277
17278 * dwarf2out.c (dw_separate_line_info_ref): Remove.
17279 (dw_separate_line_info_entry): Remove.
17280 (enum dw_line_info_opcode): New.
17281 (dw_line_info_entry): Use it.
17282 (dw_line_info_table, dw_line_info_table_p): New.
17283 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
17284 (line_info_table, line_info_label_num): Remove.
17285 (line_info_table_in_use): Remove.
17286 (separate_line_info_table): Remove.
17287 (separate_line_info_table_allocated): Remove.
17288 (separate_line_info_table_in_use): Remove.
17289 (LINE_INFO_TABLE_INCREMENT): Remove.
17290 (line_info_label_num): New.
17291 (cur_line_info_table): New.
17292 (text_section_line_info, cold_text_section_line_info): New.
17293 (separate_line_info): New.
17294 (SEPARATE_LINE_CODE_LABEL): Remove.
17295 (print_dwarf_line_table): Remove.
17296 (debug_dwarf): Don't dump it.
17297 (output_one_line_info_table): New.
17298 (output_line_info): Use it.
17299 (new_line_info_table): New.
17300 (set_cur_line_info_table): New.
17301 (dwarf2out_switch_text_section): Use it.
17302 (dwarf2out_begin_function): Likewise.
17303 (push_dw_line_info_entry): New.
17304 (dwarf2out_source_line): Rewrite for new line info tables.
17305 (dwarf2out_init): Remove dead initailizations.
17306
17307 2011-03-31 Joseph Myers <joseph@codesourcery.com>
17308
17309 * opts.h (cl_option): Add comments to fields. Add bit-fields for
17310 various flags.
17311 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
17312 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
17313 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
17314 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
17315 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
17316 * opt-functions.awk (flag_init, switch_bit_fields): New.
17317 (switch_flags): Don't handle flags moved to bit-fields. Don't
17318 generate CL_MISSING_OK or CL_SAVE.
17319 * optc-gen.awk: Update to generate bit-field output as well as
17320 flags field.
17321 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
17322 bit-field instead of CL_REJECT_DRIVER flag.
17323 * opts-common.c (generate_canonical_option,
17324 decode_cmdline_option): Use bit-fields instead of CL_* flags.
17325 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
17326 instead of CL_REJECT_NEGATIVE flag.
17327 * toplev.c (print_switch_values): Use cl_report bit-field instead
17328 of CL_REPORT flag.
17329
17330 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
17331
17332 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
17333 a zero minimum index only if it is redundant.
17334
17335 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
17336
17337 PR rtl-optimization/48381
17338 * ira-color.c (assign_hard_reg): Use hard reg set intersection
17339 instead of ira_class_hard_reg_index for calculating conflicting
17340 hard registers.
17341
17342 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
17343
17344 * cprop.c: Clean up hash table building.
17345 (reg_avail_info): Remove.
17346 (oprs_available_p): Remove.
17347 (record_last_reg_set_info): Remove.
17348 (record_last_set_info): Remove.
17349 (reg_available_p): New function.
17350 (gcse_constant_p): Do not treat unfolded conditions as constants.
17351 (make_set_regs_unavailable): New function.
17352 (hash_scan_set): Simplify with new reg_available_p.
17353 (compute_hash_table_work): Traverse insns stream only once.
17354 Do not compute reg_avail_info. Traverse insns in reverse order.
17355 Record implicit sets after recording explicit sets from the block.
17356
17357 2011-03-31 Michael Matz <matz@suse.de>
17358
17359 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
17360
17361 2011-03-31 Anatoly Sokolov <aesok@post.ru>
17362
17363 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
17364 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
17365 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17366 (h8300_mode_dependent_address_p): New function.
17367 (h8300_get_index): Make static.
17368
17369 2011-03-31 Jeff Law <law@redhat.com>
17370
17371 * reload1.c (elimination_effects): Fix typo in recent change.
17372
17373 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
17374 typo potentially leading to null pointer dereference.
17375
17376 * caller-save.c (new_saved_hard_reg): Eliminate return value.
17377 (setup_save_areas): Corresponding changes to avoid useless
17378 assignments.
17379
17380 * jump.c (reversed_comparison_code_parts): Avoid successive return
17381 statements when REVERSE_CONDITION is defined.
17382
17383 * expr.c (expand_assignment): Avoid useless assignments.
17384 (expand_expr_real_1): Likewise.
17385 (expand_expr_real_2): Avoid useless statements.
17386
17387 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
17388
17389 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
17390
17391 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
17392 statements.
17393
17394 * stmt.c (expand_expr_stmt): Avoid useless assignment.
17395
17396 2011-03-31 Joseph Myers <joseph@codesourcery.com>
17397
17398 PR target/47109
17399 * doc/tm.texi.in (TARGET_VERSION): Remove.
17400 * doc/tm.texi: Regenerate.
17401 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
17402 * collect2.c (main): Don't use TARGET_VERSION.
17403 * mips-tdump.c (main): Don't use TARGET_VERSION.
17404 * mips-tfile.c (main): Don't use TARGET_VERSION.
17405 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
17406 * config/rs6000/vxworksae.h: Remove.
17407 * config/alpha/alpha.h (TARGET_VERSION): Remove.
17408 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
17409 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
17410 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
17411 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17412 * config/arm/arm.h (TARGET_VERSION): Remove.
17413 * config/arm/coff.h (TARGET_VERSION): Remove.
17414 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
17415 * config/arm/elf.h (TARGET_VERSION): Remove.
17416 * config/arm/freebsd.h (TARGET_VERSION): Remove.
17417 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
17418 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
17419 * config/arm/pe.h (TARGET_VERSION): Remove.
17420 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
17421 * config/arm/semi.h (TARGET_VERSION): Remove.
17422 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
17423 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
17424 * config/arm/vxworks.h (TARGET_VERSION): Remove.
17425 * config/avr/avr.h (TARGET_VERSION): Remove.
17426 * config/bfin/bfin.h (TARGET_VERSION): Remove.
17427 * config/fr30/fr30.h (TARGET_VERSION): Remove.
17428 * config/frv/frv.h (TARGET_VERSION): Remove.
17429 * config/h8300/h8300.h (TARGET_VERSION): Remove.
17430 * config/i386/cygwin.h (TARGET_VERSION): Remove.
17431 * config/i386/darwin.h (TARGET_VERSION): Remove.
17432 * config/i386/darwin64.h (TARGET_VERSION): Remove.
17433 * config/i386/djgpp.h (TARGET_VERSION): Remove.
17434 * config/i386/freebsd.h (TARGET_VERSION): Remove.
17435 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
17436 * config/i386/gnu.h (TARGET_VERSION): Remove.
17437 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
17438 * config/i386/i386elf.h (TARGET_VERSION): Remove.
17439 * config/i386/linux.h (TARGET_VERSION): Remove.
17440 * config/i386/linux64.h (TARGET_VERSION): Remove.
17441 * config/i386/lynx.h (TARGET_VERSION): Remove.
17442 * config/i386/mingw32.h (TARGET_VERSION): Remove.
17443 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
17444 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
17445 * config/i386/netware.h (TARGET_VERSION): Remove.
17446 * config/i386/nto.h (TARGET_VERSION): Remove.
17447 * config/i386/openbsd.h (TARGET_VERSION): Remove.
17448 * config/i386/vxworks.h (TARGET_VERSION): Remove.
17449 * config/ia64/elf.h (TARGET_VERSION): Remove.
17450 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
17451 * config/ia64/hpux.h (TARGET_VERSION): Remove.
17452 * config/ia64/linux.h (TARGET_VERSION): Remove.
17453 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17454 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
17455 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17456 * config/lm32/lm32.h (TARGET_VERSION): Remove.
17457 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
17458 * config/m32c/m32c.h (TARGET_VERSION): Remove.
17459 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
17460 * config/m32r/m32r.h (TARGET_VERSION): Remove.
17461 * config/m68k/linux.h (TARGET_VERSION): Remove.
17462 * config/m68k/m68k.h (TARGET_VERSION): Remove.
17463 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
17464 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
17465 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
17466 * config/mep/mep.h (TARGET_VERSION): Remove.
17467 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
17468 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17469 * config/mips/iris6.h (MACHINE_TYPE): Remove.
17470 * config/mips/linux.h (TARGET_VERSION): Remove.
17471 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
17472 * config/mips/vxworks.h (TARGET_VERSION): Remove.
17473 * config/mmix/mmix.h (TARGET_VERSION): Remove.
17474 * config/mn10300/linux.h (TARGET_VERSION): Remove.
17475 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
17476 * config/pa/pa.h (TARGET_VERSION): Remove.
17477 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
17478 * config/picochip/picochip.h (TARGET_VERSION): Remove.
17479 * config/rs6000/aix.h (TARGET_VERSION): Remove.
17480 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
17481 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
17482 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
17483 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
17484 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
17485 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
17486 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
17487 * config/rs6000/linux.h (TARGET_VERSION): Remove.
17488 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
17489 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
17490 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
17491 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
17492 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
17493 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
17494 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
17495 * config/s390/linux.h (TARGET_VERSION): Remove.
17496 * config/s390/s390.h (TARGET_VERSION): Remove.
17497 * config/s390/tpf.h (TARGET_VERSION): Remove.
17498 * config/score/score.h (TARGET_VERSION): Remove.
17499 * config/sh/linux.h (TARGET_VERSION): Remove.
17500 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
17501 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
17502 * config/sh/sh.h (TARGET_VERSION): Remove.
17503 * config/sh/sh64.h (TARGET_VERSION): Remove.
17504 * config/sh/superh.h (TARGET_VERSION): Remove.
17505 * config/sh/vxworks.h (TARGET_VERSION): Remove.
17506 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
17507 * config/sparc/linux.h (TARGET_VERSION): Remove.
17508 * config/sparc/linux64.h (TARGET_VERSION): Remove.
17509 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
17510 TARGET_NAME32, TARGET_NAME): Remove.
17511 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
17512 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
17513 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
17514 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
17515 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
17516 * config/spu/spu.h (TARGET_VERSION): Remove.
17517 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
17518 * config/v850/v850.h (TARGET_VERSION): Remove.
17519 * config/vax/linux.h (TARGET_VERSION): Remove.
17520 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
17521 * config/xtensa/elf.h (TARGET_VERSION): Remove.
17522 * config/xtensa/linux.h (TARGET_VERSION): Remove.
17523
17524 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
17525
17526 PR target/48142
17527 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
17528 frame-related from frame-unrelated adjustments to the stack pointer.
17529
17530 2011-03-31 Jakub Jelinek <jakub@redhat.com>
17531
17532 * common.opt (fdebug-types-section): Move earlier.
17533 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
17534
17535 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
17536
17537 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
17538 var.
17539
17540 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
17541
17542 * tree.h (CASE_CHAIN): Define.
17543 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
17544 (gimple_redirect_edge_and_branch): Likewise.
17545
17546 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
17547
17548 PR middle-end/48367
17549 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
17550 calculation.
17551
17552 2011-03-30 Jeff Law <law@redhat.com>
17553
17554 * PR bootstrap/48371
17555 * reload1.c (reload): Fix botch in last change.
17556
17557 * reload.h (struct reload): Fix typo introduced in last change.
17558
17559 2011-03-30 Joseph Myers <joseph@codesourcery.com>
17560
17561 * config/arm/arm.opt (mhard-float, msoft-float): Mark
17562 Undocumented. Remove help text.
17563 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
17564 -mhard-float.
17565
17566 2011-03-30 Joseph Myers <joseph@codesourcery.com>
17567
17568 * doc/options.texi (NegativeAlias): Document.
17569 (Alias): Mention NegativeAlias.
17570 * opt-functions.awk: Handle NegativeAlias.
17571 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
17572 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
17573 * opts.h (CL_NEGATIVE_ALIAS): Define.
17574 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
17575 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
17576 OPT_mspe_.
17577 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
17578 Alias entries.
17579 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17580 mno-spe and mno-isel instead of mspe=no and -misel=no.
17581
17582 2011-03-29 Mark Wielaard <mjw@redhat.com>
17583
17584 * common.opt (fdebug-types-section): New flag.
17585 * doc/invoke.texi: Document new -fno-debug-types-section flag.
17586 * dwarf2out.c (use_debug_types): New define.
17587 (struct die_struct): Mark die_id with GTY desc use_debug_types.
17588 (print_die): Guard output of type unit signatures using
17589 use_debug_types.
17590 (build_abbrev_table): Replace assert of dwarf_version >= 4
17591 with assert on use_debug_types.
17592 (size_of_die): Likewise.
17593 (unmark_dies): Likewise.
17594 (value_format): Decide AT_ref_external form on use_debug_types.
17595 (output_die): Replace dwarf_version version check guard with
17596 use_debug_types where appropriate.
17597 (modified_type_die): Likewise.
17598 (gen_reference_type_die): Likewise.
17599 (dwarf2out_start_source_file): Likewise.
17600 (dwarf2out_end_source_file): Likewise.
17601 (prune_unused_types_walk_attribs): Likewise.
17602 (dwarf2out_finish): Likewise.
17603
17604 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
17605
17606 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
17607
17608 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
17609
17610 PR rtl-optimization/48332
17611 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
17612 mode of input operand N and modeN to its actual mode.
17613
17614 2011-03-30 Jeff Law <law@redhat.com>
17615
17616 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
17617 define accessor macro.
17618 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
17619 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
17620 (reg_equiv_init): Likewise.
17621 (reg_equivs_size): New variable.
17622 (reg_equiv_init_size): Remove.
17623 (allocate_initial_values): Move prototype to here from....
17624 * integrate.h (allocate_initial_values): Remove prototype.
17625 * integrate.c: Include reload.h.
17626 (allocate_initial_values): Corresponding changes.
17627 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
17628 (fix_reg_equiv_init, no_equiv): Corresponding changes.
17629 (update_equiv_regs): Corresponding changes.
17630 (ira): Corresponding changes.
17631 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
17632 (push_secondary_reload): Corresponding changes.
17633 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
17634 (make_memloc, find_reloads_address): Corresponding changes.
17635 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
17636 (find_reloads_address_1): Corresponding changes.
17637 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
17638 (refers_to_regno_for_reload_p): Corresponding changes.
17639 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
17640 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
17641 * reload1.c: Include ggc.h.
17642 (grow_reg_equivs): New function.
17643 (replace_pseudos_in, reload): Corresponding changes.
17644 (calculate_needs_all_insns, alter_regs): Corresponding changes.
17645 (eliminate_regs_1, elimination_effects): Corresponding changes.
17646 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
17647 (delete_output_reload): Likewise.
17648 * caller-save.c (mark_referenced_regs): Corresponding changes.
17649 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
17650 * frv/predicates.md (frv_load_operand): Corresponding changes.
17651 * microblaze/microblaze.c (double_memory_operand): Corresponding
17652 changes.
17653 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
17654 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
17655 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
17656 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
17657 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
17658 changes.
17659 * pa/pa.c (emit_move_sequence): Corresponding changes.
17660 * vax/vax.c (nonindexed_address_p): Corresponding changes.
17661
17662 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
17663
17664 PR target/47551
17665 * config/arm/arm.c (coproc_secondary_reload_class): Handle
17666 structure modes. Don't check neon_vector_mem_operand for
17667 vector or structure modes.
17668
17669 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
17670 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
17671
17672 PR target/43590
17673 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
17674 operand 1 and reshuffle the operands to match.
17675 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
17676
17677 2011-03-30 Christian Schüler <cschueler@gmx.de>
17678
17679 PR driver/48208
17680 * config/c.opt (F): Added 'Driver' to -F option.
17681
17682 PR driver/48260
17683 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
17684 handler function.
17685 * config/darwin.opt: Added '-arch' option.
17686
17687 2011-03-30 Nick Clifton <nickc@redhat.com>
17688
17689 * config/rx/rx.md: Add peepholes and patterns to combine
17690 extending loads and simple arithmetic instructions.
17691 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
17692 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
17693 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
17694 modes to use pre-decrement and post-increment addressing.
17695 (rx_is_restricted_memory_address): Add range checking of REG+INT
17696 addresses.
17697 (rx_print_operand): Add support for %Q. Fix handling of %Q.
17698 (rx_memory_move_cost): Adjust cost of stores.
17699 (rx_adjust_insn_length): New function.
17700
17701 2011-03-30 Jakub Jelinek <jakub@redhat.com>
17702
17703 PR c/48305
17704 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
17705 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
17706 matching arg00/arg01 types.
17707
17708 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
17709
17710 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
17711 last_location to UNKNOWN_LOCATION.
17712
17713 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
17714
17715 PR target/48349
17716 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
17717 FLOAT_SSE_REGS.
17718
17719 2011-03-30 Joseph Myers <joseph@codesourcery.com>
17720 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17721
17722 PR bootstrap/48337
17723 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
17724 Init(PROCESSOR_V7).
17725 (sparc_cpu): Likewise.
17726 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
17727 PROCESSOR_V7.
17728
17729 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
17730
17731 PR target/48336
17732 PR middle-end/48342
17733 PR rtl-optimization/48345
17734 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
17735 hard regs for given mode from profitable regs when doing secondary
17736 allocation.
17737
17738 2011-03-29 Jeff Law <law@redhat.com>
17739
17740 PR bootstrap/48327
17741 * tree-ssa-threadupdate.c (struct redirection_data): Remove
17742 do_not_duplicate field.
17743 (lookup_redirection_data): Corresponding changes.
17744 (create_duplicates): Always create a template block.
17745 (redirect_edges): Remove code which reused the original block
17746 when it was going to become unreachable code.
17747 (thread_block): Don't set do_not_duplicate field.
17748
17749 2011-03-29 Joseph Myers <joseph@codesourcery.com>
17750
17751 * lto-opts.c (register_user_option_p, lto_register_user_option):
17752 Make type argument unsigned.
17753 * lto-streamer.h (lto_register_user_option): Make type argument
17754 unsigned.
17755 * opth-gen.awk: Make CL_* macros unsigned.
17756 * opts-common.c (find_opt): Make lang_mask argument unsigned.
17757 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
17758 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
17759 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
17760 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
17761 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
17762 (find_opt): Make lang_mask argument unsigned.
17763
17764 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
17765
17766 PR rtl-optimization/48331
17767 PR rtl-optimization/48334
17768 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
17769 for any used algorithm.
17770
17771 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
17772
17773 * ira-conflicts.c (build_object_conflicts): Add unused attribute
17774 to parent_max.
17775
17776 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
17777
17778 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
17779 (alpha_option_override): Don't set alpha_sr_alias_set.
17780 (emit_frame_store_1): Use gen_frame_mem rather than calling
17781 set_mem_alias_set.
17782 (alpha_expand_epilogue): Ditto.
17783
17784 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
17785
17786 PR tree-optimization/48290
17787 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
17788 vectorization, check that relevant phis in the basic block after
17789 the inner loop are really inner loop's exit phis.
17790
17791 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
17792
17793 PR debug/48190
17794 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
17795 (cached_dw_loc_list_def): New structure.
17796 (cached_dw_loc_list): New typedef.
17797 (cached_dw_loc_list_table): New variable.
17798 (cached_dw_loc_list_table_hash): New function.
17799 (cached_dw_loc_list_table_eq): Likewise.
17800 (add_location_or_const_value_attribute): Take a bool cache_p.
17801 Cache the list when the parameter is true.
17802 (gen_formal_parameter_die): Update caller.
17803 (gen_variable_die): Likewise.
17804 (dwarf2out_finish): Likewise.
17805 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
17806 while generating debug info for the decl.
17807 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
17808 (dwarf2out_init): Initialize cached_dw_loc_list_table.
17809 (resolve_addr): Cache the result of resolving a chain of
17810 location lists.
17811
17812 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
17813
17814 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
17815 conflict object hard regset nodes have intersecting hard reg sets.
17816
17817 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
17818 after regstat_init_n_sets_and_refs.
17819
17820 * ira.c: Add more comments at the top.
17821 (setup_stack_reg_pressure_class, setup_pressure_classes):
17822 Add comments how we compute the register pressure classes.
17823 (setup_allocno_and_important_classes): Add more comments.
17824 (setup_class_translate_array, reorder_important_classes)
17825 (setup_reg_class_relations): Add comments.
17826
17827 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
17828 start of the file.
17829
17830 * ira-color.c: Add 2011 to the Copyright line.
17831 (assign_hard_reg): Add more comments.
17832 (improve_allocation): Ditto.
17833
17834 * ira-costs.c: Add 2011 to the Copyright line.
17835 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
17836 comments.
17837 (setup_regno_cost_classes_by_mode): Ditto.
17838
17839 Initial patches from ira-improv branch:
17840
17841 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
17842
17843 * ira-build.c (ira_create_object): Remove initialization of
17844 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
17845 (ira_create_allocno): Remove initialization of
17846 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
17847 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
17848 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
17849 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
17850 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
17851 Initialize ALLOCNO_ADD_DATA.
17852 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
17853 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
17854 ALLOCNO_REG.
17855 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
17856 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
17857
17858 * ira.c (ira_reallocate): Remove.
17859 (setup_pressure_classes): Call
17860 ira_init_register_move_cost_if_necessary. Use
17861 ira_register_move_cost instead of ira_get_register_move_cost.
17862 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
17863 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
17864
17865 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
17866 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
17867 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
17868 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
17869 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
17870 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
17871 Fix formatting.
17872 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
17873 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
17874 (struct allocno_color_data): New.
17875 (allocno_color_data_t): New typedef.
17876 (allocno_color_data): New definition.
17877 (ALLOCNO_COLOR_DATA): New macro.
17878 (struct object_color_data): New.
17879 (object_color_data_t): New typedef.
17880 (object_color_data): New definition.
17881 (OBJECT_COLOR_DATA): New macro.
17882 (update_copy_costs, calculate_allocno_spill_cost): Call
17883 ira_init_register_move_cost_if_necessary. Use
17884 ira_register_move_cost instead of ira_get_register_move_cost.
17885 (move_spill_restore, update_curr_costs): Ditto.
17886 (allocno_spill_priority): Make it inline.
17887 (color_pass): Allocate and free allocno_color_dat and object_color_data.
17888 (struct coalesce_data, coalesce_data_t): New.
17889 (allocno_coalesce_data): New definition.
17890 (ALLOCNO_COALESCE_DATA): New macro.
17891 (merge_allocnos, coalesced_allocno_conflict_p): Use
17892 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
17893 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
17894 (coalesce_allocnos): Ditto.
17895 (setup_coalesced_allocno_costs_and_nums): Ditto.
17896 (collect_spilled_coalesced_allocnos): Ditto.
17897 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
17898 (setup_slot_coalesced_allocno_live_ranges): Ditto.
17899 (coalesce_spill_slots): Ditto.
17900 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
17901 free allocno_coalesce_data.
17902
17903 * ira-conflicts.c: Fix formatting.
17904 (process_regs_for_copy): Call
17905 ira_init_register_move_cost_if_necessary. Use
17906 ira_register_move_cost instead of ira_get_register_move_cost.
17907 (build_object_conflicts): Optimize.
17908
17909 * ira-costs.c (record_reg_classes): Optimize. Call
17910 ira_init_register_move_cost_if_necessary. Use
17911 ira_register_move_cost, ira_may_move_in_cost, and
17912 ira_may_move_out_cost instead of ira_get_register_move_cost and
17913 ira_get_may_move_cost.
17914 (record_address_regs): Ditto.
17915 (scan_one_insn): Optimize.
17916 (find_costs_and_classes): Optimize.
17917 (process_bb_node_for_hard_reg_moves): Call
17918 ira_init_register_move_cost_if_necessary. Use
17919 ira_register_move_cost instead of ira_get_register_move_cost.
17920
17921 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
17922 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
17923 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
17924 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
17925 definitions.
17926 (ira_initiate_emit_data, ira_finish_emit_data)
17927 (create_new_allocno): New functions.
17928 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
17929 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
17930 Use ira_register_move_cost instead of ira_get_register_move_cost.
17931
17932 * ira-int.h: Fix some comments.
17933 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
17934 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
17935 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
17936 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
17937 add_data.
17938 (struct ira_allocno): Make mode and aclass a bitfield. Move other
17939 bitfield after mode. Make hard_regno a short int. Make
17940 hard_regno short. Remove first_coalesced_allocno and
17941 next_coalesced_allocno. Move mem_optimized_dest_p,
17942 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
17943 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
17944 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
17945 temp, colorable_p. Add new member add_data.
17946 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
17947 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
17948 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
17949 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
17950 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
17951 (ALLOCNO_ADD_DATA): New macro.
17952 (ira_emit_data_t): New typedef.
17953 (struct ira_emit_data): New. Move mem_optimized_dest_p,
17954 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
17955 from struct ira_allocno.
17956 (ALLOCNO_EMIT_DATA): New macro.
17957 (ira_allocno_emit_data, allocno_emit_reg): New.
17958 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
17959 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
17960 (OBJECT_ADD_DATA): New macro.
17961 (ira_reallocate): Remove.
17962 (ira_initiate_emit_data, ira_finish_emit_data): New.
17963 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
17964 (ira_init_register_move_cost_if_necessary): New.
17965 (ira_object_conflict_iter_next): Merge into
17966 ira_object_conflict_iter_cond.
17967 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
17968
17969 * ira-live.c (process_single_reg_class_operands): Call
17970 ira_init_register_move_cost_if_necessary. Use
17971 ira_register_move_cost instead of ira_get_register_move_cost.
17972
17973 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
17974
17975 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
17976
17977 * ira-costs.c: Fix formatting.
17978 (cost_classes, cost_classes_num): Remove.
17979 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
17980 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
17981 (cost_classes_del, cost_classes_htab): New.
17982 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
17983 (initiate_regno_cost_classes, setup_cost_classes): New.
17984 (setup_regno_cost_classes_by_aclass): New.
17985 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
17986 (record_reg_classes): Use regno_cost_classes instead of
17987 cost_classes. Move checking opposite operand up.
17988 (record_address_regs): Use regno_cost_classes
17989 instead of cost_classes.
17990 (scan_one_insn): Ditto. Use always general register.
17991 (print_allocno_costs): Use regno_cost_classes instead of
17992 cost_classes.
17993 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
17994 (find_costs_and_classes): Set up cost classes for each registers.
17995 Use also their mode for this. Use regno_cost_classes instead of
17996 cost_classes.
17997 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
17998 cost_classes.
17999 (free_ira_costs, ira_init_costs): Don't use cost_classes.
18000 (ira_costs, ira_set_pseudo_classes): Call
18001 initiate_regno_cost_classes and finish_regno_cost_classes.
18002
18003 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
18004
18005 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
18006
18007 * target.def (ira_cover_classes): Remove.
18008
18009 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
18010
18011 * doc/tm.texi.in: Ditto.
18012
18013 * ira-conflicts.c: Remove mentioning cover classes from the file.
18014 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
18015 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
18016
18017 * targhooks.c (default_ira_cover_classes): Remove.
18018
18019 * targhooks.h (default_ira_cover_classes): Ditto.
18020
18021 * haifa-sched.c: Remove mentioning cover classes from the file.
18022 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
18023 ira_pressure_classes and ira_pressure_classes_num instead of
18024 ira_reg_class_cover_size and ira_reg_class_cover. Use
18025 sched_regno_pressure_class instead of sched_regno_cover_class.
18026 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
18027 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18028
18029 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
18030 classes from the file.
18031 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
18032 (struct object_hard_regs, struct object_hard_regs_node): New.
18033 (struct ira_object): New members profitable_hard_regs,
18034 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
18035 (struct ira_allocno): Rename cover_class to aclass. Rename
18036 cover_class_cost and updated_cover_class_cost to class_cost and
18037 updated_class_cost. Remove splay_removed_p and
18038 left_conflict_size. Add new members colorable_p.
18039 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
18040 (ALLOCNO_COLORABLE_P): New macro.
18041 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
18042 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
18043 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
18044 (OBJECT_...): Rename parameter C to O.
18045 (OBJECT_PROFITABLE_HARD_REGS): New macro.
18046 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
18047 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
18048 (struct target_ira_int): New members x_ira_max_memory_move_cost,
18049 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
18050 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
18051 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
18052 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
18053 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
18054 x_ira_reg_class_subunion.
18055 (ira_max_memory_move_cost, ira_max_register_move_cost)
18056 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
18057 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
18058 (ira_important_class_nums, ira_reg_class_superunion): New macros.
18059 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
18060 (ira_reg_class_union): Rename to ira_reg_class_subunion.
18061 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18062 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18063 (ira_tune_allocno_costs_and_cover_classes): Rename to
18064 ira_tune_allocno_costs.
18065 (ira_debug_hard_regs_forest): New.
18066 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
18067 (ira_object_conflict_iter_next): Fix comments.
18068 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
18069 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
18070 cover_class to aclass.
18071 (ira_allocate_and_accumulate_costs): Ditto.
18072 (ira_allocate_and_set_or_copy_costs): Ditto.
18073
18074 * opts.c (decode_options): Remove ira_cover_class check.
18075
18076 * ira-color.c: Remove mentioning cover classes from the file. Use
18077 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
18078 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
18079 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
18080 (splay-tree.h): Remove include.
18081 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
18082 before copy_freq_compare_func.
18083 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
18084 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
18085 New definitions.
18086 (hard_regs_roots, hard_regs_node_vec): Ditto.
18087 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
18088 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
18089 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
18090 (create_new_object_hard_regs_node): Ditto.
18091 (add_new_object_hard_regs_node_to_forest): Ditto.
18092 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
18093 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
18094 Ditto.
18095 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
18096 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
18097 (remove_unused_object_hard_regs_nodes): Ditto.
18098 (enumerate_object_hard_regs_nodes): Ditto.
18099 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
18100 (object_hard_regs_subnode_t): Ditto.
18101 (struct object_hard_regs_subnode): Ditto.
18102 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
18103 (setup_object_hard_regs_subnode_index): Ditto.
18104 (get_object_hard_regs_subnodes_num): Ditto.
18105 (form_object_hard_regs_nodes_forest): Ditto.
18106 (finish_object_hard_regs_nodes_tree): Ditto.
18107 (finish_object_hard_regs_nodes_forest): Ditto.
18108 (allocnos_have_intersected_live_ranges_p): Rename to
18109 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
18110 (pseudos_have_intersected_live_ranges_p): Rename to
18111 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
18112 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
18113 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
18114 (update_copy_costs): Remove assert. Skip cost update if the hard
18115 reg does not belong the class.
18116 (assign_hard_reg): Process only profitable hard regs.
18117 (uncolorable_allocnos_num): Make it scalar.
18118 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18119 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
18120 and ira_reg_class_max_nregs.
18121 (bucket_allocno_compare_func): Check frequency first.
18122 (sort_bucket): Add compare function as a parameter.
18123 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
18124 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
18125 (push_allocno_to_stack): Rewrite for checking new allocno
18126 colorability.
18127 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
18128 (push_only_colorable): Pass new parameter to sort_bucket.
18129 (push_allocno_to_spill): Remove.
18130 (allocno_spill_priority_compare): Make it inline and rewrite.
18131 (splay_tree_allocate, splay_tree_free): Remove.
18132 (allocno_spill_sort_compare): New function.
18133 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
18134 build and use splay tree. Choose first allocno in uncolorable
18135 allocno bucket to spill. Remove setting spill cost.
18136 (all_conflicting_hard_regs): Remove.
18137 (setup_allocno_available_regs_num): Check only profitable hard
18138 regs. Print info about hard regs nodes.
18139 (setup_allocno_left_conflicts_size): Remove.
18140 (put_allocno_into_bucket): Don't call
18141 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
18142 (improve_allocation): New.
18143 (color_allocnos): Call setup_profitable_hard_regs,
18144 form_object_hard_regs_nodes_forest, improve_allocation,
18145 finish_object_hard_regs_nodes_forest. Setup spill cost.
18146 (print_loop_title): Use pressure classes.
18147 (color_allocnso): Ditto.
18148 (do_coloring): Remove allocation and freeing splay_tree_node_pool
18149 and allocnos_for_spilling.
18150 (ira_sort_regnos_for_alter_reg): Don't setup members
18151 {first,next}_coalesced_allocno.
18152 (color): Remove allocating and freeing removed_splay_allocno_vec.
18153 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
18154 prohibited_class_mode_regs.
18155
18156 * ira-lives.c: Remove mentioning cover classes from the file. Fix
18157 formatting.
18158 (update_allocno_pressure_excess_length): Use pressure classes.
18159 (inc_register_pressure, dec_register_pressure): Check for pressure
18160 class.
18161 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
18162 pressure class. Use ira_reg_class_nregs instead of
18163 ira_reg_class_max_nregs.
18164 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
18165 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
18166 (single_reg_class): Use ira_reg_class_nregs instead of
18167 ira_reg_class_max_nregs.
18168 (process_bb_node_lives): Use pressure classes.
18169
18170 * ira-emit.c: Remove mentioning cover classes from the file. Use
18171 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
18172 (change_loop): Use pressure classes.
18173 (modify_move_list): Call ira_set_allocno_class instead of
18174 ira_set_allocno_cover_class.
18175
18176 * ira-build.c: Remove mentioning cover classes from the file. Use
18177 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
18178 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
18179 ALLOCNO_UPDATED_CLASS_COST instead of
18180 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
18181 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
18182 (ira_create_allocno): Remove initialization of
18183 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
18184 ALLOCNO_COLORABLE_P.
18185 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18186 Update conflict regs for the objects.
18187 (create_cap_allocno): Remove assert. Don't propagate
18188 ALLOCNO_AVAILABLE_REGS_NUM.
18189 (ira_free_allocno_costs): New function.
18190 (finish_allocno): Change a part of code into call of
18191 ira_free_allocno_costs.
18192 (low_pressure_loop_node_p): Use pressure classes.
18193 (object_range_compare_func): Don't compare classes.
18194 (setup_min_max_conflict_allocno_ids): Ditto.
18195
18196 * loop-invariant.c: Remove mentioning cover classes from the file.
18197 Use ira_pressure_classes and ira_pressure_classes_num instead of
18198 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
18199 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
18200 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18201 Use reg_allocno_class instead of reg_cover_class.
18202 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
18203 STACK_REG_COVER_CLASS.
18204 (get_regno_cover_class): Rename to get_regno_pressure_class.
18205 (move_loop_invariants): Initialize and finalize regstat.
18206
18207 * ira.c: Remove mentioning cover classes from the file. Add
18208 comments about coloring without cover classes. Use ALLOCNO_CLASS
18209 instead of ALLOCNO_COVER_CLASS. Fix formatting.
18210 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
18211 setup_class_subset_and_memory_move_costs.
18212 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
18213 (setup_cover_and_important_classes): Rename to
18214 setup_allocno_and_important_classes.
18215 (setup_class_translate_array): New.
18216 (setup_class_translate): Call it for allocno and pressure classes.
18217 (cover_class_order): Rename to allocno_class_order.
18218 (comp_reg_classes_func): Use ira_allocno_class_translate instead
18219 of ira_class_translate.
18220 (reorder_important_classes): Set up ira_important_class_nums.
18221 (setup_reg_class_relations): Set up ira_reg_class_superunion.
18222 (print_class_cover): Rename to print_classes. Add parameter.
18223 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18224 Print pressure classes too.
18225 (find_reg_class_closure): Rename to find_reg_classes. Don't call
18226 setup_reg_subclasses.
18227 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
18228 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18229 (setup_prohibited_class_mode_regs): Use
18230 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
18231 (clarify_prohibited_class_mode_regs): New function.
18232 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
18233 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
18234 (ira_init_once): Initialize them.
18235 (free_register_move_costs): Process them.
18236 (ira_init): Move calls of find_reg_classes and
18237 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
18238 Call clarify_prohibited_class_mode_regs.
18239 (ira_no_alloc_reg): Remove.
18240 (too_high_register_pressure_p): Use pressure classes.
18241
18242 * sched-deps.c: Remove mentioning cover classes from the file.
18243 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
18244 ira_pressure_classes and ira_pressure_classes_num instead of
18245 ira_reg_class_cover_size and ira_reg_class_cover.
18246 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
18247 sched_regno_pressure_class instead of sched_regno_cover_class.
18248 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
18249 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18250
18251 * ira.h: Add 2010 to Copyright.
18252 (ira_no_alloc_reg): Remove external.
18253 (struct target_ira): Rename x_ira_hard_regno_cover_class,
18254 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
18255 x_ira_class_translate to x_ira_hard_regno_allocno_class,
18256 x_ira_allocno_classes_num, x_ira_allocno_classes, and
18257 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
18258 x_ira_pressure_classes, x_ira_pressure_class_translate, and
18259 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
18260 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
18261 x_ira_no_alloc_regs.
18262 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
18263 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
18264 ira_allocno_classes_num and ira_allocno_classes.
18265 (ira_class_translate): Rename to ira_allocno_class_translate.
18266 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
18267 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
18268 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18269 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
18270 (ira_no_alloc_regs): New.
18271
18272 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
18273 classes from the file. Use ALLOCNO_CLASS instead of
18274 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
18275 ALLOCNO_COVER_CLASS_COST.
18276 (regno_cover_class): Rename to regno_aclass.
18277 (record_reg_classes): Use ira_reg_class_subunion instead of
18278 ira_reg_class_union.
18279 (record_address_regs): Check overflow.
18280 (scan_one_insn): Ditto.
18281 (print_allocno_costs): Print total mem cost fore regional allocation.
18282 (print_pseudo_costs): Use REG_N_REFS.
18283 (find_costs_and_classes): Use classes intersected with them on the
18284 1st pass. Check overflow. Use ira_reg_class_subunion instead of
18285 ira_reg_class_union. Use ira_allocno_class_translate and
18286 regno_aclass instead of ira_class_translate and regno_cover_class.
18287 Modify code for finding regno_aclass. Setup preferred classes for
18288 the next pass.
18289 (setup_allocno_cover_class_and_costs): Rename to
18290 setup_allocno_class_and_costs. Use regno_aclass instead of
18291 regno_cover_class. Use ira_set_allocno_class instead of
18292 ira_set_allocno_cover_class.
18293 (init_costs, finish_costs): Use regno_aclass instead of
18294 regno_cover_class.
18295 (ira_costs): Use setup_allocno_class_and_costs instead of
18296 setup_allocno_cover_class_and_costs.
18297 (ira_tune_allocno_costs_and_cover_classes): Rename to
18298 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
18299 by processing objects. Use ira_reg_class_max_nregs instead of
18300 ira_reg_class_nregs.
18301
18302 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
18303
18304 * sched-int.h: Remove mentioning cover classes from the file.
18305 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
18306
18307 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
18308 classes from the file.
18309 (struct reg_pref): Rename coverclass into allocnoclass.
18310 (reg_cover_class): Rename to reg_allocno_class.
18311
18312 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
18313
18314 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
18315
18316 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
18317
18318 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
18319
18320 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
18321
18322 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
18323
18324 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
18325
18326 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
18327
18328 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
18329
18330 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
18331
18332 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
18333 (i386_ira_cover_classes): Ditto.
18334
18335 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
18336
18337 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
18338
18339 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
18340
18341 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
18342
18343 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
18344
18345 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
18346
18347 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
18348 (mips_ira_cover_classes): Ditto.
18349
18350 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
18351
18352 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
18353
18354 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
18355
18356 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
18357
18358 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
18359
18360 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
18361 (IRA_COVER_CLASSES_VSX): Ditto.
18362
18363 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
18364 (rs6000_ira_cover_classes): Ditto.
18365
18366 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
18367
18368 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
18369
18370 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
18371
18372 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
18373
18374 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
18375
18376 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
18377
18378 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
18379
18380 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
18381
18382 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
18383
18384 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
18385
18386 2011-03-29 Jakub Jelinek <jakub@redhat.com>
18387
18388 PR debug/48253
18389 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
18390 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
18391 dw_fde_unlikely_section_end_label, cold_in_std_section,
18392 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
18393 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
18394 fields.
18395 (output_fde): Use dw_fde_second_{begin,end} if second is
18396 true, otherwise dw_fde_{begin,end}.
18397 (output_call_frame_info): Test dw_fde_second_begin != NULL
18398 instead of dw_fde_switched_sections.
18399 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
18400 fields, initialize new fields. Initialize in_std_section
18401 unconditionally from the first partition.
18402 (dwarf2out_end_epilogue): Don't override dw_fde_end when
18403 dw_fde_second_begin is non-NULL.
18404 (dwarf2out_switch_text_section): Stop initializing removed
18405 dw_fde_struct fields, initialize new fields, initialize
18406 also dw_fde_end here. Set dw_fde_switch_cfi even when
18407 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
18408 (struct var_loc_list_def): Add last_before_switch field.
18409 (arange_table, arange_table_allocated, arange_table_in_use,
18410 ARANGE_TABLE_INCREMENT, add_arange): Removed.
18411 (size_of_aranges): Count !in_std_section and !second_in_std_section
18412 hunks in fdes, instead of looking at arange_table_in_use.
18413 (output_aranges): Add aranges_length argument, don't call
18414 size_of_aranges here. Instead of using aranges_table*
18415 emit ranges for fdes when !in_std_section resp.
18416 !second_in_std_section.
18417 (dw_loc_list): Break ranges crossing section switch.
18418 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
18419 use dw_fde_second_end instead of dw_fde_end as end of last range.
18420 (gen_subprogram_die): Don't call add_arange. Use
18421 dw_fde_{begin,end} for first partition and if switched
18422 section dw_fde_second_{begin,end} for the second.
18423 (var_location_switch_text_section_1,
18424 var_location_switch_text_section): New functions.
18425 (dwarf2out_begin_function): Initialize cold_text_section even
18426 when function_section () isn't text_section.
18427 (prune_unused_types): Don't walk arange_table.
18428 (dwarf2out_finish): Don't needlessly test
18429 flag_reorder_blocks_and_partition when testing cold_text_section_used.
18430 If info_section_emitted, call size_of_aranges and if it indicates
18431 non-empty .debug_aranges, call output_aranges with the computed
18432 size. Stop using removed dw_fde_struct fields, use
18433 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
18434 for second.
18435
18436 PR debug/48203
18437 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
18438 create ENTRY_VALUE if incoming or address of incoming's MEM
18439 is a hard REG.
18440 * dwarf2out.c (mem_loc_descriptor): Don't emit
18441 DW_OP_GNU_entry_value of DW_OP_fbreg.
18442 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
18443 on ENTRY_VALUE is able to find the canonical parameter VALUE.
18444 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
18445 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
18446 ENTRY_VALUE_EXPs.
18447 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
18448 is a REG_P or MEM_P with REG_P address, compute hash directly
18449 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
18450 (preserve_only_constants): Don't clear VALUES forwaring
18451 ENTRY_VALUE to some other VALUE.
18452
18453 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
18454
18455 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
18456 instead of GEN_INT.
18457
18458 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
18459
18460 * cfgexpand.c (expand_gimple_cond): Always set the source location and
18461 block before expanding the statement.
18462 (expand_gimple_stmt_1): Likewise. Set them here...
18463 (expand_gimple_stmt): ...and not here. Tidy.
18464 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
18465 unknown.
18466
18467 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
18468
18469 * Makefile.in: New rule for cprop.o.
18470 * gcse.c: Move constant/copy propagation to cprop.c.
18471 (compute_local_properties): Only handle expression tables.
18472 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
18473 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
18474 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
18475 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
18476 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
18477 compute_cprop_data, find_used_regs, try_replace_reg,
18478 find_avail_set, cprop_jump, constprop_register, cprop_insn,
18479 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
18480 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
18481 find_bypass_set, reg_killed_on_edge, bypass_block,
18482 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
18483 execute_rtl_cprop, pass_rtl_cprop): Move to...
18484 * cprop.c: ...here. New file, constant/copy propagation for RTL
18485 moved from gcse.c to here with minor cleanups in duplicated code.
18486
18487 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
18488
18489 * config/i386/i386.c (flag_opts): Fix a typo in
18490 -mavx256-split-unaligned-store.
18491
18492 2011-03-28 Anatoly Sokolov <aesok@post.ru>
18493
18494 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
18495 LIBCALL_VALUE): Remove macros.
18496 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18497 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18498 (h8300_function_value, h8300_libcall_value,
18499 h8300_function_value_regno_p): New functions.
18500
18501 2011-03-28 Anatoly Sokolov <aesok@post.ru>
18502
18503 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
18504
18505 2011-03-28 Jeff Law <law@redhat.com>
18506
18507 * tree-ssa-threadupdate.c (redirect_edges): Call
18508 create_edge_and_update_destination_phis as needed.
18509 (create_edge_and_update_destination_phis): Accept new BB argument.
18510 All callers updated.
18511 (thread_block): Do not update the profile when threading around
18512 intermediate blocks.
18513 (thread_single_edge): Likewise.
18514 (determine_bb_domination_status): If BB is not a successor of the
18515 loop header, return NONDOMINATING.
18516 (register_jump_thread): Note when we register a jump thread around
18517 an intermediate block.
18518 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
18519 (thread_across_edge): Use it.
18520
18521 2011-03-28 Tristan Gingold <gingold@adacore.com>
18522
18523 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
18524 when for_return is 2.
18525
18526 2011-03-28 Jeff Law <law@redhat.com>
18527
18528 * var-tracking.c (canonicalize_values_mark): Delete unused
18529 lhs assignment.
18530 (canonicalize_values_star, set_variable_part): Likewise.
18531 (clobber_variable_part, delete_variable_part): Likewise.
18532
18533 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
18534
18535 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
18536
18537 2011-03-28 Martin Jambor <mjambor@suse.cz>
18538
18539 * tree-inline.c (expand_call_inline): Do not check that destination
18540 node is analyzed.
18541 (optimize_inline_calls): Assert that destination node is analyzed.
18542 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
18543 not call tree_lowering_passes.
18544 * cgraph.h (cgraph_analyze_function): Declare.
18545 * cgraphunit.c (cgraph_analyze_function): Make public.
18546
18547 2011-03-28 Joseph Myers <joseph@codesourcery.com>
18548
18549 * config/sparc/sparc-opts.h: New.
18550 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
18551 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
18552 (sparc_option_override): Store processor_type enumeration rather
18553 than string in cpu_default. Remove name and enumeration from
18554 cpu_table. Directly default -mcpu then default -mtune from -mcpu
18555 without using sparc_select. Use target_flags_explicit instead of
18556 fpu_option_set.
18557 * config/sparc/sparc.h (enum processor_type): Move to
18558 sparc-opts.h.
18559 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
18560 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
18561 HeaderInclude entry.
18562 (mcpu=, mtune=): Use Var and Enum.
18563 (sparc_processor_type): New Enum and EnumValue entries.
18564
18565 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18566 Iain Sandoe <iains@gcc.gnu.org>
18567
18568 PR target/48245
18569 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
18570
18571 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
18572
18573 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
18574 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
18575 Insert new statements at it in lieu of STMT.
18576 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
18577 * tree-vect-stmts.c (vectorizable_store): Likewise.
18578 (vectorizable_load): Likewise.
18579
18580 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
18581
18582 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
18583 (divtf3): Ditto.
18584 (multf3): Ditto.
18585 (subtf3): Ditto.
18586
18587 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
18588
18589 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
18590 unaligned 256bit load/store.
18591 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
18592 (*avx_movdqu<avxmodesuffix>): Likewise.
18593
18594 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18595
18596 PR target/48288
18597 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
18598 * config/pa/pa.md (iordi3): Use new predicate in expander.
18599 (iorsi3): Likewise.
18600
18601 2011-03-27 Anatoly Sokolov <aesok@post.ru>
18602
18603 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
18604 FUNCTION_VALUE_REGNO_P): Remove macros.
18605 * config/mips/mips-protos.h (mips_function_value): Remove.
18606 * config/mips/mips.c (mips_function_value): Rename to...
18607 (mips_function_value_1): ... this. Make static. Handle receiving
18608 the function type in 'fn_decl_or_type' argument.
18609 (mips_function_value, mips_libcall_value,
18610 mips_function_value_regno_p): New function.
18611 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18612 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18613
18614 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
18615
18616 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
18617 and -mavx256-split-unaligned-store.
18618 (ix86_option_override_internal): Split 32-byte AVX unaligned
18619 load/store by default.
18620 (ix86_avx256_split_vector_move_misalign): New.
18621 (ix86_expand_vector_move_misalign): Use it.
18622
18623 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
18624 -mavx256-split-unaligned-store.
18625
18626 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
18627 256bit load/store. Generate unaligned store on misaligned memory
18628 operand.
18629 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
18630 256bit load/store.
18631 (*avx_movdqu<avxmodesuffix>): Likewise.
18632
18633 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
18634 -mavx256-split-unaligned-store.
18635
18636 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
18637
18638 PR target/38598
18639 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
18640 Update commentary.
18641
18642 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
18643
18644 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
18645 opno arguments with an expand_operand. Use create_input_operand.
18646 (mips_prepare_builtin_target): Delete.
18647 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
18648 functions.
18649 (mips_expand_builtin_direct): Use create_output_operand and
18650 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
18651 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
18652 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
18653
18654 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
18655
18656 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
18657 function.
18658 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
18659
18660 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
18661
18662 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
18663 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
18664 basic blocks and call commit_edge_insertions directly.
18665 (fixup_abnormal_edges): Move from here to...
18666 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
18667 on the edges and return whether some have actually been inserted.
18668 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
18669 compensation code.
18670
18671 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
18672
18673 PR rtl-optimization/48144
18674 * sel-sched-ir.c (merge_history_vect): Factor out from ...
18675 (merge_expr_data): ... here.
18676 (av_set_intersect): Rename to av_set_code_motion_filter.
18677 Update all callers. Call merge_history_vect when an expression
18678 is found in both sets.
18679 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
18680
18681 2011-03-26 Alan Modra <amodra@gmail.com>
18682
18683 * config/rs6000/predicates.md (word_offset_memref_op): Handle
18684 cmodel medium addresses.
18685 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
18686 64-bit gpr loads and stores.
18687 (rs6000_secondary_reload_ppc64): New function.
18688 * config/rs6000/rs6000-protos.h: Declare it.
18689 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
18690
18691 2011-03-26 Alan Modra <amodra@gmail.com>
18692
18693 PR target/47487
18694 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
18695 GNU Go in traceback table.
18696
18697 2011-03-25 Richard Henderson <rth@redhat.com>
18698
18699 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
18700 if there are exactly 6 operands.
18701 (set_storage_via_setmem): Similarly.
18702
18703 2011-03-25 Kai Tietz <ktietz@redhat.com>
18704
18705 * collect2.c (write_c_file_stat): Handle backslash
18706 as right-hand directory separator.
18707 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
18708 checking just for slash.
18709 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
18710 instead of checking for trailing slash.
18711 * gcc.c (record_temp_file): Use filename_cmp instead
18712 of strcmp.
18713 (do_spec_1): Likewise.
18714 (replace_outfile_spec_function): Likewise.
18715 (is_directory): Use filename_ncmp instead of strncmp.
18716 (print_multilib_info): Likewise.
18717 * gcov.c (find_source): Use filename_cmp instead
18718 instead of strcmp.
18719 (make_gcov_file_name): Fix order of slash/backslash
18720 checks.
18721 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
18722 (add_standard_paths): Likewise.
18723 * mips-tfile.c (saber_stop): Handle backslash.
18724 * prefix.c (update_path): Use filename_ncmp instead of
18725 strncmp.
18726 * profile.c (output_location): Use filename_cmp instead
18727 of strcmp.
18728 * read-md.c (handle_toplevel_file): Handle backslash.
18729 * tlink.c (frob_extension): Likewise.
18730 * tree-cfg.c (same_line_p): Use filename_cmp instead of
18731 strcmp.
18732 * tree-dump.c (dequeue_and_dump): Handle backslash.
18733 * tree.c (get_file_function_name): Likewise.
18734 * gengtype.c (read_input_list): Likewise.
18735 (get_file_realbasename): Likewise.
18736 (get_output_file_with_visibility): Use filename_cmp
18737 instead of strcmp.
18738
18739 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
18740
18741 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
18742 case to VFPv1.
18743
18744 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
18745
18746 * fold-const.c (expr_location_or): New function.
18747 (fold_truth_not_expr): Call it.
18748
18749 2011-03-25 Jeff Law <law@redhat.com>
18750
18751 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
18752 va_end.
18753 * c-family/c-common.c (def_fn_type): Likewise.
18754 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
18755 * emit-rtl.c (gen_rtvec): Likewise.
18756 * lto/lto-lang.c (def_fn_type): Likewise.
18757
18758 2011-03-25 Richard Guenther <rguenther@suse.de>
18759
18760 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
18761 also generate copies.
18762 (fini_copy_prop): Handle constant values properly.
18763
18764 2011-03-25 Jakub Jelinek <jakub@redhat.com>
18765
18766 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
18767 mode size instead of bitsize with DWARF2_ADDR_SIZE.
18768 (hash_loc_operands, compare_loc_operands): Handle
18769 DW_OP_GNU_entry_value.
18770
18771 2011-03-25 Kai Tietz <ktietz@redhat.com>
18772
18773 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
18774 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
18775 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
18776 comment and use macro TARGET_64BIT_MS_ABI instead.
18777 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
18778 and change default behavior for 32-bit MS_ABI.
18779 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
18780 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
18781 32-bit, too.
18782 (ix86_cfun_abi): Likewise.
18783 (ix86_maybe_switch_abi): Adjust comment.
18784 (init_cumulative_args): Check for bit-ness in MS_ABI case.
18785 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
18786 instead of checking for SYSV_ABI.
18787 (ix86_nsaved_sseregs): Likewise.
18788 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
18789 to 16 bytes.
18790 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
18791 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
18792 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
18793 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
18794 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
18795
18796 2011-03-25 Richard Guenther <rguenther@suse.de>
18797
18798 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
18799 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18800 (verify_gimple): Remove.
18801 * tree-cfg.c (verify_gimple_call): Merge verification
18802 from verify_stmts.
18803 (verify_gimple_phi): Merge verification from verify_stmts.
18804 (verify_gimple_label): New function.
18805 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
18806 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18807 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
18808 (verify_stmts): Rename to verify_gimple_in_cfg.
18809 (verify_gimple_in_cfg): New function.
18810 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
18811 * tree-ssa.c (verify_ssa): Likewise.
18812 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
18813
18814 2011-03-25 Richard Guenther <rguenther@suse.de>
18815
18816 * passes.c (init_optimization_passes): Add FRE pass after
18817 early SRA.
18818
18819 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
18820 Andrew Stubbs <ams@codesourcery.com>
18821
18822 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
18823 for Cortex-A8.
18824 (arm_movdi_vfp_cortexa8): New pattern.
18825 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
18826 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
18827 instructions when tuning for Cortex-A8. Set attribute "arch".
18828 * config/arm/arm.md: Move include arm-tune.md up a bit.
18829 (define_attr "arch"): Add "onlya8" and "nota8" values.
18830 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
18831
18832 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
18833
18834 PR bootstrap/48282
18835 Revert:
18836 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
18837
18838 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
18839 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
18840 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
18841 * passes.c (init_optimization_passes): Move
18842 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
18843
18844 2011-03-25 Kai Tietz <ktietz@redhat.com>
18845
18846 * c-typeck.c (comptypes_internal): Replace target
18847 hook call of comp_type_attributes by version in tree.c file.
18848 * gimple.c (gimple_types_compatible_p_1): Likewise.
18849 * tree-ssa.c (useless_type_conversion_p): Likewise.
18850 * tree.c (build_type_attribute_qual_variant): Likewise.
18851 (attribute_value_equal): New static helper function.
18852 (comp_type_attributes): New function.
18853 (merge_attributes): Use attribute_value_equal for comparison.
18854 (attribute_list_contained): Likewise.
18855 * tree.h (comp_type_attributes): New prototype.
18856
18857 2011-03-25 Richard Guenther <rguenther@suse.de>
18858
18859 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
18860 of complex types at -O0.
18861 (verify_gimple_assign_binary): Likewise.
18862 (verify_gimple_assign_ternary): Likewise.
18863
18864 2011-03-24 Mark Wielaard <mjw@redhat.com>
18865
18866 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
18867 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
18868
18869 2011-03-24 Mark Wielaard <mjw@redhat.com>
18870
18871 PR debug/48041
18872 * dwarf2out.c (output_abbrev_section): Only write table when
18873 abbrev_die_table_in_use > 1.
18874
18875 2011-02-24 Richard Henderson <rth@redhat.com>
18876
18877 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
18878 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
18879 (alpha_expand_unaligned_load_words): Use extql.
18880 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
18881 (emit_insxl): Handle all modes for consistency.
18882
18883 2011-02-24 Richard Henderson <rth@redhat.com>
18884
18885 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
18886 (alpha_expand_unaligned_load): Likewise.
18887 (alpha_expand_unaligned_store): Likewise.
18888 (alpha_expand_unaligned_load_words): Likewise.
18889 (alpha_expand_unaligned_store_words): Likewise.
18890 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
18891 (alpha_split_lock_test_and_set_12): Likewise.
18892 (print_operand, alpha_fold_builtin_extxx): Likewise.
18893 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
18894 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
18895 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
18896 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
18897 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
18898 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
18899 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
18900 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
18901 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
18902 (extwl, extll, extql): Similarly.
18903 (inswh, inslh, insqh): Similarly.
18904 (mskbl, mskwl, mskll, mskql): Similarly.
18905 (mskwh, msklh, mskqh): Similarly.
18906
18907 2011-02-24 Richard Henderson <rth@redhat.com>
18908
18909 * config/alpha/alpha.md (attribute isa): Add er, ner.
18910 (attribute enabled): Handle them.
18911 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
18912
18913 2011-02-24 Richard Henderson <rth@redhat.com>
18914
18915 * config/alpha/alpha.md (attribute isa): Add vms.
18916 (attribute enabled): Handle it.
18917 (*movsf): Merge *movsf_{nofix,fix,nofp}.
18918 (*movdf): Merge *movdf_{nofix,fix,nofp}.
18919 (*movtf): Rename from *movtf_internal for consistency.
18920 (*movsi): Merge with *movsi_nt_vms.
18921 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
18922 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
18923 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
18924 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
18925
18926 2011-02-24 Richard Henderson <rth@redhat.com>
18927
18928 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
18929 (extendqisi2, extendhisi2): Likewise.
18930 (extendqidi2): Simplify BWX/non-BWX expansions.
18931 (extendhidi2): Similarly.
18932
18933 2011-02-24 Richard Henderson <rth@redhat.com>
18934
18935 * config/alpha/alpha.md (attribute isa): New.
18936 (attribute enabled): New.
18937 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
18938 (zero_extendqisi2, zero_extendqidi2): Similarly.
18939 (zero_extendhisi2, zero_extendhidi2): Similarly.
18940 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
18941
18942 2011-02-24 Richard Henderson <rth@redhat.com>
18943
18944 * config/alpha/predicates.md (input_operand): Revert last change;
18945 update comment to mention 32-bit VMS rather than Windows.
18946
18947 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
18948
18949 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
18950 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
18951 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
18952 * passes.c (init_optimization_passes): Move
18953 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
18954
18955 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
18956
18957 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
18958
18959 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
18960
18961 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
18962 correctly.
18963
18964 2011-03-24 Jakub Jelinek <jakub@redhat.com>
18965
18966 PR debug/48204
18967 * simplify-rtx.c (simplify_const_unary_operation): Call
18968 real_convert when changing mode class with FLOAT_EXTEND.
18969
18970 2011-03-24 Nick Clifton <nickc@redhat.com>
18971
18972 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
18973 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
18974 * config/rx/rx.c (rx_option_override): Set align_jumps,
18975 align_loops and align_labels if not set by the user.
18976 (rx_align_for_label): New function.
18977 (rx_max_skip_for_label): New function.
18978 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
18979 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
18980 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
18981 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
18982 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
18983
18984 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
18985
18986 PR rtl-optimization/48263
18987 * optabs.c (expand_binop_directly): Reinstate convert_modes code
18988 and original commutative_p handling. Use maybe_gen_insn.
18989
18990 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18991
18992 * reload.c (find_reloads_subreg_address): Add address_reloaded
18993 parameter and return true there if the full address has been
18994 reloaded.
18995 (find_reloads_toplev): Pass address_reloaded flag.
18996 (find_reloads_address_1): Don't use address_reloaded parameter.
18997
18998 2011-03-24 Jeff Law <law@redhat.com>
18999
19000 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
19001 unused variable "ann".
19002 (remove_unused_locals): Likewise.
19003
19004 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
19005 statement.
19006
19007 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
19008 after it is freed.
19009
19010 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19011
19012 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
19013 for invalid symbolic addresses.
19014 (s390_secondary_reload): Don't use s390_check_symref_alignment for
19015 larl operands.
19016
19017 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
19018
19019 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
19020 the argument in calls to fold_truth_not_expr.
19021
19022 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
19023
19024 * tree.c (record_node_allocation_statistics): New function.
19025 (make_node_stat, copy_node_stat, build_string): Call it.
19026 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
19027 (build1_stat, build_omp_clause): Likewise.
19028
19029 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
19030
19031 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
19032 last commit.
19033
19034 2011-03-24 Richard Guenther <rguenther@suse.de>
19035
19036 PR tree-optimization/48271
19037 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
19038 blocks that still exist.
19039
19040 2011-03-24 Richard Guenther <rguenther@suse.de>
19041
19042 PR tree-optimization/48270
19043 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
19044 not free datarefs before ddrs.
19045
19046 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
19047
19048 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
19049 from the address built for a reference with variable offset.
19050
19051 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
19052
19053 PR target/48237
19054 * config/i386/i386.md (*movdf_internal_rex64): Do not split
19055 alternatives that can be handled with movq or movabsq insn.
19056 (*movdf_internal): Disable for !TARGET_64BIT.
19057 (*movdf_internal_nointeger): Ditto.
19058 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
19059
19060 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
19061
19062 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
19063 (FUNCTION_ARG_ADVANCE): Likewise.
19064 * tm.texi.in: Change references to them to hook references.
19065 * tm.texi: Regenerate.
19066 * targhooks.c (default_function_arg): Eliminate check for target macro.
19067 (default_function_incoming_arg): Likewise.
19068 (default_function_arg_advance): Likewise.
19069 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
19070 (function_arg_advance): Likewise.
19071 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
19072
19073 2011-03-24 Richard Guenther <rguenther@suse.de>
19074
19075 PR middle-end/48269
19076 * tree-object-size.c (addr_object_size): Do not double-account
19077 for MEM_REF offsets.
19078
19079 2011-03-24 Diego Novillo <dnovillo@google.com>
19080
19081 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
19082 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
19083 (lto_input_data_block): Move from lto-opts.c. Make extern.
19084 Update all users.
19085 (lto_input_string): Rename from input_string. Make extern.
19086 Update all users.
19087 * lto-streamer-out.c (lto_output_string_with_length): Rename from
19088 output_string_with_length.
19089 Output 0 to indicate a non-NULL string. Update all callers to
19090 not emit 0.
19091 (lto_output_string): Rename from output_string. Make extern.
19092 Update all users.
19093 (lto_output_decl_state_streams): Make extern.
19094 (lto_output_decl_state_refs): Make extern.
19095 * lto-streamer.h (lto_input_string): Declare.
19096 (lto_input_data_block): Declare.
19097 (lto_output_string): Declare.
19098 (lto_output_string_with_length): Declare.
19099 (lto_output_decl_state_streams): Declare.
19100 (lto_output_decl_state_refs): Declare.
19101
19102 2011-03-24 Richard Guenther <rguenther@suse.de>
19103
19104 PR tree-optimization/46562
19105 * tree.c (build_invariant_address): New function.
19106 * tree.h (build_invariant_address): Declare.
19107 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
19108 a renamed function moved ...
19109 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
19110 Take valueization callback parameter.
19111 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
19112 * gimple-fold.h: New file.
19113 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
19114 (ccp_fold, fold_const_aggregate_ref,
19115 fold_ctor_reference, fold_nonarray_ctor_reference,
19116 fold_array_ctor_reference, fold_string_cst_ctor_reference,
19117 get_base_constructor): Move ...
19118 * gimple-fold.c: ... here.
19119 (gimple_fold_stmt_to_constant_1): New function
19120 split out from ccp_fold. Take a valueization callback parameter.
19121 Valueize all operands.
19122 (gimple_fold_stmt_to_constant): New wrapper function.
19123 (fold_const_aggregate_ref_1): New function split out from
19124 fold_const_aggregate_ref. Take a valueization callback parameter.
19125 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
19126 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
19127 invariant POINTER_PLUS_EXPRs to invariant form.
19128 (vn_valueize): New function.
19129 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
19130 * tree-vrp.c (vrp_valueize): New function.
19131 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
19132 to fold statements to constants.
19133 * tree-ssa-pre.c (eliminate): Properly guard propagation of
19134 function declarations.
19135 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
19136 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
19137
19138 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
19139
19140 * config/h8300/predicates.md (jump_address_operand): Fix register
19141 mode check.
19142
19143 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
19144
19145 * doc/invoke.texi (max-stores-to-sink): Document.
19146 * params.h (MAX_STORES_TO_SINK): Define.
19147 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
19148 if either vectorization or if-conversion is disabled.
19149 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
19150 tree-vect-data-refs.c vect_equal_offsets.
19151 (dr_equal_offsets_p): New function.
19152 (find_data_references_in_bb): Remove static.
19153 * tree-data-ref.h (find_data_references_in_bb): Declare.
19154 (dr_equal_offsets_p): Likewise.
19155 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
19156 (vect_drs_dependent_in_basic_block): Update calls to
19157 vect_equal_offsets.
19158 (vect_check_interleaving): Likewise.
19159 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
19160 (cond_if_else_store_replacement): Rename to...
19161 (cond_if_else_store_replacement_1): ... this. Change arguments and
19162 documentation.
19163 (cond_if_else_store_replacement): New function.
19164 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
19165 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
19166
19167 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
19168
19169 PR target/46934
19170 * config/arm/arm.md (casesi): Use the gen_int_mode() function
19171 to subtract lower bound instead of GEN_INT().
19172
19173 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
19174
19175 PR other/48179
19176 PR other/48221
19177 PR other/48234
19178 * doc/extend.texi (Alignment): Move section to match order in TOC.
19179 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
19180 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
19181
19182 2011-03-23 Jeff Law <law@redhat.com>
19183
19184 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
19185 before removing the edge.
19186
19187 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
19188 it may have been freed by redirect_branch_edge or
19189 redirect_edge_succ_nodup.
19190
19191 2011-03-23 Richard Guenther <rguenther@suse.de>
19192
19193 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
19194 (check_va_list_escapes): Likewise.
19195 (check_all_va_list_escapes): Likewise.
19196
19197 2011-03-23 Richard Guenther <rguenther@suse.de>
19198
19199 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
19200 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
19201 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
19202 (alias.o): Likewise.
19203 (ipa-type-escape.o): Remove.
19204 (ipa-struct-reorg.o): Likewise.
19205 (GTFILES): Remove ipa-struct-reorg.c.
19206 * alias.c: Do not include ipa-type-escape.h.
19207 * tree-ssa-alias.c: Likewise.
19208 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
19209 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
19210 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
19211 and ipa-type-escape passes.
19212 * tree-pass.h (pass_ipa_type_escape): Remove.
19213 (pass_ipa_struct_reorg): Likewise.
19214 * ipa-struct-reorg.h: Remove.
19215 * ipa-struct-reorg.c: Likewise.
19216 * ipa-type-escape.h: Likewise.
19217 * ipa-type-escape.c: Likewise.
19218 * doc/invoke.texi (-fipa-struct-reorg): Remove.
19219 (--param struct-reorg-cold-struct-ratio): Likewise.
19220 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19221 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19222 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
19223
19224 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19225
19226 * config/s390/2084.md: Enable all insn reservations also for z9_ec
19227 cpu attribute value.
19228 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
19229 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
19230 * config/s390/s390.c (processor_flags_table): New constant array.
19231 (s390_handle_arch_option): Remove.
19232 (s390_handle_option): Remove s390_handle_arch_option invocations
19233 and OPT_mwarn_framesize_ handling.
19234 (s390_option_override): Remove s390_handle_arch_option invocation.
19235 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
19236 warnings.
19237 * config/s390/s390.md (cpu attribute): Add z9_ec value.
19238 * config/s390/s390.opt (s390_tune, s390_arch)
19239 (march=): Replace s390_arch_option enum and values with
19240 processor_type. Set variable name to s390_arch. Set
19241 initialization value.
19242 (mtune=): Replace s390_arch_option with processor_type. Set
19243 variable name to s390_tune. Set initialization value.
19244
19245 2011-03-23 Julian Brown <julian@codesourcery.com>
19246
19247 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
19248 accesses which are not naturally aligned.
19249
19250 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
19251
19252 PR target/47553
19253 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
19254
19255 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
19256
19257 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
19258 parameter from "int" to "enum insn_code".
19259 (expand_operand_type): New enum.
19260 (expand_operand): New structure.
19261 (create_expand_operand): New function.
19262 (create_fixed_operand, create_output_operand): Likewise
19263 (create_input_operand, create_convert_operand_to): Likewise.
19264 (create_convert_operand_from, create_address_operand): Likewise.
19265 (create_integer_operand): Likewise.
19266 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
19267 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19268 (expand_insn, expand_jump_insn): Likewise.
19269 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
19270 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
19271 (expand_movstr, expand_builtin___clear_cache): Likewise.
19272 (expand_builtin_lock_release): Likewise.
19273 * explow.c (allocate_dynamic_stack_space): Likewise.
19274 (probe_stack_range): Likewise. Allow check_stack to FAIL,
19275 and use the default handling in that case.
19276 * expmed.c (check_predicate_volatile_ok): Delete.
19277 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
19278 (emit_cstore): Likewise.
19279 * expr.c (emit_block_move_via_movmem): Likewise.
19280 (set_storage_via_setmem, expand_assignment): Likewise.
19281 (emit_storent_insn, try_casesi): Likewise.
19282 (emit_single_push_insn): Likewise. Allow the expansion to fail.
19283 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
19284 (expand_vec_shift_expr, expand_binop_directly): Likewise.
19285 (expand_twoval_unop, expand_twoval_binop): Likewise.
19286 (expand_unop_direct, emit_indirect_jump): Likewise.
19287 (emit_conditional_move, vector_compare_rtx): Likewise.
19288 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
19289 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
19290 (expand_sync_lock_test_and_set): Likewise.
19291 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
19292 (emit_unop_insn): Likewise.
19293 (expand_copysign_absneg): Change icode to an insn_code.
19294 (create_convert_operand_from_type): New function.
19295 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
19296 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19297 (expand_insn, expand_jump_insn): Likewise.
19298 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
19299 than const_int_operand for operand 2.
19300
19301 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19302
19303 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
19304 if possible.
19305
19306 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
19307
19308 * emit-rtl.c (emit_pattern_before_noloc): New function.
19309 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
19310 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
19311 (emit_pattern_after_noloc): New function.
19312 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
19313 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
19314
19315 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
19316
19317 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
19318 (__ffsDI2): Likewise.
19319
19320 2011-03-22 Richard Henderson <rth@redhat.com>
19321
19322 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
19323 of !TARGET_ABI_OPEN_VMS.
19324 (alpha_trampoline_init, alpha_start_function): Likewise.
19325 (alpha_expand_epilogue, alpha_file_start): Likewise.
19326 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
19327 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
19328 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
19329 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
19330 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
19331
19332 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19333
19334 * config/s390/s390-opts.h: New.
19335 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
19336 s390_arch_flags, s390_warn_framesize, s390_stack_size,
19337 s390_stack_guard): Remove.
19338 (s390_handle_arch_option): Return void. Take enum
19339 s390_arch_option value instead of string and searching array.
19340 (s390_handle_option): Don't assert that global structures are in
19341 use. Access variables via opts pointer. Use error_at. Don't use
19342 sscanf for -mstack-guard= or -mstack-size=. Update call to
19343 s390_handle_arch_option.
19344 (s390_option_override): Update call to s390_handle_arch_option.
19345 (s390_emit_prologue): Use %d format for s390_stack_size in
19346 diagnostic. Use %wd for HOST_WIDE_INT.
19347 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
19348 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
19349 * config/s390/s390.opt (config/s390/s390-opts.h): New
19350 HeaderInclude entry.
19351 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
19352 s390_arch_flags, s390_warn_framesize): New Variable entries.
19353 (s390_arch_option): New Enum and EnumValue entries.
19354 (march=): Use Enum instead of Var.
19355 (mstack-guard=, mstack-size=): Use UInteger and Var.
19356 (mtune=): Use Enum.
19357
19358 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19359
19360 * config/score/score.c (score_handle_option): Don't assert that
19361 global structures are in use. Access target_flags via opts
19362 pointer. Use value of -march= option to determine target_flags
19363 settings.
19364 * config/score/score.opt (march=): Use Enum.
19365 (score_arch): New Enum and EnumValue entries.
19366
19367 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19368
19369 * config/mep/mep.c (option_mtiny_specified): Remove.
19370 (mep_option_override): Move register handling for -mivc2 from
19371 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
19372 instead of option_mtiny_specified.
19373 (mep_handle_option): Access target_flags via opts pointer. Don't
19374 assert that global structures are in use. Defer part of -mivc2
19375 handling and move it to mep_option_override.
19376 * config/mep/mep.opt (IVC2): New Mask entry.
19377 (mivc2): Use Var and Defer instead of Mask.
19378
19379 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19380
19381 * config/v850/v850-opts.h: New.
19382 * config/v850/v850.c (small_memory): Replace with
19383 small_memory_physical_max array. Make that array static const.
19384 (v850_handle_memory_option): Take integer value of argument. Take
19385 gcc_options pointer, option text and location. Return void.
19386 Update for changes to small memory structures.
19387 (v850_handle_option): Access target_flags via opts pointer. Don't
19388 assert that global structures are in use. Update calls to
19389 v850_handle_memory_option.
19390 (v850_encode_data_area): Update references to small memory settings.
19391 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
19392 (enum small_memory_type): Move to v850-opts.h.
19393 * config/v850/v850.opt (config/v850/v850-opts.h): New
19394 HeaderInclude entry.
19395 (small_memory_max): New Variable entry.
19396 (msda): Replace by pair of options msda= and msda-. Use UInteger.
19397 (mtda, mzda): Likewise.
19398
19399 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19400
19401 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
19402 pointer. Don't assert that global structures are in use.
19403
19404 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19405
19406 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
19407 via opts pointer. Don't assert that global structures are in use.
19408
19409 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19410
19411 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
19412 (munix=93): Use Var.
19413 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
19414 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
19415 * config/pa/pa-opts.h: New.
19416 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
19417 (pa_handle_option): Don't assert that global structures are in
19418 use. Access target_flags via opts pointer. Don't handle
19419 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
19420 OPT_munix_98 here.
19421 (pa_option_override): Handle deferred OPT_mfixed_range_.
19422
19423 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19424
19425 * config/mn10300/mn10300-opts.h: New.
19426 * config/mn10300/mn10300.c (mn10300_processor,
19427 mn10300_tune_string): Remove.
19428 (mn10300_handle_option): Don't assert that global structures are
19429 in use. Access mn10300_processor via opts pointer. Don't handle
19430 OPT_mtune_ here.
19431 * config/mn10300/mn10300.h (enum processor_type): Move to
19432 mn10300-opts.h.
19433 (mn10300_processor): Remove.
19434 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
19435 HeaderInclude entry.
19436 (mn10300_processor): New Variable entry.
19437 (mtune=): Use Var.
19438
19439 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19440
19441 * config/microblaze/microblaze.c: Don't include opts.h.
19442 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
19443 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
19444 (mno-clearbss): Use Var and Warn.
19445
19446 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19447
19448 * config/m32r/m32r-opts.h: New.
19449 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
19450 (m32r_handle_option): Don't assert that global structures are in
19451 use. Access target_flags and m32r_cache_flush_func via opts
19452 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
19453 OPT_mno_flush_trap here.
19454 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
19455 include of m32r-opts.h.
19456 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
19457 HeaderInclude entry.
19458 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
19459 (mmodel=): Use Enum and Var.
19460 (m32r_model): New Enum and EnumValue entries.
19461 (mno-flush-trap): Use Var.
19462 (msdata=): Use Enum and Var.
19463 (m32r_sdata): New Enum and EnumValue entries.
19464
19465 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19466
19467 * config/m32c/m32c.c: Don't include opts.h.
19468 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
19469 m32c_handle_option): Remove.
19470 (m32c_option_override): Check global_options_set.x_target_memregs
19471 instead of target_memregs_set.
19472 * config/m32c/m32c.h (target_memregs): Remove.
19473 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
19474 variable.
19475
19476 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19477
19478 * config/iq2000/iq2000-opts.h: New.
19479 * config/iq2000/iq2000.c: Don't include opts.h.
19480 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
19481 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
19482 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
19483 HeaderInclude entry.
19484 (iq2000_tune): New Variable entry.
19485 (march=): Add comment. Use Enum.
19486 (iq2000_arch): New Enum and EnumValue entries.
19487 (mcpu=): Use Enum and Var.
19488 (iq2000_tune): New Enum and EnumValue entries.
19489
19490 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19491
19492 * config/ia64/ia64-opts.h: New.
19493 * config/ia64/ia64.c (ia64_tune): Remove.
19494 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
19495 here. Use error_at.
19496 (ia64_option_override): Handle deferred OPT_mfixed_range_.
19497 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
19498 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
19499 HeaderInclude entry.
19500 (ia64_tune): New Variable entry.
19501 (mfixed-range=): Use Defer and Var.
19502 (mtune=): Use Enum and Var.
19503 (ia64_tune): New Enum and EnumValue entries.
19504
19505 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19506
19507 * config/frv/frv-opts.h: New.
19508 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
19509 frv-opts.h.
19510 (frv_cpu_type): Remove.
19511 * config/frv/frv.c: Don't include opts.h.
19512 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
19513 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
19514 (frv_cpu_type): New Variable entry.
19515 (frv_cpu): New Enum and EnumValue entries.
19516
19517 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19518
19519 * config/cris/cris.c (cris_handle_option): Access target_flags via
19520 opts pointer. Don't assert that global structures are in use.
19521 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
19522 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
19523
19524 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19525
19526 * config/bfin/bfin-opts.h: New.
19527 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
19528 bfin_si_revision, bfin_workarounds): Remove.
19529 (bfin_cpus): Make static const.
19530 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
19531 not bfin_lib_id_given.
19532 (bfin_handle_option): Don't set bfin_lib_id_given. Access
19533 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
19534 pointer. Use error_at. Don't assert that global structures are in use.
19535 * config/bfin/bfin.h: Include bfin-opts.h.
19536 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
19537 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
19538 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
19539 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
19540 entries.
19541
19542 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19543
19544 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
19545 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
19546 or -msoft-float here.
19547 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
19548 -msoft-float and -mhard-float.
19549 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
19550 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19551 msoft-float.
19552 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
19553 -msoft-float.
19554 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
19555 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
19556 not mhard-float.
19557 (LIBGCC_SPEC): Don't handle -msoft-float.
19558 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
19559 -mhard-float.
19560 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19561 msoft-float.
19562 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
19563 -mfloat-abi=*, not -msoft-float and -mhard-float.
19564 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
19565 -msoft-float.
19566 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
19567 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
19568 mhard-float and msoft-float.
19569 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
19570 mfloat-abi=soft in comments, not mhard-float and msoft-float.
19571 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
19572 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
19573 mhard-float.
19574 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
19575 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
19576 msoft-float.
19577 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
19578 not mhard-float.
19579 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
19580 not msoft-float.
19581
19582 2011-03-22 Richard Henderson <rth@redhat.com>
19583
19584 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
19585 TARGET_ABI_WINDOWS_NT.
19586 (alpha_output_function_end_prologue): Likewise.
19587 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
19588 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19589 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
19590 (trap, *movsi_nt_vms): Likewise.
19591 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
19592 (*tablejump_osf_nt_internal): Remove.
19593 * config/alpha/predicates.md (input_operand): Only test Pmode.
19594
19595 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19596
19597 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
19598 via opts pointer. Use error_at. Don't assert that global
19599 structures are in use.
19600
19601 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19602
19603 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
19604 (ix86_handle_option): Access ix86_isa_flags and
19605 ix86_isa_flags_explicit via opts pointer. Don't assert that
19606 global structures are in use.
19607 (ix86_function_specific_save, ix86_function_specific_restore):
19608 Update ix86_isa_flags_explicit field name.
19609 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
19610 (ix86_isa_flags_explicit): Rename TargetSave entry to
19611 x_ix86_isa_flags_explicit.
19612
19613 2011-03-22 Richard Henderson <rth@redhat.com>
19614
19615 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
19616 (alpha_option_override, direct_return): Likewise.
19617 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
19618 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
19619 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
19620 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
19621 (alpha_expand_epilogue, alpha_end_function): Likewise.
19622 (alpha_init_libfuncs): Likewise.
19623 (struct machine_function): Remove unicosmk members.
19624 (print_operand) ['t']: Remove.
19625 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
19626 unicosmk_output_module_name, unicosmk_output_common,
19627 current_section_align, unicosmk_output_text_section_asm_op,
19628 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
19629 unicosmk_section_type_flags, unicosmk_unique_section,
19630 unicosmk_asm_named_section, unicosmk_insert_attributes,
19631 unicosmk_output_align, unicosmk_defer_case_vector,
19632 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
19633 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
19634 unicosmk_output_ssib, unicosmk_add_call_info_word,
19635 unicosmk_extern_head, unicosmk_output_default_externs,
19636 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
19637 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
19638 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
19639 * config/alpha/alpha-protos.h: Update.
19640 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
19641 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
19642 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
19643 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
19644 (*mulsi_se, mulvsi3): Likewise.
19645 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
19646 (*divmodsi_internal, call, call_value, realign): Likewise.
19647 (moddi3, umoddi3): Likewise; remove duplicate expander.
19648 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
19649 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
19650 (*movdi_nofix): Remove r/U alternative.
19651 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
19652 * config/alpha/constraints.md ("U"): Remove.
19653 * config/alpha/predicates.md (call_operand"): Don't test
19654 TARGET_ABI_UNICOSMK.
19655
19656 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19657
19658 * target.def (handle_option): Take gcc_options and
19659 cl_decoded_option pointers and location_t.
19660 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
19661 * doc/tm.texi: Regenerate.
19662 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
19663 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
19664 * lto-opts.c (lto_reissue_options): Generate option structure for
19665 targetm.handle_option call.
19666 * opts.c (target_handle_option): Update call to
19667 targetm.handle_option. Remove assertions about values now passed
19668 down to hook.
19669 * targhooks.c (default_target_handle_option): New.
19670 * targhooks.h (default_target_handle_option): Declare.
19671 * config/alpha/alpha.c: Include opts.h.
19672 (alpha_handle_option): Update to new hook interface.
19673 * config/arm/arm.c: Include opts.h.
19674 (arm_handle_option): Update to new hook interface.
19675 * config/arm/t-arm (arm.o): Update dependencies.
19676 * config/bfin/bfin.c: Include opts.h.
19677 (bfin_handle_option): Update to new hook interface.
19678 * config/cris/cris.c: Include opts.h.
19679 (cris_handle_option): Update to new hook interface.
19680 * config/frv/frv.c: Include opts.h.
19681 (frv_handle_option): Update to new hook interface.
19682 * config/i386/i386.c: Include opts.h.
19683 (ix86_handle_option): Update to new hook interface.
19684 (ix86_valid_target_attribute_inner_p): Generate option structure
19685 for call to ix86_handle_option.
19686 * config/i386/t-i386 (i386.o): Update dependencies.
19687 * config/ia64/ia64.c: Include opts.h.
19688 (ia64_handle_option): Update to new hook interface.
19689 * config/ia64/t-ia64 (ia64.o): Update dependencies.
19690 * config/iq2000/iq2000.c: Include opts.h.
19691 (iq2000_handle_option): Update to new hook interface.
19692 * config/m32c/m32c.c: Include opts.h.
19693 (m32c_handle_option): Update to new hook interface.
19694 * config/m32r/m32r.c: Include opts.h.
19695 (m32r_handle_option): Update to new hook interface.
19696 * config/m68k/m68k.c: Include opts.h.
19697 (m68k_handle_option): Update to new hook interface.
19698 * config/mep/mep.c: Include opts.h.
19699 (mep_handle_option): Update to new hook interface.
19700 * config/microblaze/microblaze.c: Include opts.h.
19701 (microblaze_handle_option): Update to new hook interface.
19702 * config/mips/mips.c: Include opts.h.
19703 (mips_handle_option): Update to new hook interface.
19704 * config/mn10300/mn10300.c: Include opts.h.
19705 (mn10300_handle_option): Update to new hook interface.
19706 * config/pa/pa.c: Include opts.h.
19707 (pa_handle_option): Update to new hook interface.
19708 * config/pdp11/pdp11.c: Include opts.h.
19709 (pdp11_handle_option): Update to new hook interface.
19710 * config/rs6000/rs6000.c: Include opts.h.
19711 (rs6000_handle_option): Update to new hook interface.
19712 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
19713 * config/rx/rx.c: Include opts.h.
19714 (rx_handle_option): Update to new hook interface.
19715 * config/s390/s390.c: Include opts.h.
19716 (s390_handle_option): Update to new hook interface.
19717 * config/score/score.c: Include opts.h.
19718 (score_handle_option): Update to new hook interface.
19719 * config/sh/sh.c: Include opts.h.
19720 (sh_handle_option): Update to new hook interface.
19721 * config/sparc/sparc.c: Include opts.h.
19722 (sparc_handle_option): Update to new hook interface.
19723 * config/v850/v850.c: Include opts.h.
19724 (v850_handle_option): Update to new hook interface.
19725
19726 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19727
19728 * gcc.c (driver_unknown_option_callback): Only permit and save
19729 unknown -Wno- options.
19730 (driver_wrong_lang_callback): Save options directly instead of via
19731 driver_unknown_option_callback.
19732
19733 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
19734
19735 * combine.c (simplify_set): Try harder to find the best CC mode when
19736 simplifying a nested COMPARE on the RHS.
19737
19738 2011-03-22 Joseph Myers <joseph@codesourcery.com>
19739
19740 * config/alpha/gnu.h: Remove.
19741 * config/arc: Remove directory.
19742 * config/arm/netbsd.h: Remove.
19743 * config/arm/t-pe: Remove.
19744 * config/crx: Remove directory.
19745 * config/i386/netbsd.h: Remove.
19746 * config/m68hc11: Remove directory.
19747 * config/m68k/uclinux-oldabi.h: Remove.
19748 * config/mcore/mcore-pe.h: Remove.
19749 * config/mcore/t-mcore-pe: Remove.
19750 * config/netbsd-aout.h: Remove.
19751 * config/rs6000/gnu.h: Remove.
19752 * config/sh/sh-symbian.h: Remove.
19753 * config/sh/symbian-base.c: Remove.
19754 * config/sh/symbian-c.c: Remove.
19755 * config/sh/symbian-cxx.c: Remove.
19756 * config/sh/symbian-post.h: Remove.
19757 * config/sh/symbian-pre.h: Remove.
19758 * config/sh/t-symbian: Remove.
19759 * config/svr3.h: Remove.
19760 * config/vax/netbsd.h: Remove.
19761 * config.build: Don't handle i[34567]86-*-pe.
19762 * config.gcc: Remove handling of deprecations for most deprecated
19763 targets.
19764 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
19765 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
19766 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
19767 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
19768 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
19769 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
19770 Remove cases.
19771 * config.host: Don't handle i[34567]86-*-pe.
19772 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
19773 (ASM_SPEC32): Don't handle -mcall-gnu.
19774 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
19775 -mcall-gnu.
19776 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
19777 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
19778 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
19779 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
19780 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
19781 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
19782 conditional on SYMBIAN.
19783 * configure.ac: Don't handle powerpc*-*-gnu*.
19784 * configure: Regenerate.
19785 * doc/extend.texi (interrupt attribute): Don't mention CRX.
19786 * doc/install-old.texi (m6811, m6812): Don't mention.
19787 * doc/install.texi (arc-*-elf*): Don't document multilib option.
19788 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
19789 (m68k-uclinuxoldabi): Don't mention.
19790 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
19791 Remove.
19792 (-mcall-gnu): Remove.
19793 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
19794 families): Remove constraint documentation.
19795
19796 2011-03-22 Marius Strobl <marius@FreeBSD.org>
19797
19798 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
19799 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
19800 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
19801
19802 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
19803
19804 PR target/48226
19805 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
19806 vector when peeking at the next token for vector, don't expand the
19807 keywords.
19808
19809 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
19810
19811 * config/avr/avr-protos.h (expand_epilogue): Change prototype
19812 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
19813 * config/avr/avr.c (init_cumulative_args)
19814 (avr_function_arg_advance): Use it.
19815 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
19816 sibcall epilogues.
19817 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
19818 (avr_function_ok_for_sibcall): ...this new function.
19819 (avr_lookup_function_attribute1): New static Function.
19820 (avr_naked_function_p, interrupt_function_p)
19821 (signal_function_p, avr_OS_task_function_p)
19822 (avr_OS_main_function_p): Use it.
19823 * config/avr/avr.md ("sibcall", "sibcall_value")
19824 ("sibcall_epilogue"): New expander.
19825 ("*call_insn", "*call_value_insn"): New insn.
19826 ("call_insn", "call_value_insn"): Remove
19827 ("call", "call_value", "epilogue"): Change expander to handle
19828 sibling calls.
19829
19830 2011-03-21 Nick Clifton <nickc@redhat.com>
19831
19832 * doc/invoke.texi (Overall Options): Move closing brace to end of
19833 options list.
19834 (Optimization Options): Add missing @gol.
19835 (Directory Options): Likewise.
19836 (i386 and x86-64 Options): Likewise.
19837 (RS6000 and PowerPC Options): Likewise.
19838 (i386 and x86-64 Windows Options): Likewise.
19839 (V850 Options): Add text missing from descriptions.
19840
19841 2011-03-22 Richard Henderson <rth@redhat.com>
19842
19843 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
19844 (avr_incoming_return_addr_rtx): New.
19845 (emit_push_byte): New.
19846 (expand_prologue): Use it. Remove incorrect dwarf annotation for
19847 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
19848 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
19849 (emit_pop_byte): New.
19850 (expand_epilogue): Use it. Pop frame pointer by bytes.
19851 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
19852 (INCOMING_RETURN_ADDR_RTX): New.
19853 (INCOMING_FRAME_SP_OFFSET): New.
19854 (ARG_POINTER_CFA_OFFSET): New.
19855 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
19856 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
19857 (pophi): Remove.
19858
19859 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
19860
19861 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
19862
19863 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
19864 (FUNCTION_ARG_ADVANCE): Likewise.
19865 * tm.texi.in: Change references to them to hook references.
19866 * tm.texi: Regenerate.
19867 * targhooks.c (default_function_arg): Eliminate check for target
19868 macro.
19869 (default_function_incoming_arg): Likewise.
19870 (default_function_arg_advance): Likewise.
19871 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
19872 (function_arg_advance): Likewise.
19873 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
19874
19875 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
19876
19877 * tree.c (build_call_1): New function.
19878 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
19879
19880 2011-03-22 Richard Guenther <rguenther@suse.de>
19881
19882 PR tree-optimization/48228
19883 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
19884 for single-arg PHIs.
19885
19886 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
19887
19888 PR rtl-optimization/48143
19889 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
19890 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
19891 sse2_cvtps2pd): Likewise.
19892
19893 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19894
19895 * recog.c (canonicalize_change_group): Use validate_unshare_change.
19896
19897 2011-03-22 Richard Guenther <rguenther@suse.de>
19898
19899 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
19900 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
19901 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
19902 and REALIGN_LOAD_EXPR.
19903 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
19904 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
19905 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
19906 DOT_PROD_EXPR case ...
19907 (expand_expr_real_2): ... here.
19908 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
19909 and REALIGN_LOAD_EXPR.
19910 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
19911 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
19912 (vect_create_epilog_for_reduction): Likewise.
19913 (vectorizable_reduction): Likewise.
19914 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
19915 * tree-vect-stmts.c (vectorizable_load): Likewise.
19916
19917 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
19918
19919 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
19920
19921 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19922
19923 * config/s390/s390.c (s390_delegitimize_address): Fix offset
19924 handling for PLTOFF/GOTOFF.
19925
19926 2011-03-22 Nick Clifton <nickc@redhat.com>
19927
19928 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
19929 trailing backslash from the end of the macro definition.
19930
19931 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19932
19933 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
19934 and PLT unspecs.
19935
19936 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
19937
19938 * expr.h (prepare_operand): Move to...
19939 * optabs.h (prepare_operand): ...here and change the insn code
19940 parameter from "int" to "enum insn_code".
19941 (insn_operand_matches): Declare.
19942 * expr.c (init_expr_target): Use insn_operand_matches.
19943 (compress_float_constant): Likewise.
19944 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
19945 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
19946 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
19947 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
19948 Likewise.
19949 (gen_cond_trap): Likewise.
19950 (prepare_operand): Likewise. Change icode to an insn_code.
19951 (insn_operand_matches): New function.
19952 * reload.c (find_reloads_address_1): Use insn_operand_matches.
19953 * reload1.c (gen_reload): Likewise.
19954 * targhooks.c (default_secondary_reload): Likewise.
19955
19956 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
19957
19958 * config/alpha/alpha.md (unspec): New define_c_enum.
19959 (unspecv): Ditto.
19960
19961 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
19962
19963 PR debug/48214
19964 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
19965 between a call and its CALL_ARG_LOCATION note.
19966
19967 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
19968
19969 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
19970
19971 2011-03-21 Jakub Jelinek <jakub@redhat.com>
19972
19973 PR c/42544
19974 PR c/48197
19975 * c-common.c (shorten_compare): If primopN is first sign-extended
19976 to opN and then zero-extended to result type, set primopN to opN.
19977
19978 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
19979
19980 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
19981 for barrier handlers.
19982
19983 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
19984
19985 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
19986 UNSPEC constants to be in the unspec enumeration, and redefine
19987 all UNSPECV constants to be in the unspecv enumeration, so that
19988 dumps print which unspec/unspec_volatile this is.
19989 * config/rs6000/vector.md (UNSPEC_*): Ditto.
19990 * config/rs6000/paired.md (UNSPEC_*): Ditto.
19991 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
19992 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
19993 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
19994
19995 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
19996 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
19997 UNSPECV_LWSYNC, since these are used as unspec_volatile.
19998 * config/rs6000/sync.md (isync, lwsync): Ditto.
19999
20000 2011-03-21 Richard Guenther <rguenther@suse.de>
20001
20002 * params.def (lto-min-partition): Fix typo.
20003
20004 2011-03-21 Richard Guenther <rguenther@suse.de>
20005
20006 PR c/47939
20007 * c-decl.c (grokdeclarator): Drop to the main variant only
20008 for array types. Drop flag_gen_aux_info check.
20009
20010 2011-03-21 Richard Guenther <rguenther@suse.de>
20011
20012 PR translation/47911
20013 * params.def (lto-partitions): Fix typo.
20014 (lto-min-partition): Fix wording.
20015
20016 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
20017
20018 * config/rs6000/t-freebsd: Remove duplication from file.
20019
20020 2011-03-21 Richard Guenther <rguenther@suse.de>
20021
20022 PR middle-end/47661
20023 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
20024
20025 2011-03-21 Richard Guenther <rguenther@suse.de>
20026
20027 PR lto/48210
20028 * params.def (lto-partitions): Require at least 1 partition.
20029
20030 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20031
20032 * gthr-solaris.h: Remove.
20033 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
20034 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
20035 (LIB_SPEC): Likewise.
20036 * config/sol2.opt (threads): Remove.
20037 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
20038 (sparc*-*-solaris2*): Likewise.
20039 * configure.ac (enable_threads): Enable solaris support.
20040 * configure: Regenerate.
20041 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
20042 * doc/install.texi (Configuration, --enable-threads=lib): Remove
20043 solaris.
20044
20045 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20046
20047 * config.gcc: Obsolete *-*-solaris2.8*.
20048 * doc/install.texi (Specific, *-*-solaris2*): Document it.
20049
20050 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20051
20052 PR bootstrap/48135
20053 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
20054 reference. Solaris 8 perl works.
20055
20056 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20057
20058 PR bootstrap/48135
20059 * doc/install.texi (Prerequisites): Move jar etc. up.
20060 Explain support library version requirements.
20061
20062 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20063
20064 PR bootstrap/48135
20065 * doc/install.texi (Prerequisites): Move Perl to build
20066 requirements. Always necessary on Solaris 2 with Sun ld.
20067
20068 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20069
20070 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
20071 binutils 2.21.
20072 (Specific, i?86-*-solaris2.[89]): Likewise.
20073 (Specific, i?86-*-solaris2.10): Likewise.
20074 (Specific, mips-sgi-irix6): Likewise.
20075 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
20076 Update for binutils 2.21.
20077
20078 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20079
20080 * configure.ac (gcc_cv_lto_plugin): Fix typo.
20081 Allow -fuse-linker-plugin for non-default plugin linker.
20082 * configure: Regenerate.
20083
20084 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
20085
20086 PR bootstrap/48167
20087 * gengtype.c (files_rules): Added rule for cp/parser.h.
20088
20089 2011-03-21 Jakub Jelinek <jakub@redhat.com>
20090
20091 PR target/48213
20092 * config/s390/s390.c (s390_delegitimize_address): Don't call
20093 lowpart_subreg if orig_x has BLKmode.
20094
20095 2011-03-21 Kai Tietz <ktietz@redhat.com>
20096
20097 PR target/12171
20098 * doc/plugins.texi: Adjust documentation for plugin register_callback.
20099 * tree.h (attribute_spec): Add new member affects_type_identity.
20100 * attribs.c (empty_attribute_table): Adjust attribute_spec
20101 initializers.
20102 * config/alpha/alpha.c: Likewise.
20103 * config/arc/arc.c: Likewise.
20104 * config/arm/arm.c: Likewise.
20105 * config/avr/avr.c: Likewise.
20106 * config/bfin/bfin.c: Likewise.
20107 * config/crx/crx.c: Likewise.
20108 * config/darwin.h: Likewise.
20109 * config/h8300/h8300.c: Likewise.
20110 * config/i386/cygming.h: Likewise.
20111 * config/i386/i386.c: Likewise.
20112 * config/ia64/ia64.c: Likewise.
20113 * config/m32c/m32c.c: Likewise.
20114 * config/m32r/m32r.c: Likewise.
20115 * config/m68hc11/m68hc11.c: Likewise.
20116 * config/m68k/m68k.c: Likewise.
20117 * config/mcore/mcore.c: Likewise.
20118 * config/mep/mep.c: Likewise.
20119 * config/microblaze/microblaze.c: Likewise.
20120 * config/mips/mips.c: Likewise.
20121 * config/rs6000/rs6000.c: Likewise.
20122 * config/rx/rx.c: Likewise.
20123 * config/sh/sh.c: Likewise.
20124 * config/sol2.h: Likewise.
20125 * config/sparc/sparc.c: Likewise.
20126 * config/spu/spu.c: Likewise.
20127 * config/stormy16/stormy16.c: Likewise.
20128 * config/v850/v850.c: Likewise.
20129
20130 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
20131
20132 * simplify-rtx.c (simplify_binary_operation_1): Handle
20133 (xor (and A B) C) case when B and C are both constants.
20134
20135 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
20136
20137 * tree-dfa.c (add_referenced_var): Fix typo in comment.
20138
20139 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
20140
20141 PR bootstrap/48168
20142 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
20143
20144 2011-03-20 Jakub Jelinek <jakub@redhat.com>
20145
20146 PR rtl-optimization/48156
20147 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
20148 assume df and df_lr are not NULL.
20149
20150 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20151
20152 PR debug/48023
20153 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
20154 between a call and its CALL_ARG_LOCATION note.
20155
20156 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
20157
20158 PR debug/48178
20159 * config/sh/sh.c (find_barrier): Don't emit a constant pool
20160 between a call and its corresponding CALL_ARG_LOCATION note.
20161
20162 2011-03-19 Anatoly Sokolov <aesok@post.ru>
20163
20164 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
20165 instead of loop. Use HARD_REGISTER_NUM_P predicate.
20166 * haifa-sched.c (setup_ref_regs): Ditto.
20167 * caller-save.c (add_used_regs_1): Ditto.
20168 * dse.c (look_for_hardregs): Ditto.
20169 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
20170 * sched-rgn.c (check_live_1): Ditto.
20171
20172 2011-03-18 Joseph Myers <joseph@codesourcery.com>
20173
20174 * c-decl.c (diagnose_mismatched_decls): Give an error for
20175 redefining a typedef with variably modified type.
20176
20177 2011-03-18 Joseph Myers <joseph@codesourcery.com>
20178
20179 * c-decl.c (grokfield): Don't allow typedefs for structures or
20180 unions with no tag by default.
20181 * doc/extend.texi (Unnamed Fields): Update.
20182
20183 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
20184
20185 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
20186 Rewrite using indirect functions.
20187 (lwp_slwpcb): Ditto.
20188 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
20189 (avx_vinsertf128<mode>): Ditto.
20190
20191 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20192
20193 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
20194 unspecs.
20195
20196 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20197
20198 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
20199 splitting between a call and its corresponding CALL_ARG_LOCATION note.
20200
20201 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
20202
20203 PR rtl-optimization/48170
20204 * gcse.c (hoist_code): Remove bogus asserts.
20205
20206 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
20207
20208 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
20209 computation for prologue/epilogue.
20210
20211 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20212
20213 * Makefile.in (check-consistency): Remove.
20214
20215 2011-03-18 Jakub Jelinek <jakub@redhat.com>
20216
20217 PR debug/48176
20218 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
20219 arange_table_in_use is 0, but either text_section_used or
20220 cold_text_section_used is true. Don't call it if
20221 !info_section_emitted.
20222
20223 2011-03-18 Anatoly Sokolov <aesok@post.ru>
20224
20225 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
20226 FUNCTION_VALUE_REGNO_P): Remove.
20227 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
20228 Remove.
20229 * config/avr/avr.c (avr_ret_register): Make static inline.
20230 (avr_function_value_regno_p): New function.
20231 (avr_libcall_value): Make static. Add 'func' argument.
20232 (avr_function_value): Make static. Rename 'func' argument to
20233 'fn_decl_or_type', forward it to avr_libcall_value. Call
20234 avr_ret_register function instead of RET_REGISTER macro.
20235 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
20236
20237 2011-03-18 Jason Merrill <jason@redhat.com>
20238
20239 PR c++/23372
20240 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
20241
20242 2011-03-18 Richard Guenther <rguenther@suse.de>
20243
20244 * doc/install.texi (--enable-gold): Remove.
20245 (--with-plugin-ld): Document.
20246 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
20247
20248 2011-03-18 Andrew Pinski <pinskia@gmail.com>
20249
20250 PR middle-end/47790
20251 * expr.c (optimize_bitfield_assignment_op): Revamp to work
20252 again after expansion changes.
20253
20254 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
20255
20256 * combine.c (try_combine): Do simplification only call of
20257 subst() on i2 even when i1 is present. Update comments.
20258
20259 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
20260
20261 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
20262 and UNSPEC_PCREL_SYMOFF.
20263
20264 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20265
20266 * config/s390/s390.md: Use define_c_enum for the unspec constant
20267 definitions.
20268
20269 2011-03-18 Richard Henderson <rth@redhat.com>
20270 Jakub Jelinek <jakub@redhat.com>
20271
20272 PR bootstrap/48161
20273 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
20274 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
20275
20276 2011-03-17 Anatoly Sokolov <aesok@post.ru>
20277
20278 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20279 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
20280 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
20281 Change return type to bool.
20282 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20283
20284 2011-03-17 Jakub Jelinek <jakub@redhat.com>
20285
20286 PR debug/48163
20287 * var-tracking.c (prepare_call_arguments): If CALL target
20288 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
20289 pc instead of looking it up using cselib_lookup and use
20290 Pmode for it if x has VOIDmode.
20291 * dwarf2out.c (gen_subprogram_die): If also both first and
20292 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
20293
20294 PR debug/48163
20295 * function.c (assign_parms): For data.passed_pointer parms
20296 use MEM of data.entry_parm instead of data.entry_parm itself
20297 as DECL_INCOMING_RTL.
20298 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
20299 also when passed and declared mode is the same, DECL_RTL
20300 is a MEM with pseudo as address and DECL_INCOMING_RTL is
20301 a MEM too.
20302
20303 2011-03-16 Jeff Law <law@redhat.com>
20304
20305 PR rtl-optimization/37273
20306 * ira-costs.c (scan_one_insn): Detect constants living in memory and
20307 handle them like argument loads from stack slots. Do not double
20308 count memory for memory constants and argument loads from stack slots.
20309
20310 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
20311
20312 PR debug/48160
20313 * var-tracking.c (prepare_call_arguments): Check SUBREG.
20314
20315 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
20316
20317 PR target/48171
20318 * config/i386/i386.opt: Add Save to -mavx and -mfma.
20319
20320 2011-03-17 Jakub Jelinek <jakub@redhat.com>
20321
20322 PR bootstrap/48153
20323 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
20324 if dwarf_strict.
20325 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
20326 Clear call_arg_locations and call_arg_loc_last always.
20327
20328 PR middle-end/48152
20329 * var-tracking.c (prepare_call_arguments): If argument needs to be
20330 passed by reference, adjust argtype and mode.
20331
20332 2011-03-17 Richard Guenther <rguenther@suse.de>
20333
20334 PR middle-end/48134
20335 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
20336 a value make sure to fold the statement.
20337
20338 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
20339
20340 PR target/43872
20341 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
20342 return condition with !cfun->calls_alloca.
20343
20344 2011-03-17 Richard Guenther <rguenther@suse.de>
20345
20346 PR bootstrap/48148
20347 * lto-cgraph.c (input_overwrite_node): Clear the abstract
20348 origin for decls in other ltrans units.
20349 (input_varpool_node): Likewise.
20350
20351 2011-03-17 Richard Guenther <rguenther@suse.de>
20352
20353 PR middle-end/48165
20354 * tree-object-size.c (compute_object_offset): Properly return
20355 the offset operand of MEM_REFs as sizetype.
20356
20357 2011-03-17 Jakub Jelinek <jakub@redhat.com>
20358
20359 PR rtl-optimization/48141
20360 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
20361 * dse.c: Include params.h.
20362 (active_local_stores_len): New variable.
20363 (add_wild_read, dse_step1): Clear it when setting active_local_stores
20364 to NULL.
20365 (record_store, check_mem_read_rtx): Decrease it when removing
20366 from the chain.
20367 (scan_insn): Likewise. Increase it when adding to chain, if it
20368 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
20369 set active_local_stores to NULL before the addition.
20370 * Makefile.in (dse.o): Depend on $(PARAMS_H).
20371
20372 PR rtl-optimization/48141
20373 * dse.c (record_store): If no positions are needed in an insn
20374 that cannot be deleted, at least unchain it from active_local_stores.
20375
20376 2011-03-16 Dodji Seketeli <dodji@redhat.com>
20377
20378 PR debug/47510
20379 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
20380 (lookup_type_die_strip_naming_typedef): ... here.
20381 (get_context_die): Use it.
20382 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
20383 the anonymous struct named by the naming typedef.
20384
20385 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
20386
20387 PR target/48154
20388 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
20389 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20390
20391 2011-03-16 Jeff Law <law@redhat.com>
20392
20393 * tree-vrp.c (identify_jump_threads): Slightly simplify type
20394 check for operands of conditional. Allow type to be a pointer.
20395
20396 2011-03-16 Richard Guenther <rguenther@suse.de>
20397
20398 PR tree-optimization/48149
20399 * fold-const.c (fold_binary_loc): Fold
20400 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
20401
20402 2011-03-16 Richard Guenther <rguenther@suse.de>
20403
20404 PR tree-optimization/26134
20405 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
20406 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
20407 (non_rewritable_mem_ref_base): Handle complex type component
20408 accesses, constrain offsets for vector and complex extracts
20409 more properly.
20410
20411 2011-03-16 Richard Guenther <rguenther@suse.de>
20412
20413 PR tree-optimization/48146
20414 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
20415 operands avoiding the need for renaming.
20416
20417 2011-03-16 Richard Guenther <rguenther@suse.de>
20418
20419 * gimple-fold.c (maybe_fold_reference): Open-code relevant
20420 constant folding. Move MEM_REF canonicalization first.
20421 Rely on fold_const_aggregate_ref for initializer folding.
20422 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
20423
20424 2011-03-16 Jakub Jelinek <jakub@redhat.com>
20425
20426 PR middle-end/48136
20427 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
20428 arg0/arg1 or their arguments are always fold converted to matching
20429 types.
20430
20431 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
20432 to nargs.
20433
20434 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20435
20436 PR lto/46944
20437 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
20438 Handle in-tree gold.
20439 (ld_vers): Extract binutils version for gold.
20440 (gcc_cv_ld_hidden): Handle gold here.
20441 (gcc_cv_lto_plugin): Determine level of linker plugin support.
20442 * configure: Regenerate.
20443 * config.in: Regenerate.
20444 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
20445 -fuse-linker-plugin otherwise.
20446 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
20447 (LINK_COMMAND_SPEC): Use it.
20448 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
20449
20450 2011-03-16 Jakub Jelinek <jakub@redhat.com>
20451
20452 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
20453 * calls.c: Remove debug.h include.
20454 (emit_call_1): Don't call virtual_call_token debug hook.
20455 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
20456 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
20457 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
20458 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
20459 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
20460 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
20461 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
20462 dwarf2out_virtual_call): Remove.
20463 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
20464 copy_call_info and virtual_call hooks.
20465 (dwarf2out_init): Don't initialize vcall_insn_table,
20466 debug_dcall_section and debug_vcall_section.
20467 (prune_unused_types): Don't mark nodes from dcall_table.
20468 (dwarf2out_finish): Don't output dcall or vcall tables.
20469 * final.c (final_scan_insn): Don't call direct_call or
20470 virtual_call debug hooks.
20471 * debug.h (struct gcc_debug_hooks): Remove direct_call,
20472 virtual_call_token, copy_call_info and virtual_call hooks.
20473 (debug_nothing_uid): Remove prototype.
20474 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
20475 copy_call_info and virtual_call hooks.
20476 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20477 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
20478 * debug.c (do_nothing_debug_hooks): Likewise.
20479 (debug_nothing_uid): Remove.
20480 * doc/invoke.texi (-fenable-icf-debug): Remove.
20481 * common.opt (-fenable-icf-debug): Likewise.
20482
20483 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
20484 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
20485 call's MEM. Handle functions returning aggregate through a hidden
20486 first pointer. For virtual calls add clobbered pc to call arguments
20487 chain.
20488 * dwarf2out.c (gen_subprogram_die): Emit
20489 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
20490 can't be emitted.
20491
20492 PR debug/45882
20493 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
20494 * rtl.h (ENTRY_VALUE_EXP): Define.
20495 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
20496 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
20497 * print-rtl.c (print_rtx): Likewise.
20498 * gengtype.c (adjust_field_rtx_def): Likewise.
20499 * var-tracking.c (vt_add_function_parameter): Adjust
20500 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
20501 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
20502 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
20503 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
20504 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
20505
20506 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
20507 Call var_location debug hook even on CALL_INSNs.
20508 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
20509 * rtl.def (ENTRY_VALUE): New.
20510 * dwarf2out.c: Include cfglayout.h.
20511 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
20512 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
20513 (struct call_arg_loc_node): New type.
20514 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
20515 tail_call_site_count): New variables.
20516 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
20517 DW_TAG_GNU_call_site_parameter.
20518 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
20519 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
20520 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
20521 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
20522 and DW_AT_GNU_all_source_call_sites.
20523 (mem_loc_descriptor): Handle ENTRY_VALUE.
20524 (add_src_coords_attributes): Don't add enything if
20525 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
20526 (dwarf2out_abstract_function): Save and clear call_arg_location,
20527 call_site_count and tail_call_site_count around dwarf2out_decl call.
20528 (gen_call_site_die): New function.
20529 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
20530 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
20531 (dwarf2out_function_decl): Clear call_arg_locations,
20532 call_arg_loc_last, set call_site_count and tail_call_site_count
20533 to -1 and free block_map.
20534 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
20535 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
20536 followed by any real instructions.
20537 (dwarf2out_begin_function): Set call_site_count and
20538 tail_call_site_count to 0.
20539 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
20540 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
20541 attempt to force a DIE for it and worst case remove the attribute.
20542 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
20543 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
20544 the decl itself.
20545 * var-tracking.c: Include tm_p.h.
20546 (vt_stack_adjustments): For calls call note_register_arguments.
20547 (argument_reg_set): New variable.
20548 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
20549 ensure the VALUE is resolved.
20550 (call_arguments): New variable.
20551 (prepare_call_arguments): New function.
20552 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
20553 (struct expand_loc_callback_data): Add ignore_cur_loc field.
20554 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
20555 always use the best expression.
20556 (vt_expand_loc): Add ignore_cur_loc argument.
20557 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
20558 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
20559 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
20560 note for all calls.
20561 (vt_add_function_parameter): Use cselib_lookup_from_insn.
20562 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
20563 argument. Don't call cselib_preserve_only_values and
20564 cselib_reset_table.
20565 (note_register_arguments): New function.
20566 (vt_initialize): Compute argument_reg_set. Call
20567 vt_add_function_parameters before processing basic blocks instead of
20568 afterwards. For calls call prepare_call_arguments before calling
20569 cselib_process_insn.
20570 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
20571 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
20572 (var-tracking.o): Depend on $(TM_P_H).
20573 * cfglayout.h (insn_scope): New prototype.
20574 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
20575 * cfglayout.c (insn_scope): No longer static.
20576 * insn-notes.def (CALL_ARG_LOCATION): New.
20577 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
20578 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
20579 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
20580 nothing for DECL_EXTERNAL BLOCK_VARS.
20581
20582 2011-03-16 Alan Modra <amodra@gmail.com>
20583
20584 PR target/45844
20585 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
20586 create invalid offset address for vsx splat insn.
20587 * config/rs6000/predicates.md (splat_input_operand): New.
20588 * config/rs6000/vsx.md (vsx_splat_*): Use it.
20589
20590 2011-03-15 Xinliang David Li <davidxl@google.com>
20591
20592 PR c/47837
20593 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
20594 (normalize_preds): New function.
20595 (is_use_properly_guarded): Normalize def predicates.
20596
20597 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20598
20599 PR target/46788
20600 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
20601 in the output template.
20602
20603 2011-03-15 Richard Guenther <rguenther@suse.de>
20604
20605 PR middle-end/47650
20606 * tree-pretty-print.c (dump_function_declaration): Properly
20607 dump unprototyped and varargs function types.
20608
20609 2011-03-15 Richard Guenther <rguenther@suse.de>
20610
20611 PR tree-optimization/13954
20612 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
20613 and friends.
20614
20615 2011-03-15 Richard Guenther <rguenther@suse.de>
20616
20617 PR tree-optimization/48037
20618 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
20619 selects into BIT_FIELD_REFs.
20620 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
20621 vector select.
20622
20623 2011-03-15 Jakub Jelinek <jakub@redhat.com>
20624
20625 PR tree-optimization/48129
20626 * builtins.c (fold_builtin_snprintf): Convert to type of
20627 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
20628 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
20629
20630 2011-03-15 Richard Guenther <rguenther@suse.de>
20631
20632 PR tree-optimization/41490
20633 * tree-ssa-dce.c (propagate_necessity): Handle returns without
20634 value but with VUSE.
20635 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
20636 return statements.
20637 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
20638 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
20639 * tree-tailcall.c (find_tail_calls): Ignore returns.
20640
20641 2011-03-15 Richard Guenther <rguenther@suse.de>
20642
20643 PR middle-end/48031
20644 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
20645 or variable-indexed array accesses when in gimple form.
20646
20647 2011-03-15 Richard Guenther <rguenther@suse.de>
20648
20649 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
20650
20651 2011-03-15 Alan Modra <amodra@gmail.com>
20652
20653 PR target/48032
20654 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
20655 presume symbol_refs without a symbol_ref_decl are suitably
20656 aligned, nor other trees we may see here. Handle anchor symbols.
20657 (legitimate_constant_pool_address_p): Comment. Add mode param.
20658 Check cmodel=medium addresses. Adjust all calls.
20659 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
20660 creating cmodel=medium optimized access to locals.
20661 * config/rs6000/constraints.md (R): Pass QImode to
20662 legitimate_constant_pool_address_p.
20663 * config/rs6000/predicates.md (input_operand): Pass mode to
20664 legitimate_constant_pool_address_p.
20665 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
20666 Update prototype.
20667
20668 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
20669
20670 PR target/48053
20671 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
20672 64-bit constants being loaded into registers other than GPRs such
20673 as loading 0 into a VSX register.
20674
20675 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20676
20677 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
20678
20679 2011-03-14 Jakub Jelinek <jakub@redhat.com>
20680
20681 PR middle-end/47917
20682 * builtins.c (fold_builtin_snprintf): New function.
20683 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
20684 (fold_builtin_4): Likewise.
20685
20686 PR middle-end/38878
20687 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
20688 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
20689 and C - X == X also strip nops from +/-/p+ operand.
20690 When optimizing -X == C, fold C to arg0's type.
20691
20692 PR debug/47946
20693 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
20694 emit it as add_AT_int instead of add_AT_unsigned.
20695
20696 2011-03-14 Tom Tromey <tromey@redhat.com>
20697
20698 * unwind-dw2.c: Include sys/sdt.h if it exists.
20699 (_Unwind_DebugHook): Use STAP_PROBE2.
20700 * config.in, configure: Rebuild.
20701 * configure.ac: Check for sys/sdt.h.
20702
20703 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
20704
20705 * config/i386/i386.md (ROUND_FLOOR): New constant.
20706 (ROUND_CEIL): Ditto.
20707 (ROUND_TRUNC): Ditto.
20708 (ROUND_MXCSR): Ditto.
20709 (ROUND_NO_EXC): Ditto.
20710 (rint<mode>2): Use new defines instead of numerical constants.
20711 (floor<mode>2): Ditto.
20712 (ceil<mode>2): Ditto.
20713 (btrunc<mode>2): Ditto.
20714 * config/i386/i386-builtin-types.def: Define ROUND function type
20715 aliases.
20716 * config/i386/i386.c (enum ix86_builtins): Add
20717 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
20718 (struct builtin_description): Add
20719 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
20720 (ix86_expand_sse_round): New static function.
20721 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
20722 function types.
20723 (ix86_builtin_vectorized_function): Handle
20724 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20725
20726 2011-03-14 Tom Tromey <tromey@redhat.com>
20727
20728 * c-parser.c (c_parser_asm_string_literal): Clear
20729 warn_overlength_strings.
20730
20731 2011-03-14 Tom Tromey <tromey@redhat.com>
20732
20733 * c-parser.c (disable_extension_diagnostics): Save
20734 warn_overlength_strings.
20735 (restore_extension_diagnostics): Restore warn_overlength_strings.
20736
20737 2011-03-14 Jakub Jelinek <jakub@redhat.com>
20738
20739 * BASE-VER: Change to 4.7.0.
20740
20741 2011-03-14 Richard Guenther <rguenther@suse.de>
20742
20743 PR middle-end/48098
20744 * tree.c (build_vector_from_val): Adjust assert to requirements
20745 and reality.
20746
20747 2011-03-14 Jakub Jelinek <jakub@redhat.com>
20748
20749 PR bootstrap/48102
20750 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
20751
20752 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
20753
20754 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
20755 terms of target_flags_explicit. Adjust copyright year.
20756
20757 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
20758 * config/rs6000/t-freebsd: New file. Add override for
20759 LIB2FUNCS_EXTRA.
20760
20761 2011-03-13 Chris Demetriou <cgd@google.com>
20762
20763 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
20764 (-fno-diagnostics-show-option): this, to reflect current default.
20765 (-Werror=): Update text about -fno-diagnostics-show-option.
20766
20767 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
20768
20769 PR target/48053
20770 * config/rs6000/predicates.md (easy_vector_constant_add_self,
20771 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
20772 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
20773 mode is not V2DImode or V2DFmode.
20774 (vspltis_constant): Do not handle V2DImode and V2DFmode.
20775 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
20776 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
20777 registers to 0.
20778 (movdi_internal64): Likewise.
20779
20780 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
20781
20782 PR tree-optimization/47127
20783 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
20784 parameter.
20785 (set_cloog_options): Same.
20786 (scop_to_clast): Same.
20787 (print_clast_stmt): Do not call cloog_state_malloc and
20788 cloog_state_free.
20789 (print_generated_program): Same.
20790 (gloog): Same.
20791 * graphite-clast-to-gimple.h (cloog_state): Declared.
20792 (scop_to_clast): Adjust declaration.
20793 * graphite.c (cloog_state): Defined here.
20794 (graphite_initialize): Call cloog_state_malloc.
20795 (graphite_finalize): Call cloog_state_free.
20796
20797 2011-03-11 Jason Merrill <jason@redhat.com>
20798
20799 * attribs.c (lookup_attribute_spec): Take const_tree.
20800 * tree.h: Adjust.
20801
20802 2011-03-11 Joseph Myers <joseph@codesourcery.com>
20803
20804 * config/sparc/sparc.c (sparc_option_override): Use
20805 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
20806
20807 2011-03-11 Richard Guenther <rguenther@suse.de>
20808
20809 PR tree-optimization/48067
20810 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
20811 multiplication result will be only used once on the target
20812 stmt.
20813
20814 2011-03-11 Richard Guenther <rguenther@suse.de>
20815
20816 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
20817
20818 2011-03-11 Richard Guenther <rguenther@suse.de>
20819
20820 PR lto/48073
20821 * tree.c (find_decls_types_r): Do not walk types only reachable
20822 from IDENTIFIER_NODEs.
20823
20824 2011-03-11 Jakub Jelinek <jakub@redhat.com>
20825
20826 PR middle-end/48044
20827 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
20828 all vnode->force_output nodes as needed.
20829
20830 2011-03-11 Jason Merrill <jason@redhat.com>
20831
20832 PR c++/48069
20833 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
20834 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
20835
20836 2011-03-11 Martin Jambor <mjambor@suse.cz>
20837
20838 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
20839 cgraph_node.
20840
20841 2011-03-11 Jakub Jelinek <jakub@redhat.com>
20842
20843 PR tree-optimization/48063
20844 * ipa-inline.c (cgraph_decide_inlining): Don't try to
20845 inline functions called once if !tree_can_inline_p (node->callers).
20846
20847 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
20848
20849 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
20850 extra_objs.
20851 * config/score/score3.c: Delete.
20852 * config/score/score3.h: Delete.
20853 * config/score/mul-div.S: Delete.
20854 * config/score/sfp-machine.h: Add new file.
20855 * config/score/constraints.md: Add new file.
20856 * config/score/t-score-softfp: Add new file.
20857 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
20858 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
20859 (score7_extra_constraint): Delete.
20860 (score7_option_override): Remove unused code.
20861 * config/score/score.c: Remove score3 and score5 define and code.
20862 * config/score/score.h: Remove score3 and score5 define and code.
20863 * config/score/score.md: Remove score3 template and unusual insn.
20864 * config/score/score.opt: Remove score3 and score5 options.
20865
20866 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20867
20868 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
20869 when _HPUX_SOURCE is defined.
20870 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
20871
20872 2011-03-10 Jason Merrill <jason@redhat.com>
20873
20874 PR c++/48029
20875 * stor-layout.c (layout_type): Don't set structural equality
20876 on arrays of incomplete type.
20877 * tree.c (type_hash_eq): Handle comparing them properly.
20878
20879 2011-03-10 Jakub Jelinek <jakub@redhat.com>
20880
20881 PR debug/48043
20882 * config/s390/s390.c (s390_delegitimize_address): Make sure the
20883 result mode matches original rtl mode.
20884
20885 2011-03-10 Nick Clifton <nickc@redhat.com>
20886
20887 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
20888 (andsi3, andsi3_flags): Fix timings for three operand alternative.
20889
20890 2011-03-09 Jakub Jelinek <jakub@redhat.com>
20891
20892 PR rtl-optimization/47866
20893 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
20894 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
20895 if target wasn't scalar.
20896 * function.c (assign_stack_temp_for_type): Assert that neither
20897 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
20898 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
20899 macro.
20900 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
20901
20902 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20903
20904 * config/s390/s390-protos.h (s390_label_align): New prototype.
20905 * config/s390/s390.c (s390_label_align): New function.
20906 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
20907
20908 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
20909
20910 PR target/47755
20911 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
20912 V2DI/V2DF constants. Only all 0's or all 1's are easy.
20913 (output_vec_const_move): Ditto.
20914
20915 2011-03-08 Anatoly Sokolov <aesok@post.ru>
20916
20917 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
20918 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
20919 * config/mips/mips.c (mips_preferred_reload_class): Make static.
20920 Change 'rclass' argument and result type to reg_class_t.
20921 (TARGET_PREFERRED_RELOAD_CLASS): Define.
20922
20923 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
20924
20925 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
20926 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
20927 (TARGET_MEMORY_MOVE_COST): Define.
20928 (avr_register_move_cost, avr_memory_move_cost): New Functions.
20929
20930 2011-03-08 Jakub Jelinek <jakub@redhat.com>
20931
20932 PR debug/47881
20933 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
20934 removed anything.
20935
20936 PR tree-optimization/48022
20937 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
20938 for EQ/NE_EXPR.
20939
20940 2011-03-07 Jakub Jelinek <jakub@redhat.com>
20941
20942 PR debug/47991
20943 * var-tracking.c (find_use_val): Return NULL for
20944 cui->sets && cui->store_p BLKmode MEMs.
20945
20946 2011-03-07 Anatoly Sokolov <aesok@post.ru>
20947
20948 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
20949 Remove.
20950 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
20951 xstormy16_print_operand_address): Remove.
20952 * config/stormy16/stormy16.c (xstormy16_print_operand,
20953 xstormy16_print_operand_address): Make static.
20954 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20955
20956 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
20957
20958 PR target/47862
20959 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
20960 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
20961 before definition.
20962
20963 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
20964
20965 PR bootstrap/48000
20966 * cfgloopmanip.c (fix_bb_placements): Return immediately
20967 if FROM is BASE_LOOP's header.
20968
20969 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
20970
20971 * gimplify.c (gimplify_function_tree): Fix building calls
20972 to __builtin_return_address.
20973
20974 2011-03-07 Alan Modra <amodra@gmail.com>
20975
20976 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
20977 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
20978 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
20979 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
20980 return_mode args.
20981 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
20982 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
20983 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
20984 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
20985 * config/rs6000/rs6000.c
20986 (rs6000_elf_end_indicate_exec_stack): Rename to..
20987 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
20988 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
20989 (rs6000_file_start): ..here.
20990 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
20991 file scope variables.
20992 (call_ABI_of_interest): New function.
20993 (init_cumulative_args): Set above vars when function return value
20994 is a float, vector, or small struct.
20995 (rs6000_function_arg_advance_1): Likewise for function args.
20996 (rs6000_va_start): Set rs6000_passes_float if variable arg function
20997 references float args.
20998
20999 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
21000
21001 * doc/cfg.texi: Remove "See" before @ref.
21002 * doc/invoke.texi: Likewise.
21003
21004 2011-03-05 Jason Merrill <jason@redhat.com>
21005
21006 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
21007
21008 2011-03-05 Anthony Green <green@moxielogic.com>
21009
21010 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
21011
21012 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
21013
21014 PR rtl-optimization/47899
21015 * cfgloopmanip.c (fix_bb_placements): Fix first argument
21016 to flow_loop_nested_p when moving the loop upward.
21017
21018 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
21019
21020 PR target/47719
21021 * arm.md (movhi_insn_arch4): Accept any immediate constant.
21022
21023 2011-03-05 Jakub Jelinek <jakub@redhat.com>
21024
21025 PR tree-optimization/47967
21026 * ipa-cp.c (build_const_val): Return NULL instead of creating
21027 VIEW_CONVERT_EXPR for mismatching sizes.
21028 (ipcp_create_replace_map): Return NULL if build_const_val failed.
21029 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
21030 give up on versioning.
21031
21032 2011-03-05 Alan Modra <amodra@gmail.com>
21033
21034 PR target/47986
21035 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
21036 full cmodel medium/large lo_sum + high addresses.
21037
21038 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21039
21040 * config/s390/s390.c (s390_decompose_address): Reject non-literal
21041 pool references in UNSPEC_LTREL_OFFSET.
21042
21043 2011-03-04 Jan Hubicka <jh@suse.cz>
21044
21045 PR lto/47497
21046 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
21047 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
21048 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
21049 Add node pointers.
21050 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
21051 cgraph_add_thunk): Add node pointers.
21052 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
21053 associated to right node.
21054 (input_node): Update use of cgraph_same_body_alias
21055 and cgraph_add_thunk.
21056
21057 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
21058
21059 * config/i386/i386.opt (mprefer-avx128): New flag.
21060 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
21061 modes when the flag -mprefer-avx128 is on.
21062
21063 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
21064
21065 * dwarf2out.c (compare_loc_operands): Fix address handling.
21066
21067 2011-03-04 Alan Modra <amodra@gmail.com>
21068
21069 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
21070
21071 2011-03-04 Richard Guenther <rguenther@suse.de>
21072
21073 PR middle-end/47968
21074 * expmed.c (extract_bit_field_1): Prefer vector modes that
21075 vec_extract patterns can handle.
21076
21077 2011-03-04 Richard Guenther <rguenther@suse.de>
21078
21079 PR middle-end/47975
21080 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
21081
21082 2011-03-04 Richard Henderson <rth@redhat.com>
21083
21084 * explow.c (emit_stack_save): Remove 'after' parameter.
21085 (emit_stack_restore): Likewise.
21086 * expr.h: Update to match.
21087 * builtins.c, calls.c, stmt.c: Likewise.
21088 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
21089 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
21090 * function.c (expand_function_end): Insert the emit_stack_save
21091 sequence before parm_birth_insn instead of after.
21092
21093 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
21094
21095 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
21096 (ssse3_pmaddubsw128): Ditto.
21097 (ssse3_pmaddubsw): Ditto.
21098
21099 2011-03-03 Steve Ellcey <sje@cup.hp.com>
21100
21101 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
21102
21103 2011-03-03 Jakub Jelinek <jakub@redhat.com>
21104
21105 PR c/47963
21106 * gimplify.c (omp_add_variable): Only call omp_notice_variable
21107 on TYPE_SIZE_UNIT if it is a DECL.
21108
21109 PR debug/47283
21110 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
21111 first operand is not is_gimple_mem_ref_addr, try to fold it.
21112 If the operand still isn't is_gimple_mem_ref_addr, clear
21113 MEM_EXPR on op0.
21114
21115 2011-03-03 Richard Guenther <rguenther@suse.de>
21116
21117 PR middle-end/47283
21118 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
21119 match comment.
21120 (refs_may_alias_p_1): For release branches return true if
21121 we are confused by our input.
21122
21123 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21124
21125 * config/s390/s390.c (s390_function_value): Rename to ...
21126 (s390_function_and_libcall_value): ... this.
21127 (s390_function_value): New function.
21128 (s390_libcall_value): New function.
21129 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
21130 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
21131 target macro definitions.
21132 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
21133
21134 2011-03-02 Joseph Myers <joseph@codesourcery.com>
21135
21136 * config/i386/freebsd64.h (CC1_SPEC): Define.
21137 * config/i386/linux64.h (CC1_SPEC): Define.
21138 * config/i386/x86-64.h (CC1_SPEC): Don't define.
21139
21140 2011-03-02 Anatoly Sokolov <aesok@post.ru>
21141
21142 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21143 Remove.
21144 * config/stormy16/stormy16.c: Include reload.h.
21145 (xstormy16_memory_move_cost): New function.
21146 (TARGET_MEMORY_MOVE_COST): Define.
21147
21148 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
21149
21150 PR rtl-optimization/47925
21151 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
21152 with side effects. Remove the more-specific check for volatile asms.
21153
21154 2011-03-02 Alan Modra <amodra@gmail.com>
21155
21156 PR target/47935
21157 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
21158 toc relative addresses for valid offsets.
21159
21160 2011-03-01 Richard Guenther <rguenther@suse.de>
21161
21162 PR tree-optimization/47890
21163 * tree-vect-loop.c (get_initial_def_for_induction): Set
21164 related stmt properly.
21165
21166 2011-03-01 Richard Guenther <rguenther@suse.de>
21167
21168 PR lto/47924
21169 * lto-streamer.c (lto_record_common_node): Also register
21170 the canonical type.
21171
21172 2011-03-01 Richard Guenther <rguenther@suse.de>
21173
21174 PR lto/46911
21175 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21176 Do not stream DECL_ABSTRACT_ORIGIN.
21177 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21178 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21179 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21180 Do not stream DECL_ABSTRACT_ORIGIN.
21181 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21182 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21183
21184 2011-02-28 Anatoly Sokolov <aesok@post.ru>
21185
21186 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
21187 FUNCTION_VALUE_REGNO_P): Remove.
21188 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
21189 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
21190 Add 'outgoing' argument.
21191 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
21192 function.
21193 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21194 TARGET_FUNCTION_VALUE_REGNO_P): Define.
21195
21196 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
21197
21198 PR debug/28047
21199 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
21200 (lookup_filename): Likewise.
21201 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
21202
21203 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
21204 Jakub Jelinek <jakub@redhat.com>
21205
21206 PR middle-end/47893
21207 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
21208 (assign_stack_local_1): Change last argument type to int.
21209 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
21210 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
21211 don't record padding space into frame_space_list nor use those areas.
21212 (assign_stack_local): Adjust caller.
21213 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
21214 of assign_stack_local, pass 0 as last argument.
21215 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
21216 callers.
21217
21218 2011-02-28 Jakub Jelinek <jakub@redhat.com>
21219
21220 PR debug/47283
21221 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
21222 Use target address_mode and pointer_mode hooks instead of hardcoded
21223 Pmode and ptr_mode. Handle some simple cases of extending if
21224 POINTERS_EXTEND_UNSIGNED < 0.
21225 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
21226 Call convert_debug_memory_address.
21227 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
21228 convert_debug_memory_address.
21229
21230 PR middle-end/46790
21231 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
21232 * configure: Regenerated.
21233 * config.in: Regenerated.
21234 * varasm.c (default_function_section): Return NULL
21235 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
21236
21237 2011-02-28 Martin Jambor <mjambor@suse.cz>
21238
21239 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
21240 the description to match the printed values.
21241
21242 2011-02-28 Richard Guenther <rguenther@suse.de>
21243
21244 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
21245 of the copied scope tree.
21246
21247 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21248
21249 * doc/extend.texi (Function Attributes): Avoid deeply (and
21250 wrongly) nested tables.
21251
21252 2011-02-27 Jakub Jelinek <jakub@redhat.com>
21253
21254 PR middle-end/47903
21255 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
21256 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
21257 r isn't op0 nor op1.
21258
21259 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
21260
21261 * config/avr/avr.md: Remove magic comment for emacs.
21262
21263 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
21264
21265 PR target/45261
21266 * config/avr/avr.c (avr_option_override): Use error on bad options.
21267 (avr_help): New function.
21268 (TARGET_HELP): Define.
21269
21270 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
21271
21272 PR target/42240
21273 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
21274 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
21275
21276 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
21277
21278 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
21279 (ARM Options): Ditto.
21280 (i386 and x86-64 Options): Ditto.
21281 (RX Options): Ditto.
21282 (SPARC Options): Ditto.
21283
21284 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
21285
21286 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
21287 FreeBSD 6 and later. Generally use cpu generic.
21288
21289 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
21290
21291 * doc/cpp.texi: Update copyright years.
21292
21293 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
21294
21295 PR target/46898
21296 * config/lm32/lm32.md (ashrsi3): Added needed variable.
21297
21298 2011-02-25 Jon Beniston <jon@beniston.com>
21299
21300 PR target/46898
21301 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
21302 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
21303 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
21304 (lm32_block_move_inline): Add type cast to remove warning.
21305 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
21306 (gen_int_relational): Move declarations to start of function.
21307
21308 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
21309
21310 PR tree-optimization/45470
21311 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
21312 can throw internally only.
21313 * tree-vect-stmts.c (vectorizable_call): Likewise.
21314
21315 2011-02-24 Anatoly Sokolov <aesok@post.ru>
21316
21317 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
21318 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21319 * config/stormy16/stormy16-protos.h
21320 (xstormy16_preferred_reload_class): Remove.
21321 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
21322 static. Change 'rclass' argument and return type to reg_class_t.
21323 (TARGET_PREFERRED_RELOAD_CLASS,
21324 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21325
21326 2011-02-24 Richard Guenther <rguenther@suse.de>
21327
21328 * lto-streamer-in.c (input_bb): Do not find referenced vars
21329 in debug statements.
21330
21331 2011-02-23 Jason Merrill <jason@redhat.com>
21332
21333 * common.opt (fabi-version): Document v5 and v6.
21334
21335 2011-02-23 Richard Guenther <rguenther@suse.de>
21336
21337 PR tree-optimization/47849
21338 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
21339
21340 2011-02-23 Jie Zhang <jie@codesourcery.com>
21341
21342 * opts-common.c (decode_cmdline_option): Print empty string
21343 argument as "" in decoded->orig_option_with_args_text.
21344 * gcc.c (execute): Print empty string argument as ""
21345 in the verbose output.
21346 (do_spec_1): Keep empty string argument.
21347
21348 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
21349
21350 * config.gcc: Declare score-* and crx-* obsolete.
21351
21352 2011-02-23 Jie Zhang <jie@codesourcery.com>
21353
21354 PR rtl-optimization/47763
21355 * web.c (web_main): Ignore naked clobber when replacing register.
21356
21357 2011-02-22 Anatoly Sokolov <aesok@post.ru>
21358
21359 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
21360 Remove.
21361
21362 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
21363
21364 PR doc/47848
21365 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
21366
21367 2011-02-22 Mike Stump <mikestump@comcast.net>
21368
21369 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
21370 assembler.
21371 * configure: Regenerate.
21372
21373 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
21374
21375 PR rtl-optimization/46002
21376 * ira-color.c (update_copy_costs): Change class intersection
21377 test to reg_class_contents[] test of 'hard_regno'.
21378
21379 2011-02-21 Joseph Myers <joseph@codesourcery.com>
21380
21381 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
21382 than Driver option.
21383 * config/hpux11.opt (mt): Likewise.
21384 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
21385 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
21386 * config/vax/elf.opt (mno-asm-pic): Likewise.
21387 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
21388
21389 2011-02-21 Mike Stump <mikestump@comcast.net>
21390
21391 PR target/47822
21392 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
21393 tree so we can get save the type.
21394 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
21395 for CFString instead of trying to use past the end of the builtins.
21396 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
21397 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
21398 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
21399 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
21400 Rename to darwin_builtin_cfstring.
21401 (darwin_init_cfstring_builtins): Return the built type.
21402
21403 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
21404
21405 PR target/47840
21406 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
21407 (_mm256_insert_epi64): Use _mm_insert_epi64.
21408
21409 2011-02-21 Anatoly Sokolov <aesok@post.ru>
21410
21411 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21412 * config/stormy16/stormy16-protos.h
21413 (xstormy16_mode_dependent_address_p): Remove.
21414 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
21415 Make static. Change return type to bool. Change argument type to
21416 const_rtx. Remove dead code.
21417 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21418
21419 2011-02-21 Richard Guenther <rguenther@suse.de>
21420
21421 PR lto/47820
21422 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21423 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21424 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
21425 TUs context.
21426 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21427 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21428
21429 2011-02-20 Richard Guenther <rguenther@suse.de>
21430
21431 PR lto/47822
21432 * tree.c (free_lang_data_in_decl): Clean builtins from
21433 the TU decl BLOCK_VARS.
21434
21435 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
21436
21437 PR debug/47620
21438 PR debug/47630
21439 * haifa-sched.c (fix_tick_ready): Skip tick computation
21440 for debug insns.
21441
21442 2011-02-19 Richard Guenther <rguenther@suse.de>
21443
21444 PR lto/47647
21445 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
21446 Remove lazy BLOCK_VARS streaming.
21447 (lto_input_ts_block_tree_pointers): Likewise.
21448 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
21449
21450 2011-02-19 Joseph Myers <joseph@codesourcery.com>
21451
21452 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
21453
21454 2011-02-19 Joseph Myers <joseph@codesourcery.com>
21455
21456 * config/i386/biarch32.h, config/i386/mach.h,
21457 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
21458
21459 2011-02-19 Jakub Jelinek <jakub@redhat.com>
21460
21461 PR target/47800
21462 * config/i386/i386.md (peephole2 for shift and plus): Use
21463 operands[1] original mode in the first insn.
21464
21465 2011-02-18 Mike Stump <mikestump@comcast.net>
21466
21467 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
21468
21469 2011-02-18 Jan Hubicka <jh@suse.cz>
21470
21471 PR middle-end/47788
21472 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
21473 to zero when the function is not inlinable at all.
21474
21475 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21476
21477 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
21478 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
21479 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
21480 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
21481 * config/pa/t-pa64: Likewise.
21482 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
21483
21484 2011-02-18 Jakub Jelinek <jakub@redhat.com>
21485
21486 PR driver/47787
21487 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
21488
21489 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21490
21491 PR target/47792
21492 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
21493
21494 2011-02-18 Anatoly Sokolov <aesok@post.ru>
21495
21496 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
21497 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
21498 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
21499 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
21500 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
21501 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
21502 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
21503 m32r_load_postinc_p, m32r_store_preinc_predec_p,
21504 m32r_legitimate_address_p): New functions.
21505 * config/m32r/constraints.md (constraint "S"): Don't use
21506 STORE_PREINC_PREDEC_P.
21507 (constraint "U"): Don't use LOAD_POSTINC_P.
21508
21509 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
21510
21511 PR rtl-optimization/46178
21512 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
21513 compute ira_hard_regno_cover_class[].
21514
21515 2011-02-18 Richard Guenther <rguenther@suse.de>
21516
21517 PR lto/47798
21518 * lto-streamer.h (lto_global_var_decls): Declare.
21519 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
21520 statics for global var processing.
21521
21522 2011-02-18 Richard Guenther <rguenther@suse.de>
21523
21524 PR tree-optimization/47737
21525 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
21526 edge dominance check.
21527
21528 2011-02-18 Jakub Jelinek <jakub@redhat.com>
21529
21530 PR debug/47780
21531 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
21532 avoid invalid rtx sharing.
21533
21534 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
21535
21536 * doc/cpp.texi (Obsolete Features): Add background on the
21537 origin of assertions.
21538
21539 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
21540
21541 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
21542 objc_abi == 2.
21543 * config/darwin.c (output_objc_section_asm_op): Added support for
21544 ABI v1 and v2.
21545 (is_objc_metadata): New.
21546 (darwin_objc2_section): New.
21547 (darwin_objc1_section): New.
21548 (machopic_select_section): Added support for ABI v1 and v2.
21549 (darwin_emit_objc_zeroed): New.
21550 (darwin_output_aligned_bss): Detect objc metadata and treat it
21551 appropriately.
21552 (darwin_asm_output_aligned_decl_common): Same.
21553 (darwin_asm_output_aligned_decl_local): Same.
21554 * config/darwin-sections.def: Updated for ABI v1 and v2.
21555 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
21556 compiling Objective-C code for the NeXT runtime, default to using
21557 ABI version 0 for 32-bit, and version 2 for 64-bit.
21558
21559 2011-02-17 Joseph Myers <joseph@codesourcery.com>
21560
21561 * common.opt (optimize_fast): New Variable.
21562 * opts.c (default_options_optimization): Use opts->x_optimize_fast
21563 instead of local variable ofast.
21564
21565 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
21566
21567 * doc/invoke.texi (fobjc-abi-version): Documented.
21568 (fobjc-nilcheck): Documented.
21569 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
21570 version.
21571
21572 2011-02-17 Joseph Myers <joseph@codesourcery.com>
21573
21574 PR driver/47390
21575 * common.opt (export-dynamic): New Driver option.
21576 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
21577
21578 2011-02-17 Joseph Myers <joseph@codesourcery.com>
21579
21580 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
21581
21582 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
21583 Jan Hubicka <jh@suse.cz>
21584
21585 PR debug/47106
21586 PR debug/47402
21587 * cfgexpand.c (account_used_vars_for_block): Remove.
21588 (estimated_stack_frame_size): Use referenced vars.
21589 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
21590 that were referenced in the original function. Test src_fn
21591 rather than cfun. Drop redundant get_var_ann.
21592 (setup_one_parameter): Drop redundant get_var_ann.
21593 (declare_return_variable): Likewise.
21594 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
21595 (copy_arguments_for_versioning): Drop redundant get_var_ann.
21596 * ipa-inline.c (compute_inline_parameters): Do not compute
21597 disregard_inline_limits here.
21598 (compute_inlinable_for_current, pass_inlinable): New.
21599 (pass_inline_parameters): Require PROP_referenced_vars.
21600 * cgraphunit.c (cgraph_process_new_functions): Don't run
21601 compute_inline_parameters explicitly unless function is in SSA form.
21602 (cgraph_analyze_function): Set .disregard_inline_limits.
21603 * tree-sra.c (convert_callers): Compute inliner parameters
21604 only for functions already in SSA form.
21605
21606 2011-02-17 Joseph Myers <joseph@codesourcery.com>
21607
21608 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
21609 -mlittle-endian-data.
21610
21611 2011-02-17 Joseph Myers <joseph@codesourcery.com>
21612
21613 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
21614 -mno-fpu, not -fpu and -no-fpu.
21615 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
21616 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
21617
21618 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
21619
21620 PR target/43653
21621 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
21622 input reload with PLUS RTX.
21623
21624 2011-02-16 Joseph Myers <joseph@codesourcery.com>
21625
21626 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
21627 of InverseVar(MDMX).
21628
21629 2011-02-16 Joseph Myers <joseph@codesourcery.com>
21630
21631 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
21632 --m4-340.
21633
21634 2011-02-16 Joseph Myers <joseph@codesourcery.com>
21635
21636 * config/mn10300/mn10300.opt (mno-crt0): New.
21637
21638 2011-02-16 Joseph Myers <joseph@codesourcery.com>
21639
21640 * config/m68k/uclinux.opt (static-libc): New Driver option.
21641
21642 2011-02-16 Joseph Myers <joseph@codesourcery.com>
21643
21644 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
21645
21646 2011-02-16 Joseph Myers <joseph@codesourcery.com>
21647
21648 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
21649 %{muser-extend-enabled}.
21650
21651 2011-02-16 Richard Guenther <rguenther@suse.de>
21652
21653 PR tree-optimization/47738
21654 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
21655 the TODO from tree_predictive_commoning.
21656
21657 2011-02-15 Jeff Law <law@redhat.com>
21658
21659 Revert
21660 2011-01-25 Jeff Law <law@redhat.com>
21661
21662 PR rtl-optimization/37273
21663 * ira-costs.c (scan_one_insn): Detect constants living in memory and
21664 handle them like argument loads from stack slots. Do not double
21665 count memory for memory constants and argument loads from stack slots.
21666
21667 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
21668
21669 PR target/47755
21670 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
21671 mode for vector constants. Remove code that checks for TImode.
21672
21673 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
21674
21675 PR debug/47106
21676 PR debug/47402
21677 * cgraph.h (compute_inline_parameters): Return void.
21678 * ipa-inline.c (compute_inline_parameters): Adjust.
21679
21680 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
21681
21682 PR debug/47106
21683 PR debug/47402
21684 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
21685 rather than decl.
21686 * cfgexpand.c (estimated_stack_frame_size): Likewise.
21687 * ipa-inline.c (compute_inline_parameters): Adjust.
21688
21689 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
21690
21691 PR debug/47106
21692 PR debug/47402
21693 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
21694 Adjust all users. Pass FN to...
21695 * tree-flow-inline.h (first_referenced_var): ... this. Add
21696 fn argument.
21697 * ipa-struct-reorg.c: Adjust.
21698 * tree-dfa.c: Adjust.
21699 * tree-into-ssa.c: Adjust.
21700 * tree-sra.c: Adjust.
21701 * tree-ssa-alias.c: Adjust.
21702 * tree-ssa-live.c: Adjust.
21703 * tree-ssa.c: Adjust.
21704 * tree-ssanames.c: Adjust.
21705 * tree-tailcall.c: Adjust.
21706
21707 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
21708
21709 PR debug/47106
21710 PR debug/47402
21711 * tree-flow.h (referenced_var_lookup): Add fn parameter.
21712 Adjust all callers.
21713 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
21714 * tree-flow-inline.h: Adjust.
21715 * gimple-pretty-print.c: Adjust.
21716 * tree-into-ssa.c: Adjust.
21717 * tree-ssa.c: Adjust.
21718 * cfgexpand.c: Adjust.
21719
21720 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
21721
21722 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
21723 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21724 (EXTRA_CONSTRAINT): Delete.
21725 * config/iq2000/constraints.md: New file.
21726 * config/iq2000/iq2000.md: Include it.
21727 (define_insn ""): Delete.
21728 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
21729 unsupported constraint letters from patterns.
21730 (call_value, call_value_internal1): Likewise.
21731 (call_value_multiple_internal1): Likewise.
21732
21733 2011-02-15 Nick Clifton <nickc@redhat.com>
21734
21735 * config/mn10300/mn10300.c: Include tm-constrs.h.
21736 (struct liw_data): New data structure describing an LIW candidate
21737 instruction.
21738 (extract_bundle): Use struct liw_data. Allow small integer
21739 operands for some instructions.
21740 (check_liw_constraints): Use struct liw_data. Remove swapped
21741 parameter. Add comments describing the checks. Fix bug when
21742 assigning the source of liw1 to the source of liw2.
21743 (liw_candidate): Delete. Code moved into extract_bundle.
21744 (mn10300_bundle_liw): Use struct liw_data. Check constraints
21745 before swapping.
21746 * config/mn10300/predicates.md (liw_operand): New predicate.
21747 Allows registers and small integer constants.
21748 * config/mn10300/constraints.md (O): New constraint. Accetps
21749 integers in the range -8 to +7 inclusive.
21750 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
21751 for moving a small integer into a register. Give this alternative
21752 LIW attributes.
21753 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
21754 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
21755 using the J,K,L and M constraints,
21756 (liw): Remove SI mode on second operands to allow for HI and QI
21757 mode values.
21758 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
21759 instruction.
21760
21761 2011-02-15 Richard Guenther <rguenther@suse.de>
21762
21763 PR tree-optimization/47743
21764 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
21765 for a non-type-compatible VN lookup bail out.
21766
21767 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
21768
21769 * config/fr30/constraints.md: New file.
21770 * config/fr30/fr30.md: Include it.
21771 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
21772 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21773 (EXTRA_CONSTRAINT): Delete.
21774
21775 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
21776
21777 * config/frv/constraints.md: New file.
21778 * config/frv/predicates.md: Include it.
21779 * config/frv/frv.c (reg_class_from_letter): Delete.
21780 (frv_option_override): Don't initialize it.
21781 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
21782 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
21783 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
21784 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
21785 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
21786 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21787 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
21788 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
21789 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
21790 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
21791 (REG_CLASS_FROM_CONSTRAINT): Delete.
21792
21793 2011-02-15 Jakub Jelinek <jakub@redhat.com>
21794
21795 PR middle-end/47581
21796 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
21797 if frame size is 0 in a leaf function.
21798
21799 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21800
21801 PR pch/14940
21802 * config/alpha/host-osf.c: New file.
21803 * config/alpha/x-osf: New file.
21804 * config.host (alpha*-dec-osf*): Use it.
21805
21806 2011-02-14 Anatoly Sokolov <aesok@post.ru>
21807
21808 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21809 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
21810 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
21811 (rx_mode_dependent_address_p): ...this. Make static. Change argument
21812 type to const_rtx.
21813 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21814
21815 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
21816
21817 * config/stormy16/constraints.md: New file.
21818 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
21819 Use satisfies_constraint_Q and satisfies_constraint_R.
21820 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
21821 Delete.
21822 (xstormy16_legitiamte_address_p): Declare.
21823 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
21824 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21825 (EXTRA_CONSTRAINT): Delete.
21826 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
21827 Un-staticize.
21828 (xstormy16_extra_constraint_p): Delete.
21829
21830 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
21831
21832 PR tree-optimization/46494
21833 * loop-unroll.c (split_edge_and_insert): Adjust comment.
21834 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
21835 (pass_rtl_loop_done): Add TODO_verify_flow.
21836 * fwprop.c (pass_rtl_fwprop): Likewise.
21837 * modulo-sched.c (pass_sms): Likewise.
21838 * tree-ssa-dom.c (pass_dominator): Likewise.
21839 * tree-ssa-loop-ch.c (pass_ch): Likewise.
21840 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
21841 (pass_tree_loop_done): Likewise.
21842 * tree-ssa-pre.c (execute_pre): Likewise.
21843 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
21844 * tree-ssa-sink.c (pass_sink_code): Likewise.
21845 * tree-vrp.c (pass_vrp): Likewise.
21846
21847 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
21848
21849 * config/v850/constraints.md: New file.
21850 * config/v850/v850.md: Include it.
21851 * config/v850/predicates.md (reg_or_0_operand): Use
21852 satisfies_constraint_G.
21853 (special_symbolref_operand): Use satisfies_constraint_K.
21854 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
21855 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
21856 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
21857 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
21858 (EXTRA_CONSTRAINT): Delete.
21859 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
21860 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
21861 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
21862
21863 2011-02-14 Anatoly Sokolov <aesok@post.ru>
21864
21865 PR target/47696
21866 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
21867 description.
21868
21869 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
21870
21871 * config/mcore/constraints.md: New file.
21872 * config/mcore/mcore.md: Include it.
21873 * config/mcore/mcore.c (reg_class_from_letter): Delete.
21874 * config/mcore/mcore.h (reg_class_from_letter): Delete.
21875 (REG_CLASS_FROM_LETTER): Delete.
21876 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
21877 insn_const_int_ok_for_constraint.
21878 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
21879 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
21880 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21881 (EXTRA_CONSTRAINT): Delete.
21882
21883 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21884
21885 PR ada/41929
21886 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
21887 (IS_SIGHANDLER): Define.
21888 (sparc64_is_sighandler): New function, split off from
21889 sparc64_fallback_frame_state.
21890 (sparc_is_sighandler): New function, split off from
21891 sparc_fallback_frame_state.
21892 (sparc64_fallback_frame_state): Merge with ...
21893 (sparc_fallback_frame_state): ... this into ...
21894 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
21895 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
21896 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
21897 stack instead of hardcoded offsets.
21898
21899 2011-02-14 Andriy Gapon <avg@freebsd.org>
21900
21901 PR target/45808
21902 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
21903
21904 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21905
21906 * configure: Regenerate.
21907
21908 2011-02-12 Joseph Myers <joseph@codesourcery.com>
21909
21910 PR driver/45731
21911 * gcc.c (asm_options): Correct spec matching --target-help.
21912
21913 2011-02-12 Martin Jambor <mjambor@suse.cz>
21914
21915 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
21916 to gimple call error.
21917
21918 2011-02-12 Mike Stump <mikestump@comcast.net>
21919
21920 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
21921 comments in backslash regions.
21922
21923 2011-02-12 Mike Stump <mikestump@comcast.net>
21924 Jakub Jelinek <jakub@redhat.com>
21925 Iain Sandoe <iains@gcc.gnu.org>
21926
21927 PR target/47324
21928 * dwarf2out.c (output_cfa_loc): When required, apply the
21929 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
21930 (output_loc_sequence): Likewise.
21931 (output_loc_operands_raw): Likewise.
21932 (output_loc_sequence_raw): Likewise.
21933 (output_cfa_loc): Likewise.
21934 (output_loc_list): Suppress register number adjustment when
21935 calling output_loc_sequence()
21936 (output_die): Likewise.
21937
21938 2011-02-12 Anatoly Sokolov <aesok@post.ru>
21939
21940 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21941 Remove macros.
21942 * config/xtensa/xtensa.c (xtensa_register_move_cost,
21943 xtensa_memory_move_cost): New functions.
21944 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
21945
21946 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
21947
21948 PR lto/47225
21949 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
21950 in the current directory.
21951 * configure: Rebuilt.
21952
21953 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
21954
21955 * config/darwin.c (darwin_override_options): Add a hunk missed
21956 from the commit of r168571. Trim comment line lengths and
21957 correct indents of the preceding block.
21958
21959 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
21960
21961 * gcc.c (driver_handle_option): Concatenate the argument to -F with
21962 the switch.
21963
21964 2011-02-11 Joseph Myers <joseph@codesourcery.com>
21965
21966 * common.opt (nostartfiles): New Driver option.
21967
21968 2011-02-11 Xinliang David Li <davidxl@google.com>
21969
21970 PR tree-optimization/47707
21971 * tree-chrec.c (convert_affine_scev): Keep type precision.
21972
21973 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
21974
21975 PR tree-optimization/47420
21976 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
21977
21978 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
21979
21980 PR rtl-optimization/47614
21981 * rtl.h (check_for_inc_dec): Declare.
21982 * dse.c (check_for_inc_dec): Externalize...
21983 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
21984 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
21985
21986 2011-02-11 Joseph Myers <joseph@codesourcery.com>
21987
21988 PR driver/47678
21989 * gcc.c (main): Do not compile inputs if there were errors in
21990 option handling.
21991 * opts-common.c (read_cmdline_option): Check for wrong language
21992 after other error checks.
21993
21994 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
21995
21996 * cgraph.c: Fix comment typos.
21997 * cgraph.h: Likewise.
21998 * cgraphunit.c: Likewise.
21999 * ipa-cp.c: Likewise.
22000 * ipa-inline.c: Likewise.
22001 * ipa-prop.c: Likewise.
22002 * ipa-pure-const.c: Likewise.
22003 * ipa-ref.c: Likewise.
22004 * ipa-reference.c: Likewise.
22005
22006 2011-02-11 Jakub Jelinek <jakub@redhat.com>
22007
22008 PR debug/47684
22009 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
22010
22011 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22012
22013 PR testsuite/47400
22014 * doc/sourcebuild.texi (Require Support): Document
22015 dg-require-ascii-locale.
22016
22017 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
22018
22019 * doc/lto.texi (Write summary): Fix missing parentheses.
22020
22021 2011-02-10 DJ Delorie <dj@redhat.com>
22022
22023 * config/m32c/m32c.c (m32c_option_override): Disable
22024 -fcombine-stack-adjustments until flag value tracking and compare
22025 optimization can be rewritten.
22026
22027 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
22028
22029 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
22030 PROCESSOR_POWER7.
22031 (PROCESSOR_DEFAULT64): Likewise.
22032
22033 2011-02-10 Richard Henderson <rth@redhat.com>
22034
22035 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
22036 change from 2011-02-03.
22037 * config/rx/rx.c (flags_from_code): Likewise.
22038 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
22039 is valid, n/pz otherwise.
22040 (rx_select_cc_mode): Return CCmode if Y is not zero.
22041
22042 2011-02-10 Richard Guenther <rguenther@suse.de>
22043
22044 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
22045
22046 2011-02-10 Richard Guenther <rguenther@suse.de>
22047
22048 PR tree-optimization/47677
22049 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
22050
22051 2011-02-10 Jakub Jelinek <jakub@redhat.com>
22052
22053 PR target/47665
22054 * combine.c (make_compound_operation): Only change shifts into
22055 multiplication for SCALAR_INT_MODE_P.
22056
22057 2011-02-10 Jie Zhang <jie@codesourcery.com>
22058
22059 PR testsuite/47622
22060 Revert
22061 2011-02-05 Jie Zhang <jie@codesourcery.com>
22062 PR debug/42631
22063 * web.c (entry_register): Don't clobber the number of the
22064 first uninitialized reference in used[].
22065
22066 2011-02-09 Richard Guenther <rguenther@suse.de>
22067
22068 PR tree-optimization/47664
22069 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
22070 all edges again.
22071
22072 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
22073
22074 PR target/46481
22075 PR target/47032
22076 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
22077 PROCESSOR_POWER7.
22078 (PROCESSOR_DEFAULT64): Same.
22079 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
22080
22081 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22082
22083 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
22084
22085 2011-02-09 Martin Jambor <mjambor@suse.cz>
22086
22087 PR middle-end/45505
22088 * tree-sra.c (struct access): New flags grp_scalar_read and
22089 grp_scalar_write. Changed description of assignment read and write
22090 flags.
22091 (dump_access): Dump new flags, reorder all of them.
22092 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
22093 to detect multiple scalar reads.
22094 (analyze_access_subtree): Use the new scalar read write flags instead
22095 of the old flags. Adjusted comments.
22096
22097 2011-02-08 DJ Delorie <dj@redhat.com>
22098
22099 PR target/47548
22100 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
22101 patterns.
22102
22103 2011-02-08 Joseph Myers <joseph@codesourcery.com>
22104
22105 * config/m68k/uclinux.opt: New.
22106 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
22107
22108 2011-02-08 Joseph Myers <joseph@codesourcery.com>
22109
22110 * config/cris/elf.opt (sim): New Driver option.
22111
22112 2011-02-08 Joseph Myers <joseph@codesourcery.com>
22113
22114 * config/xtensa/elf.opt: New.
22115 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
22116
22117 2011-02-08 Joseph Myers <joseph@codesourcery.com>
22118
22119 * config/vax/elf.opt: New.
22120 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
22121
22122 2011-02-08 Joseph Myers <joseph@codesourcery.com>
22123
22124 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
22125
22126 2011-02-08 Joseph Myers <joseph@codesourcery.com>
22127
22128 * config/gnu-user.opt: New.
22129 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
22130 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
22131 *-*-uclinux*): Use gnu-user.opt.
22132
22133 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
22134
22135 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
22136 * config/i386/gnu.h (CPP_SPEC): Likewise.
22137
22138 2011-02-08 Ian Lance Taylor <iant@google.com>
22139
22140 * common.opt (fcx-limited-range): Add SetByCombined flag.
22141 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
22142 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
22143 (fassociative-math, freciprocal-math): Likewise.
22144 (funsafe-math-optimizations): Likewise.
22145 * opth-gen.awk: Handle SetByCombined.
22146 * optc-gen.awk: Likewise.
22147 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
22148 (set_unsafe_math_optimizations_flags): Likewise.
22149 * doc/options.texi (Option properties): Document SetByCombined.
22150
22151 2011-02-08 Joseph Myers <joseph@codesourcery.com>
22152
22153 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
22154 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
22155 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
22156 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
22157 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
22158
22159 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
22160
22161 PR tree-optimization/46834
22162 PR tree-optimization/46994
22163 PR tree-optimization/46995
22164 * graphite-sese-to-poly.c (used_outside_reduction): New.
22165 (detect_commutative_reduction): Call used_outside_reduction.
22166 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
22167 translate_scalar_reduction_to_array only when at least one
22168 loop-phi/close-phi tuple has been detected.
22169
22170 2011-02-08 Richard Guenther <rguenther@suse.de>
22171
22172 PR middle-end/47639
22173 * tree-vect-generic.c (expand_vector_operations_1): Update
22174 stmts here ...
22175 (expand_vector_operations): ... not here. Cleanup EH info
22176 and the CFG if required.
22177
22178 2011-02-08 Richard Guenther <rguenther@suse.de>
22179
22180 PR tree-optimization/47641
22181 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
22182 require type compatibility.
22183
22184 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22185
22186 * gimple-low.c (lower_function_body): Don't remove the location of
22187 the return statement here.
22188 (lower_gimple_return): Do it here instead but only if the return
22189 statement is actually used twice.
22190
22191 2011-02-08 Richard Guenther <rguenther@suse.de>
22192
22193 PR tree-optimization/47632
22194 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
22195 unused up_to_stmt parameter, return whether cfg-cleanup is
22196 necessary, remove EH info properly.
22197 (forward_propagate_into_gimple_cond): Adjust caller.
22198 (forward_propagate_into_cond): Likewise.
22199 (forward_propagate_comparison): Likewise.
22200 (tree_ssa_forward_propagate_single_use_vars): Make
22201 forward_propagate_comparison case similar to the two others.
22202
22203 2011-02-08 Nick Clifton <nickc@redhat.com>
22204
22205 * config/mn10300/mn10300.opt (mliw): New command line option.
22206 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
22207 (liw_bundling): New automaton.
22208 (liw): New attribute.
22209 (liw_op): New attribute.
22210 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
22211 (movsi_internal): Add LIW attributes.
22212 (andsi3): Likewise.
22213 (iorsi3): Likewise.
22214 (xorsi3): Likewise.
22215 (addsi3): Separate register and immediate alternatives.
22216 Add LIW attributes.
22217 (subsi3): Likewise.
22218 (cmpsi): Likewise.
22219 (aslsi3): Likewise.
22220 (lshrsi3): Likewise.
22221 (ashrsi3): Likewise.
22222 (liw): New pattern.
22223 * config/mn10300/mn10300.c (liw_op_names): New
22224 (mn10300_print_operand): Handle 'W' operand descriptor.
22225 (extract_bundle): New function.
22226 (check_liw_constraints): New function.
22227 (liw_candidate): New function.
22228 (mn10300_bundle_liw): New function.
22229 (mn10300_reorg): New function.
22230 (TARGET_MACHINE_DEPENDENT_REORG): Define.
22231 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
22232 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
22233 __LIW__ or __NO_LIW__.
22234 * doc/invoke.texi: Describe the -mliw command line option.
22235
22236 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22237
22238 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
22239 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
22240 pthread_mutex_unlock): Remove.
22241 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
22242 * config/pa/t-pa64: Likewise.
22243 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
22244 shared libc if not linking against libpthread.
22245 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
22246
22247 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
22248
22249 PR target/47558
22250 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
22251 on 10.6 and later to ensure that we always use the unwinder from
22252 the system. Only add -no_compact_unwind when tarteting darwin
22253 10.6 or later.
22254
22255 2011-02-07 Steve Ellcey <sje@cup.hp.com>
22256
22257 PR target/46997
22258 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
22259 (vec_interleave_lowv2sf): Ditto.
22260 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
22261 (vec_extract_oddv2sf): Ditto.
22262
22263 2011-02-07 Mike Stump <mikestump@comcast.net>
22264
22265 PR target/42333
22266 Add __ieee_divdc3 entry point.
22267 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
22268 entry point.
22269 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
22270 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
22271 * config/darwin.c (darwin_rename_builtins): Add.
22272 * config/darwin-protos.h (darwin_rename_builtins): Add.
22273
22274 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
22275
22276 PR target/47636
22277 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
22278 for the condition.
22279
22280 2011-02-07 Mike Stump <mikestump@comcast.net>
22281
22282 * config/darwin.opt (mmacosx-version-min): Update default OS version.
22283
22284 2011-02-07 Denis Chertykov <chertykov@gmail.com>
22285
22286 PR target/47534
22287 * config/avr/libgcc.S (exit): Move .endfunc
22288
22289 2011-02-07 Richard Guenther <rguenther@suse.de>
22290
22291 PR tree-optimization/47615
22292 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
22293 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
22294 (run_scc_vn): Initialize it.
22295 (visit_reference_op_load): Use it.
22296 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
22297
22298 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22299
22300 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
22301 DImode trapping arithmetic libfuncs.
22302
22303 2011-02-07 Richard Guenther <rguenther@suse.de>
22304
22305 PR tree-optimization/47621
22306 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
22307 two duplicates ...
22308 (execute_update_addresses_taken): ... here. Make it more
22309 conservative in what we accept.
22310
22311 2011-02-06 Joseph Myers <joseph@codesourcery.com>
22312
22313 * config/sparc/freebsd.h (ASM_SPEC): Define.
22314 * config/sparc/vxworks.h (ASM_SPEC): Define.
22315
22316 2011-02-06 Joseph Myers <joseph@codesourcery.com>
22317
22318 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22319
22320 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
22321
22322 * doc/invoke.texi: Remove reference to compiler internals from
22323 user documentation.
22324
22325 * reg-notes.def: Remove REG_VALUE_PROFILE.
22326 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
22327
22328 2011-02-05 Jakub Jelinek <jakub@redhat.com>
22329
22330 PR middle-end/47610
22331 * varasm.c (default_section_type_flags): If decl is NULL,
22332 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
22333
22334 2011-02-05 Jie Zhang <jie@codesourcery.com>
22335
22336 PR debug/42631
22337 * web.c (entry_register): Don't clobber the number of the
22338 first uninitialized reference in used[].
22339
22340 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
22341
22342 PR tree-optimization/46194
22343 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
22344 (build_classic_dist_vector_1): Do not represent classic distance
22345 vectors when the access functions are variating in different loops.
22346
22347 2011-02-04 Joseph Myers <joseph@codesourcery.com>
22348
22349 * config/mips/iris6.opt: New.
22350 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
22351
22352 2011-02-04 Richard Henderson <rth@redhat.com>
22353 Steve Ellcey <sje@cup.hp.com>
22354
22355 PR target/46997
22356 * config/ia64/predicates.md (mux1_brcst_element): New.
22357 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
22358 * config/ia64/ia64.c (ia64_unpack_assemble): New.
22359 (ia64_unpack_sign): New.
22360 (ia64_expand_unpack): Rewrite using new routines.
22361 (ia64_expand_widen_sum): Ditto.
22362 (ia64_expand_dot_prod_v8qi): Ditto.
22363 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
22364 routines, add endian check.
22365 (pmpy2_even): Rename from pmpy2_r, add endian check.
22366 (pmpy2_odd): Rename from pmpy2_l, add endian check.
22367 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
22368 (vec_widen_smult_hi_v4hi): Ditto.
22369 (vec_widen_umult_lo_v4hi): Ditto.
22370 (vec_widen_umult_hi_v4hi): Ditto.
22371 (mulv2si3): Change endian checks.
22372 (sdot_prodv4hi): Rewrite with new calls.
22373 (udot_prodv4hi): New.
22374 (vec_pack_ssat_v4hi): Add endian check.
22375 (vec_pack_usat_v4hi): Ditto.
22376 (vec_pack_ssat_v2si): Ditto.
22377 (max1_even): Rename from max1_r, add endian check.
22378 (max1_odd): Rename from max1_l, add endian check.
22379 (*mux1_rev): Format change.
22380 (*mux1_mix): Ditto.
22381 (*mux1_shuf): Ditto.
22382 (*mux1_alt): Ditto.
22383 (*mux1_brcst_v8qi): Use new predicate.
22384 (vec_extract_evenv8qi): Remove endian check.
22385 (vec_extract_oddv8qi): Ditto.
22386 (vec_interleave_lowv4hi): Format change.
22387 (vec_interleave_highv4hi): Ditto.
22388 (mix2_even): Rename from mix2_r, add endian check.
22389 (mix2_odd): Rename from mux2_l, add endian check.
22390 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
22391 (vec_extract_evenodd_helper): Format change.
22392 (vec_extract_evenv4hi): Remove endian check.
22393 (vec_extract_oddv4hi): Remove endian check.
22394 (vec_interleave_lowv2si): Format change.
22395 (vec_interleave_highv2si): Format change.
22396 (vec_initv2si): Remove endian check.
22397 (vecinit_v2si): Add endian check.
22398 (reduc_splus_v2sf): Add endian check.
22399 (reduc_smax_v2sf): Ditto.
22400 (reduc_smin_v2sf): Ditto.
22401 (vec_initv2sf): Remove endian check.
22402 (fpack): Add endian check.
22403 (fswap): Add endian check.
22404 (vec_interleave_highv2sf): Add endian check.
22405 (vec_interleave_lowv2sf): Add endian check.
22406 (fmix_lr): Add endian check.
22407 (vec_setv2sf): Format change.
22408 (*vec_extractv2sf_0_be): Use shift to extract operand.
22409 (*vec_extractv2sf_1_be): New.
22410 (vec_pack_trunc_v4hi): Add endian check.
22411 (vec_pack_trunc_v2si): Format change.
22412
22413 2011-02-04 Jakub Jelinek <jakub@redhat.com>
22414
22415 PR inline-asm/23200
22416 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
22417 do bb, locus and block comparison and disallow loads if it is not set.
22418 (stmt_is_replaceable_p): New function.
22419 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
22420 callers.
22421 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
22422 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
22423 SSA_NAME_DEF_STMT.
22424 * tree-flow.h (stmt_is_replaceable_p): New prototype.
22425
22426 2011-02-04 Joseph Myers <joseph@codesourcery.com>
22427
22428 * config/rs6000/xilinx.opt: New.
22429 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
22430
22431 2011-02-04 Joseph Myers <joseph@codesourcery.com>
22432
22433 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
22434
22435 2011-02-03 Anatoly Sokolov <aesok@post.ru>
22436
22437 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
22438 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
22439 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
22440 secondary_reload_info, xtensa_secondary_reload): Remove.
22441 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
22442 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
22443 (xtensa_preferred_reload_class): Make static. Change return and
22444 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
22445 Use CONST_DOUBLE_P predicate.
22446 (xtensa_preferred_output_reload_class): New function.
22447 (xtensa_secondary_reload): Make static.
22448
22449 2011-02-03 Joseph Myers <joseph@codesourcery.com>
22450
22451 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
22452 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
22453 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
22454
22455 2011-02-03 Jakub Jelinek <jakub@redhat.com>
22456
22457 PR middle-end/31490
22458 * output.h (SECTION_RELRO): Define.
22459 (SECTION_MACH_DEP): Adjust.
22460 (get_variable_section): New prototype.
22461 * varpool.c (varpool_finalize_named_section_flags): New function.
22462 (varpool_assemble_pending_decls): Call it.
22463 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
22464 * cgraphunit.c (cgraph_output_in_order): Call
22465 varpool_finalize_named_section_flags.
22466 * varasm.c (get_section): Allow section flags conflicts between
22467 relro and read-only sections if the section hasn't been declared yet.
22468 Set SECTION_OVERRIDE after diagnosing section type conflict.
22469 (get_variable_section): No longer static.
22470 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
22471 readonly sections that need relocations.
22472 (decl_readonly_section_1): New function.
22473 (decl_readonly_section): Use it.
22474
22475 Revert:
22476 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
22477 Steve Ellcey <sje@cup.hp.com>
22478
22479 PR middle-end/31490
22480 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
22481 if section attribute used.
22482
22483 2011-02-03 Jakub Jelinek <jakub@redhat.com>
22484
22485 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
22486 * config/darwin.c (SECTION_NO_ANCHOR): Define.
22487 (darwin_init_sections): Remove assertion.
22488
22489 2011-02-03 Nick Clifton <nickc@redhat.com>
22490
22491 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
22492 lt and ge.
22493 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
22494 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
22495 instead of "n" and "pz".
22496 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
22497 CC_FLAG_S.
22498
22499 2011-02-03 Jakub Jelinek <jakub@redhat.com>
22500
22501 PR target/47312
22502 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
22503 fma, expand FMA_EXPR as fma{,f,l} call.
22504
22505 PR lto/47274
22506 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
22507 copy them into a unsigned char variable and pass address of it to
22508 lto_output_data_stream.
22509
22510 PR target/47564
22511 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
22512 around backend_init_target and lang_dependent_init_target calls.
22513 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
22514 (verify_cgraph_node): Don't call set_cfun here. Use
22515 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
22516 Set error_found for incorrectly represented calls to thunks.
22517
22518 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
22519
22520 PR debug/43092
22521 PR rtl-optimization/43494
22522 * rtl.h (for_each_inc_dec_fn): New type.
22523 (for_each_inc_dec): Declare.
22524 * rtlanal.c (struct for_each_inc_dec_ops): New type.
22525 (for_each_inc_dec_find_inc_dec): New fn.
22526 (for_each_inc_dec_find_mem): New fn.
22527 (for_each_inc_dec): New fn.
22528 * dse.c (struct insn_size): Remove.
22529 (replace_inc_dec, replace_inc_dec_mem): Remove.
22530 (emit_inc_dec_insn_before): New fn.
22531 (check_for_inc_dec): Use it, along with for_each_inc_dec.
22532 (canon_address): Pass mem modes to cselib_lookup.
22533 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
22534 (cselib_lookup_from_insn): Likewise.
22535 (cselib_subst_to_values): Likewise.
22536 * cselib.c (find_slot_memmode): New var.
22537 (cselib_find_slot): New fn. Use it instead of
22538 htab_find_slot_with_hash everywhere.
22539 (entry_and_rtx_equal_p): Use find_slot_memmode.
22540 (autoinc_split): New fn.
22541 (rtx_equal_for_cselib_p): Rename and implement in terms of...
22542 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
22543 Deal with autoinc. Special-case recursion into MEMs.
22544 (cselib_hash_rtx): Likewise.
22545 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
22546 address and MEM modes.
22547 (cselib_subst_to_values): Add memmode, pass it on.
22548 Deal with autoinc.
22549 (cselib_lookup): Add memmode argument, pass it on.
22550 (cselib_lookup_from_insn): Add memmode.
22551 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
22552 (struct cselib_record_autoinc_data): New.
22553 (cselib_record_autoinc_cb): New fn.
22554 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
22555 mode to cselib_lookup. Reset autoinced REGs here instead of...
22556 (cselib_process_insn): ... here.
22557 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
22558 to cselib_lookup.
22559 (add_uses): Likewise, also to cselib_subst_to_values.
22560 (add_stores): Likewise.
22561 * sched-deps.c (add_insn_mem_dependence): Pass mode to
22562 cselib_subst_to_values.
22563 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
22564 * gcse.c (do_local_cprop): Adjusted.
22565 * postreload.c (reload_cse_simplify_set): Adjusted.
22566 (reload_cse_simplify_operands): Adjusted.
22567 * sel-sched-dump (debug_mem_addr_value): Pass mode.
22568
22569 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
22570
22571 PR tree-optimization/45122
22572 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
22573 unsafe assumptions when there's more than one loop exit.
22574
22575 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
22576
22577 PR target/47272
22578 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
22579 Document using vector double with the load/store builtins, and
22580 that the load/store builtins always use Altivec instructions.
22581
22582 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
22583 to use altivec memory instructions, even on VSX.
22584 (vector_altivec_store_<mode>): Ditto.
22585
22586 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
22587 function.
22588
22589 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22590 V2DF, V2DI support to load/store overloaded builtins.
22591
22592 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
22593 altivec load/store builtins for V2DF/V2DI types.
22594
22595 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
22596 set avoid indexed addresses on power6 if -maltivec.
22597 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
22598 vector_altivec_load/vector_altivec_store builtins.
22599 (altivec_expand_st_builtin): Ditto.
22600 (altivec_expand_builtin): Add VSX memory builtins.
22601 (rs6000_init_builtins): Add V2DI types to internal types.
22602 (altivec_init_builtins): Add support for V2DF/V2DI altivec
22603 load/store builtins.
22604 (rs6000_address_for_altivec): Insure memory address is appropriate
22605 for Altivec.
22606
22607 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
22608 vec_vsx_ld and vec_vsx_st.
22609 (vsx_store_<mode>): Ditto.
22610
22611 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
22612 variables to hold long long types for VSX vector memory builtins.
22613 (RS6000_BTI_unsigned_long_long): Ditto.
22614 (long_long_integer_type_internal_node): Ditti.
22615 (long_long_unsigned_type_internal_node): Ditti.
22616
22617 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
22618 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
22619 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
22620
22621 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
22622 short cuts.
22623 (vec_vsx_st): Ditto.
22624
22625 2011-02-02 Joseph Myers <joseph@codesourcery.com>
22626
22627 * config/pa/pa-hpux10.opt: New.
22628 * config/hpux11.opt (pthread): New Driver option.
22629 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
22630 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
22631
22632 2011-02-02 Joseph Myers <joseph@codesourcery.com>
22633
22634 * config/ia64/vms.opt: New.
22635 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
22636
22637 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
22638
22639 PR target/47580
22640 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
22641 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
22642 generator functions.
22643 (vsx_floatuns<VSi><mode>2): Ditto.
22644 (vsx_fix_trunc<mode><VSi>2): Ditto.
22645 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
22646
22647 2011-02-02 Joseph Myers <joseph@codesourcery.com>
22648
22649 * config/i386/djgpp.opt (posix): New Driver option.
22650
22651 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
22652
22653 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
22654 Move to the unsupported targets list.
22655
22656 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
22657
22658 PR rtl-optimization/47525
22659 * df-scan.c: Update copyright years.
22660 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
22661 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
22662
22663 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22664
22665 * config/i386/sysv4.h (TARGET_VERSION): Remove.
22666 (SUBTARGET_RETURN_IN_MEMORY): Remove.
22667 (ASM_OUTPUT_ASCII): Remove.
22668 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
22669
22670 2011-02-02 Jeff Law <law@redhat.com>
22671
22672 PR middle-end/47543
22673 * reload.c (find_reloads_address): Handle reg+d address where both
22674 components are invalid by reloading the entire address.
22675
22676 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
22677 Richard Guenther <rguenther@suse.de>
22678
22679 PR tree-optimization/40979
22680 PR bootstrap/47044
22681 * passes.c (init_optimization_passes): After LIM call copy_prop
22682 and DCE to clean up.
22683 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
22684
22685 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
22686
22687 PR tree-optimization/47576
22688 PR tree-optimization/47555
22689 * doc/invoke.texi (scev-max-expr-complexity): Documented.
22690 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22691 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
22692 * tree-scalar-evolution.c (follow_ssa_edge): Use
22693 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
22694
22695 2011-02-02 Richard Guenther <rguenther@suse.de>
22696
22697 PR tree-optimization/47566
22698 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
22699
22700 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
22701
22702 PR debug/47106
22703 PR debug/47402
22704 * tree-inline.c (declare_return_variable): Remove unused caller
22705 variable.
22706
22707 PR debug/47106
22708 PR debug/47402
22709 * tree-flow-inline.h (clear_is_used, is_used_p): New.
22710 * cfgexpand.c (account_used_vars_for_block): Use them.
22711 * tree-nrv.c (tree_nrv): Likewise.
22712 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
22713 (dump_scope_block): Likewise.
22714 (remove_unused_locals): Likewise.
22715
22716 PR debug/47106
22717 PR debug/47402
22718 * tree-inline.c (declare_return_variable): Add result decl to
22719 local decls only once.
22720 * gimple-low.c (record_vars_into): Mark newly-created variables
22721 as referenced.
22722
22723 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
22724
22725 PR debug/47498
22726 PR debug/47501
22727 PR debug/45136
22728 PR debug/45130
22729 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22730 debug insns.
22731 (no_real_insns_p, schedule_block, set_priorities): Drop special
22732 treatment of boundary debug insns.
22733 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
22734 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
22735 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22736 (BOUNDARY_DEBUG_INSN_P): Likewise.
22737 (SCHEDULE_DEBUG_INSN_P): Likewise.
22738 * sched-rgn.c (init_ready_list): Drop special treatment of
22739 boundary debug insns.
22740 * final.c (rest_of_clean_state): Clear notes' BB.
22741
22742 2011-02-01 Joseph Myers <joseph@codesourcery.com>
22743
22744 * config/openbsd.opt (assert=): New Driver option.
22745
22746 2011-02-01 Joseph Myers <joseph@codesourcery.com>
22747
22748 * config/i386/nto.opt: New.
22749 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
22750
22751 2011-02-01 Joseph Myers <joseph@codesourcery.com>
22752
22753 * config/i386/netware.opt: New.
22754 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
22755
22756 2011-02-01 Joseph Myers <joseph@codesourcery.com>
22757
22758 * config/interix.opt (posix): New Driver option.
22759
22760 2011-02-01 DJ Delorie <dj@redhat.com>
22761
22762 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
22763
22764 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
22765 class for A0/A1.
22766
22767 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
22768
22769 PR tree-optimization/47561
22770 * toplev.c (process_options): Print the Graphite flags. Add
22771 flag_loop_flatten to the list of options requiring Graphite.
22772
22773 2011-02-01 Joseph Myers <joseph@codesourcery.com>
22774
22775 * config/i386/cygming.opt (posix): New Driver option.
22776
22777 2011-02-01 Joseph Myers <joseph@codesourcery.com>
22778
22779 * config/arm/vxworks.opt: New.
22780 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
22781
22782 2011-02-01 Joseph Myers <joseph@codesourcery.com>
22783
22784 * config/alpha/elf.opt: New.
22785 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
22786 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
22787
22788 2011-02-01 Richard Guenther <rguenther@suse.de>
22789
22790 PR tree-optimization/47559
22791 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
22792 store-motion on references that can throw.
22793
22794 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
22795
22796 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
22797 * tree-pass.h (TDF_CSELIB): New macro.
22798 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
22799 cselib_lookup): Check for it rather than for TDF_DETAILS.
22800
22801 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
22802
22803 PR driver/47547
22804 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
22805 is HOST_BIT_BUCKET.
22806
22807 * opts.c (finish_options): Don't add x_aux_base_name if it is
22808 HOST_BIT_BUCKET.
22809
22810 2011-02-01 Richard Guenther <rguenther@suse.de>
22811
22812 PR tree-optimization/47555
22813 Revert
22814 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
22815
22816 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22817
22818 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
22819
22820 PR gcc/46692
22821 * config/lm32/t-lm32: Add multilib for all CPU options.
22822
22823 2011-02-01 Richard Guenther <rguenther@suse.de>
22824
22825 PR tree-optimization/47541
22826 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
22827 sure to have a field at offset zero.
22828
22829 2011-01-31 Joseph Myers <joseph@codesourcery.com>
22830
22831 * config/arc/arc.opt (EB, EL): New Driver options.
22832
22833 2011-01-31 Joseph Myers <joseph@codesourcery.com>
22834
22835 * config/alpha/osf5.opt: New.
22836 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
22837
22838 2011-01-31 Joseph Myers <joseph@codesourcery.com>
22839
22840 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
22841
22842 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
22843
22844 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
22845 -floop-interchange.
22846 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
22847 is an alias of -floop-interchange and that it requires the
22848 Graphite infrastructure.
22849 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
22850 flag_loop_interchange based on the value of flag_tree_loop_linear.
22851
22852 2011-01-31 Jakub Jelinek <jakub@redhat.com>
22853 Richard Guenther <rguenther@suse.de>
22854
22855 PR tree-optimization/47538
22856 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
22857 type instead of r1type, except for comparisons. For right
22858 shifts and comparisons punt if there are mismatches in
22859 sizetype vs. non-sizetype types.
22860
22861 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22862
22863 * doc/sourcebuild.texi (Effective-Target Keywords): Document
22864 avx_runtime.
22865
22866 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22867
22868 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
22869 version number.
22870 * configure: Regenerate.
22871
22872 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22873
22874 * configure.ac (gcc_cv_ld_static_option): Define.
22875 (gcc_cv_ld_dynamic_option): Define.
22876 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
22877 instead.
22878 (HAVE_LD_STATIC_DYNAMIC): Update message.
22879 (LD_STATIC_OPTION): Define.
22880 (LD_DYNAMIC_OPTION): Define.
22881 * configure: Regenerate.
22882 * config.in: Regenerate.
22883 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
22884 HAVE_LD_STATIC_DYNAMIC]: Use them.
22885
22886 2011-01-31 Nick Clifton <nickc@redhat.com>
22887
22888 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
22889 registers inside interrupt handlers if the handler is not a leaf
22890 function.
22891
22892 2011-01-31 Nick Clifton <nickc@redhat.com>
22893
22894 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
22895 reg_renumber returning an INVALID_REGNUM.
22896
22897 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
22898
22899 PR libgcj/44341
22900 * doc/install.texi: Document host options discarded when cross
22901 configuring target libraries.
22902
22903 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
22904
22905 Reverted:
22906 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
22907 PR debug/45136
22908 PR debug/45130
22909 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22910 debug insns.
22911 (no_real_insns_p, schedule_block, set_priorities): Drop special
22912 treatment of boundary debug insns.
22913 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
22914 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
22915 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22916 (BOUNDARY_DEBUG_INSN_P): Likewise.
22917 (SCHEDULE_DEBUG_INSN_P): Likewise.
22918 * sched-rgn.c (init_ready_list): Drop special treatment of
22919 boundary debug insns.
22920 * final.c (rest_of_clean-state): Clear notes' BB.
22921
22922 2011-01-31 Alan Modra <amodra@gmail.com>
22923
22924 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
22925 toc relative expressions as we do in print_operand_address.
22926
22927 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
22928
22929 * doc/extend.texi: Follow spelling conventions.
22930 * doc/invoke.texi: Fix a typo.
22931
22932 2011-01-30 Joseph Myers <joseph@codesourcery.com>
22933
22934 * config/hpux11.opt: New.
22935 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
22936 ia64*-*-hpux*): Use hpux11.opt.
22937
22938 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
22939
22940 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
22941 to tmake_file.
22942
22943 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
22944
22945 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
22946 support sites.
22947
22948 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
22949
22950 * doc/install.texi (Binaries): Remove outdated reference for
22951 Motorola 68HC11/68HC12 downloads.
22952
22953 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
22954
22955 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
22956 Drepper's paper.
22957
22958 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
22959
22960 PR bootstrap/47147
22961 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
22962 used by NetBSD.
22963
22964 2011-01-28 Ahmad Sharif <asharif@google.com>
22965
22966 * value-prof.c (check_counter): Corrected error message.
22967
22968 2011-01-29 Jie Zhang <jie@codesourcery.com>
22969
22970 * config/arm/arm.c (arm_legitimize_reload_address): New.
22971 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
22972 arm_legitimize_reload_address.
22973 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
22974
22975 2011-01-28 Ian Lance Taylor <iant@google.com>
22976
22977 * godump.c (go_define): Ignore macros whose definitions include
22978 two adjacent operands.
22979
22980 2011-01-28 Jakub Jelinek <jakub@redhat.com>
22981
22982 PR target/42894
22983 * varasm.c (force_const_mem): Store copy of x in desc->constant
22984 instead of x itself.
22985 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
22986 itself into REG_EQUAL note.
22987
22988 2011-01-28 Joseph Myers <joseph@codesourcery.com>
22989
22990 * config/freebsd.opt (posix, rdynamic): New Driver options.
22991
22992 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22993
22994 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
22995 -Bstatic/-Bdynamic.
22996 * configure: Regenerate.
22997
22998 2011-01-27 Joseph Myers <joseph@codesourcery.com>
22999
23000 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
23001 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
23002
23003 2011-01-27 Anatoly Sokolov <aesok@post.ru>
23004
23005 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
23006 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
23007 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
23008 (s390_preferred_reload_class): Make static. Change return and
23009 'rclass' argument type to reg_class_t.
23010
23011 2011-01-27 Jan Hubicka <jh@suse.cz>
23012
23013 PR middle-end/46949
23014 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
23015 (process_function_and_variable_attributes): Check defined weakrefs.
23016
23017 2011-01-27 Martin Jambor <mjambor@suse.cz>
23018
23019 PR tree-optimization/47228
23020 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
23021 build_ref_for_offset.
23022
23023 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23024
23025 * config/spu/spu-elf.h (ASM_SPEC): Remove.
23026
23027 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
23028
23029 PR rtl-optimization/46856
23030 * postreload.c (reload_combine_recognize_const_pattern): Do not
23031 separate cc0 setter and user on cc0 targets.
23032
23033 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
23034
23035 PR c/43082
23036 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
23037 passed a VOID_TYPE expression, immediately emit an error and
23038 return error_mark_node.
23039
23040 2011-01-26 Jeff Law <law@redhat.com>
23041
23042 PR rtl-optimization/47464
23043 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
23044 rather than may_trap_p as needed.
23045
23046 2011-01-26 DJ Delorie <dj@redhat.com>
23047
23048 PR rtl-optimization/46878
23049 * combine.c (insn_a_feeds_b): Check for the implicit cc0
23050 setter/user dependency as well.
23051
23052 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
23053
23054 PR rtl-optimization/44469
23055 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
23056 after removing trivially dead basic blocks.
23057
23058 2011-01-26 Joseph Myers <joseph@codesourcery.com>
23059
23060 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
23061 * config/frv/frv.h (LINK_SPEC): Likewise.
23062 * config/i386/netware.h (LINK_SPEC): Likewise.
23063 * config/m68k/linux.h (ASM_SPEC): Likewise.
23064 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
23065 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23066 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23067 * config/sparc/linux.h (ASM_SPEC): Likewise.
23068 * config/sparc/linux64.h (ASM_SPEC): Likewise.
23069 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23070
23071 2011-01-26 Joseph Myers <joseph@codesourcery.com>
23072
23073 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
23074 * config/frv/frv.h (ASM_SPEC): Likewise.
23075 * config/m68k/linux.h (ASM_SPEC): Likewise.
23076 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23077 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
23078 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23079 * config/sparc/linux.h (ASM_SPEC): Likewise.
23080 * config/sparc/linux64.h (ASM_SPEC): Likewise.
23081 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23082
23083 2011-01-26 Joseph Myers <joseph@codesourcery.com>
23084
23085 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
23086 * config/frv/frv.h (LINK_SPEC): Likewise.
23087 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23088
23089 2011-01-26 Joseph Myers <joseph@codesourcery.com>
23090
23091 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
23092 * config/frv/frv.h (ASM_SPEC): Likewise.
23093 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
23094 * config/m68k/linux.h (ASM_SPEC): Likewise.
23095 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23096 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
23097 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23098 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
23099 * config/sparc/linux.h (ASM_SPEC): Likewise.
23100 * config/sparc/linux64.h (ASM_SPEC): Likewise.
23101 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23102 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
23103
23104 2011-01-26 Steve Ellcey <sje@cup.hp.com>
23105
23106 PR target/46997
23107 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
23108 (*mux2): Ditto.
23109 (vec_extract_evenodd_help): Ditto.
23110 (vec_extract_evenv4hi): Ditto.
23111 (vec_extract_oddv4hi): Ditto.
23112 (vec_interleave_lowv2si): Ditto.
23113 (vec_interleave_highv2si): Ditto.
23114 (vec_extract_evenv2si): Ditto.
23115 (vec_extract_oddv2si: Ditto.
23116 (vec_pack_trunc_v2si): Ditto.
23117
23118 2011-01-22 Jan Hubicka <jh@suse.cz>
23119
23120 PR target/47237
23121 * cgraph.h (cgraph_local_info): New field can_change_signature.
23122 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
23123 signature can change.
23124 (ipcp_estimate_growth): Call sequence simplify only if calle signature
23125 can change.
23126 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
23127 (cgraph_function_versioning): We can not change signature of functions
23128 that don't allow that.
23129 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
23130 (lto_input_node): Likewise.
23131 * ipa-inline.c (compute_inline_parameters): Compute
23132 local.can_change_signature.
23133 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
23134 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
23135 functions that can not change signature.
23136 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
23137 init_cumulative_args): Do not use local calling conventions
23138 for functions that can not change signature.
23139
23140 2011-01-22 Jan Hubicka <jh@suse.cz>
23141
23142 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
23143
23144 2011-01-26 Richard Guenther <rguenther@suse.de>
23145
23146 PR tree-optimization/47190
23147 * cgraphunit.c (process_common_attributes): New function.
23148 (process_function_and_variable_attributes): Use it.
23149
23150 2011-01-26 Richard Guenther <rguenther@suse.de>
23151
23152 PR lto/47423
23153 * cgraphbuild.c (record_eh_tables): Record reference to personality
23154 function.
23155
23156 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
23157
23158 PR debug/45454
23159 * sel-sched.c (moveup_expr): Don't let debug insns prevent
23160 non-debug insns from moving up.
23161
23162 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
23163
23164 PR target/40125
23165 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
23166 t-dlldir{,-x} fragment for build and add it to tmake_file.
23167 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
23168 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
23169 * config/i386/t-dlldir: New file.
23170 (SHLIB_DLLDIR): Define.
23171 * config/i386/t-dlldir-x: New file.
23172 (SHLIB_DLLDIR): Define.
23173 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
23174 (SHLIB_INSTALL): Use it.
23175
23176 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
23177
23178 PR target/47246
23179 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
23180 lower bound of the allowed Thumb-2 coprocessor load/store
23181 index range to -256. Add explaining comment.
23182
23183 2011-01-25 Ian Lance Taylor <iant@google.com>
23184
23185 * godump.c (go_define): Improve lexing of macro expansion to only
23186 accept expressions which match Go spec.
23187
23188 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
23189
23190 PR c++/43601
23191 * tree.c (handle_dll_attribute): Handle it.
23192 * doc/extend.texi (@item dllexport): Mention it.
23193 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
23194
23195 2011-01-25 Ian Lance Taylor <iant@google.com>
23196
23197 PR tree-optimization/26854
23198 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
23199 (decl_jump_unsafe): Move higher in file, with no other change.
23200 (bind): Set has_jump_unsafe_decl if appropriate.
23201 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
23202 (check_earlier_gotos): Likewise.
23203 (c_check_switch_jump_warnings): Likewise.
23204
23205 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
23206
23207 * doc/invoke.texi (Warning Options): Add missing hyphen.
23208 (-fprofile-dir): Minor grammatical fixes.
23209 (-fbranch-probabilities): Likewise.
23210
23211 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
23212
23213 PR debug/45136
23214 PR debug/45130
23215 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
23216 debug insns.
23217 (no_real_insns_p, schedule_block, set_priorities): Drop special
23218 treatment of boundary debug insns.
23219 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
23220 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
23221 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
23222 (BOUNDARY_DEBUG_INSN_P): Likewise.
23223 (SCHEDULE_DEBUG_INSN_P): Likewise.
23224 * sched-rgn.c (init_ready_list): Drop special treatment of
23225 boundary debug insns.
23226 * final.c (rest_of_clean-state): Clear notes' BB.
23227
23228 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23229
23230 * Makefile.in (LAMBDA_H): Removed.
23231 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
23232 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
23233 lambda-trans.o, and tree-loop-linear.o.
23234 (lto-symtab.o): Remove dependence on LAMBDA_H.
23235 (tree-loop-linear.o): Remove rule.
23236 (lambda-mat.o): Same.
23237 (lambda-trans.o): Same.
23238 (lambda-code.o): Same.
23239 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
23240 (tree-vect-slp.o): Same.
23241 * hwint.h (gcd): Moved here.
23242 (least_common_multiple): Same.
23243 * lambda-code.c: Removed.
23244 * lambda-mat.c: Removed.
23245 * lambda-trans.c: Removed.
23246 * lambda.h: Removed.
23247 * tree-loop-linear.c: Removed.
23248 * lto-symtab.c: Do not include lambda.h.
23249 * omega.c (gcd): Removed.
23250 * passes.c (init_optimization_passes): Remove pass_linear_transform.
23251 * tree-data-ref.c (print_lambda_vector): Moved here.
23252 (lambda_vector_copy): Same.
23253 (lambda_matrix_copy): Same.
23254 (lambda_matrix_id): Same.
23255 (lambda_vector_first_nz): Same.
23256 (lambda_matrix_row_add): Same.
23257 (lambda_matrix_row_exchange): Same.
23258 (lambda_vector_mult_const): Same.
23259 (lambda_vector_negate): Same.
23260 (lambda_matrix_row_negate): Same.
23261 (lambda_vector_equal): Same.
23262 (lambda_matrix_right_hermite): Same.
23263 * tree-data-ref.h: Do not include lambda.h.
23264 (lambda_vector): Moved here.
23265 (lambda_matrix): Same.
23266 (dependence_level): Same.
23267 (lambda_transform_legal_p): Removed declaration.
23268 (lambda_collect_parameters): Same.
23269 (lambda_compute_access_matrices): Same.
23270 (lambda_vector_gcd): Same.
23271 (lambda_vector_new): Same.
23272 (lambda_vector_clear): Same.
23273 (lambda_vector_lexico_pos): Same.
23274 (lambda_vector_zerop): Same.
23275 (lambda_matrix_new): Same.
23276 * tree-flow.h (least_common_multiple): Removed declaration.
23277 * tree-parloops.c (lambda_trans_matrix): Moved here.
23278 (LTM_MATRIX): Same.
23279 (LTM_ROWSIZE): Same.
23280 (LTM_COLSIZE): Same.
23281 (LTM_DENOMINATOR): Same.
23282 (lambda_trans_matrix_new): Same.
23283 (lambda_matrix_vector_mult): Same.
23284 (lambda_transform_legal_p): Same.
23285 * tree-pass.h (pass_linear_transform): Removed declaration.
23286 * tree-ssa-loop.c (tree_linear_transform): Removed.
23287 (gate_tree_linear_transform): Removed.
23288 (pass_linear_transform): Removed.
23289 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
23290 flag_loop_interchange.
23291
23292 2011-01-25 Jakub Jelinek <jakub@redhat.com>
23293
23294 PR tree-optimization/47265
23295 PR tree-optimization/47443
23296 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
23297 if name still has some uses.
23298
23299 2011-01-25 Martin Jambor <mjambor@suse.cz>
23300
23301 PR tree-optimization/47382
23302 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
23303 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
23304
23305 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
23306
23307 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
23308 sjlj_except_unwind_info.
23309
23310 2011-01-25 Richard Guenther <rguenther@suse.de>
23311
23312 PR tree-optimization/47426
23313 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
23314 visible functions results escape.
23315
23316 2011-01-25 Jakub Jelinek <jakub@redhat.com>
23317
23318 PR target/45701
23319 * config/arm/arm.c (any_sibcall_uses_r3): New function.
23320 (arm_get_frame_offsets): Use it.
23321
23322 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23323 Jakub Jelinek <jakub@redhat.com>
23324
23325 PR tree-optimization/47271
23326 * tree-if-conv.c (bb_postdominates_preds): New.
23327 (if_convertible_bb_p): Call bb_postdominates_preds.
23328 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
23329 (predicate_scalar_phi): Call bb_postdominates_preds.
23330
23331 2011-01-25 Nick Clifton <nickc@redhat.com>
23332
23333 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
23334 * config/rx/rx.c (rx_function_value): Likewise.
23335 (rx_promote_function_mode): Likewise.
23336 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
23337 in order to make it legitimate.
23338 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
23339 make sure that the first operand is the same as the result register.
23340 (addsi3_unspec): Delete.
23341 (subdi3): Do not accept immediate operands.
23342 (subdi3_internal): Likewise.
23343
23344 2011-01-25 Jeff Law <law@redhat.com>
23345
23346 PR rtl-optimization/37273
23347 * ira-costs.c (scan_one_insn): Detect constants living in memory and
23348 handle them like argument loads from stack slots. Do not double
23349 count memory for memory constants and argument loads from stack slots.
23350
23351 2011-01-25 Jakub Jelinek <jakub@redhat.com>
23352
23353 PR tree-optimization/47427
23354 PR tree-optimization/47428
23355 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
23356 coalesce if the new root var would be TREE_READONLY.
23357
23358 2011-01-25 Richard Guenther <rguenther@suse.de>
23359
23360 PR middle-end/47414
23361 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
23362 correct type for TBAA.
23363
23364 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23365
23366 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
23367 (close_phi_written_to_memory): Call for_each_index with
23368 dr_indices_valid_in_loop.
23369
23370 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23371
23372 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
23373 when it is initialized.
23374
23375 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23376
23377 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
23378 call to graphite_find_data_references_in_stmt.
23379 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
23380 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
23381 call to graphite_find_data_references_in_stmt.
23382 (analyze_drs_in_stmts): Same.
23383 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
23384 in which the scalar analysis of indices is performed.
23385 (create_data_ref): Same. Update call to dr_analyze_indices.
23386 (find_data_references_in_stmt): Update call to create_data_ref.
23387 (graphite_find_data_references_in_stmt): Same.
23388 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
23389 declaration.
23390 (create_data_ref): Same.
23391 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
23392 call to create_data_ref.
23393
23394 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23395
23396 * graphite-sese-to-poly.c (build_poly_scop): Move
23397 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
23398
23399 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23400
23401 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
23402 VAR_DECL, PARM_DECL, and RESULT_DECL.
23403
23404 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23405
23406 * graphite-dependences.c (reduction_dr_1): Allow several reductions
23407 in a reduction PBB.
23408 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
23409 that have already been marked as PBB_IS_REDUCTION.
23410
23411 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23412
23413 * graphite-scop-detection.c (same_close_phi_node): New.
23414 (remove_duplicate_close_phi): New.
23415 (make_close_phi_nodes_unique): New.
23416 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
23417
23418 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23419
23420 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
23421 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
23422 of both data references to be the same.
23423
23424 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23425
23426 * graphite-dependences.c (build_lexicographical_constraint): Remove
23427 the gdim parameter.
23428 (build_lexicographical_constraint): Adjust call to
23429 ppl_powerset_is_empty.
23430 (dependence_polyhedron): Same.
23431 (graphite_legal_transform_dr): Same.
23432 (graphite_carried_dependence_level_k): Same.
23433 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
23434 parameter.
23435 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
23436
23437 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23438
23439 * graphite-sese-to-poly.c
23440 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
23441 (close_phi_written_to_memory): New.
23442 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
23443 and unshare_expr.
23444
23445 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23446
23447 * doc/install.texi: Update the expected version number of PPL to 0.11.
23448 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
23449 #if PPL_VERSION_MINOR < 11.
23450
23451 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23452
23453 * graphite-dependences.c: Include graphite-cloog-util.h.
23454 (new_poly_ddr): Inlined into dependence_polyhedron.
23455 (free_poly_ddr): Moved close by new_poly_ddr.
23456 (dependence_polyhedron_1): Renamed dependence_polyhedron.
23457 Early return NULL when ppl_powerset_is_empty returns true.
23458 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
23459 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
23460 (graphite_legal_transform_dr): Call new_poly_ddr.
23461 (graphite_carried_dependence_level_k): Same.
23462 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
23463 (dot_transformed_deps_stmt_1): Removed.
23464 (dot_deps_stmt_1): Call dot_deps_stmt_2.
23465 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
23466 (dot_deps_1): Call dot_deps_2.
23467 * Makefile.in (graphite-dependences.o): Add missing dependence on
23468 graphite-cloog-util.h.
23469
23470 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23471
23472 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
23473 (build_lexicographical_constraint): Same.
23474 (dependence_polyhedron_1): Same.
23475 (graphite_legal_transform_dr): Same.
23476 (graphite_carried_dependence_level_k): Same.
23477 * graphite-ppl.c (ppl_powerset_is_empty): New.
23478 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
23479 * tree-data-ref.c (dump_data_reference): Print the basic block index.
23480
23481 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23482
23483 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
23484 the "a followed by b" relation and document it.
23485
23486 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23487
23488 * graphite-dependences.c (build_lexicographical_constraint): Stop the
23489 iteration when the bag of constraints is empty.
23490
23491 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23492
23493 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
23494
23495 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23496
23497 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
23498 nest and two loop depths as parameters.
23499 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
23500 lst_perfect_nestify.
23501
23502 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23503
23504 * graphite-dependences.c (print_pddr): Call
23505 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
23506
23507 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23508
23509 * graphite-ppl.c (debug_gmp_value): New.
23510 * graphite-ppl.h (debug_gmp_value): Declared.
23511
23512 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
23513
23514 * doc/install.texi: Document availability of cloog-0.16.
23515
23516 2011-01-25 Vladimir Kargov <kargov@gmail.com>
23517
23518 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
23519 invalid postdominance info.
23520
23521 2011-01-24 Jan Hubicka <jh@suse.cz>
23522
23523 PR c/21659
23524 * doc/extend.texi (weak pragma): Drop claim that it must
23525 appear before definition.
23526 * varasm.c (merge_weak, declare_weak): Only sanity check
23527 that DECL is not output at a time it is declared weak.
23528
23529 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
23530
23531 * machmode.def: Fixed comments.
23532
23533 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
23534
23535 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
23536
23537 2011-01-24 Paul Koning <ni1d@arrl.net>
23538
23539 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
23540 WORDS_BIG_ENDIAN.
23541
23542 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
23543
23544 PR target/46519
23545 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
23546 (block_info): Add scanned and prev.
23547 (move_or_delete_vzeroupper_2): Return if the basic block
23548 has been scanned and the upper 128bit state is unchanged
23549 from the last scan.
23550 (move_or_delete_vzeroupper_1): Return true if the exit
23551 state is changed.
23552 (move_or_delete_vzeroupper): Visit basic blocks using the
23553 work-list based algorithm based on vt_find_locations in
23554 var-tracking.c.
23555
23556 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
23557
23558 2011-01-24 Nick Clifton <nickc@redhat.com>
23559
23560 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
23561 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
23562 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
23563 then define __v850e1__.
23564 * doc/invoke.texi: Document -mv850es.
23565
23566 2011-01-24 Richard Henderson <rth@redhat.com>
23567
23568 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
23569 compound unordered comparisons.
23570 * config/rx/rx.c (rx_split_fp_compare): Remove.
23571 * config/rx/rx-protos.h: Update.
23572 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
23573 (cbranchsf4): Don't call rx_split_fp_compare.
23574 (*cbranchsf4): Use rx_split_cbranch.
23575 (*cmpsf): Don't accept "i" constraint.
23576 (*conditional_branch): Only valid after reload.
23577 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
23578
23579 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
23580
23581 PR target/47385
23582 * config/rs6000/altivec.md (vector constant splitters): Add
23583 support for creating vector single precision constants if -mvsx is
23584 used and we would create the constant using Altivec primitives.
23585
23586 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
23587 Richard Sandiford <rdsandiford@googlemail.com>
23588
23589 PR rtl-optimization/47166
23590 * reload1.c (emit_reload_insns): Disable the spill_reg_store
23591 mechanism for PRE_MODIFY and POST_MODIFY.
23592 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
23593 reloadreg.
23594
23595 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
23596
23597 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
23598
23599 2011-01-22 Jan Hubicka <jh@suse.cz>
23600
23601 PR lto/47333
23602 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
23603
23604 2011-01-22 Jan Hubicka <jh@suse.cz>
23605
23606 PR tree-optimization/43884
23607 PR lto/44334
23608 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
23609 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
23610
23611 2011-01-22 Anatoly Sokolov <aesok@post.ru>
23612
23613 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
23614 * config/s390/s390.c (s390_register_move_cost,
23615 s390_memory_move_cost): New.
23616 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
23617
23618 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23619
23620 PR middle-end/47401
23621 * except.c (sjlj_assign_call_site_values): Move setting the
23622 crtl->uses_eh_lsda flag to ...
23623 (sjlj_mark_call_sites): ... here.
23624 (sjlj_emit_function_enter): Support NULL dispatch label.
23625 (sjlj_build_landing_pads): In a function with no landing pads
23626 that still has must-not-throw regions, generate code to register
23627 a personality function with empty LSDA.
23628
23629 2011-01-21 Richard Henderson <rth@redhat.com>
23630
23631 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
23632
23633 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
23634
23635 * compare-elim.c: New file.
23636 * Makefile.in (OBJS-common): Add it.
23637 (compare-elim.o): New.
23638 * common.opt (fcompare-elim): New.
23639 * opts.c (default_options_table): Add OPT_fcompare_elim.
23640 * tree-pass.h (pass_compare_elim_after_reload): New.
23641 * passes.c (init_optimization_passes): Add it.
23642 * recog.h: Protect against re-inclusion.
23643 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
23644 * doc/invoke.texi (-fcompare-elim): Document it.
23645 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
23646 * doc/tm.texi: Rebuild.
23647
23648 2011-01-22 Nick Clifton <nickc@redhat.com>
23649
23650 * config/rx/rx.md (cstoresf4): Pass comparison operator to
23651 rx_split_fp_compare.
23652
23653 2011-01-22 Nick Clifton <nickc@redhat.com>
23654
23655 * config/rx/rx.md (UNSPEC_CONST): New.
23656 (deallocate_and_return): Wrap the amount popped off the stack in
23657 an UNSPEC_CONST in order to stop it being rejected by
23658 -mmax-constant-size.
23659 (pop_and_return): Add a "(return)" rtx.
23660 (call): Drop the immediate operand.
23661 (call_internal): Likewise.
23662 (call_value): Likewise.
23663 (call_value_internal): Likewise.
23664 (sibcall_internal): Likewise.
23665 (sibcall_value_internal): Likewise.
23666 (sibcall): Likewise. Generate an explicit call using
23667 sibcall_internal.
23668 (sibcall_value): Likewise.
23669 (mov<>): FAIL if a constant operand is not legitimate.
23670 (addsi3_unpsec): New pattern.
23671
23672 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
23673 (ok_for_max_constant): New function.
23674 (gen_safe_add): New function.
23675 (rx_expand_prologue): Use gen_safe_add.
23676 (rx_expand_epilogue): Likewise.
23677 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
23678 UNSPEC CONSTs.
23679
23680 2011-01-21 Jeff Law <law@redhat.com>
23681
23682 PR tree-optimization/47053
23683 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
23684 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
23685 statements are deleted.
23686 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
23687 is nonempty, then purge dead edges and cleanup the CFG.
23688
23689 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
23690
23691 PR debug/47402
23692 Temporarily revert:
23693 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
23694 PR debug/47106
23695 * tree-dfa.c (create_var_ann): Mark variable as used.
23696
23697 2011-01-21 Jakub Jelinek <jakub@redhat.com>
23698
23699 PR middle-end/45566
23700 * except.c (convert_to_eh_region_ranges): Emit queued no-region
23701 notes from other section in hot/cold partitioning even if
23702 last_action is -3. Increment call_site_base.
23703
23704 PR rtl-optimization/47366
23705 * fwprop.c (forward_propagate_into): Return bool. If
23706 any changes are made, -fnon-call-exceptions is used and
23707 REG_EH_REGION note is present, call purge_dead_edges
23708 and return true if it purged anything.
23709 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
23710 any EH edges were purged.
23711
23712 2011-01-21 Jeff Law <law@redhat.com>
23713
23714 PR rtl-optimization/41619
23715 * caller-save.c (setup_save_areas): Break out code to determine
23716 which hard regs are live across calls by examining the reload chains
23717 so that it is always used.
23718 Eliminate code which checked REG_N_CALLS_CROSSED.
23719
23720 2011-01-21 Jakub Jelinek <jakub@redhat.com>
23721
23722 PR tree-optimization/47355
23723 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
23724 NOP has non-debug uses beyond PHIs in new_bb.
23725
23726 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
23727
23728 PR debug/47106
23729 * cfgexpand.c (account_used_vars_for_block): Only account vars
23730 that are annotated as used.
23731 (estimated_stack_frame_size): Don't set TREE_USED.
23732 * tree-dfa.c (create_var_ann): Mark variable as used.
23733
23734 2011-01-21 Richard Guenther <rguenther@suse.de>
23735
23736 PR middle-end/47395
23737 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
23738
23739 2011-01-21 Richard Guenther <rguenther@suse.de>
23740
23741 PR tree-optimization/47365
23742 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
23743 (vn_reference_lookup_pieces): Adjust.
23744 (vn_reference_lookup): Likewise.
23745 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
23746 (vn_reference_lookup_3): Only look through kills if in
23747 VN_WALKREWRITE mode.
23748 (vn_reference_lookup_pieces): Adjust.
23749 (vn_reference_lookup): Likewise.
23750 (visit_reference_op_load): Likewise.
23751 (visit_reference_op_store): Likewise.
23752 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
23753 (compute_avail): Likewise.
23754 (eliminate): Likewise.
23755
23756 2011-01-21 Jakub Jelinek <jakub@redhat.com>
23757
23758 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
23759 DECL_IGNORED_P non-reg vars if they are used.
23760
23761 PR tree-optimization/47391
23762 * varpool.c (const_value_known_p): Return false if
23763 decl is volatile.
23764
23765 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
23766
23767 PR bootstrap/47215
23768 * config/i386/i386.c (ix86_local_alignment): Handle
23769 case for va_list_type_node is nil.
23770 (ix86_canonical_va_list_type): Likewise.
23771
23772 2011-01-21 Alan Modra <amodra@gmail.com>
23773
23774 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
23775 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
23776
23777 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23778
23779 * config/arm/arm.md (define_attr type): Rename f_load
23780 and f_store to f_fpa_load and f_fpa_store. Update.
23781 (write_conflict): Deal with rename fallout.
23782 (*push_fp_multi): Likewise.
23783 * config/arm/fpa.md (f_load): Use f_fpa_load.
23784 (f_store): Use f_fpa_store.
23785 (*movsf_fpa): Likewise.
23786 (*movdf_fpa): Likewise.
23787 (*movxf_fpa): Likewise.
23788 (*thumb2_movsf_fpa): Likewise.
23789 (*thumb2_movdf_fpa): Likewise.
23790 (*thumb2_movxf_fpa): Likewise.
23791 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
23792 f_loadd and f_stored.
23793 (*thumb2_movdi_vfp): Likewise.
23794 (*thumb2_movsf_vfp): Fix attribute to f_loads.
23795 (*thumb2_movsi_vfp): Likewise.
23796 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
23797 Use f_loads instead of f_load.
23798 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
23799
23800 2011-01-20 Anatoly Sokolov <aesok@post.ru>
23801
23802 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23803 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
23804 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23805 (xtensa_mode_dependent_address_p): New function.
23806 (constantpool_address_p): Make static. Change return type to bool.
23807 Change argument type to const_rtx. Use CONST_INT_P predicate.
23808
23809 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
23810
23811 PR debug/46583
23812 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
23813
23814 2011-01-20 Jakub Jelinek <jakub@redhat.com>
23815
23816 PR debug/47283
23817 * cfgexpand.c (expand_debug_expr): Instead of generating
23818 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
23819 etc. handling.
23820
23821 2011-01-20 Richard Guenther <rguenther@suse.de>
23822
23823 PR middle-end/47370
23824 * tree-inline.c (remap_gimple_op_r): Recurse manually for
23825 the pointer operand of MEM_REFs.
23826
23827 2011-01-20 Jakub Jelinek <jakub@redhat.com>
23828
23829 PR tree-optimization/46130
23830 * ipa-split.c (consider_split): If return_bb contains non-virtual
23831 PHIs other than for retval or if split_function would not adjust it,
23832 refuse to split.
23833
23834 2011-01-20 Richard Guenther <rguenther@suse.de>
23835
23836 PR tree-optimization/47167
23837 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
23838 Revert previous change, only avoid enumeral type changes.
23839
23840 2011-01-19 Mike Stump <mikestump@comcast.net>
23841
23842 * doc/tm.texi.in (BRANCH_COST): Englishify.
23843 * doc/tm.texi (BRANCH_COST): Likewise.
23844
23845 2011-01-19 Dodji Seketeli <dodji@redhat.com>
23846
23847 PR c++/47291
23848 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
23849 (gen_scheduled_generic_parms_dies): New functions.
23850 (gen_struct_or_union_type_die): Schedule template parameters DIEs
23851 generation for the end of CU compilation.
23852 (dwarf2out_finish): Generate template parameters DIEs here.
23853
23854 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
23855
23856 PR debug/46240
23857 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
23858 debug bind stmt on merge edges.
23859
23860 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
23861
23862 PR debug/47079
23863 PR debug/46724
23864 * function.c (instantiate_expr): Instantiate incoming rtl of
23865 implicit arguments, and recurse on VALUE_EXPRs.
23866 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
23867 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
23868
23869 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
23870
23871 * c-parser.c (c_parser_for_statement): Initialize
23872 collection_expression.
23873
23874 2011-01-19 Joseph Myers <joseph@codesourcery.com>
23875
23876 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
23877
23878 2011-01-19 Joseph Myers <joseph@codesourcery.com>
23879
23880 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
23881 (LINK_SHLIB_SPEC): Don't use %(link_path).
23882 (SUBTARGET_EXTRA_SPECS): Remove link_path.
23883
23884 2011-01-19 Joseph Myers <joseph@codesourcery.com>
23885
23886 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
23887 (NO_SHARED_LIB_SUPPORT): Remove.
23888 (LINK_SHLIB_SPEC): Remove one conditional definition.
23889
23890 2011-01-19 Joseph Myers <joseph@codesourcery.com>
23891
23892 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
23893 %{call_shared}.
23894 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
23895 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
23896 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
23897 %{call_shared} and conditionals on these options not being passed.
23898 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
23899 %{call_shared}.
23900
23901 2011-01-19 Jakub Jelinek <jakub@redhat.com>
23902
23903 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
23904 simplify.
23905
23906 * ipa-split.c: Spelling fixes.
23907
23908 2011-01-19 Richard Henderson <rth@redhat.com>
23909
23910 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
23911 (*mulsi3): Likewise.
23912
23913 * longlong.h [__mn10300__] (count_leading_zeros): New.
23914 [__mn10300__] (umul_ppmm, smul_ppmm): New.
23915 [__mn10300__] (add_ssaaaa, subddmmss): New.
23916 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
23917 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
23918
23919 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23920
23921 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
23922
23923 2011-01-19 Richard Henderson <rth@redhat.com>
23924
23925 * config/mn10300/mn10300.md (addsi3_flags): New.
23926 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
23927 (subsi3_flags, subc_internal, subdi3): New.
23928 (subdi3_internal, *subdi3_degenerate): New.
23929 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
23930
23931 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
23932 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
23933 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
23934 * config/mn10300/mn10300-protos.h: Update.
23935 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
23936 (return_ret): Likewise. Rename from return_internal_regs.
23937 (return_internal): Remove.
23938
23939 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
23940 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
23941 (mn10300_legitimate_constant_p): Likewise.
23942 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
23943 (mn10300_frame_size): New.
23944 (mn10300_expand_prologue): Use it.
23945 (mn10300_expand_epilogue): Likewise.
23946 (mn10300_initial_offset): Likewise.
23947 * config/mn10300/mn10300-protos.h: Update.
23948 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
23949 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
23950 (prologue, epilogue, return_internal): Tidy output code.
23951 (mn10300_store_multiple_operation, return): Likewise.
23952 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
23953 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
23954 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
23955 (load_pic, am33_load_pic): New.
23956 (mn10300_load_pic0, mn10300_load_pic1): New.
23957
23958 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
23959 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
23960 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
23961 (cc_flags_for_mode, cc_flags_for_code): New.
23962 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
23963 overflow flag is not valid. Validate that the flags we need
23964 for the comparison are valid.
23965 (mn10300_output_cmp): Remove.
23966 (mn10300_output_add): New.
23967 (mn10300_select_cc_mode): Use cc_flags_for_code.
23968 (mn10300_split_cbranch): New.
23969 (mn10300_match_ccmode): New.
23970 (mn10300_split_and_operand_count): New.
23971 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
23972 to the function.
23973 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
23974 (addsi3): ... here. Use mn10300_output_add.
23975 (*addsi3_flags): New.
23976 (*am33_subsi3, *mn10300_subsi3): Merge...
23977 (subsi3): ... here. Use attribute isa.
23978 (*subsi3_flags): New.
23979 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
23980 when possible.
23981 (*am33_andsi3, *mn10300_andsi3): Merge...
23982 (andsi3): ... here.
23983 (*andsi3_flags): New.
23984 (andsi3 splitters): New.
23985 (*am33_iorsi3, *mn10300_iorsi3): Merge...
23986 (iorsi3): ... here.
23987 (*iorsi3_flags): New.
23988 (*am33_xorsi3, *mn10300_xorsi3): Merge...
23989 (xorsi3): ... here.
23990 (*xorsi3_flags): New.
23991 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
23992 (one_cmplsi2): ... here.
23993 (*one_cmplsi2_flags): New.
23994 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
23995 instead of "dax" in constraints. Use mn10300_split_cbranch.
23996 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
23997 use matching constraints to eliminate a self-comparison.
23998 (*integer_conditional_branch): Rename from integer_conditional_branch.
23999 Use int_mode_flags to match CC_REG.
24000 (*cbranchsi4_btst, *btstsi): New.
24001 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
24002 mn10300_split_cbranch.
24003 (*am33_cmpsf): Rename from am33_cmpsf.
24004 (*float_conditional_branch): Rename from float_conditional_branch.
24005 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
24006 (zero_extendqisi2): ... here.
24007 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
24008 (zero_extendhisi2): ... here.
24009 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
24010 (extendqisi2): ... here.
24011 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
24012 (extendhisi2): ... here.
24013 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
24014 (ashlsi3): ... here.
24015 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
24016 (lshrsi3): ... here.
24017 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
24018 (ashrsi3): ... here.
24019 (consecutive add peephole): Remove.
24020 * config/mn10300/predicates.md (label_ref_operand): New.
24021 (int_mode_flags): New.
24022 (CCZN_comparison_operator): New.
24023
24024 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
24025 (throughput_42_latency_43): New reservation.
24026 (mulsidi3, umulsidi3): New expanders.
24027 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
24028 the MDR register to allocation; separately allocate the low and
24029 high parts of the DImode result.
24030 (umulsidi3_internal): Similarly.
24031 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
24032 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
24033 (udivsi3, umodsi3): Remove.
24034 (udivmodsi4, divmodsi4): New expanders.
24035 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
24036 (*divmodsi4): Simiarly.
24037 (ext_internal): New.
24038
24039 * config/mn10300/constraints.md ("z"): New constraint.
24040 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
24041 (FIXED_REGISTERS): Don't fix MDR.
24042 (CALL_USED_REGSITERS): Reformat nicely.
24043 (REG_ALLOC_ORDER): Add MDR.
24044 (enum regclass): Add MDR_REGS.
24045 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
24046 (IRA_COVER_CLASSES): Add MDR_REGS.
24047 (REGNO_REG_CLASS): Handle MDR_REG.
24048 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
24049 (mn10300_register_move_cost): Likewise.
24050 * config/mn10300/mn10300.md (MDR_REG): New.
24051 (*movsi_internal): Handle moves to/from MDR_REGS.
24052
24053 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
24054 POST_MODIFY.
24055 (mn10300_secondary_reload): Tidy combination reload classes.
24056 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
24057 addresses for AM33. Allow symbolic offsets for reg+imm.
24058 (mn10300_regno_in_class_p): New.
24059 (mn10300_legitimize_reload_address): New.
24060 * config/mn10300/mn10300.h (enum reg_class): Remove
24061 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
24062 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
24063 SP_OR_GENERAL_REGS.
24064 (REG_CLASS_NAMES): Update to match.
24065 (REG_CLASS_CONTENTS): Likewise.
24066 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
24067 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
24068 (REGNO_IN_RANGE_P): Remove.
24069 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
24070 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
24071 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
24072 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
24073 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
24074 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
24075 (REGNO_GENERAL_P): New.
24076 (HAVE_POST_MODIFY_DISP): New.
24077 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
24078 (LEGITIMIZE_RELOAD_ADDRESS): New.
24079 * config/mn10300/mn10300-protos.h: Update.
24080
24081 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
24082 DATA_REGS for AM33 stack-pointer destination.
24083 (mn10300_preferred_output_reload_class): Likewise.
24084 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
24085 into a form appropriate for ...
24086 (TARGET_SECONDARY_RELOAD): New.
24087 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
24088 * config/mn10300/mn10300-protos.h: Update.
24089 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
24090 reload_insi; use the "A" constraint for the scratch; handle AM33
24091 moves of sp to non-address registers.
24092
24093 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
24094 (*movqi_internal): ... here.
24095 (*am33_movhi, *mn10300_movhi): Merge into...
24096 (*movhi_internal): ... here.
24097 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
24098 as the source/destination of moves from/to SP.
24099 (movsf): Only allow for AM33-2.
24100 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
24101 any integer constant constraint. Only allow for AM33-2. Tidy
24102 all of the alternative outputs.
24103 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
24104 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
24105 for MN103.
24106 (udivsi3, umodsi3): New patterns for MN103 only.
24107
24108 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
24109
24110 * doc/tm.texi.in: Spell out that a lack of register class unions
24111 can lead to ICEs.
24112 * doc/tm.texi: Regenerate.
24113
24114 2011-01-19 Jakub Jelinek <jakub@redhat.com>
24115
24116 PR rtl-optimization/47337
24117 * dce.c (check_argument_store): New function.
24118 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
24119
24120 PR tree-optimization/47290
24121 * tree-eh.c (infinite_empty_loop_p): New function.
24122 (cleanup_empty_eh): Use it.
24123
24124 2011-01-18 Steve Ellcey <sje@cup.hp.com>
24125
24126 PR target/46997
24127 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
24128 (a64_expand_widen_sum): Ditto.
24129 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
24130 (vec_extract_evenodd_help): Ditto.
24131 (vec_extract_evenv4hi): Ditto.
24132 (vec_extract_oddv4hi): Ditto.
24133 (vec_extract_evenv2si): Ditto.
24134 (vec_extract_oddv2si): Ditto.
24135 (vec_extract_evenv2sf): Ditto.
24136 (vec_extract_oddv2sf): Ditto.
24137 (vec_pack_trunc_v4hi: Ditto.
24138 (vec_pack_trunc_v2si): Ditto.
24139 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
24140 (vec_interleave_highv8qi): Ditto.
24141 (mix1_r): Ditto.
24142 (vec_extract_oddv8qi): Ditto.
24143 (vec_interleave_lowv4hi): Ditto.
24144 (vec_interleave_highv4hi): Ditto.
24145 (vec_interleave_lowv2si): Ditto.
24146 (vec_interleave_highv2si): Ditto.
24147
24148 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24149
24150 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
24151 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
24152 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
24153 (pa_c_mode_for_suffix): New.
24154 (TARGET_EXPAND_BUILTIN): Define.
24155 (TARGET_C_MODE_FOR_SUFFIX): Define.
24156 (pa_builtins): Define.
24157 (pa_init_builtins): Register __float128 type and init new support
24158 builtins.
24159 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
24160 * config/pa/quadlib.c (_U_Qfcopysign): New.
24161
24162 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
24163
24164 PR middle-end/46894
24165 * explow.c (allocate_dynamic_stack_space): Do not assume more than
24166 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
24167 are defined.
24168
24169 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24170
24171 PR tree-optimization/47179
24172 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
24173 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
24174
24175 2011-01-18 Richard Guenther <rguenther@suse.de>
24176
24177 PR rtl-optimization/47216
24178 * emit-rtl.c: Include tree-flow.h.
24179 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
24180 of replicating it with different semantics.
24181 * Makefile.in (emit-rtl.o): Adjust.
24182
24183 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24184
24185 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
24186 (cortex_a9_dp): Handle neon types correctly.
24187
24188 2011-01-18 Jakub Jelinek <jakub@redhat.com>
24189
24190 PR rtl-optimization/47299
24191 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
24192 subtarget. Use normal multiplication if both operands are constants.
24193 * expmed.c (expand_widening_mult): Don't try to optimize constant
24194 multiplication if op0 has VOIDmode. Convert op1 constant to mode
24195 before using it.
24196
24197 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24198
24199 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
24200 spacing after 'e.g.', typos, comma, hyphenation.
24201
24202 2011-01-17 Richard Henderson <rth@redhat.com>
24203
24204 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
24205 (rx_restricted_mem_operand): New.
24206 (rx_shift_operand): Use register_operand.
24207 (rx_source_operand, rx_compare_operand): Likewise.
24208 * config/rx/rx.md (addsi3_flags): New expander.
24209 (adddi3): Rewrite as expander.
24210 (adc_internal, *adc_flags, adddi3_internal): New patterns.
24211 (subsi3_flags): New expander.
24212 (subdi3): Rewrite as expander.
24213 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
24214
24215 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
24216 (rx_init_builtins): Remove sat builtin.
24217 (rx_expand_builtin): Likewise.
24218 * config/rx/rx.md (ssaddsi3): New.
24219 (*sat): Rename from sat. Represent the CC_REG input.
24220
24221 * config/rx/predicates.md (rshift_operator): New.
24222 * config/rx/rx.c (rx_expand_insv): Remove.
24223 * config/rx/rx-protos.h: Update.
24224 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
24225 operand to the canonical position.
24226 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
24227 (*bitclr, *bitclr_in_memory): Similarly.
24228 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
24229 (insv): Retain the zero_extract in the expansion.
24230
24231 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
24232 (bswaphi2, bitinvert, revw): Likewise.
24233
24234 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
24235 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
24236 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
24237 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
24238 (bitset, bitset_in_memory): Likewise.
24239 (bitinvert, bitinvert_in_memory): Likewise.
24240 (bitclr, bitclr_in_memory): Likewise.
24241 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
24242 (rx_strend, rx_cmpstrn): Likewise.
24243 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
24244 (bitop peep2 patterns): Remove.
24245
24246 * config/rx/rx.c (rx_match_ccmode): New.
24247 * config/rx/rx-protos.h: Update.
24248 * config/rx/rx.md (abssi2): Clobber, don't set flags.
24249 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
24250 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
24251 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
24252 (fix_truncsfsi2, floatsisf2): Likewise.
24253 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
24254 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
24255 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
24256 (*subsi3_flags, *xorsi3_flags): New.
24257
24258 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
24259
24260 * config/rx/rx.c (rx_print_operand): Remove workaround for
24261 unsplit comparison operations.
24262
24263 * config/rx/rx.md (movsicc): Split after reload.
24264 (*movsicc): Merge *movsieq and *movsine via match_operator.
24265 (*stcc): New pattern.
24266
24267 * config/rx/rx.c (rx_float_compare_mode): Remove.
24268 * config/rx/rx.h (rx_float_compare_mode): Remove.
24269 * config/rx/rx.md (cstoresi4): Split after reload.
24270 (*sccc): New pattern.
24271
24272 * config/rx/predicates.md (label_ref_operand): New.
24273 (rx_z_comparison_operator): New.
24274 (rx_zs_comparison_operator): New.
24275 (rx_fp_comparison_operator): New.
24276 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
24277 Validate that the flags are set properly for the comparison.
24278 (rx_gen_cond_branch_template): Remove.
24279 (rx_cc_modes_compatible): Remove.
24280 (mode_from_flags): New.
24281 (flags_from_code): Rename from flags_needed_for_conditional.
24282 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
24283 (rx_select_cc_mode): Likewise.
24284 (rx_split_fp_compare): New.
24285 (rx_split_cbranch): New.
24286 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
24287 (*cbranchsi4): Use match_operator and rx_split_cbranch.
24288 (*cbranchsf4): Similarly.
24289 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
24290 match_operator and rx_split_cbranch.
24291 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
24292 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
24293 (*cmpsi): Rename from cmpsi.
24294 (*tstsi): Rename from tstsi.
24295 (*cmpsf): Rename from cmpsf; use CC_Fmode.
24296 (*conditional_branch): Rename from conditional_branch.
24297 (*reveresed_conditional_branch): Remove.
24298 (b<code>): Remove expander.
24299 * config/rx/rx-protos.h: Update.
24300
24301 * config/rx/rx.c (rx_compare_redundant): Remove.
24302 * config/rx/rx.md (cmpsi): Don't use it.
24303 * config/rx/rx-protos.h: Update.
24304
24305 * config/rx/rx-modes.def (CC_F): New mode.
24306 * config/rx/rx.c (rx_select_cc_mode): New.
24307 * config/rx/rx.h (SELECT_CC_MODE): Use it.
24308 * config/rx/rx-protos.h: Update.
24309
24310 2011-01-17 Richard Henderson <rth@redhat.com>
24311
24312 * except.c (dump_eh_tree): Fix stray ; after for statement.
24313
24314 2011-01-17 Richard Guenther <rguenther@suse.de>
24315
24316 PR tree-optimization/47313
24317 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
24318 handling before copying the body. Properly deal with
24319 by-reference result in SSA form.
24320
24321 2011-01-17 Ian Lance Taylor <iant@google.com>
24322
24323 PR target/47219
24324 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
24325 (struct_value_alias_set): Don't define.
24326 (sparc_option_override): Don't set sparc_sr_alias_set and
24327 struct_value_alias_set.
24328 (save_or_restore_regs): Use gen_frame_mem rather than calling
24329 set_mem_alias_set.
24330 (sparc_struct_value_rtx): Likewise.
24331
24332 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
24333
24334 PR target/47318
24335 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
24336 (_mm_maskstore_pd): Likewise.
24337 (_mm_maskload_ps): Likewise.
24338 (_mm_maskstore_ps): Likewise.
24339 (_mm256_maskload_pd): Change mask to __m256i.
24340 (_mm256_maskstore_pd): Likewise.
24341 (_mm256_maskload_ps): Likewise.
24342 (_mm256_maskstore_ps): Likewise.
24343
24344 * config/i386/i386-builtin-types.def: Updated.
24345 (ix86_expand_special_args_builtin): Likewise.
24346
24347 * config/i386/i386.c (bdesc_special_args): Update
24348 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
24349 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
24350 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
24351 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
24352
24353 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
24354 Use <avxpermvecmode> on mask register.
24355 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
24356
24357 2011-01-17 Olivier Hainque <hainque@adacore.com>
24358 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24359 Eric Botcazou <ebotcazou@adacore.com>
24360
24361 PR target/46655
24362 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
24363 if <= USHRT_MAX in 32-bit mode.
24364
24365 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24366
24367 * doc/install.texi (Configuration, Specific): Wrap long
24368 lines in examples. Allow line wrapping in long options
24369 and URLs where beneficial for PDF output.
24370
24371 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
24372
24373 * config/mips/mips.c (mips_classify_symbol): Don't return
24374 SYMBOL_PC_RELATIVE for nonlocal labels.
24375
24376 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
24377
24378 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
24379
24380 2011-01-15 Jan Hubicka <jh@suse.cz>
24381
24382 PR tree-optimization/47276
24383 * ipa.c (function_and_variable_visibility): Do not try to mark alias
24384 declarations as needed.
24385
24386 2011-01-15 Martin Jambor <mjambor@suse.cz>
24387
24388 * common.opt (fdevirtualize): New flag.
24389 * doc/invoke.texi (Option Summary): Document it.
24390 * opts.c (default_options_table): Add devirtualize flag.
24391 * ipa-prop.c (detect_type_change): Return immediately if
24392 devirtualize flag is not set.
24393 (detect_type_change_ssa): Likewise.
24394 (compute_known_type_jump_func): Likewise.
24395 (ipa_analyze_virtual_call_uses): Likewise.
24396
24397 2011-01-14 Martin Jambor <mjambor@suse.cz>
24398
24399 PR tree-optimization/45934
24400 PR tree-optimization/46302
24401 * ipa-prop.c (type_change_info): New type.
24402 (stmt_may_be_vtbl_ptr_store): New function.
24403 (check_stmt_for_type_change): Likewise.
24404 (detect_type_change): Likewise.
24405 (detect_type_change_ssa): Likewise.
24406 (compute_complex_assign_jump_func): Check for dynamic type change.
24407 (compute_complex_ancestor_jump_func): Likewise.
24408 (compute_known_type_jump_func): Likewise.
24409 (compute_scalar_jump_functions): Likewise.
24410 (ipa_analyze_virtual_call_uses): Likewise.
24411 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
24412
24413 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24414
24415 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
24416 * config/i386/i386.opt (msse5): New Alias.
24417
24418 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24419
24420 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
24421 * config/sparc/linux64.h (CC1_SPEC): Likewise.
24422 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24423 * config/sparc/sparc.h (CC1_SPEC): Likewise.
24424
24425 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24426
24427 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
24428 -mcpu options.
24429 * config/sparc/linux64.h (CC1_SPEC): Likewise.
24430 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24431 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
24432 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
24433 Likewise.
24434 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
24435
24436 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24437
24438 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
24439
24440 2011-01-14 Mike Stump <mikestump@comcast.net>
24441
24442 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
24443 * config/fr30/fr30.md: Likweise
24444 (movsi_push): Likewise.
24445 (movsi_pop): Likewise.
24446 (enter_func): Likewise.
24447 * config/moxie/moxie.md (movsi_push): Likewise.
24448 (movsi_pop): Likewise.
24449
24450 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24451
24452 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
24453 %{no_archive} %{exact_version}.
24454 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
24455 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
24456 %{no_archive} %{exact_version}.
24457 * config/mips/openbsd.h (LINK_SPEC): Likewise.
24458 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
24459 * config/mips/vxworks.h: Likewise.
24460
24461 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24462
24463 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
24464
24465 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24466
24467 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
24468 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
24469
24470 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24471
24472 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
24473 -nodefaultlib.
24474
24475 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24476
24477 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
24478 for mcpu not cpu.
24479 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
24480 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
24481 not cpu.
24482 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
24483 Don't handle -shlib.
24484
24485 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24486
24487 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
24488 (CC1_SPEC): Don't handle -profile.
24489
24490 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24491
24492 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
24493 * config/mips/mips.h (CC1_SPEC): Likewise.
24494
24495 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24496
24497 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
24498 * config/mips/mips.h (CC1_SPEC): Likewise.
24499
24500 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24501
24502 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
24503 * config/m32r/linux.h (LINK_SPEC): Likewise.
24504 * config/mips/linux.h (LINK_SPEC): Likewise.
24505 * config/mips/linux64.h (LINK_SPEC): Likewise.
24506 * config/sparc/linux.h (LINK_SPEC): Likewise.
24507 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
24508 LINK_SPEC): Likewise.
24509 * config/xtensa/linux.h (LINK_SPEC): Likewise.
24510
24511 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24512
24513 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
24514 %{version:-v}.
24515 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
24516
24517 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24518
24519 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
24520 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
24521
24522 2011-01-14 Joseph Myers <joseph@codesourcery.com>
24523
24524 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
24525
24526 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24527
24528 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
24529 supports -Bstatic/-Bdynamic.
24530 * configure: Regenerate.
24531
24532 2011-01-14 Jan Hubicka <jh@suse.cz>
24533 Jack Howarth <howarth@bromo.med.uc.edu>
24534
24535 PR target/46037
24536 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
24537 when checking debug_info_level. Test write_symbols instead of
24538 debug_hooks->var_location when setting flag_var_tracking_uninit.
24539
24540 2011-01-14 Richard Guenther <rguenther@suse.de>
24541
24542 PR tree-optimization/47179
24543 * target.def (ref_may_alias_errno): New target hook.
24544 * targhooks.h (default_ref_may_alias_errno): Declare.
24545 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
24546 (default_ref_may_alias_errno): New function.
24547 * target.h (struct ao_ref_s): Declare.
24548 * tree-ssa-alias.c: Include target.h.
24549 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
24550 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
24551 (targhooks.o): Likewise.
24552 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
24553 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
24554
24555 2011-01-14 Richard Guenther <rguenther@suse.de>
24556
24557 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
24558
24559 2011-01-14 Richard Guenther <rguenther@suse.de>
24560
24561 PR tree-optimization/47280
24562 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
24563 return CFG changes.
24564 (tree_ssa_forward_propagate_single_use_vars): Deal with
24565 CFG changes from associate_plusminus.
24566
24567 2011-01-14 Richard Guenther <rguenther@suse.de>
24568
24569 PR middle-end/47281
24570 Revert
24571 2011-01-11 Richard Guenther <rguenther@suse.de>
24572
24573 PR tree-optimization/46076
24574 * tree-ssa.c (useless_type_conversion_p): Conversions from
24575 unprototyped to empty argument list function types are useless.
24576
24577 2011-01-14 Richard Guenther <rguenther@suse.de>
24578
24579 PR tree-optimization/47286
24580 * tree-ssa-structalias.c (new_var_info): Register variables are global.
24581
24582 2011-01-14 Martin Jambor <mjambor@suse.cz>
24583
24584 PR middle-end/46823
24585 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
24586
24587 2011-01-13 Anatoly Sokolov <aesok@post.ru>
24588
24589 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
24590 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24591 * config/xtensa/xtensa.c (xtensa_libcall_value,
24592 xtensa_function_value_regno_p): New functions.
24593 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24594
24595 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
24596
24597 PR c++/47213
24598 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
24599 PE specific hook.
24600 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
24601 New function prototype.
24602 * config/i386/winnt.c (i386_pe_assemble_visibility):
24603 Warn only if attribute was specified by user.
24604
24605 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
24606
24607 PR target/47251
24608 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
24609 floating point.
24610 (floatunsdidf2_fcfidu): Ditto.
24611
24612 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24613
24614 * config/s390/s390.c (print_operand_address): Replace 'error' with
24615 'output_operand_lossage'.
24616 (print_operand): Likewise.
24617
24618 2011-01-13 Jeff Law <law@redhat.com>
24619
24620 PR rtl-optimization/39077
24621 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
24622 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
24623 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
24624 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
24625 * gcse.c (prune_insertions_deletions): New function.
24626 (compute_pre_data): Use it.
24627
24628 2011-01-13 Dodji Seketeli <dodji@redhat.com>
24629
24630 PR debug/PR46973
24631 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
24632 static function.
24633 (prune_unused_types_mark): Use it.
24634
24635 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
24636
24637 PR rtl-optimization/45352
24638 * sel-sched.c: Update copyright years.
24639 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
24640 in the advancing loop when we have issued issue_rate insns.
24641
24642 2011-01-12 Richard Henderson <rth@redhat.com>
24643
24644 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
24645 (TARGET_MD_ASM_CLOBBERS): New.
24646
24647 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
24648 (TARGET_DELEGITIMIZE_ADDRESS): New.
24649
24650 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
24651 (clzsi2, *bsch): New patterns.
24652
24653 * config/mn10300/mn10300.md (INT): New mode iterator.
24654 (*mov<INT>_clr): New pattern, and peep2 to generate it.
24655
24656 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
24657 flag_split_wide_types.
24658
24659 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
24660 (mn10300_trampoline_init): Rewrite without a template, an immediate
24661 load and a direct branch.
24662 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
24663
24664 2011-01-12 Anatoly Sokolov <aesok@post.ru>
24665
24666 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
24667 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
24668 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
24669 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
24670
24671 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
24672
24673 PR debug/47209
24674 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
24675 of type.
24676
24677 2011-01-12 Jan Hubicka <jh@suse.cz>
24678
24679 PR driver/47244
24680 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
24681 (PLUGIN_COND_CLOSE): New macro.
24682 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
24683
24684 2011-01-12 Richard Guenther <rguenther@suse.de>
24685
24686 PR lto/47259
24687 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
24688 register variables in a MEM_REF.
24689
24690 2011-01-12 Joseph Myers <joseph@codesourcery.com>
24691
24692 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
24693 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
24694 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
24695 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
24696 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
24697 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
24698 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
24699 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
24700 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
24701 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
24702 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
24703 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
24704 * config/gnu-user.h: New. Copied from linux.h.
24705 (LINUX_TARGET_STARTFILE_SPEC): Rename to
24706 GNU_USER_TARGET_STARTFILE_SPEC.
24707 (LINUX_TARGET_ENDFILE_SPEC): Rename to
24708 GNU_USER_TARGET_ENDFILE_SPEC.
24709 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
24710 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
24711 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
24712 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
24713 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
24714 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
24715 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
24716 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
24717 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
24718 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
24719 * config/arm/linux-eabi.h (CC1_SPEC): Use
24720 GNU_USER_TARGET_CC1_SPEC.
24721 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
24722 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
24723 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
24724 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
24725 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
24726 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
24727 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
24728 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
24729
24730 2011-01-12 Richard Guenther <rguenther@suse.de>
24731
24732 PR other/46946
24733 * doc/invoke.texi (ffast-math): Document it is turned on
24734 with -Ofast.
24735
24736 2011-01-12 Jan Hubicka <jh@suse.cz>
24737
24738 PR tree-optimization/47233
24739 * opts.c (common_handle_option): Disable ipa-reference with profile
24740 feedback.
24741
24742 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
24743
24744 * c-parser.c (c_parser_objc_at_property_declaration): Improved
24745 error message.
24746
24747 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
24748
24749 * c-parser.c (c_lex_one_token): Updated and reindented some
24750 comments. No changes in code.
24751
24752 2011-01-11 Ian Lance Taylor <iant@google.com>
24753
24754 * godump.c (go_output_var): Don't output the variable if there is
24755 already a type with the same name.
24756
24757 2011-01-11 Ian Lance Taylor <iant@google.com>
24758
24759 * godump.c (go_format_type): Don't generate float80.
24760
24761 2011-01-11 Richard Henderson <rth@redhat.com>
24762
24763 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
24764 declaration. Rewrite for both speed and size.
24765 (mn10300_address_cost_1): Remove.
24766 (mn10300_register_move_cost): New.
24767 (mn10300_memory_move_cost): New.
24768 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
24769 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
24770 extensions, shifts, BSWAP, CLZ.
24771 (mn10300_wide_const_load_uses_clr): Remove.
24772 (TARGET_REGISTER_MOVE_COST): New.
24773 (TARGET_MEMORY_MOVE_COST): New.
24774 * config/mn10300/mn10300-protos.h: Update.
24775 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
24776
24777 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
24778 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
24779 * config/mn10300/mn10300-protos.h: Update.
24780 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
24781 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
24782 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
24783 (*test_int_bitfield, *test_byte_bitfield): Remove.
24784 (*bit_test, *subreg_bit_test): Remove.
24785 * config/mn10300/predicates.md (const_8bit_operand): Remove.
24786
24787 * config/mn10300/constraints.md ("c"): Rename from "A".
24788 ("A", "D"): New constraint letters.
24789 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
24790 (fmssf4, fnmasf4, fnmssf4): Likewise.
24791
24792 * config/mn10300/mn10300.md (isa): New attribute.
24793 (enabled): New attribute.
24794
24795 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
24796 (abssf2, negsf2): Define only for hardware fp.
24797 (sqrtsf2): Reformat.
24798 (addsf3, subsf3, mulsf3): Merge expander and insn.
24799
24800 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
24801 (DEBUGGER_AUTO_OFFSET): Remove.
24802 (DEBUGGER_ARG_OFFSET): Remove.
24803
24804 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
24805 Emit register stores with the same offsets as the hardware.
24806 (mn10300_store_multiple_operation): Don't check that the register
24807 save offsets are monotonic.
24808 * config/mn10300/mn10300-protos.h: Update.
24809
24810 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
24811
24812 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
24813 in terms of the value on the stack, not the MDR register.
24814
24815 2011-01-11 Jan Hubicka <jh@suse.cz>
24816
24817 PR lto/45721
24818 PR lto/45375
24819 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
24820 (symbol_alias_set_destroy, symbol_alias_set_contains,
24821 propagate_aliases_backward): Declare.
24822 * lto-streamer-out.c (struct sets): New sturcture.
24823 (trivally_defined_alias): New function.
24824 (output_alias_pair_p): Rewrite.
24825 (output_unreferenced_globals): Fix output of alias pairs.
24826 (produce_symtab): Likewise.
24827 * ipa.c (function_and_variable_visibility): Set weak alias destination
24828 as needed in lto.
24829 * varasm.c (symbol_alias_set_t): Remove.
24830 (symbol_alias_set_destroy): Export.
24831 (propagate_aliases_forward, propagate_aliases_backward): New functions
24832 based on ...
24833 (compute_visible_aliases): ... this one; remove.
24834 (trivially_visible_alias): New
24835 (trivially_defined_alias): New.
24836 (remove_unreachable_alias_pairs): Rewrite.
24837 (finish_aliases_1): Reorganize code checking if alias is defined.
24838 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
24839 in LTO mode.
24840
24841 2011-01-11 Richard Guenther <rguenther@suse.de>
24842
24843 PR tree-optimization/46076
24844 * tree-ssa.c (useless_type_conversion_p): Conversions from
24845 unprototyped to empty argument list function types are useless.
24846
24847 2011-01-11 Richard Guenther <rguenther@suse.de>
24848
24849 PR middle-end/45235
24850 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
24851 volatile MEMs as MEM_READONLY_P.
24852
24853 2011-01-11 Richard Guenther <rguenther@suse.de>
24854
24855 PR tree-optimization/47239
24856 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
24857
24858 2011-01-11 Jeff Law <law@redhat.com>
24859
24860 PR tree-optimization/47086
24861 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
24862 IVs from statements that might throw.
24863
24864 2011-01-10 Jan Hubicka <jh@suse.cz>
24865
24866 PR lto/45375
24867 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
24868
24869 2011-01-10 Jan Hubicka <jh@suse.cz>
24870
24871 PR lto/45375
24872 * profile.c (read_profile_edge_counts): Ignore profile inconistency
24873 when correcting profile.
24874
24875 2011-01-10 Jan Hubicka <jh@suse.cz>
24876
24877 PR lto/46083
24878 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
24879 DECL_FINI_PRIORITY.
24880 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
24881 Restore DECL_FINI_PRIORITY.
24882
24883 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24884
24885 * doc/gimple.texi: Fix quoting of multi-word return values in
24886 @deftypefn statements. Ensure presence of return value. Wrap
24887 overlong @deftypefn lines.
24888 (is_gimple_operand, is_gimple_min_invariant_address): Remove
24889 descriptions of removed functions.
24890 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
24891 of multi-word return value in @deftypefn statement.
24892
24893 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24894
24895 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
24896 (Conditional Expressions, Logical Operators)
24897 (Statement and operand traversals): Do not indent smallexample
24898 code. Fix duplicate function argument in example.
24899
24900 2011-01-10 Jeff Law <law@redhat.com>
24901
24902 PR tree-optimization/47141
24903 * ipa-split.c (split_function): Handle case where we are
24904 returning a value and the return block has a virtual operand phi.
24905
24906 2011-01-10 Jan Hubicka <jh@suse.cz>
24907
24908 PR tree-optimization/47234
24909 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
24910 (pass_feedback_split_functions): Declare.
24911 * passes.c (init_optimization_passes): Add ipa-split as subpass of
24912 tree-profile.
24913 * ipa-split.c (gate_split_functions): Update comments; disable
24914 split-functions for profile_arc_flag and branch_probabilities.
24915 (gate_feedback_split_functions): New function.
24916 (execute_feedback_split_functions): New function.
24917 (pass_feedback_split_functions): New global var.
24918
24919 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
24920
24921 PR lto/46760
24922 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
24923 calling gimple_call_set_cannot_inline.
24924
24925 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
24926
24927 * config/darwin-sections.def: Remove unused section.
24928
24929 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
24930
24931 PR c++/47218
24932 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
24933
24934 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
24935
24936 PR objc/47232
24937 * c-parser.c (c_parser_declaration_or_fndef): Improved
24938 error message.
24939
24940 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
24941
24942 * config/i386/winnt.c (i386_pe_start_function): Make sure
24943 to switch back to function's section.
24944
24945 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
24946
24947 PR gcc/46902
24948 PR testsuite/46912
24949 * plugin.c: Move include of dlfcn.h from here...
24950 * system.h: ... to here.
24951
24952 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24953
24954 * doc/cpp.texi (C++ Named Operators): Fix markup for header
24955 file name.
24956 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
24957 two extra empty pages in PDF output.
24958
24959 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
24960
24961 PR objc/47078
24962 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
24963 for error recovery purposes behave as if it was not specified so
24964 that the default type is usd.
24965
24966 2011-01-07 Jan Hubicka <jh@suse.cz>
24967
24968 PR tree-optmization/46469
24969 * ipa.c (function_and_variable_visibility): Clear needed flags on
24970 nodes with external decls; handle weakrefs merging correctly.
24971
24972 2011-01-07 Joseph Myers <joseph@codesourcery.com>
24973
24974 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
24975 not false.
24976
24977 2011-01-07 Jan Hubicka <jh@suse.cz>
24978
24979 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
24980 and no longer claim that gold is required for linker plugin.
24981 * configure: Regenerate.
24982 * gcc.c (PLUGIN_COND): New macro.
24983 (LINK_COMMAND_SPEC): Use it.
24984 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
24985 * config.in (HAVE_LTO_PLUGIN): New.
24986 * configure.ac (--with-lto-plugin): New parameter; autodetect
24987 HAVE_LTO_PLUGIN.
24988
24989 2011-01-07 Jan Hubicka <jh@suse.cz>
24990
24991 PR tree-optimization/46367
24992 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
24993 when we can update original.
24994 (cgraph_mark_inline_edge): Sanity check.
24995 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
24996
24997 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24998
24999 * config/spu/spu.h (ASM_COMMENT_START): Define.
25000
25001 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
25002
25003 PR driver/42445
25004 * gcc.c (%>S): New.
25005 (SWITCH_KEEP_FOR_GCC): Likewise.
25006 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
25007 (do_spec_1): Handle "%>".
25008
25009 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
25010
25011 2011-01-07 Jakub Jelinek <jakub@redhat.com>
25012
25013 PR target/47201
25014 * config/i386/i386.c (ix86_delegitimize_address): If
25015 simplify_gen_subreg fails, return orig_x.
25016
25017 PR bootstrap/47187
25018 * value-prof.c (gimple_stringop_fixed_value): Handle
25019 lhs of the call properly.
25020
25021 2011-01-07 Jan Hubicka <jh@suse.cz>
25022
25023 PR lto/45375
25024 * lto-opt.c (lto_reissue_options): Set flag_shlib.
25025
25026 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
25027
25028 * target.def (function_switched_text_sections): New hook.
25029 * doc/tm.texi: Regenerated.
25030 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
25031 * final.c (default_function_switched_text_sections): New.
25032 (final_scan_insn): Call function_switched_text_sections when a
25033 mid-function section change occurs.
25034 * output.h (default_function_switched_text_sections): Declare.
25035 * config/darwin-protos.h (darwin_function_switched_text_sections):
25036 Likewise.
25037 * config/darwin.c (darwin_function_switched_text_sections): New.
25038 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
25039
25040 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
25041
25042 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
25043 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
25044 the secondary code fragment when outputting for DWARF == 2.
25045
25046 2011-01-07 Anatoly Sokolov <aesok@post.ru>
25047
25048 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
25049 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
25050 Remove.
25051 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
25052 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
25053
25054 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
25055
25056 PR debug/46704
25057 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
25058 when it is not empty.
25059
25060 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
25061
25062 Bobcat Enablement
25063 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
25064 (case ${target}): Add btver1.
25065 * config/i386/driver-i386.c (host_detect_local_cpu): Let
25066 -march=native recognize btver1 processors.
25067 * config/i386/i386-c.c (ix86_target_macros_internal): Add
25068 btver1 def_and_undef
25069 * config/i386/i386.c (struct processor_costs btver1_cost): New
25070 btver1 cost table.
25071 (m_BTVER1): New definition.
25072 (m_AMD_MULTIPLE): Includes m_BTVER1.
25073 (initial_ix86_tune_features): Add btver1 tune.
25074 (processor_target_table): Add btver1 entry.
25075 (static const char *const cpu_names): Add btver1 entry.
25076 (software_prefetching_beneficial_p): Add btver1.
25077 (ix86_option_override_internal): Add btver1 instruction sets.
25078 (ix86_issue_rate): Add btver1.
25079 (ix86_adjust_cost): Add btver1.
25080 * config/i386/i386.h (TARGET_BTVER1): New definition.
25081 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
25082 (enum processor_type): Add PROCESSOR_BTVER1.
25083 * config/i386/i386.md (define_attr "cpu"): Add btver1.
25084
25085 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25086
25087 PR target/43309
25088 * config/i386/i386.c (legitimize_tls_address)
25089 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
25090 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
25091 (tls_initial_exec_64_sun): New pattern.
25092
25093 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
25094
25095 * doc/invoke.texi (Overall Options): Improve wording and markup
25096 of the description of -wrapper.
25097
25098 2011-01-06 Joseph Myers <joseph@codesourcery.com>
25099
25100 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
25101 rdynamic, threads): New Driver options.
25102
25103 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25104
25105 PR target/38118
25106 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
25107 if coming from .tdata.
25108 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
25109
25110 2011-01-06 Jan Hubicka <jh@suse.cz>
25111
25112 PR lto/47188
25113 * collect2.c (main): Do not enable LTOmode when plugin is active.
25114
25115 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25116
25117 PR other/45915
25118 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
25119 --version output if supported.
25120 * configure: Regenerate.
25121
25122 2011-01-06 Joseph Myers <joseph@codesourcery.com>
25123
25124 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
25125 Driver options.
25126
25127 2011-01-06 Jakub Jelinek <jakub@redhat.com>
25128
25129 PR c/47150
25130 * c-convert.c (convert): When converting a complex expression
25131 other than COMPLEX_EXPR to a different complex type, ensure
25132 c_save_expr is called instead of save_expr, unless in_late_binary_op.
25133 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
25134 when converting COMPLEX_TYPE.
25135
25136 2011-01-06 Ira Rosen <irar@il.ibm.com>
25137
25138 PR tree-optimization/47139
25139 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
25140 only the last reduction value is used outside the loop. Update
25141 documentation.
25142
25143 2011-01-05 Joseph Myers <joseph@codesourcery.com>
25144
25145 * config/rtems.opt: New.
25146 * config.gcc (*-*-rtems*): Use rtems.opt.
25147
25148 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
25149
25150 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
25151 processors do not support 3DNow instructions.
25152
25153 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25154
25155 * config/spu/spu.c (spu_option_override): Set parameter
25156 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
25157
25158 2011-01-05 Jan Hubicka <jh@suse.cz>
25159
25160 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
25161 at the command line.
25162
25163 2011-01-05 Martin Jambor <mjambor@suse.cz>
25164
25165 PR lto/47162
25166 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
25167 deltas on streamed outgoing edges.
25168 (output_node_opt_summary): Output info for outgoing edges only when
25169 the node is in new parameter set.
25170 (output_cgraph_opt_summary): New parameter set, passed to the two
25171 aforementioned functions. Update its forward declaration and its
25172 callee too.
25173
25174 2011-01-05 Tom Tromey <tromey@redhat.com>
25175
25176 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
25177 operator to c_finish_omp_atomic.
25178 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
25179 (build_unary_op): Update.
25180 (build_modify_expr): Update.
25181 (build_asm_expr): Update.
25182
25183 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25184
25185 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
25186 newly inserted insns.
25187 (pad_bb): Likewise.
25188 (spu_emit_branch_hint): Likewise.
25189 (insert_hbrp_for_ilb_runout): Likewise.
25190 (spu_machine_dependent_reorg): Call df_finish_pass after
25191 schedule_insns returns.
25192
25193 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25194
25195 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
25196
25197 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
25198
25199 PR tree-optimization/47005
25200 * tree-sra.c (struct access): Add 'non_addressable' bit.
25201 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
25202 (decide_one_param_reduction): Return 0 if the parameter is passed by
25203 reference and one of the accesses in the group is non_addressable.
25204
25205 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
25206
25207 PR tree-optimization/47056
25208 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
25209 (mark_load): Likewise. Handle FUNCTION_DECL specially.
25210 (mark_store): Likewise. Pass STMT to ipa_record_reference.
25211
25212 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
25213
25214 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
25215 initializer. Skip view conversions from aggregate types.
25216
25217 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
25218
25219 PR bootstrap/47055
25220 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
25221
25222 2011-01-04 Philipp Thomas <pth@suse.de>
25223
25224 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
25225 obvious typo.
25226
25227 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25228
25229 * function.c (thread_prologue_and_epilogue_insns): Do not crash
25230 on empty epilogue sequences.
25231
25232 2011-01-04 Joseph Myers <joseph@codesourcery.com>
25233
25234 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
25235 non-static): New Driver options.
25236
25237 2011-01-04 Jie Zhang <jie@codesourcery.com>
25238
25239 PR driver/47137
25240 * gcc.c (default_compilers[]): Set combinable field to 0
25241 for all assembly languages.
25242
25243 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
25244
25245 * config/mips/loongson3a.md: New file.
25246 * config/mips/mips.md: Include loongson3a.md.
25247 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
25248 TUNE_LOONGSON_3A.
25249
25250 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
25251
25252 PR middle-end/47017
25253 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
25254 instead of convert_memory_address_addr_space on the base expression.
25255
25256 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25257
25258 * config/spu/spu.c (spu_option_override): Update error text
25259 for bad -march= / -mtune= values.
25260
25261 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25262
25263 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
25264 if branch-hint optimization will be performed.
25265
25266 2011-01-03 Jakub Jelinek <jakub@redhat.com>
25267
25268 PR tree-optimization/47148
25269 * ipa-split.c (split_function): Convert arguments to
25270 DECL_ARG_TYPE if possible.
25271
25272 PR tree-optimization/47155
25273 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
25274 when computing uns.
25275
25276 PR rtl-optimization/47157
25277 * combine.c (try_combine): If undobuf.other_insn becomes
25278 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
25279 and set *new_direct_jump_p too.
25280
25281 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
25282
25283 PR tree-optimization/47021
25284 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
25285
25286 2011-01-03 Jakub Jelinek <jakub@redhat.com>
25287
25288 * gcc.c (process_command): Update copyright notice dates.
25289 * gcov.c (print_version): Likewise.
25290 * gcov-dump.c (print_version): Likewise.
25291 * mips-tfile.c (main): Likewise.
25292 * mips-tdump.c (main): Likewise.
25293
25294 2011-01-03 Martin Jambor <mjambor@suse.cz>
25295
25296 PR tree-optimization/46801
25297 * tree-sra.c (type_internals_preclude_sra_p): Check whether
25298 aggregate fields start at byte boundary instead of the bit-field flag.
25299
25300 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
25301
25302 PR driver/47137
25303 * gcc.c (main): Revert revision 168407.
25304
25305 2011-01-03 Martin Jambor <mjambor@suse.cz>
25306
25307 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
25308
25309 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25310
25311 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
25312 vector optab to expand vector/scalar shift, update gimple to vector.
25313
25314 2011-01-03 Martin Jambor <mjambor@suse.cz>
25315
25316 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
25317 a thunk.
25318
25319 2011-01-03 Martin Jambor <mjambor@suse.cz>
25320
25321 PR tree-optimization/46984
25322 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
25323 HOST_WIDE_INT.
25324 (cgraph_create_indirect_edge): Fixed line length.
25325 (cgraph_indirect_call_info): Declare.
25326 (cgraph_make_edge_direct) Update declaration.
25327 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
25328 (cgraph_create_indirect_edge): Use it.
25329 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
25330 callees.
25331 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
25332 the new thunk_delta representation.
25333 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
25334 HOST_WIDE_INT.
25335 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
25336 (ipa_read_indirect_edge_info): Likewise.
25337 * lto-cgraph.c (output_edge_opt_summary): New function.
25338 (output_node_opt_summary): Call it on all outgoing edges.
25339 (input_edge_opt_summary): New function.
25340 (input_node_opt_summary): Call it on all outgoing edges.
25341
25342 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
25343
25344 PR driver/47137
25345 * gcc.c (main): Don't check have_o when settting combine_inputs.
25346
25347 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
25348
25349 * regrename.c: Add general comment describing the pass.
25350 (struct du_head): Remove 'length' field.
25351 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
25352 (regrename_optimize): Do not sort chains. Rework comments, add others.
25353 Force renaming to the preferred class (if any) in the first pass and do
25354 not consider registers that belong to it in the second pass.
25355 (create_new_chain): Do not set 'length' field.
25356 (scan_rtx_reg): Likewise.
25357
25358 2011-01-02 Jakub Jelinek <jakub@redhat.com>
25359
25360 PR tree-optimization/47140
25361 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
25362 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
25363 to bit_value_binop.
25364
25365 PR rtl-optimization/47028
25366 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
25367 parm_birth_insn instead of at the beginning of first bb.
25368
25369 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
25370
25371 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
25372 Remove the word "see" before "@pxref".
25373 * doc/rtl.texi: Remove the word "see" before "@pxref".
25374
25375 2011-01-01 Jan Hubicka <jh@suse.cz>
25376
25377 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
25378 memory.
25379
25380 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
25381
25382 PR target/38662
25383 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
25384
25385 \f
25386 Copyright (C) 2011 Free Software Foundation, Inc.
25387
25388 Copying and distribution of this file, with or without modification,
25389 are permitted in any medium without royalty provided the copyright
25390 notice and this notice are preserved.