OSDN Git Service

c5759af0d48888916b742e9374869e7b46e8159f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * config/sparc/sync.md (*stbar): Delete.
4         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
5
6 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
7
8         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
9
10 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11
12         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
13         (TARGET_64BIT_DEFAULT): Define.
14         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
15         of tm_file.
16         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
17
18 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
19
20         * common.opt (in_lto_p): New Variable entry.
21         * flags.h (in_lto_p): Move to common.opt.
22         * gcc.c: Include params.h.
23         (set_option_handlers): Also use common_handle_option and
24         target_handle_option.
25         (main): Call global_init_params, finish_params and
26         init_options_struct.
27         * opts.c (debug_type_names): Move from toplev.c.
28         (print_filtered_help): Access quiet_flag through opts pointer.
29         (common_handle_option): Return early in the driver for some
30         options.  Access in_lto_p, dwarf_version and
31         warn_maybe_uninitialized through opts pointer.
32         * toplev.c (in_lto_p): Move to common.opt.
33         (debug_type_names): Move to opts.c.
34         * Makefile.in (OBJS): Remove opts.o.
35         (OBJS-libcommon-target): Add opts.o.
36         (gcc.o): Update dependencies.
37
38 2011-06-28  Kai Tietz  <ktietz@redhat.com>
39
40         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve
41         type sinking.
42
43 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
44
45         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
46         with '=' constraint modifier.
47         (*divdf3_vfp): Likewise.
48         ("*mulsf3_vfp"): Likewise.
49         ("*muldf3_vfp"): Likewise.
50         ("*mulsf3negsf_vfp"): Likewise.
51         ("*muldf3negdf_vfp"): Likewise.
52
53 2011-06-28  Nick Clifton  <nickc@redhat.com>
54
55         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
56         relaxation when performing an incremental link.
57
58 2011-06-28  Kai Tietz  <ktietz@redhat.com>
59
60         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
61         within BB from last to first.
62
63 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
64
65         * genattr-common.c: New.  Based on genattr.c.
66         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
67         (MOSTLYCLEANFILES): Add insn-attr-common.h.
68         (opts.o): Update dependencies.
69         (.PRECIOUS): Add insn-attr-common.h.
70         (simple_rtl_generated_h): Add insn-attr-common.h.
71         (build/genattr-common.o): New.
72         (genprogrtl): Add attr-common.
73         * genattr.c (main): Include insn-attr-common.h.  Don't generate
74         definitions of DELAY_SLOTS or INSN_SCHEDULING.
75         * opts.c: Include insn-attr-common.h instead of rtl.h and
76         insn-attr.h.
77
78 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
79
80         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
81         avr-*-* and avr-*-rtems* targets.
82
83         * config/avr/elf.h: New file.
84         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
85         (TARGET_ASM_SELECT_SECTION): Define.
86         (INIT_SECTION_ASM_OP): Undefine.
87         (FINI_SECTION_ASM_OP): Undefine.
88         (READONLY_DATA_SECTION_ASM_OP): Undefine.
89         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
90         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
91         * config/avr/avr.h:
92         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
93         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
94         (MAX_OFILE_ALIGNMENT): Move to elf.h.
95         (STRING_LIMIT): Move to elf.h.
96         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
97         (ASM_DECLARE_OBJECT_NAME): Remove.
98         (ESCAPES): Remove.
99         (ASM_OUTPUT_SKIP): Remove.
100         (DWARF2_DEBUGGING_INFO): Remove.
101         (OBJECT_FORMAT_ELF): Remove.
102         (USER_LABEL_PREFIX): Remove.
103         (ASM_OUTPUT_EXTERNAL): Remove.
104         (ASM_OUTPUT_ASCII): Remove.
105         (TYPE_ASM_OP): Remove.
106         (SIZE_ASM_OP): Remove.
107         (WEAK_ASM_OP): Remove.
108         (STRING_ASM_OP): Remove.
109         (SET_ASM_OP): Remove.
110         (ASM_WEAKEN_LABEL): Remove.
111         (TYPE_OPERAND_FMT): Remove.
112         (ASM_DECLARE_FUNCTION_SIZE): Remove.
113         (ASM_FINISH_DECLARE_OBJECT): Remove.
114         (NO_DOLLAR_IN_LABEL): Remove.
115         (ASM_GENERATE_INTERNAL_LABEL): Remove.
116         (ASM_OUTPUT_CASE_LABEL): Remove.
117         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
118         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
119         (gas_output_ascii): Remove.
120         (gas_output_limited_string): Remove.
121         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
122         * config/avr/avr-protos.h
123         (gas_output_ascii): Remove prototye.
124         (gas_output_limited_string): Remove prototype.
125
126 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
127
128         PR target/48637
129         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
130         asm operands.
131
132 2011-06-27  Jan Hubicka  <jh@suse.cz>
133
134         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
135         node instead of references in node.
136
137 2011-06-27  Richard Henderson  <rth@redhat.com>
138
139         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
140         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
141         inside ifdef.
142
143 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
144
145         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
146
147         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
148         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
149         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
150         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
151         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
152         (evaluate_stmt, execute_fold_all_builtins): Handle
153         BUILT_IN_ASSUME_ALIGNED.
154         * tree-ssa-dce.c (propagate_necessity): Likewise.
155         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
156         call_may_clobber_ref_p_1): Likewise.
157         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
158         (expand_builtin_assume_aligned): New function.
159         * doc/extend.texi (__builtin_assume_aligned): Document.
160
161         PR debug/49544
162         * cselib.c (promote_debug_loc): If cselib_preserve_constants
163         and l has two DEBUG_INSN owned locs instead of just one, adjust
164         the second location's setting_insn too.
165
166 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
167
168         PR libmudflap/38738
169         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
170
171 2011-06-27  Nick Clifton  <nickc@redhat.com>
172
173         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to
174         convert bit position of highest bit set into a count of the high
175         zero bits.
176
177 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
178
179         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
180
181 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
182
183         PR lto/48492
184         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
185         to a NULL parent.
186
187 2011-06-27  Richard Guenther  <rguenther@suse.de>
188
189         PR tree-optimization/49394
190         * passes.c (execute_one_pass): Restore current_pass after
191         applying IPA transforms.
192
193 2011-06-27  Kai Tietz  <ktietz@redhat.com>
194
195         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
196         out of type precision after operation.
197         (find_bswap): Take for limit value the integer auto-
198         promotion into account.
199
200 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
201
202         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
203         forward scan as well.
204
205 2011-06-27  Tristan Gingold  <gingold@adacore.com>
206
207         PR target/44241
208         * config/vms/vms-protos.h: New file.
209         * config/vms/vms-crtlmap.map: New file.
210         * config/vms/vms.c: New file.
211         * config/vms/make-crtlmap.awk: New file.
212         * config/vms/vms-crtl.h: File removed.
213         * config/vms/vms-crtl-64.h: File removed.
214         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
215         * config/alpha/vms64.h: Do not include vms-crtl-64.h
216         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
217         clear some builtins on VMS.  Calls vms_patch_builtins.
218         (avms_asm_output_external): Remove.
219         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
220         (struct crtl_name_spec): Remove
221         (DO_CTRL_NAMES): Remove.
222         * config/ia64/vms.h (struct crtl_name_spec): Remove
223         (DO_CTRL_NAMES): Remove.
224         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
225         clear some builtins on VMS.  Calls vms_patch_builtins.
226         (ia64_asm_output_external): Remove DO_CRTL_NAME.
227         * config/ia64/vms64.h: Do not include vms-crtl-64.h
228         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles,
229         tm_p_file.
230
231 2011-06-27  Tristan Gingold  <gingold@adacore.com>
232
233         * config/alpha/alpha.c (alpha_end_function): Always generate .end
234         directive on VMS.
235
236 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
237
238         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
239         the function receives nonlocal gotos.
240
241 2011-06-27  Richard Guenther  <rguenther@suse.de>
242
243         PR tree-optimization/49536
244         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
245         For non-scalar inner types use a scalar type according to
246         the scalar inner mode.
247
248 2011-06-27  Richard Guenther  <rguenther@suse.de>
249
250         PR tree-optimization/49365
251         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
252
253 2011-06-27  Richard Guenther  <rguenther@suse.de>
254
255         PR tree-optimization/49169
256         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
257         the alignment of function decls.
258
259 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
260
261         PR target/47997
262         * config/darwin.c (darwin_mergeable_string_section): Place string
263         constants in '.cstring' rather than '.const' when CF/NSStrings are
264         active.
265
266 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
267
268         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
269         (emit_save_register_window): Likewise.
270         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
271         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
272         Swap back %o7/%i7 in register naming.
273
274 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
275
276         PR driver/49371
277         * config/darwin.c (darwin_override_options): Improve warning when
278         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
279         is given with fpie/fPIE.
280         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
281         * config/darwin9.h (PIE_SPEC): New.
282
283 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
284
285         * timevar.c (timevar_print): Increase width for display of timevar
286         name.
287
288 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
289
290         PR c++/46400
291         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
292         instead of TYPE_CHAIN for chain_next for types.
293
294 2011-06-24  Richard Henderson  <rth@redhat.com>
295
296         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
297         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
298         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
299         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
300         (sparc_flat_expand_prologue): Emit individual instructions
301         instead of one of the above.
302
303 2011-06-24  Easwaran Raman  <eraman@google.com>
304
305         PR rtl-optimization/49429
306         PR target/49454
307         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
308         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
309         used to copy y into x.
310         * calls.c (initialize_argument_information): Mark
311         an argument addressable if it is passed by invisible reference.
312         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
313         if it is passed by reference.
314
315 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
316
317         PR rtl-optimization/49504
318         * rtlanal.c (nonzero_bits1): Properly handle addition or
319         subtraction of a pointer in Pmode if pointers extend unsigned.
320         (num_sign_bit_copies1): Likewise.
321
322 2011-06-24  Martin Jambor  <mjambor@suse.cz>
323
324         PR tree-optimizations/49516
325         * tree-sra.c (sra_modify_assign): Choose the safe path for
326         aggregate copies if we also did scalar replacements.
327
328 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
329
330         PR target/49335
331         * config/arm/predicates.md (add_operator): New.
332         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage
333         in Thumb2.
334
335 2011-06-24  Andi Kleen  <ak@linux.intel.com>
336
337         * tree-sra.c (type_internals_preclude_sra_p): Add msg
338         parameter. Split up ifs and report reason in *msg.
339         (reject): Add.
340         (find_var_candiate): Add msg variable.
341         Split up ifs and report reason to reject.
342         (find_param_candidates): Add msg variable.
343         Pass msg to type_internals_preclude_sra_p.
344
345 2011-06-23  Jeff Law  <law@redhat.com>
346
347         PR middle-end/48770
348         * reload.h (reload): Change to return a bool.
349         * ira.c (ira): If requested by reload, run a fast DCE pass after
350         reload has completed.  Fix comment typo.
351         * reload1.c (need_dce): New file scoped static.
352         (reload): Set reload_completed here.  Return whether or not a DCE
353         pass after reload is needed.
354         (delete_dead_insn): Set need_dce as needed.
355
356         PR middle-end/49465
357         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
358         to detect threading through joiner block.  If there was already
359         an edge to the new target, then do not change the PHI nodes.
360
361 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
362
363         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
364         get_pointer_alignment to see if base isn't sufficiently aligned.
365
366 2011-06-23  Jan Hubicka  <jh@suse.cz>
367
368         PR tree-optimize/49373
369         * tree-pass.h (all_late_ipa_passes): Declare.
370         * cgraphunit.c (init_lowered_empty_function): Fix properties.
371         (cgraph_optimize): Execute late passes; remove unreachable funcions
372         after materialization.
373         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
374         LTOing.
375         * passes.c (all_late_ipa_passes): Declare.
376         (dump_passes, register_pass): Handle late ipa passes.
377         (init_optimization_passes): Move ipa_pta to late passes; schedule
378         fixup_cfg at beggining of all_passes.
379         (apply_ipa_transforms): New function.
380         (execute_one_pass): When doing simple ipa pass, apply all transforms.
381
382 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
383
384         * params.c: Include common/common-target.h.  Don't include tm.h.
385         (lang_independent_params): Move from toplev.c.
386         (global_init_params): New.
387         * params.h (global_init_params): Declare.
388         * target.def (default_params): Move to common-target.def.
389         * toplev.c (lang_independent_options): Remove.
390         (lang_independent_params): Move to params.c.
391         (general_init): Use global_init_params.
392         * common/common-target.def (option_default_params): Move from
393         target.def.
394         * common/config/ia64/ia64-common.c: Include params.h.
395         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
396         from ia64.c.
397         * common/config/rs6000/rs6000-common.c: Include params.h.
398         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
399         from rs6000.c.
400         * common/config/sh/sh-common.c: Include params.h.
401         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
402         from sh.c.
403         * common/config/spu/spu-common.c: Include params.h.
404         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
405         from spu.c.
406         * config/ia64/ia64.c (ia64_option_default_params,
407         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
408         * config/rs6000/rs6000.c (rs6000_option_default_params,
409         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
410         * config/sh/sh.c (sh_option_default_params,
411         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
412         * config/spu/spu.c (spu_option_default_params,
413         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
414         * Makefile.in (OBJS): Remove params.o.
415         (OBJS-libcommon-target): Add params.o.
416         (params.o, $(common_out_object_file)): Update dependencies.
417         * doc/tm.texi: Regenerate.
418
419 2011-06-23  Alan Modra  <amodra@gmail.com>
420
421         PR bootstrap/49383
422         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
423         invocation for 2011-06-09 changes.
424
425 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
426
427         PR libgomp/49490
428         * omp-low.c (expand_omp_for_static_nochunk): Only
429         use n ceil/ nthreads size for the first
430         n % nthreads threads in the team instead of
431         all threads except for the last few ones which
432         get less work or none at all.
433
434         PR debug/49496
435         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
436         uses.
437
438 2011-06-22  Richard Guenther  <rguenther@suse.de>
439
440         PR tree-optimization/49493
441         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
442         Refer to the alias target of variables.
443         (associate_varinfo_to_alias_1): Remove.
444         (ipa_pta_execute): Do not associate aliases with anything.
445         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
446         (cgraph_function_node): Likewise.
447         (cgraph_function_or_thunk_node): Likewise.
448         (varpool_variable_node): Likewise.
449
450 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
451
452         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect
453         typo.
454         * config.gcc (arm*-*-linux*): Default to gnu tls.
455         (arm*-*-*): Add --with-tls option.
456         (all_defaults): Add 'tls'.
457
458 2011-06-22  Richard Henderson  <rth@redhat.com>
459
460         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
461         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
462         (dwarf2out_frame_debug_cfa_window_save): Rename from
463         dwarf2out_window_save; make static.
464         * tree.h (dwarf2out_window_save): Don't declare.
465
466         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
467         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
468         (emit_save_register_window): Rename from gen_save_register_window;
469         emit the insn and add REG_CFA_* notes.
470         (sparc_expand_prologue): Update to match.
471         * config/sparc/sparc.md (save_register_window_1): Simplify from
472         save_register_window<P:mode>.
473
474 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
475
476         PR target/49497
477         * config/i386/i386.md (*lea_general_2): Always allow SImode.
478         (*lea_general_2_zext): Likewise.
479         (imul to lea peepholes): Use const359_operand and check
480         TARGET_PARTIAL_REG_STALL.
481
482         * config/i386/predicates.md (const359_operand): New.
483
484 2011-06-22  Michael Matz  <matz@suse.de>
485
486         * cgraphunit.c (assemble_thunk): Use correct return type.
487
488 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
489         Dmitry Melnik  <dm@ispras.ru>
490
491         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
492         (neon_output_shift_immediate): Ditto.
493         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
494         prototype.
495         (neon_output_shift_immediate): Ditto.
496         * config/arm/neon.md (vashl<mode>3): Modified constraint.
497         (vashr<mode>3_imm): New insn pattern.
498         (vlshr<mode>3_imm): Ditto.
499         (vashr<mode>3): Modified constraint.
500         (vlshr<mode>3): Ditto.
501         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
502         predicate.
503         (imm_for_neon_rshift_operand): Ditto.
504         (imm_lshift_or_reg_neon): Ditto.
505         (imm_rshift_or_reg_neon): Ditto.
506
507         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
508
509 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
510
511         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
512         builtin calls even if likelyvalue is not CONSTANT.
513         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
514         Return get_value_for_expr of first operand
515         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
516         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
517         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
518         their non-checking counterparts.
519         (call_may_clobber_ref_p_1): Likewise.
520         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
521         like their non-checking counterparts.
522         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
523         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
524         like their non-checking counterparts.
525         (find_func_clobbers): Likewise.
526         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
527         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
528
529         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
530         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
531         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
532         of base type reference as argument.
533         (resolve_addr_in_expr): Likewise.  Fix keep computation.
534         (convert_descriptor_to_signed): Renamed to...
535         (convert_descriptor_to_mode): ... this.  For wider types convert
536         to unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to
537         untyped.
538         (typed_binop): New function.
539         (scompare_loc_descriptor, ucompare_loc_descriptor,
540         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
541         default to unsigned type instead of signed.
542
543         PR debug/47858
544         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
545         (gimple_build_debug_source_bind_stat): New prototype.
546         (gimple_build_debug_source_bind): Define.
547         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
548         gimple_debug_source_bind_get_value,
549         gimple_debug_source_bind_get_value_ptr,
550         gimple_debug_source_bind_set_var,
551         gimple_debug_source_bind_set_value): New inlines.
552         * gimple.c (gimple_build_debug_source_bind_stat): New function.
553         * gimple-pretty-print.c (dump_gimple_debug): Handle
554         GIMPLE_DEBUG_SOURCE_BIND.
555         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
556         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
557         * tree-parloops.c (eliminate_local_variables,
558         separate_decls_in_region): Likewise.
559         (separate_decls_in_region_debug): Renamed from
560         separate_decls_in_region_debug_bind.  Handle
561         gimple_debug_source_bind_p.
562         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
563         prototypes.
564         (DECL_HAS_DEBUG_ARGS_P): Define.
565         (struct tree_function_decl): Add has_debug_args_flag field.
566         * tree.c (debug_args_for_decl): New variable.
567         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
568         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
569         (rewrite_debug_stmt_uses): New function.
570         (rewrite_stmt): Use it to rewrite debug stmt uses.
571         * rtl.def (DEBUG_PARAMETER_REF): New.
572         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
573         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
574         DEBUG_PARAMETER_REF.
575         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
576         * print-rtl.c (print_rtx): Likewise.
577         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
578         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
579         debug stmts in the first bb.
580         * tree-inline.c (remap_ssa_name): If remapping default def
581         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
582         a source bind debug stmt.
583         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
584         (maybe_move_debug_stmts_to_successors): Likewise.
585         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
586         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
587         debug args vector from old_decl to new_decl.
588         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
589         or modified parameters, add debug bind stmts before call
590         setting DEBUG_EXPR_DECL which is remembered in debug args
591         vector.
592         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
593         on DECL_DEBUG_EXPRs from debug args vector.
594         (expand_debug_source_expr): New function.
595         (expand_debug_locations): Use it for source bind insns.
596         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
597         * var-tracking.c (prepare_call_arguments): Add debug args
598         to call_arguments if any.
599         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
600         output_loc_operands, output_loc_operands_raw,
601         resolve_addr_in_expr, compare_loc_operands): Handle
602         DW_OP_GNU_parameter_ref.
603         (get_ref_die_offset, parameter_ref_descriptor): New functions.
604         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
605         (gen_subprogram_die): Handle parameters identified by
606         DEBUG_PARAMETER_REF.
607
608 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
609
610         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
611         * doc/install.texi (Configuration): Document --with-tls.
612         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
613         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
614         (arm_tls_descseq_addr): New.
615         (legitimize_tls_address): Add tlsdesc support.
616         (arm_cannot_copy_insn_p): Check for tlscall.
617         (arm_emit_tls_decoration): Likewise.
618         * config/arm/arm.h (TARGET_GNU2_TLS): New.
619         (OPTION_DEFAULT_SPECS): Add with-tls support.
620         * config/arm/arm.md (R1_REGNUM): Define.
621         (tlscall): New.
622         * config/arm/arm.opt (tls_type): New enumeration type and values.
623         (mtls-dialect): New switch.
624         * config/arm/arm-opts.h (enum tls_type): New.
625
626 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
627
628         * attribs.c (register_attribute): Added assert to check that all
629         attribute specs are registered with a name that is not empty and
630         does not start with '_'.
631         (decl_attributes): Avoid the lookup of the "naked" attribute spec
632         if the function has no attributes.
633         * tree.c (is_attribute_with_length_p): Removed.
634         (is_attribute_p): Removed.
635         (private_is_attribute_p): New.  
636         (private_lookup_attribute): New.
637         (lookup_attribute): Removed.
638         (lookup_ident_attribute): New.
639         (remove_attribute): Require the first argument to be in the form
640         'text', not '__text__'.  Updated asserts.
641         (merge_attributes): Use lookup_ident_attributes instead of
642         lookup_attribute.
643         (merge_dllimport_decl_attributes): Use remove_attribute.
644         (attribute_list_contained): Likewise.
645         (attribute_list_equal): Immediately return 1 if the arguments are
646         identical pointers.
647         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
648         'int'.  Require the first argument to be in the form 'text', not
649         '__text__'.  Require the second argument to be an identifier.
650         (lookup_attribute): Made inline.  Require the first argument to be
651         in the form 'text', not '__text__'.
652         (private_is_attribute_p, private_lookup_attribute): New.
653         Updated comments.
654         
655 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
656
657         * builtins.c: Add sync_ or SYNC__ to builtin names.
658         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
659         * omp-low.c: Add sync_ or SYNC__ to builtin names.
660
661 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
662
663         PR target/33049
664         * config/avr/avr.md (extzv): New expander.
665         (*extzv): New insn.
666         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
667         * config/avr/constraints.md (C04): New constraint.
668         * doc/md.texi (Machine Constraints): Document it.
669
670 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
671
672         PR middle-end/49489
673         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
674         unsignedp argument instead of 1 for clrsb_optab.
675         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
676         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
677         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
678         * optabs.c (widen_leading): Call widen_operand and expand_unop
679         with 0 as unsignedp argument instead of 1 for clrsb_optab.
680         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
681
682 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
683
684         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
685
686 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
687
688         * gensupport.c (add_define_attr): New static function.
689         (is_predicable): Allow multi-alternative lists for the "predicable"
690         attribute.
691         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
692         (process_one_cond_exec): Call alter_attrs_for_insn.
693         * doc/md.texi (Defining Attributes): Mention some standard names.
694         (Conditional Execution): Update documentation for "predicable".
695
696         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
697         __builtin_clrsbll): Document.
698         * doc/rtl.texi (clrsb): New entry.
699         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
700         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
701         (expand_unop): Handle clrsb_optab.
702         (init_optabs): Initialize it.
703         * optabs.h (enum optab_index): New entry OTI_clrsb.
704         (clrsb_optab): Define.
705         * genopinit.c (optabs): Add an entry for it.
706         * builtins.c (expand_builtin): Handle clrsb builtin functions.
707         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
708         BUILT_IN_CLRSBLL): New.
709         * rtl.def (CLRSB): New code.
710         * dwarf2out.c (mem_loc_descriptor): Handle it.
711         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
712         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
713         and popcount.
714         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
715         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
716         (__ctzDI2): Move declaration.
717         * config/bfin/bfin.md (clrsbsi2): New expander.
718         (signbitssi2): Use the CLRSB rtx.
719         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
720         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
721
722 2011-06-21  Richard Guenther  <rguenther@suse.de>
723
724         * ipa-inline-transform.c (inline_transform): Fix previous change.
725
726 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
727
728         PR tree-optimization/49478
729         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
730         with constant operand.
731
732 2011-06-21  Richard Guenther  <rguenther@suse.de>
733
734         * ipa-inline-transform.c (inline_transform): Fix typo.
735
736 2011-06-21  Richard Guenther  <rguenther@suse.de>
737
738         PR tree-optimization/49483
739         * tree-vect-stmts.c (vectorizable_assignment): Also handle
740         VIEW_CONVERT_EXPR conversions.
741
742 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
743
744         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
745         * config/avr/avr-tables.opt: New file (generated).
746         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
747         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
748         avr-mcus.def.
749         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
750         (avr_option_override): Don't process -mmcu= argument here.  Set
751         avr_current_device using avr_mcu_index.
752         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
753         * config/avr/avr.opt (mmcu=): Use Enum.
754         * config/avr/t-avr (avr-devices.o): Update dependencies.
755         ($(srcdir)/config/avr/avr-tables.opt): New.
756         * target.def (help): Remove.
757         * doc/tm.texi.in (TARGET_HELP): Remove.
758         * doc/tm.texi: Regenerate.
759         * opts.c: Don't include target.h.
760         (common_handle_option): Don't call targetm.help.
761         * system.h (TARGET_HELP): Poison.
762         * Makefile.in (opts.o): Update dependencies.
763
764 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
765
766         * config/usegld.h: New file.
767         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
768         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
769         (LIB_SPEC): Likewise.  Search /lib.
770         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
771         (RDYNAMIC_SPEC): Handle GNU ld.
772         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
773         Define.
774         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
775         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
776         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
777         (STACK_CHECK_STATIC_BUILTIN): Define.
778         * config/sol2.opt (compat-bsd): Remove.
779         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
780         * config/sol2-bi.h: New file.
781         * config/sol2-gld.h: Remove.
782         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
783         (NO_DBX_BNSYM_ENSYM): Remove.
784         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
785         (STACK_CHECK_STATIC_BUILTIN): Remove.
786         Test USE_GLD instead of TARGET_GNU_LD.
787         * config/i386/sol2-10.h: Rename to ...
788         * config/i386/sol2-bi.h .. this.
789         (SUBTARGET_EXTRA_SPECS): Redefine.
790         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
791         (MULTILIB_DEFAULTS): Remove.
792         (DEFAULT_ARCH32_P): Define.
793         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
794         (ARCH64_SUBDIR): Define.
795         Test USE_GLD instead of TARGET_GNU_LD.
796         (I386_EMULATION): Rename to ...
797         (ARCH32_EMULATION): ... this.
798         (X86_64_EMULATION): Rename to ...
799         (ARCH64_EMULATION): ... this.
800         (TARGET_LD_EMULATION): Remove.
801         (LINK_ARCH_SPEC): Remove.
802         * config/i386/sol2-gas.h: Remove.
803         * config/i386/t-sol2-10: Rename to ...
804         * config/i386/t-sol2-64: ... this.
805         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
806         (AS_SPARC64_FLAG): Define.
807         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
808         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
809         depending on TARGET_CPU_DEFAULT.
810         (CPP_CPU_SPEC): Redefine.
811         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
812         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
813         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
814         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
815         ASM_ARCH_DEFAULT_SPEC): Redefine.
816         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
817         LINK_ARCH_DEFAULT_SPEC.
818         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
819         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
820         (ARCH64_SUBDIR): Define.
821         (LINK_ARCH64_SPEC): Redefine.
822         (CC1_SPEC): Redefine.
823         (OPTION_DEFAULT_SPECS): Redefine.
824         (MULTILIB_DEFAULTS): Define.
825         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
826         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
827         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
828         (NO_DBX_BNSYM_ENSYM): Remove.
829         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
830         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
831         (TARGET_ASM_NAMED_SECTION): Likewise.
832         (STACK_CHECK_STATIC_BUILTIN): Remove.
833         * config/sparc/sol2-bi.h: Remove.
834         * config/sparc/sol2-gas-bi.h: Remove.
835         * config/sparc/sol2-gas.h: Remove.
836         * config/sparc/sol2-gld-bi.h: Remove.
837         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
838         common parts ...
839         (*-*-solaris2*): ... here.
840
841 2011-06-21  Christian Bruel  <christian.bruel@st.com>
842
843         PR other/43564
844         * ipa-inline.c (can_inline_edge_p): Check
845         !DECL_DISREGARD_INLINE_LIMITS.
846
847 2011-06-21  Christian Bruel  <christian.bruel@st.com>
848
849         PR middle-end/49139
850         * cgraphunit.c (process_function_and_variable_attributes): warn when
851         always_inline functions that are not inline.
852         * ipa-inline-transform.c (inline_transform): Always call
853         optimize_inline.
854         * tree-inline.c (tree_inlinable_function_p): Use error instead
855         of sorry.
856         (expand_call_inline): Likewise.
857
858 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
859
860         * Makefile.in (dg_target_exps): Set.
861         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
862         instead of 7, try to divide it more evenly.
863
864 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
865
866         PR i386/49089
867         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
868         (avx256_split_unaligned_store): New definition.
869         (ix86_option_override_internal): Enable avx256 unaligned load/store
870         splitting only when avx256_split_unaligned_load/store is set.
871
872 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
873
874         * regrename.c (scan_rtx_reg): Handle the case where we write to an
875         open chain in a smaller mode without failing the entire block.
876
877 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
878
879         PR middle-end/47725
880         * combine.c (cant_combine_insn_p): Don't check zero/sign
881         extended hard registers.
882
883 2011-06-21  Alan Modra  <amodra@gmail.com>
884
885         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
886         CONST high part large-toc address.
887         (rs6000_tls_referenced_p): Make static.
888         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
889
890 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
891
892         PR middle-end/47725
893         * combine.c (cant_combine_insn_p): Check zero/sign extended
894         hard registers.
895
896 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
897
898         PR target/49385
899         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
900         one of the operands is a register.
901
902 2011-06-20  Kai Tietz  <ktietz@redhat.com>
903
904         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
905         operations in combination with binary and.
906
907 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
908
909         * regrename.c (do_replace): Don't update notes.
910
911 2011-06-20  Alan Modra  <amodra@gmail.com>
912
913         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
914         of toc-relative address in CONST.
915         (rs6000_delegitimize_address): Recognize changed address.
916         (rs6000_legitimize_reload_address): Likewise.
917         (rs6000_emit_move): Don't force these constants to memory.
918         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
919         toc-relative address in CONST.
920         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
921         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
922
923 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
924
925         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
926         (count_trailing_zeros): Likewise.
927
928 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
929
930         PR other/49325
931         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
932         .init_array can be used with .ctors on targets.
933         * configure: Regenerated.
934
935 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
936
937         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
938         if the element type is volatile.
939
940 2011-06-18  Jan Hubicka  <jh@suse.cz>
941
942         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
943         extra name aliases.
944         (lto_symtab_resolve_can_prevail_p): Likewise.
945         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
946         * cgraphbuild.c (record_reference): Remove extra body alias code.
947         (mark_load): Likewise.
948         (mark_store): Likewise.
949         * cgraph.h (varpool_node): Remove extra_name filed;
950         add alias_of and extraname_alias.
951         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
952         (varpool_alias_aliased_node): New inline function.
953         (varpool_variable_node): New function.
954         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
955         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
956         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
957         (input_varpool_node): Likewise.
958         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
959         (varpool_externally_visible_p): Remove extra body alias code.
960         (function_and_variable_visibility): Likewise.
961         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
962         (ipa_pta_execute): Use it.
963         * varpool.c (varpool_remove_node): Remove extra name alias code.
964         (varpool_mark_needed_node): Likewise.
965         (varpool_analyze_pending_decls): Analyze aliases.
966         (assemble_aliases): New functoin.
967         (varpool_assemble_decl): Use it.
968         (varpool_create_variable_alias): New function.
969         (varpool_extra_name_alias): Rewrite.
970         (varpool_for_node_and_aliases): New function.
971
972 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
973
974         PR target/49411
975         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
976         last_arg_constant and last argument doesn't match its predicate,
977         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
978         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
979         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
980         spelling of error message.
981         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
982         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
983         const_0_to_255_operand instead of const_int_operand.
984
985         Revert:
986         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
987
988         * config/i386/sse.md (blendbits): Remove mode attribute.
989         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
990         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
991         Check integer value of operand 3 in insn constraint.
992
993 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
994
995         PR rtl-optimization/48542
996         * reload.c (find_equiv_reg): Stop looking when finding a
997         setjmp-type call.
998         * reload1.c (reload_as_needed): Invalidate all reload
999         registers when crossing a setjmp-type call.
1000
1001 2011-06-16  Jeff Law  <law@redhat.com>
1002
1003         * tree-ssa-threadupdate.c (struct redirection_data): New field
1004         intermediate_edge.
1005         (THREAD_TARGET2): Define.
1006         (redirection_data_eq): Also check that the intermediate edge is equal.
1007         (lookup_redirection_data): Drop useless argument.  Extract the
1008         outgoing_edge and intermediate edge from E.  Callers updated.
1009         (copy_phi_args, update_destination_phis): New functions.
1010         (fix_duplicate_block_edges): Likewise.
1011         (create_edge_and_update_destination_phis): Duplicate all the edges
1012         hung off e->aux.  Use copy_phi_args.
1013         (create_duplicates): Use fix_duplicate_block_edges.
1014         (fixup_template_block): Likewise.
1015         (redirect_edges): If necessary, redirect the joiner block's incoming
1016         edge to the duplicate of the joiner block.
1017         (thread_block): Don't muck up loops when threading through a joiner
1018         block.
1019         (thread_through_loop_header): Handle threading through a joiner block.
1020         (mark_threaded_blocks, register_jump_thread): Likewise.
1021         * tree-flow.h (register_jump_thread): Add new argument.  Callers
1022         updated.
1023         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
1024         (thread_across_edge): Handle threading through a joiner block.
1025
1026 2011-06-16  Martin Jambor  <mjambor@suse.cz>
1027
1028         PR tree-optimization/49343
1029         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
1030         calculate offset, provide 2nd operand for the new COMPONENT_REF.
1031
1032 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
1033
1034         * config/darwin-protos.h (machopic_select_rtx_section): Move to
1035         inside RTX_CODE ifdef.
1036
1037 2011-06-16  Tom de Vries  <tom@codesourcery.com>
1038
1039         PR target/45098
1040         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
1041         Disallow NULL pointer for pointer arithmetic.
1042
1043 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1044
1045         PR target/49398
1046         Revert.
1047         2011-06-10  Wei Guozhi  <carrot@google.com>
1048
1049         PR target/45335
1050         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
1051         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
1052         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
1053         related peephole2.
1054         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
1055         related peephole2.
1056         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
1057         (arm_legitimate_ldrd_p): New prototype.
1058         (arm_output_ldrd): New prototype.
1059         * config/arm/arm.c (arm_check_ldrd_operands): New function.
1060         (arm_legitimate_ldrd_p): New function.
1061         (arm_output_ldrd): New function.
1062
1063 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
1064
1065         PR middle-end/46500
1066         * doc/tm.texi.in: Update Copyright date.
1067         * doc/tm.texi: Regenerate.
1068         * targhooks.c (default_setup_incoming_varargs): Replace
1069         CUMULATIVE_ARGS* argument type with cumulative_args_t.
1070         (default_pretend_outgoing_varargs_named): Likewise.
1071         (hook_pass_by_reference_must_pass_in_stack): Likewise.
1072         (hook_callee_copies_named): Likewise.
1073         (default_function_arg_advance): Likewise.
1074         (default_function_arg): Likewise.
1075         (default_function_incoming_arg): Likewise.
1076         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
1077         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
1078         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
1079         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
1080         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
1081         * targhooks.h (default_setup_incoming_varargs): Likewise.
1082         (default_pretend_outgoing_varargs_named): Likewise.
1083         (hook_pass_by_reference_must_pass_in_stack): Likewise.
1084         (hook_callee_copies_named): Likewise.
1085         (default_function_arg_advance): Likewise.
1086         (default_function_arg): Likewise.
1087         (default_function_incoming_arg): Likewise.
1088         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
1089         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
1090         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
1091         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
1092         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
1093         * target.def (pass_by_reference): Likewise.
1094         (setup_incoming_varargs, strict_argument_naming): Likewise.
1095         (pretend_outgoing_varargs_named, callee_copies): Likewise.
1096         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
1097         (function_incoming_arg): Likewise.
1098         * target.h: Don't include "tm.h" .
1099         (cumulative_args_t): New typedef.
1100         [GCC_TM_H] (get_cumulative_args): New static inline function.
1101         [GCC_TM_H] (pack_cumulative_args): Likewise.
1102         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
1103         argument type with cumulative_args_t.
1104         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
1105         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
1106         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
1107         (frv_arg_partial_bytes, frv_function_arg): Likewise.
1108         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
1109         (frv_function_arg_1): Likewise.
1110         * config/s390/s390.c (s390_pass_by_reference): Likewise.
1111         (s390_function_arg_advance, s390_function_arg): Likewise.
1112         * config/m32c/m32c.c (m32c_function_arg): Likewise.
1113         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
1114         (m32c_strict_argument_naming): Likewise.
1115         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
1116         (spu_function_arg_advance): Likewise.
1117         (spu_setup_incoming_varargs): Likewise.  Make static.
1118         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
1119         Remove prototype.
1120         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
1121         CUMULATIVE_ARGS* argument type with cumulative_args_t.
1122         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
1123         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
1124         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
1125         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
1126         (mep_pass_by_reference, mep_function_arg): Likewise.
1127         (mep_function_arg_advance): Likewise.
1128         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
1129         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
1130         (m32r_function_arg, m32r_function_arg_advance): Likewise.
1131         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
1132         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
1133         (ix86_function_arg, ix86_pass_by_reference): Likewise.
1134         (ix86_setup_incoming_varargs): Likewise.
1135         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
1136         (sh_strict_argument_naming): Likewise.
1137         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
1138         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
1139         (sh_function_arg_advance, sh_function_arg): Likewise.
1140         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
1141         (pdp11_function_arg_advance): Likewise.
1142         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
1143         Likewise.
1144         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
1145         * config/avr/avr.c (avr_function_arg): Likewise.
1146         (avr_function_arg_advance): Likewise.
1147         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
1148         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
1149         (xtensa_function_arg_1): Likewise.
1150         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
1151         Likewise.
1152         (xstormy16_function_arg): Likewise.
1153         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
1154         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
1155         (fr30_function_arg_advance): Likewise.
1156         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
1157         (lm32_function_arg, lm32_function_arg_advance): Likewise.
1158         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
1159         (moxie_function_arg, moxie_function_arg_advance): Likewise.
1160         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
1161         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
1162         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
1163         (cris_function_arg, cris_function_incoming_arg): Likewise.
1164         (cris_function_arg_advance, cris_function_arg_1): Likewise.
1165         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
1166         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
1167         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
1168         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
1169         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
1170         (mn10300_arg_partial_bytes): Likewise.
1171         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
1172         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
1173         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
1174         (ia64_function_arg_1): Likewise.
1175         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
1176         (m68k_function_arg): Likewise.
1177         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
1178         (rs6000_function_arg, setup_incoming_varargs): Likewise.
1179         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
1180         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
1181         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
1182         (picochip_arg_advance): Likewise.
1183         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
1184         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
1185         (mcore_function_arg_advance): Likewise.
1186         * config/score/score.c (score_pass_by_reference): Likewise.
1187         (score_function_arg_advance): Likewise.
1188         (score_arg_partial_bytes): Likewise.  Make static.
1189         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
1190         * config/arm/arm.c (arm_arg_partial_bytes): Replace
1191         CUMULATIVE_ARGS* argument type with cumulative_args_t.
1192         (arm_function_arg, arm_function_arg_advance): Likewise.
1193         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
1194         * config/pa/pa.c (pa_pass_by_reference): Likewise.
1195         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
1196         (pa_function_arg): Likewise.
1197         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
1198         (mips_function_arg, mips_function_arg_advance): Likewise.
1199         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
1200         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
1201         * config/vax/vax.c (vax_function_arg): Likewise.
1202         (vax_function_arg_advance): Likewise.
1203         * config/h8300/h8300.c (h8300_function_arg): Likewise.
1204         (h8300_function_arg_advance): Likewise.
1205         * config/v850/v850.c (v850_pass_by_reference): Likewise.
1206         (v850_strict_argument_naming, v850_function_arg): Likewise.
1207         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
1208         (v850_setup_incoming_varargs): Likewise.
1209         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
1210         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
1211         (mmix_function_arg, mmix_pass_by_reference): Likewise.
1212         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
1213         with const void *.
1214         * config/bfin/bfin.c (setup_incoming_varargs): Replace
1215         CUMULATIVE_ARGS* argument type with cumulative_args_t.
1216         (bfin_function_arg_advance, bfin_function_arg): Likewise.
1217         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
1218         * calls.c (emit_call_1): Change type of args_so_far to
1219         cumulative_args_t.  Changed all callers.
1220         (initialize_argument_information): Likewise.
1221         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
1222         * dse.c (get_call_args): Likewise.
1223         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
1224         * function.c (pass_by_reference, reference_callee_copied): Likewise.
1225         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
1226         New member args_so_far_v.  Changed all users.
1227         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
1228         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
1229         * config/mips/mips.c (mips_output_args_xfer): Likewise.
1230         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
1231         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1232         * config/microblaze/microblaze.c (microblaze_expand_prologue):
1233         Likewise.
1234         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
1235         m32r_pass_by_reference.
1236
1237 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
1238
1239         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
1240         argument to be a VEC of statements.
1241         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
1242         assert that pattern statements have to have their vector type set.
1243         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
1244         Change the first argument to be a VEC of statements.  Update
1245         documentation.
1246         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
1247         (vect_handle_widen_mult_by_const): New function.
1248         (vect_recog_widen_mult_pattern):  Change the first argument to be a
1249         VEC of statements.  Update documentation.  Check that the constant is
1250         INTEGER_CST.  Support multiplication by a constant that fits an
1251         intermediate type - call vect_handle_widen_mult_by_const.
1252         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
1253         call.  Handle additional pattern statements if necessary.
1254
1255 2011-06-16  Nick Clifton  <nickc@redhat.com>
1256
1257         PR target/49427
1258         * config.gcc: Set cpu_type to v850 for any V850 architecture.
1259         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
1260         md_file, extra_modes, out_file and extra_options are these are all
1261         deduced from cpu_type.
1262
1263 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
1264
1265         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
1266         truncation mask to 63.
1267
1268 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
1269
1270         PR target/49313
1271         PR target/29524
1272         * longlong.h: Add AVR support:
1273         (count_leading_zeros): New macro.
1274         (count_trailing_zeros): New macro.
1275         (COUNT_LEADING_ZEROS_0): New macro.
1276         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
1277         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
1278         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
1279         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
1280         (LIB2FUNCS_EXCLUDE): Add _clz.
1281         * config/avr/libgcc.S (XCALL): Move up in file.
1282         (XJMP): New C Macro.
1283         (DEFUN): New asm macro.
1284         (ENDF): New asm macro.
1285         (__ffssi2): New function.
1286         (__ffshi2): New function.
1287         (__loop_ffsqi2): New function.
1288         (__ctzsi2): New function.
1289         (__ctzhi2): New function.
1290         (__clzdi2): New function.
1291         (__clzsi2): New function.
1292         (__clzhi2): New function.
1293         (__paritydi2): New function.
1294         (__paritysi2): New function.
1295         (__parityhi2): New function.
1296         (__parityqi2): New function.
1297         (__popcounthi2): New function.
1298         (__popcountsi2): New function.
1299         (__popcountdi2): New function.
1300         (__popcountqi2): New function.
1301         (__bswapsi2): New function.
1302         (__bswapdi2): New function.
1303         (__ashldi3): New function.
1304         (__ashrdi3): New function.
1305         (__lshrdi3): New function.
1306         Fix suspicous lines.
1307
1308 2011-06-16  Richard Guenther  <rguenther@suse.de>
1309
1310         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
1311         the same as x != 0.
1312         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
1313         to (bool) X & 1.
1314         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
1315         equality compares against zero for the lower bit.
1316
1317 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
1318
1319         PR tree-optimization/49419
1320         * tree-vrp.c (execute_vrp): Call init_range_assertions
1321         before estimate_numbers_of_iterations, call
1322         free_number_of_iterations_estimates before calling
1323         remove_range_assertions.
1324
1325 2011-06-16  Revital Eres  <revital.eres@linaro.org>
1326
1327         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
1328         (struct partial_schedule): Add rows_length field.
1329         (verify_partial_schedule): Check rows_length.
1330         (ps_insert_empty_row): Handle rows_length.
1331         (create_partial_schedule): Likewise.
1332         (free_partial_schedule): Likewise.
1333         (reset_partial_schedule): Likewise.
1334         (create_ps_insn): Remove rest_count argument.
1335         (remove_node_from_ps): Update rows_length.
1336         (add_node_to_ps): Update rows_length and call create_ps_insn
1337         without passing row_rest_count.
1338         (rotate_partial_schedule): Update rows_length.
1339
1340 2011-06-16  Revital Eres  <revital.eres@linaro.org>
1341
1342         * ddg.c (add_intra_loop_mem_dep): New function.
1343         (build_intra_loop_deps): Call it.
1344
1345 2011-06-13  Jeff Law  <law@redhat.com>
1346
1347         * df-problems.c (df_lr_local_compute): Manually CSE
1348         PIC_OFFSET_TABLE_REGNUM.
1349         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
1350         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
1351
1352 2011-06-13  Jan Hubicka  <jh@suse.cz>
1353
1354         * cgraphunit.c (handle_alias_pairs): New function.
1355         (cgraph_finalize_compilation_unit): Use it.
1356         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
1357         as externally visible.
1358
1359 2011-06-15  Richard Guenther  <rguenther@suse.de>
1360
1361         * expr.c (expand_expr_real_2): Reduce all integral types to
1362         bitfield precision.
1363         (expand_expr_real_1): Likewise.
1364
1365 2011-06-15  Martin Jambor  <mjambor@suse.cz>
1366
1367         PR tree-optimization/48613
1368         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
1369         ipa_node_params_vector is NULL.
1370
1371 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
1372
1373         PR debug/49382
1374         * dwarf2out.c (dw_loc_list_node): Add force field.
1375         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
1376         location in the list, even if it is modified before first real insn.
1377         (output_loc_list): Emit empty ranges with force flag set.
1378         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
1379
1380 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
1381
1382         PR target/49349
1383         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
1384         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
1385         above a fence.  Update comments.
1386         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
1387         placed just above it.  Do not allow NULL place_to_insert.
1388
1389 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
1390
1391         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
1392         (slpeel_tree_peel_loop_to_edge): Don't call
1393         remove_dead_stmts_from_loop.
1394         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1395         remove irrelevant pattern statements.  For irrelevant statements
1396         check if it is the last statement of a detected pattern, use
1397         corresponding pattern statement instead.
1398         (destroy_loop_vec_info): No need to remove pattern statements,
1399         only free stmt_vec_info.
1400         (vect_transform_loop): For irrelevant statements check if it is
1401         the last statement of a detected pattern, use corresponding
1402         pattern statement instead.
1403         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
1404         pattern statements.  Set basic block for the new statement.
1405         (vect_pattern_recog): Update documentation.
1406         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
1407         operands of pattern statements.
1408         (vectorizable_call): Fix printing.  In case of a pattern statement
1409         use the lhs of the original statement when creating a dummy
1410         statement to replace the original call.
1411         (vect_analyze_stmt): For irrelevant statements check if it is
1412         the last statement of a detected pattern, use corresponding
1413         pattern statement instead.
1414         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
1415         statements use gsi of the original statement.
1416
1417 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
1418
1419         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
1420         common/common-target-def.h.
1421         * target.def (default_target_flags, handle_option,
1422         supports_split_stack, optimization_table, init_struct,
1423         except_unwind_info, unwind_tables_default, have_named_sections):
1424         Move to common/common-target.def.
1425         * target.h (enum opt_levels, struct default_options): Move to
1426         common/common-target.h.
1427         * targhooks.c (default_except_unwind_info,
1428         dwarf2_except_unwind_info, sjlj_except_unwind_info,
1429         default_target_handle_option, empty_optimization_table): Move to
1430         common/common-targhooks.c.
1431         * targhooks.h (default_except_unwind_info,
1432         dwarf2_except_unwind_info, sjlj_except_unwind_info,
1433         default_target_handle_option, empty_optimization_table): Move to
1434         common/common-targhooks.h.
1435         * common/common-target-def.h: Include common/common-targhooks.h.
1436         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
1437         defined.
1438         * common/common-target.def (handle_option, option_init_struct,
1439         option_optimization_table, default_target_flags,
1440         except_unwind_info, supports_split_stack, unwind_tables_default,
1441         have_named_sections): Move from target.def.
1442         (HOOK_PREFIX): Undefine at end of file.
1443         * common/common-target.h: Include input.h.
1444         (enum opt_levels, struct default_options): Move from target.h.
1445         * common/common-targhooks.c, common/common-targhooks.h: New.
1446         * config.gcc (target_has_targetm_common): Default to yes.
1447         (moxie*): Set target_has_targetm_common=no.
1448         (hppa*-*-*): Don't set target_has_targetm_common=yes.
1449         * doc/tm.texi: Regenerate.
1450         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
1451         (C_TARGET_DEF_H): Add common/common-targhooks.h.
1452         (GCC_OBJS): Remove vec.o.
1453         (OBJS): Remove hooks.o and vec.o.
1454         (OBJS-libcommon-target): Add vec.o, hooks.o and
1455         common/common-targhooks.o.
1456         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
1457         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
1458         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
1459         cfglayout.o, $(out_object_file), $(common_out_object_file)):
1460         Update dependencies.
1461         (common/common-targhooks.o): New.
1462         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
1463         * common/config/pa/pa-common.c: Include more headers.  Take
1464         copyright dates from pa.c.
1465         (pa_option_optimization_table, pa_handle_option,
1466         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
1467         TARGET_HANDLE_OPTION): Move from pa.c.
1468         * common/config/alpha/alpha-common.c,
1469         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
1470         common/config/bfin/bfin-common.c,
1471         common/config/cris/cris-common.c,
1472         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
1473         common/config/h8300/h8300-common.c,
1474         common/config/i386/i386-common.c,
1475         common/config/ia64/ia64-common.c,
1476         common/config/iq2000/iq2000-common.c,
1477         common/config/lm32/lm32-common.c,
1478         common/config/m32c/m32c-common.c,
1479         common/config/m32r/m32r-common.c,
1480         common/config/m68k/m68k-common.c,
1481         common/config/mcore/mcore-common.c,
1482         common/config/mep/mep-common.c,
1483         common/config/microblaze/microblaze-common.c,
1484         common/config/mips/mips-common.c,
1485         common/config/mmix/mmix-common.c,
1486         common/config/mn10300/mn10300-common.c,
1487         common/config/pdp11/pdp11-common.c,
1488         common/config/picochip/picochip-common.c,
1489         common/config/rs6000/rs6000-common.c,
1490         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
1491         common/config/score/score-common.c, common/config/sh/sh-common.c,
1492         common/config/sparc/sparc-common.c,
1493         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
1494         common/config/vax/vax-common.c,
1495         common/config/xstormy16/xstormy16-common.c,
1496         common/config/xtensa/xtensa-common.c: New.
1497         * config/alpha/alpha.c: Include common/common-target.h.
1498         (alpha_option_optimization_table, alpha_handle_option,
1499         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1500         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
1501         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
1502         * config/arm/arm.c (arm_option_optimization_table,
1503         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1504         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
1505         arm-common.c.
1506         * config/avr/avr.c (avr_option_optimization_table,
1507         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
1508         to avr-common.c.
1509         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
1510         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
1511         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
1512         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
1513         * config/cris/cris.c (cris_option_optimization_table,
1514         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1515         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
1516         cris-common.c.
1517         * config/fr30/fr30.c (fr30_option_optimization_table,
1518         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
1519         to fr30-common.c.
1520         * config/frv/frv.c (frv_option_optimization_table,
1521         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
1522         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
1523         * config/h8300/h8300.c (h8300_option_optimization_table,
1524         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1525         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
1526         * config/i386/i386-protos.h (ix86_handle_option): Declare.
1527         * config/i386/i386.c: Include common/common-target.h.
1528         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
1529         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
1530         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
1531         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
1532         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
1533         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
1534         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
1535         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
1536         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
1537         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
1538         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
1539         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
1540         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
1541         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
1542         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
1543         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
1544         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
1545         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
1546         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
1547         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
1548         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
1549         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
1550         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
1551         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
1552         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
1553         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
1554         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
1555         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
1556         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
1557         ix86_option_optimization_table, ix86_option_init_struct,
1558         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
1559         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1560         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
1561         i386-common.c.
1562         * config/i386/t-i386 (i386.o): Update dependencies.
1563         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
1564         * config/ia64/ia64.c (ia64_option_optimization_table,
1565         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
1566         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1567         ia64_handle_option): Move to ia64-common.c.
1568         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
1569         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
1570         * config/lm32/lm32.c (lm32_option_optimization_table,
1571         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
1572         to lm32-common.c.
1573         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
1574         m32c-common.c.
1575         * config/m32r/m32r.c (m32r_option_optimization_table,
1576         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1577         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
1578         m32r_handle_option): Move to m32r-common.c.
1579         (m32r_memory_move_cost): Remove comment referring to
1580         TARGET_HANDLE_OPTION.
1581         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
1582         Move to m68k-common.c.
1583         * config/mcore/mcore.c (mcore_option_optimization_table,
1584         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1585         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
1586         * config/mep/mep.c (mep_option_optimization_table,
1587         mep_handle_option, TARGET_HANDLE_OPTION,
1588         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
1589         Move to mep-common.c.
1590         * config/microblaze/microblaze.c
1591         (microblaze_option_optimization_table,
1592         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1593         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
1594         * config/mips/mips.c (mips_handle_option,
1595         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
1596         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
1597         mips-common.c.
1598         * config/mmix/mmix.c (mmix_option_optimization_table,
1599         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
1600         Move to mmix-common.c.
1601         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
1602         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
1603         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1604         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
1605         * config/pa/pa.c: Include common/common-target.h.
1606         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
1607         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1608         pa_handle_option): Move to pa-common.c.
1609         (pa_option_override): Use targetm_common.except_unwind_info.
1610         (pa_asm_output_mi_thunk, pa_function_section): Use
1611         targetm_common.have_named_sections.
1612         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
1613         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1614         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
1615         pdp11_handle_option, pdp11_option_init_struct): Move to
1616         pdp11-common.c.
1617         * config/picochip/picochip.c (picochip_option_optimization_table,
1618         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
1619         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
1620         * config/rs6000/rs6000.c: Include common/common-target.h.
1621         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
1622         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
1623         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
1624         rs6000_handle_option): Move to rs6000-common.c.
1625         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
1626         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
1627         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1628         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
1629         * config/s390/s390.c (processor_flags_table,
1630         s390_option_optimization_table, s390_option_init_struct,
1631         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
1632         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1633         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
1634         * config/s390/s390.h (processor_flags_table): Declare.
1635         * config/score/score.c (score_option_optimization_table,
1636         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1637         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
1638         score_handle_option): Move to score-common.c.
1639         * config/sh/sh.c (sh_option_optimization_table,
1640         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
1641         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1642         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
1643         * config/sparc/sparc.c: Include common/common-target.h.
1644         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
1645         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
1646         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
1647         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
1648         spu_option_init_struct): Move to spu-common.c.
1649         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
1650         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
1651         * config/v850/v850.c (small_memory_physical_max,
1652         v850_handle_memory_optionn v850_handle_option,
1653         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
1654         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
1655         v850-common.c.
1656         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
1657         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
1658         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
1659         Move to xtensa-common.c.
1660         * cfglayout.c: Include common/common-target.h.
1661         (fixup_reorder_chain): Use targetm_common.have_named_sections.
1662         * cfgrtl.c: Include common/common-target.h.
1663         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
1664         targetm_common.have_named_sections.
1665         * dbxout.c: Include common/common-target.h.
1666         (dbxout_function_end): Use targetm_common.have_named_sections.
1667         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
1668         targetm_common.except_unwind_info.
1669         * dwarf2out.c: Include common/common-target.h.
1670         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
1671         dwarf2out_begin_prologue, dwarf2out_frame_init,
1672         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
1673         targetm_common.except_unwind_info.
1674         * except.c: Include common/common-target.h.
1675         (init_eh, finish_eh_generation,
1676         output_one_function_exception_table): Use
1677         targetm_common.except_unwind_info.
1678         (switch_to_exception_section): Use targetm_common.have_named_sections.
1679         * explow.c: Include common/common-target.h.
1680         * expr.c: Include common/common-target.h.
1681         (build_personality_function): Use targetm_common.except_unwind_info.
1682         * function.c: Include common/common-target.h.
1683         (expand_function_end): Use targetm_common.except_unwind_info.
1684         * haifa-sched.c: Include common/common-target.h.
1685         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
1686         * lto-opts.c: Include common/common-target.h instead of target.h.
1687         (lto_reissue_options): Use targetm_common.handle_option.
1688         * opts.c: Include common/common-target.h.
1689         (target_handle_option): Use targetm_common.handle_option.
1690         (init_options_struct): Update comment referring to
1691         targetm.target_option.optimization.  Use
1692         targetm_common.default_target_flags,
1693         targetm_common.unwind_tables_default and
1694         targetm_common.option_init_struct.
1695         (default_options_optimization): Use
1696         targetm_common.option_optimization_table.
1697         (finish_options): Use targetm_common.except_unwind_info,
1698         targetm_common.unwind_tables_default,
1699         targetm_common.have_named_sections and
1700         targetm_common.supports_split_stack.
1701         * toplev.c: Include common/common-target.h.
1702         (process_options): Use targetm_common.have_named_sections.
1703         * tree-tailcall.c: Include common/common-target.h.
1704         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
1705         * tree.c: Include common/common-target.h.
1706         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
1707         * varasm.c: Include common/common-target.h.
1708         (resolve_unique_section, hot_function_section,
1709         default_function_section): Use targetm_common.have_named_sections.
1710
1711 2011-06-14  Easwaran Raman  <eraman@google.com>
1712
1713         PR rtl-optimization/44194
1714         * dse.c: Include tree-flow.h
1715         (insn_info): Add new field non_frame_wild_read.
1716         (group_info): Add new fields escaped_n and escaped_p.
1717         (kill_on_calls): New variable.
1718         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
1719         (dse_step0): Initialize kill_on_calls.
1720         (can_escape): New function.
1721         (set_usage_bits): Add additional parameter; record information
1722         about escaped locations.
1723         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
1724         (dse_step2_nospill): Set kill_on_calls based on
1725         group->escaped_n and group->escaped_n.
1726         (add_wild_read): Refactor into...
1727         (reset_active_stores): ... New function, and
1728         (free_read_records): ... New function.
1729         (add_non_frame_wild_read): New function.
1730         (scan_insn): Call add_non_frame_wild_read on non-const calls.
1731         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
1732         (dse_step5_nospill): Call scan_reads_nospill for instructions
1733         marked as non_frame_wild_read.
1734         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
1735
1736 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
1737
1738         * common/common-target-def.h, common/common-target.def,
1739         common/common-target.h, common/config/default-common.c,
1740         common/config/pa/pa-common.c: New files.
1741         * Makefile.in (common_out_file, common_out_object_file,
1742         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
1743         (OBJS-libcommon-target): Include $(common_out_object_file).
1744         (prefix.o): Update dependencies.
1745         ($(common_out_object_file), common/common-target-hooks-def.h,
1746         s-common-target-hooks-def-h): New.
1747         (s-tm-texi): Also check timestamp on common-target.def.
1748         (build/genhooks.o): Update dependencies.
1749         * config.gcc (common_out_file, target_has_targetm_common): Define.
1750         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
1751         TARGET_ALWAYS_STRIP_DOTDOT.
1752         * configure.ac (common_out_object_file): Define.
1753         (common_out_file, common_out_object_file): Substitute.
1754         (common): Create directory.
1755         * configure: Regenerate.
1756         * doc/tm.texi.in (targetm_common): Document.
1757         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
1758         * doc/tm.texi: Regenerate.
1759         * genhooks.c (hook_array): Also include common/common-target.def.
1760         * prefix.c (tm.h): Don't include.
1761         (common/common-target.h): Include.
1762         (ALWAYS_STRIP_DOTDOT): Don't define.
1763         (update_path): Use targetm_common.always_strip_dotdot instead of
1764         ALWAYS_STRIP_DOTDOT.
1765         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
1766
1767 2011-06-14  David Li  <davidxl@google.com>
1768
1769         * passes.c (execute_function_todo): Remove TODO_dump_func.
1770         (execute_one_pass): Remove TODO_dump_func.
1771         (execute_function_dump): New function.
1772         * tree-vrp.c: Remove TODO_dump_func.
1773         * regrename.c: Remove TODO_dump_func.
1774         * fwprop.c: Remove TODO_dump_func.
1775         * tree-into-ssa.c: Remove TODO_dump_func.
1776         * tree-complex.c: Remove TODO_dump_func.
1777         * tracer.c: Remove TODO_dump_func.
1778         * tree-loop-distribution.c: Remove TODO_dump_func.
1779         * postreload-gcse.c: Remove TODO_dump_func.
1780         * postreload.c: Remove TODO_dump_func.
1781         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
1782         * tree-tailcall.c: Remove TODO_dump_func.
1783         * ipa-cp.c: Remove TODO_dump_func.
1784         * final.c: Remove TODO_dump_func.
1785         * tree-emutls.c: Remove TODO_dump_func.
1786         * omp-low.c: Remove TODO_dump_func.
1787         * tree-ssa-dse.c: Remove TODO_dump_func.
1788         * tree-ssa-uncprop.c: Remove TODO_dump_func.
1789         * auto-inc-dec.c: Remove TODO_dump_func.
1790         * reorg.c: Remove TODO_dump_func.
1791         * tree-ssa-copyrename.c: Remove TODO_dump_func.
1792         * tree-ssa-ccp.c: Remove TODO_dump_func.
1793         * compare-elim.c: Remove TODO_dump_func.
1794         * mode-switching.c: Remove TODO_dump_func.
1795         * modulo-sched.c: Remove TODO_dump_func.
1796         * tree-call-cdce.c: Remove TODO_dump_func.
1797         * cse.c: Remove TODO_dump_func.
1798         * web.c: Remove TODO_dump_func.
1799         * tree-stdarg.c: Remove TODO_dump_func.
1800         * lto-streamer-out.c: Remove TODO_dump_func.
1801         * tree-ssa-math-opts.c: Remove TODO_dump_func.
1802         * tree-ssa-dom.c: Remove TODO_dump_func.
1803         * tree-nrv.c: Remove TODO_dump_func.
1804         * loop-init.c: Remove TODO_dump_func.
1805         * gimple-low.c: Remove TODO_dump_func.
1806         * ipa-inline.c: Remove TODO_dump_func.
1807         * tree-ssa-sink.c: Remove TODO_dump_func.
1808         * jump.c: Remove TODO_dump_func.
1809         * ifcvt.c: Remove TODO_dump_func.
1810         * tree-ssa-loop.c: Remove TODO_dump_func.
1811         * recog.c: Remove TODO_dump_func.
1812         * dse.c: Remove TODO_dump_func.
1813         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
1814         * matrix-reorg.c: Remove TODO_dump_func.
1815         * tree-eh.c: Remove TODO_dump_func.
1816         * regmove.c: Remove TODO_dump_func.
1817         * function.c: Remove TODO_dump_func.
1818         * tree-vectorizer.c: Remove TODO_dump_func.
1819         * ipa-split.c: Remove TODO_dump_func.
1820         * gcse.c: Remove TODO_dump_func.
1821         * tree-if-conv.c: Remove TODO_dump_func.
1822         * init-regs.c: Remove TODO_dump_func.
1823         * tree-ssa-phiopt.c: Remove TODO_dump_func.
1824         * implicit-zee.c: Remove TODO_dump_func.
1825         * lower-subreg.c: Remove TODO_dump_func.
1826         * bt-load.c: Remove TODO_dump_func.
1827         * tree-dfa.c: Remove TODO_dump_func.
1828         * except.c: Remove TODO_dump_func.
1829         * emit-rtl.c: Remove TODO_dump_func.
1830         * store-motion.c: Remove TODO_dump_func.
1831         * cfgexpand.c: Remove TODO_dump_func.
1832         * tree-cfgcleanup.c: Remove TODO_dump_func.
1833         * cfgcleanup.c: Remove TODO_dump_func.
1834         * tree-ssa-pre.c: Remove TODO_dump_func.
1835         * tree-sra.c: Remove TODO_dump_func.
1836         * tree-mudflap.c: Remove TODO_dump_func.
1837         * tree-ssa-copy.c: Remove TODO_dump_func.
1838         * cfglayout.c: Remove TODO_dump_func.
1839         * tree-ssa-forwprop.c: Remove TODO_dump_func.
1840         * tree-ssa-dce.c: Remove TODO_dump_func.
1841         * ira.c: Remove TODO_dump_func.
1842         * tree-ssa.c: Remove TODO_dump_func.
1843         * integrate.c: Remove TODO_dump_func.
1844         * tree-optimize.c: Remove TODO_dump_func.
1845         * tree-ssa-phiprop.c: Remove TODO_dump_func.
1846         * tree-object-size.c: Remove TODO_dump_func.
1847         * combine.c: Remove TODO_dump_func.
1848         * bb-reorder.c: Remove TODO_dump_func.
1849         * cprop.c: Remove TODO_dump_func.
1850         * var-tracking.c: Remove TODO_dump_func.
1851         * tree-profile.c: Remove TODO_dump_func.
1852         * tree-vect-generic.c: Remove TODO_dump_func.
1853         * reg-stack.c: Remove TODO_dump_func.
1854         * sched-rgn.c: Remove TODO_dump_func.
1855         * tree-ssa-structalias.c: Remove TODO_dump_func.
1856         * tree-switch-conversion.c: Remove TODO_dump_func.
1857         * tree-cfg.c: Remove TODO_dump_func.
1858         * tree-ssa-reassoc.c: Remove TODO_dump_func.
1859         * combine-stack-adj.c: Remove TODO_dump_func.
1860         * dce.c: Remove TODO_dump_func.
1861         * tree-ssanames.c: Remove TODO_dump_func.
1862         * regcprop.c: Remove TODO_dump_func.
1863
1864 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
1865
1866         PR middle-end/47364
1867         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
1868         and properly handle result not in Pmode.
1869
1870 2011-06-14  Robert Millan  <rmh@gnu.org>
1871
1872         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
1873         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
1874         `config/linux.h'.
1875
1876         * config/i386/kfreebsd-gnu64.h: New file.
1877         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
1878         with `i386/kfreebsd-gnu64.h'.
1879
1880         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
1881         (GNU_USER_LINK_EMULATION64): New macros.
1882         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
1883         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
1884         of hardcoding `elf_i386' and `elf_x86_64'.
1885
1886 2011-06-14  Nick Clifton  <nickc@redhat.com>
1887
1888         PR target/49403
1889         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
1890
1891         PR target/49402
1892         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
1893
1894 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
1895
1896         PR fortran/49103
1897         * tree.h (DECL_NONSHAREABLE): Define.
1898         (struct tree_decl_common): Change decl_common_unused to
1899         decl_nonshareable_flag.
1900         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
1901         Ignore vars with DECL_NONSHAREABLE bit set.
1902         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
1903         on stores to automatic aggregate vars.
1904
1905         PR rtl-optimization/49390
1906         Revert:
1907         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
1908
1909         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
1910         MEM_ALIAS_SET.
1911
1912 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
1913             Tom de Vries  <tom@codesourcery.com>
1914
1915         PR target/45098
1916         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
1917         Document changed semantics.
1918         (max_stmt_executions, max_stmt_executions_int): Declare.
1919         * tree-data-ref.c (estimated_loop_iterations)
1920         (estimated_loop_iterations_int): Move functions...
1921         * tree-ssa-loop-niter.c (estimated_loop_iterations)
1922         (estimated_loop_iterations_int): here.
1923         (record_estimate): Change nb_iterations_upper_bound and
1924         nb_iterations_estimate semantics.
1925         (max_stmt_executions, max_stmt_executions_int): New function.
1926         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
1927         (max_stmt_executions_tree): this.
1928         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
1929         estimated_loop_iterations_tree.
1930         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
1931         max_stmt_executions_int instead of estimated_loop_iterations_int.
1932         * predict.c (predict_loops): Idem.
1933         * tree-parloops.c (parallelize_loops): Idem.
1934         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
1935         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
1936         (init_omega_for_ddr_1): Idem.
1937         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
1938         (loop_prefetch_arrays): Idem
1939         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
1940         max_stmt_executions instead of estimated_loop_iterations.
1941         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
1942         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
1943         instead of nb_iterations_upper_bound.
1944
1945 2011-06-13  Jan Hubicka  <jh@suse.cz>
1946
1947         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
1948
1949 2011-06-14  Richard Henderson  <rth@redhat.com>
1950
1951         PR debug/48459
1952         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
1953         (based_loc_descr): Assert it's true.
1954         (compute_frame_pointer_to_fb_displacement): Set it, rather than
1955         aborting immediately.
1956
1957 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
1958             Mingfeng Wu  <mingfeng@faraday-tech.com>
1959
1960         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
1961
1962 2011-06-13  Jan Hubicka  <jh@suse.cz>
1963
1964         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
1965
1966 2011-06-13  Jan Hubicka  <jh@suse.cz>
1967
1968         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
1969         similarly to DECL_COMDAT.
1970         * cgraphunit.c (cgraph_analyze_function): Likewise.
1971         * ipa.c (function_and_variable_visibility): Likewise.
1972
1973 2011-06-13  Jan Hubicka  <jh@suse.cz>
1974
1975         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
1976         BINFO_VIRTUALS when streaming for ltrans unit.
1977
1978 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
1979
1980         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
1981         (movdi_internal64): Same.
1982
1983 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
1984
1985         PR target/44618
1986         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
1987         a set of similar patterns, where the MATCH_OPERAND for the function
1988         argument is replaced with individual references to hardware registers.
1989         (save_fpregs_<mode>): Ditto
1990         (restore_gpregs_<mode>): Ditto
1991         (return_and_restore_gpregs_<mode>): Ditto
1992         (return_and_restore_fpregs_<mode>): Ditto
1993         (return_and_restore_fpregs_aix_<mode>): Ditto
1994
1995 2011-06-13  Jan Hubicka  <jh@suse.cz>
1996
1997         * ipa-utils.c (postorder_stack): New structure.
1998         (ipa_reverse_postorder): Handle aliases.
1999
2000 2011-06-13  Jan Hubicka  <jh@suse.cz>
2001
2002         * ipa-inline.c (reset_edge_caches): Walk aliases.
2003         (update_caller_keys): Do not test inlinability of aliases.
2004         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
2005         (do_estimate_growth): Fix typo.
2006
2007 2011-06-13  Jan Hubicka  <jh@suse.cz>
2008
2009         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
2010         (can_remove_node_now_p): ... here; handle same comdat groups.
2011         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
2012         (inline_call): Update use of can_remove_node_now_p.
2013
2014 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2015
2016         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
2017         condition to disallow non-identical memory locations.
2018         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
2019         preference to bit manipulation instructions.
2020
2021 2011-06-13  Jan Hubicka  <jh@suse.cz>
2022
2023         * cgraph.c (cgraph_for_node_thunks_and_aliases,
2024         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
2025         (nonremovable_p): New function.
2026         (cgraph_can_remove_if_no_direct_calls_p): New function.
2027         (used_from_object_file_p): New functoin.
2028         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
2029         references from aliases.
2030         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
2031         * ipa-inline.c (check_caller_edge): New function.
2032         (want_inline_function_called_once_p): Use it; accept aliases called
2033         once, too.
2034         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
2035
2036 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2037
2038         PR target/48454
2039         * config/arm/neon.md (vec_pack_trunc): Set the lengths
2040         correctly for the case with Quad vectors.
2041
2042 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
2043            Ira Rosen  <ira.rosen@linaro.org>
2044
2045         PR tree-optimization/49352
2046         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
2047         all, make sure loop_use_stmt after the loop is a def stmt of a used
2048         SSA_NAME that is the only one defined inside of the loop.  Don't
2049         check for COND_EXPR and GIMPLE_BINARY_RHS.
2050         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
2051         check_reduction is true.
2052
2053 2011-06-11  Jan Hubicka  <jh@suse.cz>
2054
2055         PR middle-end/49373
2056         * ipa.c (cgraph_externally_visible_p): Check resolution info.
2057
2058 2011-06-11  Jan Hubicka  <jh@suse.cz>
2059
2060         PR middle-end/48836
2061         * ipa-inline-transform.c: Include tree-pass.h
2062         (inline_transform): Set TODO_update_ssa_only_virtuals.
2063         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
2064
2065 2011-06-11  Jan Hubicka  <jh@suse.cz>
2066
2067         PR middle-end/49378
2068         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
2069         aliases and thunks.
2070
2071 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
2072
2073         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
2074         Take number of iterations to peel into account for equally frequent
2075         misalignment values.
2076
2077 2011-06-11  Jan Hubicka  <jh@suse.cz>
2078
2079         * lto-streamer-out.c (produce_symtab): Stream out the newly
2080         represented aliases.
2081
2082 2011-06-11  Jan Hubicka  <jh@suse.cz>
2083
2084         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
2085         varying args.
2086         (ipa_update_after_lto_read): Likewise.
2087         (ipa_write_node_info): Do not sream call_with_var_arguments.
2088         (ipa_read_node_info): Likewise.
2089
2090 2011-06-11  Jan Hubicka  <jh@suse.cz>
2091
2092         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
2093
2094 2011-06-11  Jan Hubicka  <jh@suse.cz>
2095
2096         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
2097         (lto_symtab_resolve_can_prevail_p): Likewise.
2098         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
2099         * cgraph.c (same_body_aliases_done): New global var.
2100         (cgraph_same_body_alias_1): Rename to ...
2101         (cgraph_create_function_alias): ... this one; reorg to new
2102         representation.
2103         (cgraph_same_body_alias): Use cgraph_create_function_alias;
2104         record references when asked to.
2105         (cgraph_add_thunk): Fix formating.
2106         (cgraph_get_node): Kill same body alias code.
2107         (cgraph_node_for_asm): Likewise.
2108         (cgraph_remove_same_body_alias): Remove.
2109         (cgraph_remove_node): Kill same body alias code.
2110         (cgraph_mark_address_taken_node): Mark also the aliased function
2111         as having address taken.
2112         (dump_cgraph_node): Dump same body aliases.
2113         (cgraph_for_node_thunks_and_aliases): Update for new alias
2114         representation.
2115         (cgraph_for_node_and_aliases): Likewise.
2116         * cgraph.h (same_body): Kll pointer.
2117         (same_body_alias): Update comment.
2118         (same_body_aliases_done): Declare.
2119         (cgraph_remove_same_body_alias): Remove declaration.
2120         (cgraph_create_function_alias): Declare.
2121         (cgraph_process_same_body_aliases): Declare.
2122         (cgraph_function_with_gimple_body_p): Check for alias.
2123         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
2124         (cgraph_alias_aliased_node): New function.
2125         (cgraph_function_node): Update for new aliases.
2126         (cgraph_function_or_thunk_node): Likewise.
2127         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
2128         (inline_call): Remove dead aliases.
2129         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
2130         name hack for same body aliases.
2131         (clone_of_p): Look through aliases.
2132         (verify_cgraph_node): Verify aliases.
2133         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
2134         (cgraph_process_same_body_aliases): New function.
2135         (process_function_and_variable_attributes): Disable weakref warning on
2136         alias.
2137         (cgraph_analyze_functions): Handle aliases.
2138         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
2139         (assemble_thunks): Rename to ...
2140         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
2141         (cgraph_expand_function): Remove alias output code.
2142         (cgraph_output_in_order): Skip aliases.
2143         (cgraph_preserve_function_body_p): Aliases don't need preserving.
2144         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
2145         (ipa_record_reference): Do not assert on alias references.
2146         (ipa_ref_has_aliases_p): New function.
2147         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
2148         (ipa_ref_has_aliases_p): Declare.
2149         * lto-cgraph.c (lto_output_node): Handle aliases.
2150         (input_node): Likewise.
2151         * lto-streamer-out.c (lto_output): Skip aliases.
2152         (produce_symtab): Kill same_body_alias code.
2153         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
2154         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
2155         * ipa-inline.c (update_caller_keys): Walk aliases.
2156         (inline_small_functions): Fix thinko in previous patch.
2157         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
2158         (function_and_variable_visibility): Do not walk same body aliases.
2159         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
2160         (ipa_pta_execute): Use it.
2161
2162 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
2163
2164         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
2165         (*vec_dupv2df): Rename from vec_dupv2df.
2166         (vec_dupv2df): New expander.
2167
2168 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
2169
2170         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
2171
2172 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
2173
2174         * config/i386/i386.md: Use default value in "isa" attribute.
2175         * config/i386/sse.md: Ditto.
2176         * config/i386/mmx.md: Ditto.
2177
2178 2011-06-10  Wei Guozhi  <carrot@google.com>
2179
2180         PR target/45335
2181         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
2182         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
2183         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
2184         related peephole2.
2185         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
2186         related peephole2.
2187         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
2188         (arm_legitimate_ldrd_p): New prototype.
2189         (arm_output_ldrd): New prototype.
2190         * config/arm/arm.c (arm_check_ldrd_operands): New function.
2191         (arm_legitimate_ldrd_p): New function.
2192         (arm_output_ldrd): New function.
2193
2194 2011-06-10  David Li  <davidxl@google.com>
2195
2196         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
2197         * passes.c (passr_eq): New function.
2198         (create_pass_tab): New function.
2199         (pass_traverse): New function.
2200         (dump_one_pass): New function.
2201         (dump_pass_list): New function.
2202         (dump_passes): New function.
2203
2204 2011-06-10  Jan Hubicka  <jh@suse.cz>
2205
2206         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
2207         setting the nothrow flag.
2208         * ipa-reference.c (propagate): Skip aliases.
2209         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
2210         (propagate_nothrow): Skip aliases; do not update cgraph.
2211         (local_pure_const): Do not update cgraph.
2212         * tree-profile.c (tree_profiling): Do fixup_cfg.
2213
2214 2011-06-10  Jan Hubicka  <jh@suse.cz>
2215
2216         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
2217         (cgraph_local_node_p): ... here; handle aliases.
2218         (has_addr_references_p): Break out from ...;
2219         (cgraph_remove_unreachable_nodes) ... here.
2220
2221 2011-06-10  Jan Hubicka  <jh@suse.cz>
2222
2223         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
2224         * common.opt (flag_inline_functions_called_once): Do not
2225         initialize to 1.
2226
2227 2011-06-10  Jan Hubicka  <jh@suse.cz>
2228
2229         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
2230         (ipcp_initialize_node_lattices): Do not deal with aliases;
2231         Do not try to propagate through thunks.
2232         (ipcp_change_tops_to_bottom): Do not deal with aliases.
2233
2234 2011-06-10  Jan Hubicka  <jh@suse.cz>
2235
2236         * ipa-prop.c (ipa_write_node_info): Stream jump functions
2237         for indirect calls.
2238         (ipa_read_node_info): Likewise.
2239
2240 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2241
2242         PR lto/49302
2243         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
2244         (build_and_insert_call): Likewise.
2245         (build_and_insert_ref): New.
2246         (gimple_expand_builtin_pow): Minor cleanup.
2247         (gimple_expand_builtin_cabs): New.
2248         (execute_cse_sincos): Add case for BUILT_IN_CABS.
2249
2250 2011-06-10  Jan Hubicka  <jh@suse.cz>
2251
2252         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
2253         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
2254         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
2255         (ipcp_propagate_stage): Skip aliases when propagating.
2256         (ipcp_need_redirect_p): Skip aliases.
2257         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
2258         collect_callers_of_node.
2259         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
2260         for aliases.
2261         (ipa_compute_jump_functions): Look through aliases.
2262
2263 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2264
2265         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
2266
2267 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
2268
2269         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
2270         Adjust comments.
2271         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
2272
2273 2011-06-10  Jan Hubicka  <jh@suse.cz>
2274
2275         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
2276         Update call of gimple_get_virt_method_for_binfo.
2277         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
2278         refuse_thunks parameter.
2279         (gimple_fold_call): Update.
2280         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
2281
2282 2011-06-10  Jan Hubicka  <jh@suse.cz>
2283
2284         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
2285         (not_all_callers_have_enough_arguments_p): ... this one; turn into
2286         worker for cgraph_for_node_and_aliases.
2287         (convert_callers_for_node): Break out from ...
2288         (convert_callers): ... here.
2289         (modify_function): Use collect_callers_of_node.
2290         (ipa_early_sra): Use cgraph_for_node_and_aliases.
2291
2292 2011-06-10  Richard Guenther  <rguenther@suse.de>
2293
2294         PR tree-optimization/49361
2295         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
2296         when not already in gimple form.
2297
2298 2011-06-10  Richard Guenther  <rguenther@suse.de>
2299
2300         PR bootstrap/49344
2301         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
2302         FOR_EACH_PHI_OR_STMT_USE.
2303
2304 2011-06-10  Jan Hubicka  <jh@suse.cz>
2305
2306         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
2307         (clone_inlined_nodes): ... here.
2308         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
2309         to real destination prior inlining.
2310         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
2311         can_early_inline_edge_p, want_early_inline_function_p,
2312         want_early_inline_function_p, want_inline_small_function_p,
2313         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
2314         edge_badness, update_all_callee_keys, lookup_recursive_calls,
2315         add_new_edges_to_heap, inline_small_functions, flatten_function,
2316         inline_always_inline_functions, early_inline_small_functions): Use
2317         cgraph_function_or_thunk_node.
2318         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
2319         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
2320         (do_estimate_edge_growth_1): Break out from ...
2321         (do_estimate_growth) ... here; walk aliases.
2322         (inline_generate_summary): Skip aliases.
2323
2324 2011-06-10  Richard Guenther  <rguenther@suse.de>
2325
2326         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
2327         forward when combining, visit inserted stmts when a stmt was changed.
2328
2329 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
2330
2331         * tree.h (error_operand_p): Add.
2332         * dbxout.c (dbxout_type_fields): Use the latter.
2333         * c-decl.c (add_stmt): Likewise.
2334         * gimplify.c (omp_add_variable, omp_notice_variable,
2335         gimplify_scan_omp_clauses): Likewise.
2336
2337 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
2338
2339         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
2340         when a value is actually passed in regs.
2341
2342 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
2343             Laurent Rougé  <laurent.rouge@menta.fr>
2344
2345         * doc/invoke.texi (SPARC options): Add -mflat.
2346         * config/sparc/sparc.opt: Likewise.
2347         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
2348         (sparc_flat_expand_prologue): Declare.
2349         (sparc_flat_expand_epilogue): Likewise.
2350         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
2351         (CPP_ENDIAN_SPEC): Replace with...
2352         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
2353         (CPP_SPEC): Adjust to above change.
2354         (EXTRA_SPECS): Likewise.
2355         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
2356         (INCOMING_REGNO): Likewise.
2357         (OUTGOING_REGNO): Likewise.
2358         (LOCAL_REGNO): Likewise.
2359         (SETUP_FRAME_ADDRESSES): Likewise.
2360         (FIXED_REGISTERS): Set 0 for %fp.
2361         (CALL_USED_REGISTERS): Likewise.
2362         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
2363         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
2364         (RETURN_ADDR_REGNUM): Define.
2365         (RETURN_ADDR_RTX): Use it.
2366         (INCOMING_RETURN_ADDR_REGNUM): Define.
2367         (INCOMING_RETURN_ADDR_RTX): Use it.
2368         (DWARF_FRAME_RETURN_COLUMN): Likewise.
2369         (EH_RETURN_REGNUM): Define.
2370         (EH_RETURN_STACKADJ_RTX): Use it.
2371         (EH_RETURN_HANDLER_RTX): Delete.
2372         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
2373         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
2374         Delete.
2375         (struct machine_function): Add frame_size, apparent_frame_size,
2376         frame_base_reg, frame_base_offset, n_global_fp_regs and
2377         save_local_in_regs_p fields.
2378         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
2379         sparc_frame_base_offset, sparc_n_global_fp_regs,
2380         sparc_save_local_in_regs_p): New macros.
2381         (sparc_option_override): Error out if -fcall-saved-REG is specified
2382         for Out registers.
2383         (eligible_for_restore_insn): Fix formatting.
2384         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
2385         (eligible_for_sibcall_delay): Likewise.
2386         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
2387         (sparc_legitimate_address_p): Adjust to above change.
2388         (save_global_or_fp_reg_p): New predicate.
2389         (return_addr_reg_needed_p): Likewise.
2390         (save_local_or_in_reg_p): Likewise.
2391         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
2392         (SORR_SAVE, SORR_RESTORE): Delete.
2393         (sorr_pred_t): New typedef.
2394         (sorr_act_t): New enum.
2395         (save_or_restore_regs): Rename to...
2396         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
2397         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
2398         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
2399         mechanism.  Add CFI information for double-word saves in 32-bit mode.
2400         (emit_adjust_base_to_offset): New function extracted from...
2401         (emit_save_or_restore_regs): ...this.  Rename the rest to...
2402         (emit_save_or_restore_regs_global_fp_regs): ...this.
2403         (emit_save_or_restore_regs_local_in_regs): New function.
2404         (gen_create_flat_frame_[123]): New functions.
2405         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
2406         (sparc_flat_expand_prologue): New function.
2407         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
2408         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
2409         (sparc_flat_expand_epilogue): New function.
2410         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
2411         (output_return): Likewise.
2412         (output_sibcall): Likewise.
2413         (sparc_output_mi_thunk): Likewise.
2414         (sparc_frame_pointer_required): Likewise.
2415         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
2416         function optimization.
2417         * config/sparc/sparc.md (flat): New attribute.
2418         (prologue): Add TARGET_FLAT handling.
2419         (save_register_window): Disable if TARGET_FLAT.
2420         (create_flat_frame_[123]): New patterns.
2421         (epilogue): Add TARGET_FLAT handling.
2422         (sibcall_epilogue): Likewise.
2423         (eh_return): New expander.
2424         (eh_return_internal): New insn and splitter.
2425         (return_internal): Add TARGET_FLAT handling.
2426         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
2427         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
2428         (nonlocal_goto): Add TARGET_FLAT handling.
2429         * config/sparc/t-elf: Add -mflat multilib.
2430         * config/sparc/t-leon: Likewise.
2431
2432 2011-06-10  Jan Hubicka  <jh@suse.cz>
2433
2434         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
2435         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
2436         (self_recursive_p): Use cgraph_function_node.
2437         (propagate_pure_const): Likewise.
2438         (propagate_nothrow): Likewise.
2439         * ipa-reference.c (ipa_reference_get_not_read_global): Use
2440         cgraph_function_node.
2441         (propagate_bits): Likewise.
2442         (propagate): Likewise.
2443
2444 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2445             Richard Earnshaw  <rearnsha@arm.com>
2446
2447         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
2448         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
2449         (*thumb2_movdi_vfp): Delete.
2450         (*arm_movdi_vfp_cortexa8): Delete.
2451         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
2452         (*movdi_vfp_cortexa8): Likewise.
2453
2454 2011-06-10  Richard Guenther  <rguenther@suse.de>
2455
2456         * stor-layout.c (initialize_sizetypes): Give names to all
2457         sizetype kinds.
2458
2459 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
2460
2461         PR tree-optimization/49318
2462         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
2463         irrelevant pattern statements.
2464
2465 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
2466
2467         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
2468
2469         PR bootstrap/49354
2470         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
2471         to last assignment.
2472
2473 2011-06-09  Jan Hubicka  <jh@suse.cz>
2474
2475         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
2476         do not recompute reachable flag.
2477         (cgraph_finalize_function, cgraph_analyze_functions): Set
2478         redefined_extern_inline here.
2479
2480 2011-06-09  Jan Hubicka  <jh@suse.cz>
2481
2482         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
2483         (cgraph_only_called_directly_p): ... this one; bring offline.
2484         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
2485         varpool_used_from_object_file_p): Drop names from the declaratoin.
2486         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
2487         collect_callers_of_node): New.
2488         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
2489         (cgraph_edge_recursive_p): Use cgraph_function_node.
2490         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
2491         (cgraph_node_cannot_be_local_p_1): Break out from ...
2492         (cgraph_node_can_be_local_p): ... here; walk aliases.
2493         (cgraph_for_node_thunks_and_aliases): New function.
2494         (cgraph_for_node_and_aliases): New function.
2495         (cgraph_make_node_local_1): Break out from ...
2496         (cgraph_make_node_local) ... here; use
2497         cgraph_for_node_thunks_and_aliases.
2498         (cgraph_set_nothrow_flag_1): Break out from ...
2499         (cgraph_set_nothrow_flag) ... here;
2500         use cgraph_for_node_thunks_and_aliases.
2501         (cgraph_set_const_flag_1): Break out from ...
2502         (cgraph_set_const_flag) ... here;
2503         use cgraph_for_node_thunks_and_aliases.
2504         (cgraph_set_pure_flag_1): Break out from ...
2505         (cgraph_set_pure_flag) ... here;
2506         use cgraph_for_node_thunks_and_aliases.
2507         (cgraph_propagate_frequency_1): Break out from ...
2508         (cgraph_propagate_frequency) ... here; use
2509         cgraph_for_node_thunks_and_aliases.
2510         (cgraph_used_from_object_file_p): Do not care about aliases.
2511         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
2512         New functions.
2513         (collect_callers_of_node_1, collect_callers_of_node): New functions.
2514
2515 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
2516
2517         PR rtl-optimization/49154
2518         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
2519         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
2520         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
2521         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
2522         * config/cris/cris.h (cris_register_move_cost): Remove
2523         !TARGET_V32 code.  Tweak comments.
2524
2525 2011-06-09  Jan Hubicka  <jh@suse.cz>
2526
2527         * cgraphbuild.c (record_eh_tables): Mark personality function as having
2528         address taken.
2529
2530 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
2531
2532         PR rtl-optimization/49154
2533         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
2534         is a matching slot in the hashtable, assign it to classes_ptr.
2535
2536         PR rtl-optimization/49154
2537         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
2538         register classes.
2539         * doc/tm.texi: Regenerate.
2540
2541 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
2542
2543         PR target/49307
2544         * config/sh/sh.md (UNSPEC_CHKADD): New.
2545         (chk_guard_add): New define_insn_and_split.
2546         (symGOT_load): Use chk_guard_add instead of blockage.
2547
2548 2011-06-09  Kai Tietz  <ktietz@redhat.com>
2549
2550         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
2551
2552 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2553
2554         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
2555
2556 2011-06-09  Wei Guozhi  <carrot@google.com>
2557
2558         PR target/46975
2559         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
2560         (peephole2 for conditional move): Generate 16 bit instructions.
2561
2562 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
2563
2564         * config/i386/i386.md (*movdi_internal_rex64): Merge
2565         alternatives 6 and 8.
2566
2567 2011-06-09  David Li  <davidxl@google.com>
2568
2569         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
2570         * passes.c (passr_eq): New function.
2571         (create_pass_tab): New function.
2572         (pass_traverse): New function.
2573         (dump_one_pass): New function.
2574         (dump_pass_list): New function.
2575         (dump_passes): New function.
2576
2577 2011-06-09  David Li  <davidxl@google.com>
2578
2579         * tree-complex.c (tree_lower_complex): Gate cleanup.
2580         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
2581         (execute_optimize_stdarg): Ditto.
2582         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
2583         (execute_cleanup_eh_1): Ditto.
2584         (execute_cleanup_eh): Ditto.
2585         * gcse.c (gate_rtl_pre): Ditto.
2586         (execute_rtl_pre): Ditto.
2587         * except.c (finish_eh_generation): Ditto.
2588         (convert_to_eh_region_ranges): Ditto.
2589         * cprop.c (one_cprop_pass): Ditto.
2590
2591 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
2592
2593         PR target/48673
2594         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
2595         in all basic blocks.
2596
2597 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2598
2599         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
2600         (HAVE_ENABLE_EXECUTE_STACK): Define.
2601         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
2602         (HAVE_ENABLE_EXECUTE_STACK): Define.
2603         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2604         (HAVE_ENABLE_EXECUTE_STACK): Define.
2605         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
2606         (ENABLE_EXECUTE_STACK): Remove.
2607         (HAVE_ENABLE_EXECUTE_STACK): Define.
2608         [IN_LIBGCC2]: Don't include <windows.h>.
2609         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
2610         (HAVE_ENABLE_EXECUTE_STACK): Define.
2611         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
2612         (HAVE_ENABLE_EXECUTE_STACK): Define.
2613         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
2614         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
2615         (HAVE_ENABLE_EXECUTE_STACK): Define.
2616         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
2617         (HAVE_ENABLE_EXECUTE_STACK): Define.
2618         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
2619         (HAVE_ENABLE_EXECUTE_STACK): Define.
2620         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
2621         (HAVE_ENABLE_EXECUTE_STACK): Define.
2622         * config/alpha/alpha.c (alpha_trampoline_init): Test
2623         HAVE_ENABLE_EXECUTE_STACK.
2624         * config/i386/i386.c (ix86_trampoline_init): Likewise.
2625         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2626         (sparc64_initialize_trampoline): Likewise.
2627         * libgcc2.c [L_enable_execute_stack]: Remove.
2628         * system.h (ENABLE_EXECUTE_STACK): Poison.
2629         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
2630         * doc/tm.texi: Regenerate.
2631         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
2632
2633 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
2634
2635         PR middle-end/49308
2636         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
2637         variable.  After resetting and rescanning insn continue with previous
2638         statement.
2639
2640 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2641
2642         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
2643         (gcc_cv_ld_hidden): Likewise.
2644         * configure: Regenerate.
2645         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
2646         (ix86_stack_protect_fail): Mark unused.
2647         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
2648         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
2649         [TARGET_MACHO]: Don't define.
2650         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
2651         (TARGET_STACK_PROTECT_FAIL): Likewise.
2652         (rs6000_stack_protect_fail): Mark unused.
2653         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
2654         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
2655
2656 2011-06-08  Andi Kleen  <ak@linux.intel.com>
2657
2658         * varasm.c (get_section): Print location of other conflict
2659         for section conflicts.
2660
2661 2011-06-08  Andi Kleen  <ak@linux.intel.com>
2662
2663         * config/i386/driver-i386.c (host_detect_local_cpu):
2664         Add model 0x2d Intel CPU.
2665
2666 2011-06-08  Andi Kleen  <ak@linux.intel.com>
2667
2668         * reginfo.c (global_regs_decl): Add.
2669         (globalize_reg): Add decl parameter. Compute location.  Pass location
2670         to warnings and add inform. Store decl in global_regs_decl.
2671         * rtl.h (globalize_reg): Update prototype.
2672         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
2673
2674 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
2675
2676         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
2677
2678 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2679
2680         PR target/49305
2681         * config/sh/predicates.md (general_movsrc_operand): Check
2682         mode for memory with indexed address for QI and HImode.
2683         (general_movdst_operand): Likewise.
2684
2685 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
2686
2687         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
2688
2689 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
2690
2691         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
2692         (num_ssa_operands): Likewise.
2693         (op_iter_init_phiuse): Forward-declare.
2694         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
2695
2696 2011-06-08  Nick Clifton  <nickc@redhat.com>
2697
2698         * doc/invoke.texi (ARM Options): Update description of
2699         -mthumb-interwork.
2700
2701 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
2702
2703         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2704         unknown Intel family 0x6 CPUs.
2705
2706 2011-06-08  Martin Jambor  <mjambor@suse.cz>
2707
2708         * tree-sra.c (mark_rw_status): Removed.
2709         (analyze_access_subtree): New parameter parent instead of
2710         mark_read and mark_write, propagate from that.
2711
2712 2011-06-08  Julian Brown  <julian@codesourcery.com>
2713
2714         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
2715         for double-precision helper functions in hard-float mode if only
2716         single-precision arithmetic is supported in hardware.
2717
2718 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
2719
2720         PR rtl-optimization/49303
2721         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
2722         code_motion_path_driver returned 0 or 1.
2723         (sel_region_finish): Clear h_d_i_d.
2724
2725 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2726
2727         * config/sh/sh.c (prepare_move_operands): Set pic register
2728         appropriately for global and local dynamic tls models even
2729         if flag_pic is unset.
2730
2731 2011-06-07  Jason Merrill  <jason@redhat.com>
2732
2733         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
2734
2735 2011-06-07  Xinliang David Li  <davidxl@google.com>
2736         * passes.c (enable_disable_pass): Handle assembler name.
2737         (is_pass_explicitly_enabled_or_disabled): Ditto.
2738
2739 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2740
2741         PR tree-optimization/48497
2742         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
2743
2744 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2745
2746         PR tree-optimization/46728
2747         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
2748         to use gimple_val_nonnegative_real_p.
2749         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
2750         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
2751
2752 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
2753
2754         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
2755
2756 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
2757
2758         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
2759         constant vectors.
2760
2761 2011-06-07  Richard Guenther  <rguenther@suse.de>
2762
2763         * stor-layout.c (initialize_sizetypes): Initialize all
2764         sizetypes based on target definitions.
2765         (set_sizetype): Remove.
2766         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
2767         * tree.h (set_sizetype): Remove.
2768
2769 2011-06-07  Nick Clifton  <nickc@redhat.com>
2770
2771         * config.gcc: Unify V850 architecture options and add support for
2772         newer V850 architectures.
2773         * config/v850/t-v850e: Delete.
2774
2775 2011-06-07  Richard Guenther  <rguenther@suse.de>
2776
2777         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
2778         Call set_sizetype from here.
2779
2780 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
2781
2782         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
2783         (*maddhisi4tb, *maddhisi4tt): New define_insns.
2784
2785 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
2786             Andrew Stubbs  <ams@codesourcery.com>
2787
2788         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
2789         multiplies.
2790         * doc/md.texi (Canonicalization of Instructions): Document widening
2791         multiply canonicalization.
2792
2793 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
2794
2795         PR gcov-profile/49299
2796         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
2797
2798 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
2799
2800         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
2801         a pointer.
2802         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
2803         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
2804         vect_recog_pow_pattern): Likewise.
2805         (vect_pattern_recog_1): Remove declaration.
2806         (widened_name_p): Remove declaration.  Add new argument to specify
2807         whether to check that both types are either signed or unsigned.
2808         (vect_recog_widen_mult_pattern): Update documentation.  Handle
2809         unsigned patterns and multiplication by constants.
2810         (vect_pattern_recog_1): Update vect_recog_func references.  Use
2811         statement information from the statement returned from pattern
2812         detection functions.
2813         (vect_pattern_recog): Update vect_recog_func reference.
2814         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
2815         multiplication by a constant use the type of the other operand.
2816
2817 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
2818
2819         PR rtl-optimization/49145
2820         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
2821
2822 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
2823
2824         PR debug/49262
2825         * dwarf2out.c (native_encode_initializer): Decrement count in each
2826         iteration.
2827
2828         PR debug/49294
2829         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
2830         non-MODE_INT modes.
2831
2832         PR c++/49264
2833         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
2834         if stmt folded into nothing.
2835         * tree-inline.c (fold_marked_statements): If a builtin at the end of
2836         a bb folded into nothing, just update cgraph edges and move to next bb.
2837         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
2838         to be NULL.  Don't compute count and frequency if new_call is NULL.
2839
2840 2011-06-04  Diego Novillo  <dnovillo@google.com>
2841
2842         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
2843         (cgraph.o): Likewise.
2844         (cgraphunit.o): Likewise.
2845         * cgraphunit.c: Include lto-streamer.h
2846         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
2847         if LTO is enabled.
2848         * lto-streamer-in.c (unpack_value_fields): Call
2849         streamer_hooks.unpack_value_fields if set.
2850         (lto_materialize_tree): For unhandled nodes, first try to
2851         call lto_streamer_hooks.alloc_tree, if it exists.
2852         (lto_input_ts_decl_common_tree_pointers): Move reading of
2853         DECL_INITIAL to lto_streamer_read_tree.
2854         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
2855         (lto_streamer_read_tree): New.
2856         (lto_reader_init): Rename from lto_init_reader.
2857         Move initialization code to lto/lto.c.
2858         * lto-streamer-out.c (pack_value_fields): Call
2859         streamer_hooks.pack_value_fields if set.
2860         (lto_output_tree_ref): For tree nodes that are not normally indexable,
2861         call streamer_hooks.indexable_with_decls_p before giving up.
2862         (lto_output_ts_decl_common_tree_pointers): Move handling
2863         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
2864         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
2865         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
2866         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
2867         (lto_streamer_write_tree): New.
2868         (lto_output): Call lto_streamer_init directly.
2869         (lto_writer_init): Remove.
2870         * lto-streamer.c (streamer_hooks): New.
2871         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
2872         instead of lto_preload_common_nodes.
2873         (lto_is_streamable): Move from lto-streamer.h
2874         (lto_streamer_hooks_init): New.
2875         (streamer_hooks): New.
2876         (streamer_hooks_init): New.
2877         * lto-streamer.h (struct output_block): Forward declare.
2878         (struct lto_input_block): Likewise.
2879         (struct data_in): Likewise.
2880         (struct bitpack_d): Likewise.
2881         (struct streamer_hooks): Declare.
2882         (streamer_hooks): Declare.
2883         (lto_streamer_hooks_init): Declare.
2884         (lto_streamer_write_tree): Declare.
2885         (lto_streamer_read_tree): Declare.
2886         (streamer_hooks_init): Declare.
2887         (lto_is_streamable): Move to lto-streamer.c
2888
2889 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2890
2891         * longlong.h (smul_ppmm): The resulting register pair contains the
2892         higher order word first.
2893
2894 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2895
2896         PR tree-optimization/46728
2897         * builtins.c (powi_table): Remove.
2898         (powi_lookup_cost): Remove.
2899         (powi_cost): Remove.
2900         (expand_powi_1): Remove.
2901         (expand_powi): Remove.
2902         (expand_builtin_pow_root): Remove.
2903         (expand_builtin_pow): Remove.
2904         (expand_builtin_powi): Eliminate handling of constant exponent.
2905         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
2906
2907 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
2908
2909         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
2910
2911 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
2912
2913         * dce.c (reset_unmarked_insns_debug_uses): New.
2914         (delete_unmarked_insns): Skip debug insns.
2915         (prescan_insns_for_dce): Likewise.
2916         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
2917         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
2918         active reg can be found.
2919         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
2920         (convert_regs_1): Use it.
2921
2922 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
2923
2924         * tree-pretty-print.c (dump_function_header): Add flags.
2925         Don't dump decl_uid with nouid.
2926         * tree-pretty-print.h (dump_function_header): Adjust.
2927         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
2928         * passes.c (pass_init_dump_file): Pass dump_flags on.
2929         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
2930
2931 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
2932
2933         PR bootstrap/49270
2934         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
2935
2936 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
2937
2938         PR tree-optimization/49243
2939         * calls.c (setjmp_call_p): Also check if fndecl has the
2940         returns_twice attribute.
2941
2942 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2943
2944         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
2945         -ffast-math etc.
2946
2947 2011-06-06  Richard Henderson  <rth@redhat.com>
2948             Georg-Johann Lay  <avr@gjlay.de>
2949
2950         PR target/42210
2951         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
2952         New predicates.
2953         * config/avr/avr.md ("insv"): New insn expander.
2954         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
2955         "*insv.not.io", "*insv.reg"): New insns.
2956
2957 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
2958
2959         PR target/49285
2960         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
2961         to nonimmediate_operand from memory_operand for the operand that is to
2962         be forced to memory by the expander.  Lose the constraints.
2963
2964 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
2965
2966         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
2967         EH return when delayed branches are disabled.
2968
2969 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
2970
2971         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
2972         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
2973         calculation.
2974         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
2975         Simplify MODE_V1DF and MODE_V2SF handling.
2976         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
2977         Simplify MODE_SF handling.
2978
2979 2011-06-04  Jan Hubicka  <jh@suse.cz>
2980
2981         PR tree-optimization/48893
2982         PR tree-optimization/49091
2983         PR tree-optimization/49179
2984         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
2985         Bounds check.
2986
2987 2011-06-04  Jan Hubicka  <jh@suse.cz>
2988
2989         PR lto/48954
2990         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
2991         bitmaps.
2992
2993 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
2994
2995         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
2996
2997 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
2998
2999         PR target/49281
3000         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
3001         to be strictly smaller than 1 << shiftcount.
3002
3003 2011-06-04  Jan Hubicka  <jh@suse.cz>
3004
3005         PR tree-optimize/48929
3006         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
3007         of empty predicate.
3008
3009 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
3010
3011         PR debug/48333
3012         * calls.c (emit_call_1): Prefer the __builtin declaration of
3013         builtin functions.
3014
3015 2011-06-03   Diego Novillo  <dnovillo@google.com>
3016
3017         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
3018         (lto_input_tree_pointers): Likewise.
3019         * lto-streamer-out.c (pack_value_fields): Likewise.
3020         (lto_output_tree_pointers): Likewise.
3021         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
3022         and OPTIMIZATION_NODE.
3023
3024 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3025
3026         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
3027         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
3028         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
3029         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
3030         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
3031         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
3032         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
3033         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
3034         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
3035         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
3036         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
3037         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
3038         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
3039         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
3040         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
3041         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
3042         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
3043         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
3044         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
3045         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
3046         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
3047         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
3048         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
3049         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
3050         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
3051         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
3052         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
3053         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
3054         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
3055         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
3056         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
3057         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
3058         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
3059         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
3060         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
3061         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
3062         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
3063         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
3064         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
3065         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
3066         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
3067         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
3068         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
3069         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
3070         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
3071         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
3072         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
3073         * system.h (MD_UNWIND_SUPPORT): Poison.
3074         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
3075         * doc/tm.texi: Regenerate.
3076         * unwind-dw2.c: Include md-unwind-support.h instead of
3077         MD_UNWIND_SUPPORT.
3078         * config/ia64/unwind-ia64.c: Likewise.
3079         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
3080
3081 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
3082
3083         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
3084
3085 2011-06-03  Richard Henderson  <rth@redhat.com>
3086             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3087
3088         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
3089         (sigill_hdlr): Correct insn, insn size.
3090         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
3091
3092 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3093
3094         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
3095         t-slibgcc-dummy.
3096         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
3097         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
3098         * config/mips/t-iris: Remove.
3099         * config/mips/t-irix6: New file.
3100         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
3101
3102 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3103
3104         * Makefile.in (LIB2ADDEHDEP): Remove.
3105         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
3106         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
3107         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
3108         * config/t-darwin (LIB2ADDEHDEP): Remove.
3109         * config/t-freebsd (LIB2ADDEHDEP): Remove.
3110         * config/t-linux (LIB2ADDEHDEP): Remove.
3111
3112 2011-06-03  Diego Novillo  <dnovillo@google.com>
3113
3114         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
3115         (lto_register_var_decl_in_symtab): Likewise.
3116         (lto_register_function_decl_in_symtab): Likewise.
3117         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
3118         logic to uniquify_nodes.
3119
3120 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3121
3122         * config/alpha/t-osf5: Remove.
3123         * config/alpha/t-osf-pthread: Remove.
3124         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
3125         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
3126
3127 2011-06-03  Julian Brown  <julian@codesourcery.com>
3128
3129         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
3130         (strongarm1110): Use strongarm tuning.
3131         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
3132         * config/arm/arm.c (arm_strongarm_tune): New.
3133         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
3134         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
3135         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
3136         setting, using previous defaults or 1 for Cortex-A5.
3137         (arm_option_override): Set max_insns_skipped from current tuning.
3138
3139 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
3140
3141         * doc/install.texi (Options specification): Document --with-specs.
3142
3143 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3144
3145         * config/arm/neon.md (orndi3_neon): Actually split it.
3146
3147 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
3148
3149         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
3150         * var-tracking.c (reverse_op): Limite recurse depth to 5.
3151
3152 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
3153
3154         PR debug/47590
3155         * target.def (delay_sched2, delay_vartrack): New.
3156         * doc/tm.texi.in: Update.
3157         * doc/tm.texi: Rebuild.
3158         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
3159         * var-tracking.c (gate_handle_var_tracking): Likewise.
3160         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
3161         (bfin_flag_var_tracking): Drop.
3162         (output_file_start): Don't save and override flag_var_tracking.
3163         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
3164         (bfin_reorg): Test original variables.
3165         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
3166         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
3167         (ia64_flag_var_tracking): Drop.
3168         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
3169         (ia64_file_start): Don't save and override flag_var_tracking.
3170         (ia64_override_options_after_change): Ditto
3171         flag_schedule_insns_after_reload.
3172         (ia64_reorg): Test original variables.
3173         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
3174         (picochip_flag_var_tracking): Drop.
3175         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
3176         (picochip_option_override): Don't save and override
3177         flag_schedule_insns_after_reload.
3178         (picochip_asm_file_start): Ditto flag_var_tracking.
3179         (picochip_reorg): Test original variables.
3180         * config/spu/spu.c (spu_flag_var_tracking): Drop.
3181         (TARGET_DELAY_VARTRACK): Define.
3182         (spu_var_tracking): New.
3183         (spu_machine_dependent_reorg): Call it.
3184         (asm_file_start): Don't save and override flag_var_tracking.
3185
3186 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3187
3188         PR target/49163
3189         * config/sh/predicates.md (general_movsrc_operand): Return 0
3190         for memory and memory subreg of which address is an invalid
3191         indexed address for QI and HImode.
3192         (general_movdst_operand): Likewise.
3193
3194 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3195
3196         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
3197         edges only, when there is a non-local label in the function.
3198         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
3199
3200 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
3201
3202         * config/i386/constraints.md (Y3): New register constraint.
3203         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
3204         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
3205         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
3206         *sse2_interleave_lowv2df.
3207
3208 2011-06-02  Julian Brown  <julian@codesourcery.com>
3209
3210         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
3211         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
3212         (arm_cortex_a5_tune): New.
3213
3214 2011-06-02  Julian Brown  <julian@codesourcery.com>
3215
3216         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
3217         * config/arm/arm.c (arm_default_branch_cost): New.
3218         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
3219         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
3220         (arm_fa726_tune): Set branch_cost field using
3221         arm_default_branch_cost.
3222         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
3223         current_tune structure.
3224         * dojump.c (tm_p.h): Include file.
3225
3226 2011-06-02  Julian Brown  <julian@codesourcery.com>
3227
3228         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
3229         tuning.
3230         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
3231         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
3232         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
3233         field.
3234         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
3235         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
3236         (arm_fa726te_tune): Add prefer_constant_pool setting.
3237         (arm_v6t2_tune, arm_cortex_tune): New.
3238         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
3239         prefer_constant_pool setting.
3240
3241 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
3242
3243         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
3244         switch statement.
3245         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
3246         (*movdf_internal) <case 6,7,8>: Ditto.
3247
3248         * config/i386/constraints.md (Y4): New register constraint.
3249         * config/i386/sse.md (vec_set<mode>_0): Merge with
3250         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
3251         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
3252         *vec_extractv2di_1_sse.
3253         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
3254         and *vec_concatv2di_rex64_sse.
3255
3256 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
3257
3258         PR target/48807
3259         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
3260         of cgraph_local_info for null before attempting to use it.
3261
3262 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3263
3264         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
3265         (current_function_dynamic_alloc_count): Delete.
3266         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
3267         (expand_builtin_nonlocal_goto): Remove obsolete comment.
3268         (expand_builtin_update_setjmp_buf): Remove dead code.
3269         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
3270         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
3271         support.
3272         * function.c (instantiate_virtual_regs): Likewise.
3273         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
3274         for a block with a single abnormal incoming edge.
3275         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
3276         (SETJMP_VIA_SAVE_AREA): Delete.
3277         * config/sparc/sparc-protos.h (load_got_register): Declare.
3278         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
3279         (load_got_register): Make global.
3280         (sparc_frame_pointer_required): Add 'static'.
3281         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
3282         (sparc_builtin_setjmp_frame_value): New function.
3283         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
3284         (save_stack_nonlocal): New expander.
3285         (restore_stack_nonlocal): Likewise.
3286         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
3287         (nonlocal_goto_internal): New insn.
3288         (goto_handler_and_restore): Delete.
3289         (builtin_setjmp_setup): Likewise.
3290         (do_builtin_setjmp_setup): Likewise.
3291         (setjmp): Likewise.
3292         (builtin_setjmp_receiver): New expander.
3293
3294 2011-06-01  David Li  <davidxl@google.com>
3295
3296         PR middle-end/49261
3297         * tree-pretty-print.c (dump_function_header): Format cleanup.
3298
3299 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3300
3301         PR target/49238
3302         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
3303         needed when original operands are used for msw_skip comparison.
3304
3305 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
3306
3307         PR debug/49250
3308         * var-tracking.c (add_uses, add_stores): Don't call
3309         cselib_subst_to_values on ENTRY_VALUE.
3310
3311 2011-06-01  Diego Novillo  <dnovillo@google.com>
3312
3313         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
3314         output_record_start with LTO_null instead of output_zero.
3315         (lto_output_ts_binfo_tree_pointers): Likewise.
3316         (lto_output_tree): Likewise.
3317         (output_eh_try_list): Likewise.
3318         (output_eh_region): Likewise.
3319         (output_eh_lp): Likewise.
3320         (output_eh_regions): Likewise.
3321         (output_bb): Likewise.
3322         (output_function): Likewise.
3323         (output_unreferenced_globals): Likewise.
3324         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
3325         instead of NUM_TREE_CODES.
3326         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
3327         (lto_output_int_in_range): Change << to >> when shifting VAL.
3328
3329 2011-06-01  Diego Novillo  <dnovillo@google.com>
3330
3331         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
3332         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
3333
3334 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
3335
3336         PR target/45074
3337         * optabs.h (valid_multiword_target_p): Declare.
3338         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
3339         doing multi-word operations.
3340         * optabs.c (expand_binop): Likewise.
3341         (expand_doubleword_bswap): Likewise.
3342         (expand_absneg_bit): Likewise.
3343         (expand_unop): Likewise.
3344         (expand_copysign_bit): Likewise.
3345         (multiword_target_p): New function.
3346
3347 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
3348
3349         PR rtl-optimization/48830
3350         PR rtl-optimization/48808
3351         PR rtl-optimization/48792
3352         * reload.c (push_reload): Check contains_reg_of_mode.
3353         * reload1.c (strip_paradoxical_subreg): New function.
3354         (gen_reload_chain_without_interm_reg_p): Use it to handle
3355         paradoxical subregs.
3356         (emit_output_reload_insns, gen_reload): Likewise.
3357
3358 2011-06-01  David Li  <davidxl@google.com>
3359
3360         * predict.c : Change pass name
3361         * ipa.c: Ditto.
3362         * dce.c: Ditto.
3363         * tree-profile.c: Ditto.
3364         * except.c: Ditto.
3365
3366 2011-06-01  David Li  <davidxl@google.com>
3367
3368         * tree-pretty-print.c (dump_function_header): New function.
3369         * final.c (rest_of_clean_state): Use header dumper.
3370         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
3371         * passes.c (pass_init_dump_file): Use header dumper.
3372
3373 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
3374
3375         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
3376         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
3377         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
3378         New functions.
3379         (mem_loc_descriptor): Use them.
3380
3381         * var-tracking.c (create_entry_value): New function.
3382         (vt_add_function_parameter): Use it.
3383
3384 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3385
3386         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
3387         Include <signal.h>, <ucontext.h>.
3388         (sigill_caught): Define.
3389         (sigill_hdlr): New function.
3390         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
3391         insns can be executed.
3392         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
3393         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
3394
3395 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3396
3397         * config/t-slibgcc-darwin: Move to ...
3398         * config/t-slibgcc-dummy: ... this.  Clarify comments.
3399         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
3400         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
3401         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
3402         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
3403         Remove i386/t-crtstuff from tmake_file.
3404         (i[34567]86-*-solaris2*): Remove t-svr4,
3405         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
3406         t-slibgcc-dummy.
3407         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
3408         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
3409         sparc/t-crtfm from tmake_file.
3410         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
3411         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
3412         Remove extra_parts.
3413         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
3414         * config/i386/t-nwld (SHLIB_LINK): Remove.
3415         * config/i386/t-rtems-i386: Rename to ...
3416         * config/i386/t-rtems: ... this.
3417         ($(T)crti.o, $(T)crtn.o): Remove.
3418         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
3419         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
3420         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
3421         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
3422         EXTRA_MULTILIB_PARTS): Remove.
3423         * config/sparc/t-sol2-64: Likewise.
3424         * config/sparc/t-sol2: Remove.
3425         * config/sparc/t-crtin: Remove.
3426         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
3427         * config/i386/gmon-sol2.c: Remove.
3428         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
3429         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
3430         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
3431         * config/i386/sol2-gc1.asm: Remove.
3432         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
3433         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
3434         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
3435         * config/t-slibgcc-sld: Remove.
3436
3437 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
3438
3439         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
3440         base_type_for_mode with op_mode instead of mode.
3441
3442 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
3443
3444         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
3445         Cortex-A15.
3446         * config/arm/arm-tune.md: Regenerate.
3447         * config/arm/arm-tables.opt: Regenerate.
3448         * config/arm/arm.c (FL_DIV): Rename...
3449         (FL_THUMB_DIV): ... to this.
3450         (FL_ARM_DIV): Define.
3451         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
3452         (arm_arch_hwdiv): Remove.
3453         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
3454         (arm_issue_rate): Add cortexr5.
3455         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
3456         __ARM_ARCH_EXT_IDIV__.
3457         (TARGET_IDIV): Define.
3458         (arm_arch_hwdiv): Remove.
3459         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
3460         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
3461         (divsi3, udivsi3): New patterns.
3462         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
3463         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
3464
3465 2011-06-01  Martin Jambor  <mjambor@suse.cz>
3466
3467         * ipa-utils.c (ipa_dfs_info): New field scc_no.
3468         * ipa-utils.c (searchc): Set scc_no.
3469
3470 2011-06-01  Martin Jambor  <mjambor@suse.cz>
3471
3472         * ipa-utils.c (searchc_env): New field allow_overwritable.
3473         (searchc): do not ignore edges to overwritable nodes if indicated
3474         by env->allow_overwritable.
3475         (ipa_reduced_postorder): Set env.allow_overwritable.
3476
3477 2011-06-01  Richard Guenther  <rguenther@suse.de>
3478
3479         * tree.c (free_lang_data): Do not reset boolean_type_node nor
3480         char_type_node.
3481         * lto-streamer.c (lto_record_common_node): Take node pointer,
3482         do not register types.
3483         (lto_preload_common_nodes): Explicitly skip preloading nodes
3484         that differ between frontends.
3485
3486 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
3487
3488         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
3489         NON_FLOAT_REGS.
3490
3491 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
3492
3493         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
3494         parameter value for dump. Dump cost on outermost call only.
3495         (rs6000_memory_move_cost): Dump cost on outermost call only.
3496
3497 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
3498
3499         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
3500         DW_OP_GNU_convert ops.
3501
3502         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
3503         cselib_preserve_constants.
3504         (cselib_lookup_1): If cselib_preserve_constants,
3505         a new VALUE is being created for REG and there is a VALUE for the
3506         same register in wider mode, add another loc with lowpart SUBREG of
3507         the wider VALUE.
3508         (cselib_subst_to_values): Handle ENTRY_VALUE.
3509         * var-tracking.c  (replace_expr_with_values): Return NULL for
3510         ENTRY_VALUE too.
3511         * dwarf2out.c (convert_descriptor_to_signed): New function.
3512         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
3513         instead of two shifts.
3514         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
3515         the right mode if needed.
3516         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
3517         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
3518         convert_descriptor_to_signed.
3519         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
3520         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
3521
3522         PR target/48688
3523         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
3524
3525 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
3526
3527         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
3528         of X87MODEI12 and SWI48x instead of SSEMODEI24.
3529         (SWI248x): New mode iterator, rename from X87MODEI.
3530         (X87MODEI): Remove mode iterator.
3531         (X87MODEI12): Ditto.
3532         (SSEMODEI24): Ditto.
3533
3534 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
3535
3536         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
3537         * doc/invoke.texi: Document max-vartrack-expr-depth.
3538         * var-tracking.c (EXPR_DEPTH): New.
3539         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
3540
3541 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
3542
3543         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
3544         * config/i386/sse.md: Add n to negated FMA pattern names.
3545
3546 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
3547
3548         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
3549
3550 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
3551
3552         * gengtype-state.c (read_state_params_structs): Initialize previous.
3553
3554 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
3555
3556         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
3557         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
3558
3559 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
3560
3561         * config/i386/i386.md (*movtf_internal): Avoid allocating general
3562         registers.  Penalize F*r->o alternative to prevent partial memory
3563         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
3564         CONST_DOUBLE immediates when optimizing function for size.  Do not move
3565         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
3566         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
3567         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
3568         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
3569         alternatives.
3570         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
3571
3572         (fp_register_operand splitters): Use fp_register_operand
3573         constraint.  Do not use FP_REG_P in insn condition.
3574         (any_fp_register_operand splitters): Use any_fp_register_operand
3575         constraint.  Do not use ANY_FP_REG_P in insn condition.
3576
3577 2011-05-31  Jan Hubicka  <jh@suse.cz>
3578
3579         * cgraph.h (cgraph_inline_failed_t): Give enum a name
3580         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
3581         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
3582         (lto_output_edge): Use output_enum and var_len_unsigned.
3583         (lto_output_varpool_node): Likewise.
3584         (input_overwrite_node): Do not take resolution parameter;
3585         extract it from a bitpack.
3586         (input_node): Do not read resolution; use input_enum and
3587         var_len_unsigned.
3588         (input_varpool_node): Likewise.
3589         (input_edge): Likewise.
3590         (input_cgraph_1): Likewise.
3591
3592 2011-05-31  Richard Guenther  <rguenther@suse.de>
3593
3594         * gimple.c (gimple_register_canonical_type): Do not register
3595         any types via gimple_register_type.
3596
3597 2011-05-31  Jan Hubicka  <jh@suse.cz>
3598
3599         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
3600         of thunks.
3601
3602 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
3603
3604         PR rtl-optimization/49235
3605         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
3606         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
3607
3608 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
3609
3610         PR tree-optimization/49093
3611         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
3612         data references.
3613
3614 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
3615
3616         PR debug/49047
3617         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
3618         for concrete functions containing the code of cloned functions.
3619
3620 2011-05-31  Richard Guenther  <rguenther@suse.de>
3621
3622         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
3623         to ...
3624         (forward_propagate_into_comparison_1): ... this.
3625         (forward_propagate_comparison): Rename to ...
3626         (forward_propagate_into_comparison): ... this.  Split out
3627         real forward propagation code to ...
3628         (forward_propagate_comparison): ... this.
3629         (forward_propagate_into_gimple_cond): Remove looping.
3630         (forward_propagate_into_cond): Likewise.
3631         (simplify_not_neg_expr): Return whether we have done something.
3632         (simplify_gimple_switch): Likewise.
3633         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
3634         (ssa_forward_propagate_and_combine): ... this.  Re-structure
3635         to do a forward forward-propagation walk on BBs and a backward
3636         stmt combining walk on BBs.  Consistently re-scan changed statements.
3637         (pass_forwprop): Adjust.
3638
3639 2011-05-30  Ian Lance Taylor  <iant@google.com>
3640
3641         * godump.c (go_format_type): Correct length of name added to
3642         obstack for anonymous field.
3643
3644 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3645
3646         PR target/49186
3647         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
3648         part of the second operand is 0.
3649
3650 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
3651
3652         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
3653         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
3654         to memory for !TARGET_MEMORY_MISMATCH_STALL.
3655         (*movdf_internal_rex64): Do not penalize F->r alternative.
3656         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
3657         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
3658         when optimizing function for size.  Do not move CONST_DOUBLEs
3659         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
3660         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
3661         SUBREGs.  Do not check for MEM_P operands in the insn condition,
3662         check for ANY_FP_REGNO_P instead.
3663         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
3664         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
3665         function for speed.
3666         * config/i386/i386.c (ix86_option_override_internal): Do not
3667         set TARGET_INTEGER_DFMODE_MOVES here.
3668
3669 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
3670
3671         PR target/49168
3672         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
3673
3674 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
3675
3676         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
3677         DW_TAG_rvalue_reference_type even for
3678         -gdwarf-4 -fno-debug-types-section.
3679
3680 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3681
3682         PR tree-optimization/46728
3683         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
3684         (build_and_insert_binop): New.
3685         (gimple_expand_builtin_pow): Reorder args for
3686         build_and_insert_call; use build_and_insert_binop; add more
3687         optimizations for fractional exponents.
3688
3689 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
3690
3691         PR bootstrap/49190
3692
3693         Revert:
3694         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
3695
3696         * tree.h (struct tree_identifier): Inherit from tree_typed, not
3697         tree_common.
3698         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
3699         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
3700         TS_BASE instead of TS_COMMON.
3701         * varasm.c (assemble_name): Remove assert.
3702
3703 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
3704
3705         * config.gcc: Keep obselete list sorted.
3706
3707 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
3708             Eric Botcazou  <ebotcazou@adacore.com>
3709
3710         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
3711         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
3712         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
3713         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
3714         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
3715
3716 2011-05-30  Richard Guenther  <rguenther@suse.de>
3717
3718         * gimple.c (gimple_types_compatible_p_1): Compare record
3719         and union type members properly.
3720
3721 2011-05-30  Richard Guenther  <rguenther@suse.de>
3722
3723         PR tree-optimization/49210
3724         * ipa-split.c (split_function): Care for the case where the call
3725         result is not trivially convertible to the result holding variable.
3726
3727 2011-05-30  Richard Guenther  <rguenther@suse.de>
3728
3729         PR tree-optimization/49218
3730         * tree-vrp.c (adjust_range_with_scev): Properly check whether
3731         overflow occured.
3732
3733 2011-05-30  Richard Guenther  <rguenther@suse.de>
3734
3735         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
3736         New function split out from ...
3737         (forward_propagate_into_gimple_cond): ... here.  Adjust.
3738         (forward_propagate_into_cond): Likewise.
3739         (forward_propagate_comparison): Also propagate into
3740         comparisons on assignment RHS.  Change return value to
3741         behave similar to forward_propagate_into_cond.
3742         (tree_ssa_forward_propagate_single_use_vars): Handle
3743         strict-overflow warnings properly for forward_propagate_comparison.
3744
3745 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3746
3747         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
3748         from plugin linker.
3749         * configure: Regenerate.
3750
3751 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
3752
3753         PR tree-optimization/49199
3754         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
3755         non-reduction operands are either defined in the loop or by induction.
3756
3757 2011-05-29  Xinliang David Li  <davidxl@google.com>
3758
3759         * opts-global.c (handle_common_deferred_options): Handle new options.
3760         * passes.c (register_one_dump_file): Call register_pass_name.
3761         (execute_one_pass): Check explicit enable/disable flag.
3762         (passr_hash): New function.
3763         (passr_eq): Ditto.
3764         (register_pass_name): Ditto.
3765         (get_pass_by_name): Ditto.
3766         (pass_hash): Ditto.
3767         (pass_eq): Ditto.
3768         (enable_pass): Ditto.
3769         (disable_pass): Ditto.
3770         (is_pass_explicitly_enabled_or_disabled): Ditto.
3771
3772 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
3773
3774         * config/i386/i386.md (*movoi_internal_avx): Use
3775         standard_sse_constant_opcode for alternative 0.
3776         (*movti_internal_sse): Ditto.
3777         (*movti_internal_rex64): Use standard_sse_constant_opcode for
3778         alternative 2.
3779         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
3780         sselog1 type moves.
3781         (*movsi_internal): Ditto.
3782         (*movdi_internal): Ditto.  Add ssecvt type moves.
3783
3784 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
3785
3786         PR target/48830
3787         * rtlanal.c (simplify_subreg_regno): Adjust comment.
3788
3789 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
3790
3791         PR rtl-optimization/49095
3792         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
3793         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
3794
3795 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
3796
3797         PR target/43995
3798         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
3799         recurse_p argument.  Only follow register copies if it is set,
3800         and prevent mips_find_pic_call_symbol from recursing.
3801         (mips_find_pic_call_symbol): Add a recurse_p argument.
3802         Pass it to mips_pic_call_symbol_from_set.
3803         (mips_annotate_pic_calls): Update accordingly.
3804
3805 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
3806
3807         * emit-rtl.c (try_split): Use a loop to search for
3808         NOTE_INSN_CALL_ARG_LOCATIONs.
3809
3810 2011-05-29  Richard Guenther  <rguenther@suse.de>
3811
3812         PR tree-optimization/49217
3813         * ipa-pure-const.c (propagate_pure_const): Fix typos.
3814
3815 2011-05-28  Jan Hubicka  <jh@suse.cz>
3816
3817         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
3818         length.
3819         (string_slot_free): Remove
3820         (create_output_block): Initialize obstack.
3821         (destroy_output_block): Free obstack.
3822         (lto_string_index): Add PERSISTENT parameter; do not duplicate
3823         the string unless it needs to be added into the hash.
3824         (lto_output_string_with_length): Add persistent attribute;
3825         handle NULL strings.
3826         (lto_output_string): Add PERSISTENT parameter.
3827         (output_string_cst, output_identifier): Simplify.
3828         (lto_output_location_bitpack): Update.
3829         (lto_output_builtin_tree): Update.
3830         * lto-streamer.h (struct output_block): Add obstack.
3831         (lto_output_string, lto_output_string_with_length): Remove
3832         declarations; functions are static now.
3833
3834 2011-05-28  Jan Hubicka  <jh@suse.cz>
3835
3836         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
3837         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
3838         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
3839         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
3840         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
3841         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
3842         unpack_ts_decl_with_vis_value_fields,
3843         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
3844         lto_get_builtin_tree): Use enum and variable length i/o.
3845         * basic-block.h (profile_status_d): Add PROFILE_LAST.
3846         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
3847         New functions.
3848         (bp_pack_enum, bp_unpack_enum): New macros.
3849
3850 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
3851
3852         * genrecog.c: Remove redundant forward declarations.
3853
3854 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
3855
3856         * config.gcc: Deprecate mips*-*-openbsd*.
3857
3858 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
3859
3860         PR bootstrap/49195
3861         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
3862         for match_op_dup.
3863
3864 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
3865
3866         PR middle-end/48981
3867         * gengtype.c (vec_prefix_type): New function.
3868         (note_def_vec): Use vec_prefix_type and change the length
3869         attribute to be based on the prefix.
3870         * vec.c: Include coretypes.h before vec.h.
3871         (struct vec_prefix): Remove.
3872         (vec_gc_p_reserve): Change the offsetof to sizeof.
3873         (vec_gc_p_reserve_exact): Likewise.
3874         (vec_heap_p_reserve): Likewise.
3875         (vec_heap_p_reserve_exact): Likewise.
3876         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
3877         (vec_stack_p_reserve): Change the offsetof to sizeof.
3878         (vec_stack_p_reserve_exact): Likewise.
3879         * vec.h (struct vec_prefix): New struct definition.
3880         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
3881         (VEC_T_GTY(T,B)): Likewise.
3882         (DEF_VEC_FUNC_P(T)): Use prefix field.
3883         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
3884         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
3885
3886 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3887
3888         PR tree-optimization/46728
3889         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
3890         (powi_as_mults): Add gimple_set_location.
3891         (build_and_insert_call): New.
3892         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
3893         0.5, 0.25, 0.75, 1./3., or 1./6.
3894
3895 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
3896
3897         * doc/contrib.texi: Update copyright years.
3898         (Contributors): Add Zdenek Sojka.
3899
3900 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
3901
3902         * c-decl.c (c_push_function_context): Copy the current statement
3903         list stack.
3904         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
3905         (finish_struct): Call building_stmt_list_p instead of checking
3906         cur_stmt_list.
3907         * c-parser.c (c_parser_postfix_expression): Likewise.
3908         * c-typeck.c (c_end_compound_stmt): Likewise.
3909         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
3910         * tree-iterator.c (stmt_list_cache): Change to a VEC.
3911         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
3912         (free_stmt_list): Likewise.
3913         * tree.h (struct tree_statement_list): Include typed_tree instead
3914         of tree_common.
3915         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
3916         as TS_TYPED instead of TS_COMMON.
3917
3918 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3919             Uros Bizjak  <ubizjak@gmail.com>
3920
3921         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
3922         (HAVE_AS_IX86_TLSGDPTL): Define.
3923         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
3924         (HAVE_AS_IX86_TLSLDMPLT): Define.
3925         * configure: Regenerate.
3926         * config.in: Regenerate.
3927         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
3928         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
3929         TARGET_SUN_TLS, use @tlsgdplt or @plt.
3930         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
3931         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
3932         @tlsldmplt or @plt.
3933         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
3934
3935 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
3936
3937         * sched-int.h (struct _haifa_deps_insn_data): New members cond
3938         and reverse_cond.
3939         (INSN_COND, INSN_REVERSE_COND): New macros.
3940         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
3941         once.
3942         (sched_get_condition_with_rev): Cache the results, and look them up
3943         if possible.
3944         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
3945         are clobbered by the current insn.
3946         * target.def (exposed_pipline): New sched data hook.
3947         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
3948         * doc/tm.texi: Regenerate.
3949
3950 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3951
3952         PR tree-optimization/49170
3953         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
3954         sincos or cexp.
3955
3956 2011-05-27  Richard Guenther  <rguenther@suse.de>
3957
3958         PR middle-end/49189
3959         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
3960         of comparisons.
3961
3962 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
3963
3964         * haifa-sched.c (sched_scan_info): Remove.
3965         (schedule_block): Call sched_extend_luids rather than sched_init_luids
3966         with NULL args.
3967         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
3968         Remove functions.
3969         (sched_scan): Remove.
3970         (sched_extend_luids): Renamed from luids_extend_insn and no longer
3971         static.  All callers changed.
3972         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
3973         static.  All callers changed.
3974         (sched_init_luids): Remove all arguments except the first.  All
3975         callers changed.  Don't use sched_scan.
3976         (haifa_init_h_i_d): Likewise.
3977         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
3978         manually rather than using sched_init_luids.  Likewise with
3979         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
3980         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
3981         rather than sched_init_luids with NULL args.
3982         * sel-sched-ir.c (new_insns): Remove variable.
3983         (sched_scan): New static function, previously in haifa-sched.c.  Remove
3984         all arguments but the first two; all callers changed.
3985         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
3986         rather than sched_init_luids.
3987         (sel_init_bbs): Remove second argument.  All callers changed.
3988         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
3989         with NULL arguments.
3990         (create_insn_rtx_from_pattern): Likewise.
3991         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
3992         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
3993         (sched_init_insn_luid, sched_extend_luids): Declare.
3994         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
3995         declarations.
3996
3997 2011-05-27  Richard Guenther  <rguenther@suse.de>
3998
3999         PR middle-end/49177
4000         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
4001         A CMP B ? (T) true : (T) false for non-integral types T again.
4002
4003 2011-05-27  Jan Hubicka  <jh@suse.cz>
4004
4005         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
4006         so 0 means NULL string.
4007         (lto_output_string_with_length): ... here.
4008         (lto_output_string, output_string_cst, output_identifier): Update
4009         handling of NULL strings.
4010         (lto_output_location_bitpack): New function.
4011         (lto_output_location): Use it.
4012         (lto_output_tree_ref): Use output_record_start.
4013         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
4014         len values.
4015         * lto-streamer-in.c (string_for_index): Break out from ...; offset
4016         values by 1.
4017         (input_string_internal): ... here;
4018         (input_string_cst, input_identifier, lto_input_string): Update handling
4019         of NULL strings.
4020         (lto_input_location_bitpack): New function
4021         (lto_input_location): Use it.
4022         (unpack_ts_type_common_value_fields): Pack align & alias in var len
4023         values.
4024         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
4025         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
4026         (bp_pack_value): Sanity check the value range.
4027         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
4028         New functions.
4029         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
4030         New functions.
4031
4032 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
4033
4034         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
4035         call_arg_location instructions down the floor.
4036
4037 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
4038
4039         PR rtl-optimization/49154
4040         * ira.c (setup_pressure_classes): Process class without sublcasses
4041         as a candidate for pressure classes.
4042
4043 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
4044
4045         PR rtl-optimization/48575
4046         * genrecog.c (position_type): New enum.
4047         (position): New structure.
4048         (decision): Use position structure instead of a string.
4049         (root_pos, peep2_insn_pos_list): New variables.
4050         (next_position, compare_positions): New functions.
4051         (new_decision): Use position structures instead of strings.
4052         (maybe_both_true): Likewise.
4053         (change_state): Likewise.
4054         (write_tree): Likewise.
4055         (make_insn_sequence): Likewise.
4056
4057 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
4058
4059         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
4060         TS_BASE instead of TS_COMMON.
4061         (find_decls_types_r): Check for TS_TYPED structure before looking at
4062         TREE_TYPE.
4063         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
4064         Add chain field.
4065         (BLOCK_CHAIN): Use new chain field.
4066
4067 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
4068
4069         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
4070         moves expensive on Power7 also.
4071
4072 2011-05-26  Richard Guenther  <rguenther@suse.de>
4073
4074         * fold-const.c (fold_unary_loc): Remove bogus code.
4075
4076 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
4077
4078         * tree.h (struct tree_identifier): Inherit from tree_typed, not
4079         tree_common.
4080         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
4081         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
4082         TS_BASE instead of TS_COMMON.
4083         * varasm.c (assemble_name): Remove assert.
4084
4085 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
4086
4087         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
4088         substituted first.
4089         * libgcc-std.ver: Delete file.
4090
4091 2011-05-26  Richard Guenther  <rguenther@suse.de>
4092
4093         PR tree-optimization/48702
4094         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
4095         only when we know the base address is within bounds.
4096         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
4097         assume the base address of TARGET_MEM_REFs is in bounds.
4098
4099 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4100
4101         PR target/49099
4102         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
4103         declaration in TARGET_SOLARIS.
4104
4105 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
4106
4107         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
4108         The instruction is then expanded explicitly.
4109         (supported_compare): Callable instruction.
4110         (compare): Likewise.
4111
4112 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
4113
4114         PR c++/49165
4115         * gimplify.c (shortcut_cond_r): Don't special case
4116         COND_EXPRs if they have void type on one of their arms.
4117
4118 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
4119
4120         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
4121         to reduce duplication, and to achieve a slightly more logical order
4122         of operations.
4123
4124 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
4125
4126         PR tree-optimization/49161
4127         * tree-vrp.c (struct case_info): New type.
4128         (compare_case_labels): Sort case_info structs instead of
4129         trees, and not primarily by CASE_LABEL uids but by
4130         label_for_block indexes.
4131         (find_switch_asserts): Put case labels into struct case_info
4132         array instead of TREE_VEC, adjust sorting, compare label_for_block
4133         values instead of CASE_LABELs.
4134
4135 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4136
4137         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
4138         ("orndi3_neon"): Likewise.
4139         ("bic<mode>3_neon"): Likewise.
4140
4141 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
4142
4143         PR tree-optimization/49038
4144         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
4145         Ensure at least one epilogue iteration if required by data
4146         accesses with gaps.
4147         * tree-vectorizer.h (struct _loop_vec_info): Add new field
4148         to mark loops that require peeling for gaps.
4149         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
4150         (vect_get_known_peeling_cost): Take peeling for gaps into
4151         account.
4152         (vect_transform_loop): Generate epilogue if required by data
4153         access with gaps.
4154         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
4155         loop as requiring an epilogue if there are gaps in the end of
4156         the strided group.
4157
4158 2011-05-25  Ian Lance Taylor  <iant@google.com>
4159
4160         * godump.c (go_format_type): Output the first field with a usable
4161         Go type, if any.
4162
4163 2011-05-25  Ian Lance Taylor  <iant@google.com>
4164
4165         * godump.c (go_format_type): Check for invalid type names, pointer
4166         target types, and struct field types.
4167
4168 2011-05-25  Jason Merrill  <jason@redhat.com>
4169
4170         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
4171
4172 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
4173
4174         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
4175
4176 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
4177
4178         * config/i386/i386.md (*movqi_extv_1)): Put back
4179         "register_operand" check in "type" calculation.
4180         (*movqi_extzv_2): Likewise.
4181
4182 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
4183
4184         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
4185
4186 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
4187
4188         PR bootstrap/49160
4189         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
4190         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
4191         __divxc3, __divtc3): Wrap definitions in #ifndef.
4192
4193 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
4194
4195         PR target/49142
4196         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
4197         "register_operand" check and replace q_regs_operand with
4198         QIreg_operand in "type" calculation.
4199         (*movqi_extv_1): Likewise.
4200         (*movqi_extzv_2_rex64): Likewise.
4201         (*movqi_extzv_2): Likewise.
4202
4203         * config/i386/predicates.md (QIreg_operand): New.
4204
4205 2011-05-25  Richard Guenther  <rguenther@suse.de>
4206
4207         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
4208         type-based offset disambiguation, streamline MEM_REF and
4209         TARGET_MEM_REF handling.
4210
4211 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
4212
4213         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
4214         (bdesc_special_args): Add pause intrinsic.
4215
4216         * config/i386/i386.md (UNSPEC_PAUSE): New.
4217         (pause): Likewise.
4218         (*pause): Likewise.
4219         * config/i386/ia32intrin.h (__pause): Likewise.
4220
4221         * doc/extend.texi (X86 Built-in Functions): Add documentation for
4222         pause intrinsic.
4223
4224 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4225
4226         PR tree-optimization/46728
4227         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
4228         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
4229
4230 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
4231
4232         * tree.h (struct tree_exp): Inherit from struct tree_typed.
4233         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
4234         instead of TS_COMMON.
4235
4236 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
4237
4238         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
4239         LIBGCC2_GNU_PREFIX is defined.
4240         (__N): New macro.
4241         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
4242         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
4243         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
4244         __clz_tab): Define using __N.
4245         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
4246         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
4247         * target.def (libfunc_gnu_prefix): New hook.
4248         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
4249         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
4250         * doc/tm.texi: Regenerate.
4251         * system.h (LIBGCC2_GNU_PREFIX): Poison.
4252         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
4253         account.
4254         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
4255         (init_optabs): Likewise for the bswap libfuncs.
4256         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
4257         and divide.
4258         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
4259         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
4260         * libgcc-std.ver: Remove.
4261         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
4262         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
4263         libgcc-std.ver.
4264         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4265         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
4266         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
4267         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
4268         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
4269         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4270         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4271         * config/fixed-bit.h (FIXED_OP): Define differently depending on
4272         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
4273         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
4274
4275 2011-05-25  Jan Hubicka  <jh@suse.cz>
4276
4277         * lto-streamer-out.c (output_record_start): Use lto_output_enum
4278         (lto_output_tree): Use output_record_start.
4279         * lto-streamer-in.c (input_record_start): Use lto_input_enum
4280         (lto_get_pickled_tree): Use input_record_start.
4281         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
4282         (lto_value_range_error): New function.
4283         * lto-streamer.h (lto_value_range_error): Declare.
4284         (lto_output_int_in_range, lto_input_int_in_range): New functions.
4285         (lto_output_enum, lto_input_enum): New macros.
4286
4287 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4288
4289         * common.opt (flag_stack_usage_info): New variable.
4290         (-Wstack-usage): New option.
4291         * doc/invoke.texi (Warning options): Document -Wstack-usage.
4292         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
4293         <OPT_fstack_usage>: Likewise.
4294         * toplev.c (output_stack_usage): Handle -Wstack-usage.
4295         * calls.c (expand_call): Test flag_stack_usage_info variable instead
4296         of flag_stack_usage.
4297         (emit_library_call_value_1): Likewise.
4298         * explow.c (allocate_dynamic_stack_space): Likewise.
4299         * function.c (instantiate_virtual_regs ): Likewise.
4300         (prepare_function_start): Likewise.
4301         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
4302         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
4303         * config/arm/arm.c (arm_expand_prologue): Likewise.
4304         (thumb1_expand_prologue): Likewise.
4305         * config/avr/avr.c (expand_prologue): Likewise.
4306         * config/i386/i386.c (ix86_expand_prologue): Likewise.
4307         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4308         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
4309         * config/mips/mips.c (mips_expand_prologue): Likewise.
4310         * config/pa/pa.c (hppa_expand_prologue): Likewise.
4311         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4312         * config/s390/s390.c (s390_emit_prologue): Likewise.
4313         * config/sh/sh.c (sh_expand_prologue): Likewise.
4314         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4315         * config/spu/spu.c (spu_expand_prologue): Likewise.
4316
4317 2011-05-25  Richard Guenther  <rguenther@suse.de>
4318
4319         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
4320         (gimple_canonical_types_compatible_p): Likewise.
4321
4322 2011-05-25  Jan Hubicka  <jh@suse.cz>
4323
4324         PR middle-end/49062
4325         * ipa.c (function_and_variable_visibility): Only add to same
4326         comdat group list if DECL_ONE_ONLY.
4327
4328 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
4329
4330         PR rtl-optimization/49014
4331         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
4332
4333 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
4334
4335         PR target/49128
4336         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
4337
4338 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
4339
4340         PR rtl-optimization/48757
4341         * ira-build.c (loop_with_eh_edge_p): Rename to
4342         loop_with_complex_edge_p, check edges on complexity, make function
4343         conditional.
4344         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
4345         conditional.
4346
4347 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
4348
4349         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
4350         force flag_ira_share_save_slots to 0.
4351
4352 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
4353
4354         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
4355         (vt_initialize): Set PROLOGUE_BB unconditionally.
4356         Add block comment about CFA_BASE_RTX machinery.
4357         Reset FP_CFA_OFFSET to -1 on all invalid paths.
4358         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
4359
4360 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
4361
4362         PR objc/48187
4363         * c-parser.c (c_parser_objc_class_instance_variables): More robust
4364         parsing of syntax error in ObjC instance variable lists.  In
4365         particular, avoid an infinite loop if there is a stray ']'.
4366         Updated error message.
4367
4368 2011-05-24  Ian Lance Taylor  <iant@google.com>
4369
4370         * godump.c (go_define): Don't accept a string immediately after
4371         another operand.
4372
4373 2011-05-24  Ian Lance Taylor  <iant@google.com>
4374
4375         * godump.c (struct godump_container): Add invalid_hash field.
4376         (go_format_type): Return false if type is found in invalid_hash.
4377         (go_output_typedef): Add invalid type to invalid_hash.
4378         (go_finish): Create and delete invalid_hash.
4379
4380 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4381
4382         PR tree-optimization/46728
4383         * tree-ssa-math-opts.c (powi_table): New.
4384         (powi_lookup_cost): New.
4385         (powi_cost): New.
4386         (powi_as_mults_1): New.
4387         (powi_as_mults): New.
4388         (gimple_expand_builtin_powi): New.
4389         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
4390         (gate_cse_sincos): Remove sincos/cexp restriction.
4391
4392 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4393
4394         PR target/3746
4395         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
4396         mips-tdump native.
4397         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
4398         * mips-tdump.c: Likewise.
4399
4400 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
4401
4402         PR target/49128
4403         * config/i386/driver-i386.c (host_detect_local_cpu): Always
4404         add -mno-XXX.  Handle FMA.
4405
4406 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
4407
4408         PR rtl-optimization/48633
4409         * ira-build.c (loop_with_eh_edge_p): New function.
4410         (mark_loops_for_removal): Use it.
4411
4412 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
4413
4414         PR rtl-optimization/48971
4415         * ira.c (setup_pressure_classes): Don't check register move cost
4416         for classes with one registers.  Don't add pressure class if there
4417         is a pressure class with the same available hard registers.
4418         Check contains_reg_of_mode.  Fix a typo in collecting
4419         temp_hard_regset.  Ignore hard registers not belonging to a class.
4420
4421 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
4422
4423         PR target/49133
4424         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
4425
4426 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
4427             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4428
4429         PR gcov-profile/48845
4430         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
4431
4432 2011-05-24  Richard Guenther  <rguenther@suse.de>
4433
4434         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
4435         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
4436         (gimple_types_compatible_p_1): Adjust.
4437         (iterative_hash_canonical_type): Do not bother about complete vs.
4438         incomplete types.
4439         (gimple_canonical_types_compatible_p): Likewise.
4440
4441 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4442
4443         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
4444
4445 2011-05-24  Richard Guenther  <rguenther@suse.de>
4446
4447         PR bootstrap/49078
4448         * gimple.c (gimple_register_canonical_type): Revert
4449         previous change.
4450         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
4451         does not for a tree for the case where it matters.  Cache
4452         pointer-type alias-sets.
4453
4454 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
4455
4456         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
4457         (OBJS): Remove options.o, opts-common.o and prefix.o.
4458         (OBJS-libcommon-target): New.
4459         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
4460         (BACKEND): Include libcommon-target.a.
4461         (MOSTLYCLEANFILES): Include libcommon-target.a.
4462         (libcommon-target.a): New.
4463         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
4464         prefix.o.
4465
4466 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
4467
4468         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
4469         parts of output shared with the driver.
4470         * optc-gen.awk: Don't generate parts of output not shared with the
4471         driver.
4472         * opth-gen.awk: Remove GCC_DRIVER conditionals.
4473         * doc/options.texi (SourcerInclude): Mention options-save.c.
4474         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
4475         (OBJS): Add options-save.o.
4476         (options-save.c, options-save.o): New.
4477         (options.o): Update dependencies.
4478         (gcc-options.o): Remove.
4479         (mostlyclean): Remove options-save.c.
4480
4481 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
4482
4483         PR debug/49032
4484         * dbxout.c: Include cgraph.h.
4485         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
4486         and without value expr, return NULL if no varpool node exists for
4487         it or if it is not needed.
4488         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
4489
4490         PR c/49120
4491         * c-decl.c (start_decl): Convert expr to void_type_node.
4492
4493 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
4494
4495         PR rtl-optimization/48826
4496         * emit-rtl.c (try_split): When splitting a call that is followed
4497         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
4498
4499 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
4500
4501         * cfgexpand.c (expand_debug_expr): For unused non-addressable
4502         parameters passed in memory prefer using DECL_INCOMING_RTL over
4503         the pseudos it will be copied into.
4504
4505 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
4506
4507         PR target/47315
4508         * config/i386/i386.c (ix86_option_override_internal): Save the
4509         initial options after checking vzeroupper.
4510
4511 2011-05-23  David Li  <davidxl@google.com>
4512
4513         PR tree-optimization/48988
4514         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
4515         Initialize has_valid_pred for each pred chain.
4516
4517 2011-05-23  Richard Guenther  <rguenther@suse.de>
4518
4519         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
4520         (iterative_hash_gimple_type): Always hash type names.
4521
4522 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
4523
4524         * c-typeck.c (build_function_call_vec): Tweak call to
4525         check_function_arguments.
4526
4527 2011-05-23  Richard Guenther  <rguenther@suse.de>
4528
4529         PR tree-optimization/49115
4530         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
4531         is not necessarily carried out, do not claim it kills the ref.
4532         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
4533
4534 2011-05-23  Richard Guenther  <rguenther@suse.de>
4535
4536         PR middle-end/15419
4537         * builtins.c (fold_builtin_memory_op): Be less restrictive about
4538         what pointer types we accept for folding.
4539
4540 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4541
4542         * gthr-gnat.c: Remove.
4543         * gthr-gnat.h: Remove.
4544         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
4545         * config/t-freebsd (LIB2ADDEH): Likewise.
4546         * config/t-linux (LIB2ADDEH): Likewise.
4547         * config/t-sol2 (LIB2ADDEH): Likewise.
4548         * config/ia64/t-vms (LIB2ADDEH): Likewise.
4549         * configure.ac (target_thread_file): Remove gnat handling.
4550         * configure: Regenerate.
4551         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
4552
4553 2011-05-23  Tristan Gingold  <gingold@adacore.com>
4554             Eric Botcazou  <ebotcazou@adacore.com>
4555
4556         * gcov.c (create_file_names): If no object directory is specified,
4557         keep the directory of the file.
4558
4559 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4560
4561         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
4562         * configure: Regenerate.
4563
4564 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
4565
4566         PR middle-end/48973
4567         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
4568         failed and the comparison has a single bit signed type, use
4569         constm1_rtx instead of const1_rtx for true value.
4570         (do_store_flag): If ops->type is single bit signed type, disable
4571         signel bit test optimization and pass -1 instead of 1 as last
4572         parameter to emit_store_flag_force.
4573
4574 2011-05-23  Tom de Vries  <tom@codesourcery.com>
4575
4576         PR target/45098
4577         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
4578         function.
4579         (infer_loop_bounds_from_undefined): Use new function.
4580
4581 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
4582
4583         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
4584         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
4585         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
4586         and -O0 otherwise.
4587         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
4588
4589 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
4590
4591         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
4592         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
4593         returns true.
4594
4595 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
4596
4597         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
4598
4599 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
4600
4601         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
4602         UNSPEC_MOVE_PIC pattern.
4603
4604 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
4605
4606         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
4607         (sparc-*-rtems*): Likewise.
4608         (sparc64-*-elf*): Likewise.
4609         (sparc64-*-rtems*): Likewise.
4610         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
4611         * config/sparc/t-crtin: New file.
4612         * config/sparc/t-sol2 (crti.o): Delete rule.
4613         (crtn.o): Likewise.
4614         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
4615         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
4616         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
4617         (ENDFILE_SPEC): Add crtn.o.
4618
4619 2011-05-22  Tom de Vries  <tom@codesourcery.com>
4620
4621         PR middle-end/48689
4622         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
4623         CODE_CONTAINS_STRUCT (TS_COMMON).
4624
4625 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
4626
4627         PR middle-end/49029
4628         * expmed.c (extract_fixed_bit_field): Test whether target can be used
4629         only after deciding which mode to use.
4630
4631 2011-05-22  Tom de Vries  <tom@codesourcery.com>
4632
4633         PR target/45098
4634         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
4635         for call to get_shiftadd_cost.
4636
4637 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
4638
4639         PR target/49104
4640         * config/i386/cpuid.h (bit_MMXEXT): New define.
4641
4642 2011-05-22  Nick Clifton  <nickc@redhat.com>
4643
4644         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
4645         initialisation of non-existant args[2] element.  Use args[] array
4646         not arg[] array to pass arguments to build_function_type_list.
4647
4648 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
4649
4650         PR tree-optimization/49087
4651         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
4652
4653 2011-05-21  Jason Merrill  <jason@redhat.com>
4654
4655         PR c++/49092
4656         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
4657         static storage duration.
4658
4659 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
4660
4661         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
4662         frame pointer.
4663
4664 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
4665
4666         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
4667         false if there are call-saved registers here...
4668         (sparc_can_use_return_insn_p): ...but here instead.
4669         (save_or_restore_regs): Fix thinko.
4670         (sparc_expand_prologue): Use current_function_is_leaf.
4671         (sparc_frame_pointer_required): Likewise.
4672
4673 2011-05-21  Nick Clifton  <nickc@redhat.com>
4674
4675         PR target/49098
4676         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
4677
4678 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
4679
4680         * gengtype.c (walk_type): Implemented "atomic" GTY option.
4681         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
4682
4683 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
4684
4685         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
4686         * optc-gen.awk: Move common code to opt-read.awk.
4687         * opth-gen.awk: Likewise.
4688         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
4689
4690 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
4691
4692         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
4693
4694 2011-05-20  Tom de Vries  <tom@codesourcery.com>
4695
4696         PR target/45098
4697         * tree-ssa-loop-ivopts.c: Include expmed.h.
4698         (get_shiftadd_cost): New function.
4699         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
4700
4701 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
4702
4703         PR bootstrap/49086
4704         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
4705         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
4706
4707 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
4708
4709         * Makefile.in: Update comment referring to $(OBJS-common).
4710
4711 2011-05-20  Ian Lance Taylor  <iant@google.com>
4712
4713         * godump.c (go_output_typedef): Put enum constants in the macro
4714         hash table to avoid duplicate Go const definitions.
4715
4716 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
4717
4718         * Makefile.in (LIBDEPS): Add libcommon.a.
4719         (LIBS): Likewise.
4720         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
4721         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
4722         pretty-print.o and version.o.
4723         (OBJS-libcommon): New.
4724         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
4725         (BACKEND): Add libcommon.a.
4726         (MOSTLYCLEANFILES): Likewise.
4727         (libcommon.a): New.
4728         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
4729         (cpp$(exeext)): Likewise.
4730         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
4731         pretty-print.o and input.o.
4732         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
4733         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
4734         (errors.o): Remove.
4735         (mips-tfile): Don't explicitly use version.o.
4736         (mips-tdump): Likewise.
4737         (gcov.o): Depend on $(DIAGNOSTIC_H).
4738         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
4739         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
4740         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
4741         * gcov-dump.c: Include intl.h and diagnostic.h.
4742         (main): Initialize diagnostics.
4743         * gcov.c: Include diagnostic.h.
4744         (fnotice): Remove.
4745         (main): Initialize diagnostics.
4746         * lto-wrapper.c: Include diagnostic.h.
4747         (main): Initialize diagnostics.
4748
4749 2011-05-20  Michael Matz  <matz@suse.de>
4750
4751         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
4752
4753 2011-05-20  Michael Matz  <matz@suse.de>
4754             Richard Guenther  <rguenther@suse.de>
4755
4756         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
4757         use lto_streamer_cache_append directly instead of returning a VEC.
4758         (preload_common_node): Remove.
4759         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
4760         track seen nodes.
4761         (lto_streamer_cache_create): Call lto_preload_common_nodes.
4762
4763 2011-05-20  Richard Guenther  <rguenther@suse.de>
4764
4765         PR tree-optimization/49079
4766         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
4767         MEM_REFs correctly for the trailing array access detection.
4768         Special case constants the same way as decls for overall size
4769         constraining.
4770
4771 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
4772
4773         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
4774         argument expansion.
4775
4776 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
4777
4778         PR tree-optimization/49073
4779         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
4780         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
4781         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
4782
4783 2011-05-20  Richard Guenther  <rguenther@suse.de>
4784
4785         PR middle-end/48849
4786         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
4787         of pointer types the same way the middle-end does.
4788
4789 2011-05-20  Richard Guenther  <rguenther@suse.de>
4790
4791         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
4792         or pointer-to chains.  Delay all fixup to uniquify_nodes.
4793
4794 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
4795
4796         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
4797         (fma4_fmaddsub): Likewise
4798
4799 2011-05-19  Jan Hubicka  <jh@suse.cz>
4800
4801         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
4802         (GIMPLE_TYPE_PAIR_SIZE): New macro.
4803         (type_pair_cache): New static var.
4804         (lookup_type_pair): Use fixed sized custom hash; make inline.
4805         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
4806         calls of lookup_type_pair.
4807         (print_gimple_types_stats): Remove cache stats.
4808         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
4809         and gtc_ob.
4810
4811 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
4812
4813         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
4814         when TARGET_RDRND is active.
4815         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
4816         Generate dummy SImode target register when target is NULL.
4817
4818 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
4819
4820         * config/arm/arm-fpus.def: New.
4821         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
4822         arm-fpus.def.
4823         * config/arm/arm-tables.opt: Regenerate.
4824         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
4825         (arm_option_override): Don't decode FPU name to string here.
4826         * config/arm/arm.opt (mfpu=): Use Enum.
4827         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
4828         Update dependencies.
4829
4830 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
4831
4832         * collect2.c: Include diagnostic.h.
4833         (fatal_perror, fatal, error, fancy_abort): Remove.
4834         (main): Set progname.  Call xmalloc_set_program_name and
4835         diagnostic_initialize.
4836         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
4837         scan_libraries, resolve_lib_name): Call fatal_error instead of
4838         fatal and fatal_perror.
4839         * collect2.h (error, fatal, fatal_perror): Don't declare.
4840         * tlink.c: Include diagnostic-core.h.
4841         (recompile_files): Call fatal_error instead of fatal_perror.
4842         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
4843         pretty-print.o and input.o.
4844         (collect2.o, tlink.o): Update dependencies.
4845
4846 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4847
4848         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
4849
4850 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4851
4852         PR target/40483
4853         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
4854         COMDAT group syntax, both SPARC and x86 variants.
4855         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
4856         * configure: Regenerate.
4857         * config/sol2.h (TARGET_SOLARIS): Define.
4858         (PUSHSECTION_FORMAT): Remove.
4859         (SECTION_NAME_FORMAT): Define.
4860         * config/sol2.c: Include hashtab.h.
4861         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
4862         expansion, using SECTION_NAME_FORMAT.
4863         (solaris_comdat_htab): New variable.
4864         (struct comdat_entry): Define.
4865         (comdat_hash): New function.
4866         (comdat_eq): New function.
4867         (solaris_elf_asm_comdat_section): New function.
4868         (solaris_define_comdat_signature): New function.
4869         (solaris_code_end): New function.
4870         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
4871         (solaris_code_end): Declare.
4872         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
4873         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
4874         solaris_code_end.
4875         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
4876         Remove ATTRIBUTE_UNUSED.
4877         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
4878         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
4879         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
4880         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
4881         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
4882         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
4883         (PUSHSECTION_FORMAT): Remove.
4884         (SECTION_NAME_FORMAT): Redefine.
4885
4886 2011-05-19  Kai Tietz  <ktietz@redhat.com>
4887
4888         * tree-cfg.c (verify_gimple_assign_binary): Barf on
4889         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
4890         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
4891
4892 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
4893             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4894
4895         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
4896
4897 2011-05-19  Richard Guenther  <rguenther@suse.de>
4898
4899         PR middle-end/48985
4900         * tree-object-size.c (addr_object_size): If the pointed-to
4901         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
4902
4903 2011-05-19  Richard Guenther  <rguenther@suse.de>
4904
4905         * gimple.c (gimple_types_compatible_p_1): Compare names of
4906         the types themselves.
4907         (iterative_hash_gimple_type): And hash them that way.
4908         (gimple_register_type_1): If we register a main variant properly
4909         initialize the leader to ourselves.
4910
4911 2011-05-19  Tom de Vries  <tom@codesourcery.com>
4912
4913         PR target/45098
4914         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
4915         get_loop_invariant_expr_id.
4916         (get_loop_invariant_expr_id): Use get_expr_id.
4917         (parm_decl_cost): New function.
4918         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
4919         Improve bound cost estimation.  Use different inv_expr_id for elim and
4920         express cases.
4921
4922 2011-05-19  Tom de Vries  <tom@codesourcery.com>
4923
4924         PR target/45098
4925         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
4926         cost_base.cost == 0.
4927
4928 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
4929
4930         PR target/49002
4931         * config/i386/sse.md
4932         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
4933         load cast.
4934
4935 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
4936
4937         PR tree-optimization/49039
4938         * tree-vrp.c (extract_range_from_binary_expr): For
4939         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
4940         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
4941
4942 2011-05-18  Tom de Vries  <tom@codesourcery.com>
4943
4944         PR target/45098
4945         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
4946
4947 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
4948
4949         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
4950         (*tls_global_dynamic_64): Ditto.
4951         (*tls_local_dynamic_base_32_gnu): Ditto.
4952         (*tls_local_dynamic_base_64): Ditto.
4953         (tls_initial_exec_64_sun): Ditto.
4954
4955 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
4956
4957         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
4958         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
4959         bf592-none.
4960         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
4961         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
4962         * config/bfin/bfin.c (bfin_cpus): Add bf592.
4963         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4964         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
4965         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
4966         * config/bfin/elf.h (LIB_SPEC): Add bf592.
4967
4968 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
4969
4970         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
4971         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
4972         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
4973         target_thread_pointer, arm_structure_size_boundary, struct
4974         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
4975         struct abi_name, arm_all_abis): Remove.
4976         (arm_option_override) Don't process most enumerated option values here.
4977         Don't process target_fpe_name here.  Work with integer not string for
4978         structure size boundary; use separate diagnostics for each case.
4979         * config/arm/arm.h (enum float_abi_type, enum
4980         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
4981         to arm-opts.h.
4982         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
4983         arm_structure_size_boundary): Remove.
4984         * config/arm/arm.opt (mabi=): Use Enum and Init.
4985         (arm_abi_type): New Enum and EnumValue entries.
4986         (mfloat-abi=): Use Enum and Init.
4987         (float_abi_type): New Enum and EnumValue entries.
4988         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
4989         (mfp16-format=): Use Enum and Init.
4990         (arm_fp16_format_type): New Enum and EnumValue entries.
4991         (mstructure-size-boundary=): Use UInteger and Init.
4992         (mtp=): Use Enum and Init.
4993         (arm_tp_type): New Enum and EnumValue entries.
4994
4995 2011-05-18  Richard Guenther  <rguenther@suse.de>
4996
4997         PR tree-optimization/49018
4998         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
4999         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
5000         gimple_has_side_effects.
5001
5002 2011-05-18  Richard Guenther  <rguenther@suse.de>
5003
5004         * gimple.c (gimple_register_type_1): New function, split out from ...
5005         (gimple_register_type): ... here.  Avoid infinite recursion.
5006
5007 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
5008
5009         PR tree-optimization/41881
5010         * tree-vectorizer.h (struct _loop_vec_info): Add new field
5011         reduction_chains along with a macro for its access.
5012         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
5013         (destroy_loop_vec_info): Free reduction chains.
5014         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
5015         (vect_is_slp_reduction): New function.
5016         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
5017         (vect_create_epilog_for_reduction): Support SLP reduction chains.
5018         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
5019         definition types for reduction chains.
5020         (vect_supported_load_permutation_p): Don't allow permutations for
5021         reduction chains.
5022         (vect_analyze_slp_instance): Support reduction chains.
5023         (vect_analyze_slp): Try to build SLP instance from reduction chains.
5024         (vect_get_constant_vectors):  Handle reduction chains.
5025         (vect_schedule_slp_instance): Mark the first statement of the
5026         reduction chain as reduction.
5027
5028 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
5029
5030         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
5031         names for group elements access.
5032         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
5033         reduction chains as well.  Remove data reference and interleaving
5034         related words from the fields names.
5035         * tree-vect-loop.c (vect_transform_loop): Use new names for group
5036         elements access.
5037         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
5038         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
5039         vect_update_interleaving_chain, vect_same_range_drs,
5040         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
5041         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
5042         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
5043         vect_analyze_group_access, vect_analyze_data_ref_access,
5044         vect_create_data_ref_ptr, vect_transform_strided_load,
5045         vect_record_strided_load_vectors): Likewise.
5046         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
5047         vect_model_load_cost, vectorizable_store, vectorizable_load,
5048         vect_remove_stores, new_stmt_vec_info): Likewise.
5049         * tree-vect-slp.c (vect_build_slp_tree,
5050         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
5051
5052 2011-05-18  Richard Guenther  <rguenther@suse.de>
5053
5054         PR middle-end/48989
5055         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
5056         operand verification.
5057         (verify_gimple_assign_binary): Likewise.
5058         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
5059         to non-1-precision BOOLEAN_TYPEs.
5060
5061 2011-05-18  Tom de Vries  <tom@codesourcery.com>
5062
5063         PR target/45098
5064         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
5065
5066 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
5067
5068         PR tree-optimization/49000
5069         * tree-ssa.c (execute_update_addresses_taken): Call
5070         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
5071         be rewritten and decl has been marked for renaming, reset
5072         the debug stmt.
5073
5074 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
5075
5076         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
5077         enum_opts_set when testing if attributes have set -mfpmath=.
5078
5079 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
5080
5081         * config/mips/mips.c (mips_handle_option): Remove unused variable.
5082
5083 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
5084
5085         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
5086         info->entry with 0
5087         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
5088         id.transform_lang_insert_block with NULL.
5089
5090 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
5091
5092         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
5093         (output_fp_compare): Change args 3 and 4 to bool.
5094         (ix86_expand_call): Change arg 6 to bool.
5095         (ix86_attr_length_immediate_default): Change arg 2 to bool.
5096         (ix86_attr_length_vex_default): Change arg 3 to bool.
5097         * config/i386/i386.md: Update all uses.
5098         * config/i386/i386.c: Ditto.
5099         (ix86_flags_dependent): Change return type to bool.
5100
5101 2011-05-17  Richard Guenther  <rguenther@suse.de>
5102
5103         * gimple.c (type_hash_pair_compare): Fix comparison.
5104
5105 2011-05-17  Richard Guenther  <rguenther@suse.de>
5106
5107         * gimple.c (iterative_hash_gimple_type): Simplify singleton
5108         case some more, fix final hash value of the non-singleton case.
5109
5110 2011-05-17  Richard Guenther  <rguenther@suse.de>
5111
5112         PR bootstrap/49013
5113         Revert
5114         2011-05-16  Richard Guenther  <rguenther@suse.de>
5115
5116         * gimple.c (gimple_types_compatible_p_1): Use names of the
5117         type itself, not its main variant.
5118         (iterative_hash_gimple_type): Likewise.
5119
5120 2011-05-17  Richard Guenther  <rguenther@suse.de>
5121
5122         * gimple.c (gimple_register_canonical_type): Use the main-variant
5123         leader for computing the canonical type.
5124
5125 2011-05-17  Nick Clifton  <nickc@redhat.com>
5126
5127         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
5128         moves.
5129
5130         * config/rx/rx.md: Add peephole to remove redundant extensions
5131         after loads.
5132         (bitset_in_memory): Use rx_restricted_mem_operand.
5133         (bitinvert_in_memory): Likewise.
5134         (bitclr_in_memory): Likewise.
5135
5136 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
5137             Nick Clifton  <nickc@redhat.com>
5138
5139         * config/rx/rx.md: Add peepholes to match a register move followed
5140         by a comparison of the moved register.  Replace these with an
5141         addition of zero that does both actions in one instruction.
5142
5143 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
5144
5145         PR target/48986
5146         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
5147         predicate to allow CONST_INT.
5148         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
5149
5150 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
5151
5152         * opts-common.c (opt_enum_arg_to_value): New.
5153         * opts.h (opt_enum_arg_to_value): Declare.
5154         * config/i386/i386.opt (fpmath): Remove.
5155         (mfpmath=): Use Enum, Init and Save.
5156         (fpmath_unit): New Enum and EnumValue entries.
5157         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
5158         name for function fpmath state.
5159         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
5160         * config/i386/i386.c: Include diagnostic.h.
5161         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
5162         (ix86_target_string): Take enum fpmath_unit value instead of string.
5163         (ix86_debug_options): Update call to ix86_target_string.
5164         (ix86_option_override_internal): Don't process fpmath strings here.
5165         (x86_function_specific_save, ix86_function_specific_restore):
5166         Don't handle fpmath state specially.
5167         (ix86_function_specific_print): Pass fpmath state to
5168         ix86_target_string instead of printing in this function.
5169         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
5170         Handle enum attributes.
5171         (IX86_ATTR_ENUM, ix86_opt_enum): New.
5172         (ix86_valid_target_attribute_tree): Update option_strings
5173         handling.  Handle fpmath as enum option.
5174         (ix86_can_inline_p): Update field names for function fpmath state.
5175         (ix86_expand_builtin): Update call to ix86_target_string.
5176         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
5177         (ix86_fpmath): Remove.
5178         * config/i386/t-i386 (i386.o): Update dependencies.
5179
5180 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
5181
5182         PR preprocessor/48677
5183         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
5184         from decoded_options[0], not from itself.
5185
5186 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
5187
5188         * config/i386/constraints.md (z): New constraint.
5189         * config/i386/i386.c (c): New mode attribute.
5190         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
5191         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
5192         constraint for operand 0.
5193         (*call_vzeroupper): Ditto.
5194         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
5195         (*call_rex64_ms_sysv_vzeroupper): Ditto.
5196         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
5197         Use "lzm" constraint for operand 0.
5198         (*call_pop_vzeroupper): Ditto.
5199         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
5200         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
5201         constraint for operand 0.
5202         (*sibcall_vzeroupper): Ditto.
5203         (*sibcall_rex64_ms_sysv): Ditto.
5204         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
5205         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
5206         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
5207         (*sibcall_pop_vzeroupper): Ditto.
5208         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
5209         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
5210         mode iterator.  Use "<c>zm" constraint for operand 1.
5211         (*call_value_vzeroupper): Ditto.
5212         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
5213         for operand 1.
5214         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
5215         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
5216         *call_value_pop_1.  Use "lzm" constraint for operand 1.
5217         (*call_value_pop_vzeroupper): Ditto.
5218         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
5219         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
5220         mode iterator.  Use "Uz" constraint for operand 1.
5221         (*sibcall_value_vzeroupper): Ditto.
5222         (*sibcall_value_rex64_ms_sysv): Ditto.
5223         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
5224         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
5225         constraint for operand 1.
5226         (*sibcall_value_pop_vzeroupper): Ditto.
5227         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
5228         and "z" constraint for operand 2.
5229         (*tls_global_dynamic_32_gnu): Ditto.
5230         (*tls_local_dynamic_base_32_gnu): Ditto.
5231         (*tls_local_dynamic_base_64): Ditto.
5232         (*tls_local_dynamic_32_once): Ditto.
5233         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
5234         Update all callers.
5235         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
5236
5237 2011-05-16  Richard Guenther  <rguenther@suse.de>
5238
5239         * gimple.c (gimple_types_compatible_p_1): Use names of the
5240         type itself, not its main variant.
5241         (iterative_hash_gimple_type): Likewise.
5242
5243 2011-05-16  Richard Guenther  <rguenther@suse.de>
5244
5245         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
5246         always visit pointer target and function result and argument types.
5247
5248 2011-05-16  Jason Merrill  <jason@redhat.com>
5249
5250         PR c++/48999
5251         * tree-inline.c (copy_statement_list): Put back recursion.
5252
5253 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
5254
5255         PR target/27663
5256         PR target/41076
5257         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
5258         * config/avr/avr.md ("*ior<mode>qi.byte0",
5259         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
5260
5261 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
5262
5263         PR target/45099
5264         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
5265         register is needed for a function argument.
5266
5267 2011-05-16  Richard Guenther  <rguenther@suse.de>
5268
5269         * gimple.c (struct type_hash_pair): New type.
5270         (type_hash_pair_compare): New function.
5271         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
5272
5273 2011-05-16  Revital Eres  <revital.eres@linaro.org>
5274
5275         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
5276
5277 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
5278
5279         * config/i386/i386.md (floating point move splitters): Fix
5280         usage of standard_80387_constant_p.
5281         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
5282
5283 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
5284
5285         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
5286
5287 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
5288
5289         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
5290         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
5291         (tree_ssa_lim_finalize): Likewise.
5292
5293 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
5294
5295         * config/i386/constraint.md (Yd, Yx): New register constraints.
5296         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
5297         Yd conditional register constraint.
5298         (*movtf_internal): Use standard_sse_constant_opcode.
5299         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
5300         Yx conditional register constraint.
5301         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
5302         Yd conditional register constraint.  Use standard_sse_constant_p to
5303         check for valid SSE constants and call standard_sse_constant_opcode to
5304         output SSE insn.
5305         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
5306         constants and call standard_sse_constant_opcode to output SSE insn.
5307         * config/i386/i386.c (ix86_option_ovverride_internal): Set
5308         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
5309         optimize_size is set.
5310         (standard_sse_constant_opcode): Output conditional AVX insn templates.
5311
5312 2011-05-14  Tobias Burnus  <burnus@net-b.de>
5313
5314         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
5315
5316 2011-05-13  Martin Jambor  <mjambor@suse.cz>
5317
5318         * ipa-prop.c (ipa_cst_from_jfunc): New function.
5319         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
5320         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
5321         (evaluate_conditions_for_ipcp_clone): Removed.
5322         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
5323         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
5324         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
5325
5326 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
5327
5328         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
5329         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
5330         lieu of MAY_HAVE_DEBUG_STMTS.
5331         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
5332         debug statements if !MAY_HAVE_DEBUG_STMTS.
5333
5334 2011-05-13  Martin Thuresson  <martint@google.com>
5335
5336         PR gcov-profile/47793
5337         * libgcov.c (gcov_exit): Support relative profile paths.
5338         * doc/invoke.texi (-fprofile-dir): Update for above change.
5339
5340 2011-05-13  Richard Guenther  <rguenther@suse.de>
5341
5342         * gimple.c (gimple_canonical_types_compatible_p): Do not use
5343         type-pair caching, do not compare hashes.
5344
5345 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
5346
5347         PR middle-end/48965
5348         * tree-cfg.c (edge_to_cases_cleanup): Return true.
5349         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
5350
5351 2011-05-13  Kai Tietz  <ktietz@redhat.com>
5352
5353         * gimplify.c (gimplify_expr): Make sure operand is boolified.
5354         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
5355         compatible type for TRUTH_NOT_EXPR.
5356
5357 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
5358
5359         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
5360         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
5361         can_create_pseudo_p ().
5362
5363 2011-05-13  Richard Guenther  <rguenther@suse.de>
5364
5365         PR lto/48978
5366         * gimple.c (iterative_hash_gimple_type): Revert change in
5367         pointer target and function result and argument hashing.
5368
5369 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
5370
5371         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
5372         (*movxf_internal_nointeger): Ditto.
5373         (*movdf_internal_rex64): Ditto.
5374         (*movdf_internal): Ditto.
5375         (*movdf_internal_nointeger): Ditto.
5376         (*movsf_internal): Ditto.
5377         (sincos splitters): Use can_create_pseudo ().
5378
5379 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
5380
5381         * config/i386/i386-opts.h: New.
5382         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
5383         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
5384         ix86_section_threshold): Remove.
5385         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
5386         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
5387         OPT_mbranch_cost_.
5388         (ix86_option_override_internal): Don't decode strings for options
5389         other than -march=, -mtune= and -mfpmath=.  Don't allow for
5390         __attribute__ uses in remaining diagnostics for options with
5391         string arguments.  Don't check for integer arguments being negative.
5392         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
5393         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
5394         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
5395         ix86_branch_cost, ix86_section_threshold): Remove.
5396         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
5397         HeaderInclude.
5398         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
5399         but not Var.
5400         (masm=): Use Enum and Init.
5401         (asm_dialect): New Enum and EnumValue entries.
5402         (mbranch-cost=): Use UInteger.
5403         (mlarge-data-threshold=): Use UInteger and Init.
5404         (mcmodel=): Use Enum and Init.
5405         (cmodel): New Enum and EnumValue entries.
5406         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
5407         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
5408         mregparm=): Use UInteger.
5409         (mstringop-strategy=): Use Enum and Init.
5410         (stringop_alg): New Enum and EnumValue entries.
5411         (mtls-dialect=): Use Enum and Init.
5412         (tls_dialect): New Enum and EnumValue entries.
5413         (mabi=): Use Enum and Init.
5414         (calling_abi): New Enum and EnumValue entries.
5415         (mveclibabi=): Use Enum and Init.
5416         (ix86_veclibabi): New Enum and EnumValue entries.
5417
5418 2011-05-13  Nick Clifton  <nickc@redhat.com>
5419
5420         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
5421         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
5422
5423 2011-05-13  Kai Tietz  <ktietz@redhat.com>
5424
5425         PR middle-end/48984
5426         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
5427         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
5428         (gimple_boolify): Check for cast for boolean_type_node instead for
5429         BOOLEAN_TYPE.
5430
5431 2011-05-13  Richard Guenther  <rguenther@suse.de>
5432
5433         PR tree-optimization/48172
5434         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
5435         multiplying by number of iterations for equal step.
5436         (vect_create_cond_for_alias_checks): Likewise.
5437
5438 2011-05-13  Andreas Schwab  <schwab@redhat.com>
5439
5440         * configure.ac: Use AS_HELP_STRING throughout.
5441         * configure: Regenerate.
5442
5443 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
5444
5445         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
5446         (ix86_emit_restore_regs_using_mov): Likewise.
5447         (ix86_emit_restore_sse_regs_using_mov): Likewise.
5448
5449 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
5450
5451         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
5452         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
5453         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
5454         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
5455         RTX_OK_FOR_OLO10_P): ...here.
5456         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
5457         SYMBOLIC_CONST.
5458
5459 2011-05-12  Kai Tietz  <ktietz@redhat.com>
5460
5461         * gimplify.c (gimple_boolify): Re-boolify expression
5462         arguments even if expression type is of kind BOOLEAN_TYPE.
5463         (gimplify_boolean_expr): Removed.
5464         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
5465         and XOR. Additional take care that we keep expression's type.
5466         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
5467         of TRUTH_AND|OR|XOR_EXPR.
5468
5469 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
5470
5471         PR tree-optimization/48975
5472         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
5473         on all bbs here and free and clear ifc_bbs at the end.
5474
5475 2011-05-12  Richard Guenther  <rguenther@suse.de>
5476
5477         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
5478         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
5479         until after simple checks.
5480         (gimple_types_compatible_p): Likewise.
5481         (iterative_hash_gimple_type): Always hash pointer targets
5482         and function return and argument types.
5483         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
5484         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
5485         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
5486         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
5487         completely in the simple compare section.
5488         (gimple_register_canonical_type): Query the cache again after
5489         registering.
5490
5491 2011-05-12  Richard Guenther  <rguenther@suse.de>
5492
5493         PR tree-optimization/48172
5494         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
5495         the number of iterations from the segment size calculation.
5496         (vect_create_cond_for_alias_checks): Adjust.
5497
5498 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
5499
5500         PR debug/48967
5501         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
5502         if validate_subreg fails.
5503
5504 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
5505
5506         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
5507         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
5508         early.
5509
5510 2011-05-12  DJ Delorie  <dj@redhat.com>
5511
5512         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
5513         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
5514         created builtin into rx_builtins array.
5515         (rx_builtin_decl): New function.
5516         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
5517
5518 2011-05-12  DJ Delorie  <dj@redhat.com>
5519             Nick Clifton  <nickc@redhat.com>
5520
5521         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
5522         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
5523         (rx_is_legitimate_address): Add pre-decrement and post-increment
5524         addressing in HImode and QImode.  Fix test for out of range
5525         REG+INT addressing.
5526         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
5527         (rx_align_for_label): Test label before extracting its usage count.
5528         (rx_adjust_insn_lengths): Fix selection of insn codes.
5529         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5530
5531 2011-05-11  Jason Merrill  <jason@redhat.com>
5532
5533         * tree.c (type_hash_canon): Use struct tree_type_non_common.
5534
5535 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
5536
5537         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
5538         reindent the subsequent block.
5539
5540 2011-05-11  Satoru Takabayashi  <satorux@google.com>
5541             Paul Pluzhnikov  <ppluzhnikov@google.com>
5542
5543         * doc/install.texi (Configuration): Document --with-linker-hash-style.
5544         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
5545         * config.in: Add LINKER_HASH_STYLE.
5546         * configure.ac: Add --with-linker-hash-style.
5547         * configure: Regenerate.
5548
5549 2011-05-11  Richard Guenther  <rguenther@suse.de>
5550
5551         PR middle-end/48964
5552         * gimple.c (iterative_hash_canonical_type): Fix typo.
5553
5554 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
5555
5556         * config/i386/i386.c (legitimize_tls_address)
5557         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
5558         expanders directly for TARGET_GNU2_TLS.  Determine pic and
5559         __tls_get_addr symbol reference here.  Update call to
5560         gen_tls_global_dynamic_{32,64} for added arguments.
5561         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
5562         expanders directly for TARGET_GNU2_TLS.  Determine
5563         __tls_get_addr symbol reference here.  Update call to
5564         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
5565         unique UNSPEC REG_EQUIV to libcall block.
5566         (ix86_tls_get_addr): Declare static.
5567         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
5568         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
5569         Do not determine pic and __tls_get_addr symbol reference here. Do not
5570         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
5571         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
5572         (tls_global_dynamic_64): Add operand 2.  Do not determine
5573         __tls_get_addr symbol reference here.  Do not call
5574         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
5575         (tls_local_dynamic_base64): Ditto for operand 1.
5576
5577 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
5578
5579         * function.c (expand_function_start): Initialize stack_check_probe_note
5580         only if the generic stack checking mechanism is used.
5581
5582 2011-05-11  Richard Guenther  <rguenther@suse.de>
5583
5584         PR tree-optimization/15256
5585         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
5586         (A & B) | C, combine (A op CST1) op CST2.
5587         (tree_ssa_forward_propagate_single_use_vars): Only bother to
5588         visit assigns that have uses.
5589
5590 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
5591
5592         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
5593         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
5594         (unpack_ts_type_common_value_fields): ...this.  Update comment.
5595         (unpack_value_fields): Adjust for renaming.
5596         (lto_input_ts_type_tree_pointers): Split into...
5597         (lto_input_ts_type_common_tree_pointer): ...this and...
5598         (lto_input_ts_type_non_common_tree_pointers): ...this.
5599         (lto_input_tree_pointers): Adjust for above split.
5600         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
5601         (pack_ts_type_common_value_fields): ...this.  Update comment.
5602         (lto_output_ts_type_tree_pointers): Split into...
5603         (lto_output_ts_type_common_tree_pointers): ...this and...
5604         (lto_output_ts_type_non_common_tree_pointers): ...this.
5605         (lto_output_tree_pointers): Adjust for above split.
5606         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
5607         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
5608         * stor-layout.c (vector_type_mode): Adjust location of mode field.
5609         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
5610         Define.
5611         (struct tree_type): Split into...
5612         (struct tree_type_common: ...this and...
5613         (struct tree_type_with_lang_specific): ...this and...
5614         (struct tree_type_non_common): ...this.  Adjust accessor macros
5615         accordingly.
5616         (TYPE_VALUES_RAW): Define.
5617         (union tree_node): Update for above changes.
5618         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
5619         TS_TYPE_NON_COMMON.
5620         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
5621         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
5622         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
5623         * treestructu.def (TS_TYPE): Remove.
5624         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
5625         Define.
5626
5627 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
5628
5629         PR debug/48159
5630         * tree-ssa.c (reset_debug_uses): New function.
5631         * tree-flow.h (reset_debug_uses): New prototype.
5632         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
5633         * tree-loop-distribution.c (generate_loops_for_partition): Call
5634         reset_debug_uses on the stmts that will be removed.  Keep around
5635         all debug stmts, don't count them as bits in partition bitmap.
5636         (generate_builtin): Don't count debug stmts or labels as bits in
5637         partition bitmap.
5638
5639 2011-05-11  Richard Guenther  <rguenther@suse.de>
5640
5641         * gimple.c (gimple_type_hash_1): Merge with ...
5642         (gimple_type_hash): ... this.
5643         (gtc_visit): Remove mode parameter and simplify accordingly.
5644         (gimple_types_compatible_p_1): Likewise.
5645         (gimple_types_compatible_p): Likewise.
5646         (iterative_hash_gimple_type): Likewise.
5647         (visit): Likewise.
5648         (gimple_type_eq): Adjust.
5649
5650 2011-05-11  Revital Eres  <revital.eres@linaro.org>
5651
5652         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
5653         enters the branch create an anti edge in the opposite direction
5654         to prevent the creation of reg-moves.
5655         * modulo-sched.c: Adjust comment to reflect the fact we are
5656         scheduling closing branch.
5657         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
5658         (stage_count): New field in struct partial_schedule.
5659         (calculate_stage_count): New function.
5660         (normalize_sched_times): Rename to reset_sched_times and handle
5661         incrementing the sched time of the nodes by a constant value
5662         passed as parameter.
5663         (duplicate_insns_of_cycles): Skip closing branch.
5664         (sms_schedule_by_order): Schedule closing branch.
5665         (ps_insn_find_column): Handle closing branch.
5666         (sms_schedule): Call reset_sched_times and adjust the code to
5667         support scheduling of the closing branch.
5668         (ps_insert_empty_row): Update calls to normalize_sched_times
5669         and rotate_partial_schedule functions.
5670
5671 2011-05-11  Richard Guenther  <rguenther@suse.de>
5672
5673         PR middle-end/48953
5674         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
5675
5676 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
5677
5678         * opts.c (finish_options): Move warning settings from process_options.
5679         * toplev.c (process_options): Move warning settings to finish_options.
5680
5681 2011-05-11  Richard Guenther  <rguenther@suse.de>
5682
5683         PR tree-optimization/18041
5684         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
5685         (simplify_bitwise_binary): ... this.  Handle operand conversions
5686         by applying them to the result instead.
5687         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
5688
5689 2011-05-11  Richard Guenther  <rguenther@suse.de>
5690
5691         * gimple.c (gimple_canonical_types_compatible_p): Split out
5692         from gimple_types_compatible_p and friends.  Do not recurse
5693         to pointed-to types.
5694         (gimple_canonical_type_eq): Use it.
5695         (iterative_hash_canonical_type): Split out from
5696         iterative_hash_gimple_type and friends.  Do not recurse
5697         to pointed-to types.
5698         (gimple_canonical_type_hash): Use it, allocate the hash here.
5699
5700 2011-05-11  Revital Eres  <revital.eres@linaro.org>
5701
5702         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
5703         recognizing doloop.
5704
5705 2011-05-11  Revital Eres  <revital.eres@linaro.org>
5706
5707         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
5708         instead of PREV_INSN.
5709
5710 2011-05-11  Revital Eres  <revital.eres@linaro.org>
5711
5712         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
5713         * loop-doloop.c (doloop_condition_get): Likewise.
5714         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
5715         (doloop_end): New.
5716         * config/arm/arm.md (*addsi3_compare0): Remove "*".
5717
5718 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
5719
5720         * tree.def (CASE_LABEL_EXPR): Add an operand.
5721         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
5722
5723 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
5724
5725         * c-decl.c (c_override_global_bindings_to_false): Remove.
5726         (global_bindings_p): Don't check
5727         c_override_global_bindings_to_false.
5728         * c-tree.h (c_override_global_bindings_to_false): Remove.
5729         * c-typeck.c (composite_type): Don't set
5730         c_override_global_bindings_to_false.
5731
5732 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5733
5734         PR target/48857, 48495
5735         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
5736         (VSX_MODE): Ditto.
5737         (VSX_MOVE_MODE): Ditto.
5738         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
5739         VSX vector types.  Add V2DImode.
5740         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
5741         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
5742         (MODES_TIEABLE_P): Ditto.
5743
5744         * config/rs6000/rs6000.c (rs6000_emit_move): Use
5745         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
5746         VSX_VECTOR_MODE.
5747         (init_cumulative_args): Ditto.
5748         (rs6000_function_arg_boundary): Ditto.
5749         (rs6000_function_arg_advance_1): Ditto.
5750         (rs6000_function_arg): Ditto.
5751         (rs6000_function_ok_for_sibcall): Ditto.
5752         (emit_frame_save): Ditto.
5753         (rs6000_function_value): Ditto.
5754         (rs6000_libcall_value): Ditto.
5755
5756 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
5757
5758         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
5759         i386/darwin-lib.h to $libgcc_tm_file.
5760         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
5761
5762 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
5763
5764         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
5765
5766 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
5767
5768         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
5769         * config/rs6000/rs6000-tables.opt: New file (generated).
5770         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
5771         rs6000/rs6000-tables.opt to extra_options.
5772         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
5773         * config/rs6000/rs6000.c (rs6000_select): Remove.
5774         (processor_target_table): Move contents to rs6000-cpus.def.
5775         (darwin_rs6000_override_options): Check
5776         global_options_set.x_rs6000_cpu_index instead of
5777         rs6000_select[1].string.
5778         (rs6000_option_override_internal): Likewise.
5779         (rs6000_handle_option): Don't assert that global structures are in
5780         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
5781         (rs6000_default_cpu): New variable.
5782         (rs6000_file_start): Set it instead of local default_cpu.  Check
5783         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
5784         global_options_set.x_rs6000_tune_index instead of rs6000_select.
5785         (rs6000_darwin_file_start): Check rs6000_default_cpu and
5786         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
5787         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
5788         rs6000_select): Remove.
5789         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
5790         Remove.
5791         (mcpu=, mtune=): Use Var, Init, Enum and Save.
5792         * config/rs6000/t-rs6000
5793         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
5794         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
5795         global_options_set.x_rs6000_cpu_index instead of
5796         rs6000_select[1].string.
5797         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
5798         global_options_set.x_rs6000_cpu_index instead of
5799         rs6000_select[1].string.
5800
5801 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
5802
5803         * config.gcc (libgcc_tm_file): Define instead of including files
5804         from ../../libgcc/config/ in tm_file.
5805         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
5806         * configure: Regenerate.
5807         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
5808         libgcc_tm.h, cs-libgcc_tm.h): New.
5809         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
5810         (clean): Remove libgcc_tm.h.
5811         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
5812         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
5813         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
5814
5815 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
5816
5817         PR target/48896
5818         * config/avr/avr.c (avr_ret_register): Return unsigned int
5819         instead of int.
5820         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
5821         it to avr_libcall_value.
5822         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
5823         expand_expr.
5824         (avr_expand_binop_builtin): Ditto.
5825         (avr_expand_unop_builtin): Ditto.
5826
5827 2011-05-10  DJ Delorie  <dj@redhat.com>
5828
5829         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
5830         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
5831         * config/rx/rx.c (rx_align_for_label): Add label and
5832         uses_threshold parameters.  Do not align when the label is not
5833         used enough.
5834         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
5835
5836 2011-05-10  Richard Guenther  <rguenther@suse.de>
5837
5838         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
5839         a series of conversions and apply foldings similar to what
5840         fold-const does.
5841         (tree_ssa_forward_propagate_single_use_vars): Call it.
5842
5843 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
5844
5845         PR tree-optimization/48611
5846         PR tree-optimization/48794
5847         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
5848         referenced from RESX or EH_DISPATCH arguments.
5849
5850         PR debug/48928
5851         * dfp.c (decimal_to_decnumber): Handle conversion from
5852         dconst{1,2,m1,half}.
5853
5854 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
5855
5856         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
5857         for !flag_prefer_avx128.
5858         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
5859
5860 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
5861
5862         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
5863         (fold_ternary_loc): Use expr_location_or.
5864
5865 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
5866
5867         PR debug/48853
5868         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
5869         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
5870         Pmode and mem_mode is not VOIDmode.
5871
5872 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
5873
5874         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
5875         TYPE_QUAL_RESTRICT): Convert to enum.
5876
5877 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
5878
5879         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
5880         (const_pow2_1_to_8_operand): Ditto.
5881         (const_pow2_1_to_128_operand): Ditto.
5882         (const_pow2_1_to_32768_operand): Ditto.
5883         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
5884         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
5885         in insn constraint to check integer value of operand 3.
5886         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
5887
5888         (PINSR_MODE): New mode iterator.
5889         (sse2p4_1): New mode attribute.
5890         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
5891         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
5892         iterator.  Use const_int_operand instead of
5893         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
5894         exact_log2 in insn constraint to check integer value of operand 3.
5895
5896 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
5897
5898         * config/i386/sse.md (blendbits): Remove mode attribute.
5899         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5900         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5901         Check integer value of operand 3 in insn constraint.
5902
5903 2011-05-09  Richard Guenther  <rguenther@suse.de>
5904
5905         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
5906         for diagnostics.
5907         (lto_symtab_merge): Likewise.  Do not register types here.
5908         (lto_symtab_merge_decls_2): Likewise.
5909         (lto_symtab_merge_decls_1): Likewise.
5910         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
5911         * gimple.c (enum gtc_mode): Declare.
5912         (gimple_types_compatible_p): Make static.
5913
5914 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5915
5916         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
5917         temporary register to match Pmode.
5918
5919 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
5920
5921         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
5922         and *vec_concatv4si_1_avx.
5923
5924 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
5925
5926         PR rtl-optimization/48927
5927         * ira-conflicts.c (commutative_constraint_p): Use
5928         recog_data.alternative_enabled_p to disable alternatives where
5929         "enabled" attribute is false.
5930         (get_dup_num): Ditto.
5931         * ira-lives.c (single_reg_class): Ditto.
5932         (ira_implicitly_set_insn_hard_regs): Ditto.
5933
5934 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
5935
5936         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
5937         (dataflow_set_preserve_mem_locs): Likewise.
5938
5939 2011-05-09  Philipp Thomas  <pth@suse.de>
5940
5941         * config/mep/mep.c (mep_validate_vliw): Syntax description
5942         should not be translated.
5943
5944 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
5945
5946         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
5947         * config/mips/mips-tables.opt: New file (generated).
5948         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
5949         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
5950         MIPS_ARCH_OPTION_NATIVE): Define.
5951         * config/mips/mips.c (mips_cpu_info_table): Move contents to
5952         mips-cpus.def.
5953         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
5954         mips_parse_cpu): Remove.
5955         (mips_cpu_info_from_opt, mips_default_arch): New.
5956         (mips_handle_option): Don't assert that global structures are in
5957         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
5958         (mips_option_override): Use new variables and functions to set
5959         state of these options.  Use strcmp to check for individual CPU names.
5960         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
5961         definition.
5962         * config/mips/mips.opt (march=): Use ToLower and Enum.
5963         (mips): Use ToLower, Enum and Var.
5964         (mtune=): Use ToLower and Enum.
5965         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
5966
5967 2011-05-08  Jan Hubicka  <jh@suse.cz>
5968
5969         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
5970         Arrange type pairs to be UID ordered.
5971         (gimple_lookup_type_leader): Make inline.
5972
5973 2011-05-09  Nick Clifton  <nickc@redhat.com>
5974
5975         PR target/48899
5976         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
5977         PROCESSOR_DEFAULT.
5978
5979         PR target/48897
5980         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
5981         variable 's'.
5982
5983 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
5984
5985         * combine.c (simplify_comparison): Abstract out parts into...
5986         (simplify_compare_const): ... new function.
5987         (try_combine): Generalize parallel arithmetic/compare combining
5988         to call simplify_compare_const() and CANONICALIZE_COMPARE().
5989
5990 2011-05-08  Jan Hubicka  <jh@suse.cz>
5991
5992         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
5993         (cgraph_create_virtual_clone): Call hooks once virtual clone
5994         is finished.
5995         * cgraph.h (cgraph_clone_node): Update prototype.
5996         * ipa-cp.c (ipcp_estimate_growth): Use
5997         estimate_ipcp_clone_size_and_time.
5998         * ipa-inline-transform.c (clone_inlined_nodes): Update.
5999         * lto-cgraph.c (input_node): Update.
6000         * ipa-inline.c (recursive_inlining): Update.
6001         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
6002         (evaluate_conditions_for_known_args): Break out from ...
6003         (evaluate_conditions_for_edge): ... here.
6004         (evaluate_conditions_for_ipcp_clone): New function.
6005         (inline_node_duplication_hook): Update clone summary based
6006         on parameter map.
6007         (estimate_callee_size_and_time): Rename to ...
6008         (estimate_node_size_and_time): take NODE instead of EDGE;
6009         take POSSIBLE_TRUTHS as argument.
6010         (estimate_callee_size_and_time): Update.
6011         (estimate_ipcp_clone_size_and_time): New function.
6012         (do_estimate_edge_time): Update.
6013
6014 2011-05-08  Richard Guenther  <rguenther@suse.de>
6015
6016         PR middle-end/48908
6017         PR middle-end/48905
6018         * expmed.c (expand_shift_1): Compute adjusted constant shift
6019         amount manually.
6020
6021 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
6022
6023         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
6024
6025 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
6026
6027         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
6028
6029 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
6030
6031         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
6032
6033 2011-05-07  Jan Hubicka  <jh@suse.cz>
6034
6035         * ipa-inline-transform.c (inline_call): Account when program size
6036         decreases.
6037         * ipa-inline.c (relative_time_benefit): New function.
6038         (edge_badness): Reorganize to be power 2 based; fix thinko when
6039         computing badness for negative growth; update comments to match
6040         reality; better dumps.
6041
6042 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6043
6044         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
6045         type to bool and adjust comment.
6046         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
6047         (fold_mathfn_compare): Remove calls to global_bindings_p.
6048         (fold_inf_compare): Likewise.
6049         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
6050         * c-tree.h (global_bindings_p): Adjust prototype.
6051         * c-decl.c (global_bindings_p): Return bool and simplify.
6052
6053 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
6054
6055         PR tree-optimization/48837
6056         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
6057         when accumulator transformation is performed.
6058
6059 2011-05-06  Jan Hubicka  <jh@suse.cz>
6060
6061         * i386.h (ix86_tune_indices): Add
6062         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
6063         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
6064         * i386.c (initial_ix86_tune_features): Add
6065         X86_SOFTARE_PREFETCHING_BENEFICIAL.
6066         (software_prefetching_beneficial_p): Remove predicate.
6067         (ix86_option_override_internal): Use new macro.
6068
6069 2011-05-06  Jan Hubicka  <jh@suse.cz>
6070
6071         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
6072
6073 2011-05-06  Jan Hubicka  <jh@suse.cz>
6074
6075         * cgraph.c (cgraph_add_thunk): Create real function node instead
6076         of alias node; finalize it and mark needed/reachale; arrange visibility
6077         to be right and add it into the corresponding same comdat group list.
6078         (dump_cgraph_node): Dump thunks.
6079         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
6080         cgraph_function_with_gimple_body_p,
6081         cgraph_first_function_with_gimple_body,
6082         cgraph_next_function_with_gimple_body): New functions.
6083         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
6084         New macros.
6085         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
6086         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
6087         * cgraphunit.c (cgraph_finalize_function): Only look into possible
6088         devirtualization when optimizing.
6089         (verify_cgraph_node): Verify thunks.
6090         (cgraph_analyze_function): Analyze thunks.
6091         (cgraph_mark_functions_to_output): Output thunks only in combination
6092         with function they are assigned to.
6093         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
6094         alias into normal node.
6095         (assemble_thunks): New functoin.
6096         (cgraph_expand_function): Use it.
6097         * lto-cgraph.c (lto_output_node): Stream thunks.
6098         (input_overwrite_node): Stream in thunks.
6099         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
6100         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
6101         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
6102         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
6103         (inline_analyze_function): Do not care about thunk jump functions.
6104         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
6105         * ipa-prop.c (ipa_prop_write_jump_functions): Use
6106         cgraph_function_with_gimple_body_p.
6107         * passes.c (do_per_function_toporder): Use
6108         cgraph_function_with_gimple_body_p.
6109         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
6110         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
6111         (function_called_by_processed_nodes_p): Likewise.
6112
6113 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
6114
6115         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
6116         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
6117         entries.
6118         (mabi=): Replace with separate entries for mabi=altivec,
6119         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
6120         mabi=ieeelongdouble and mabi=ibmlongdouble.
6121         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
6122         check for -mabi=spe without SPE ABI support here.
6123         (rs6000_handle_option): Replace OPT_mabi_ handling with
6124         OPT_mabi_altivec and OPT_mabi_spe handling.
6125
6126 2011-05-06  Cary Coutant  <ccoutant@google.com>
6127
6128         * dwarf2out.c (contains_subprogram_definition): New function.
6129         (should_move_die_to_comdat): Call it.
6130
6131 2011-05-06  Jeff Law  <law@redhat.com>
6132
6133         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
6134         remove_ctrl_stmt_and_useless_edges.
6135         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
6136         (fixup_template_block, thread_single_edge): Likewise.
6137         (mark_threaded_blocks): Use THREAD_TARGET.
6138
6139 2011-05-06  Alan Modra  <amodra@gmail.com>
6140
6141         PR target/48900
6142         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
6143         const0_rtx as the arg to the dummy __tls_get_addr libcall.
6144
6145 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
6146
6147         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
6148         constraint modifier to "r".
6149
6150 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
6151
6152         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
6153         fall through for OPT_mcmodel_.
6154
6155 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6156
6157         * config/s390/s390.c (s390_asm_trampoline_template): Comment
6158         instruction sizes.
6159         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
6160
6161 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6162
6163         PR target/47930
6164         * config/arm/arm.opt (marm): Document it.
6165         (mthumb): Reject negative variant.
6166
6167 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
6168
6169         PR target/48898
6170         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6171         Fix typo in "ccvt" variable name.
6172
6173 2011-05-06  Tristan Gingold  <gingold@adacore.com>
6174
6175         PR target/48895
6176         * config/vms/vms-ar.c (main): Remove cwd variable.
6177
6178 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
6179
6180         PR debug/48902
6181         * var-tracking.c (prepare_call_arguments): Move else before #endif.
6182
6183 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
6184
6185         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
6186         * gimplify.c (gimplify_switch_expr): Likewise.
6187         * omp-low.c (expand_omp_sections): Likewise.
6188         * tree-eh.c (lower_try_finally_switch): Likewise.
6189         (lower_eh_dispatch): Likewise.
6190         * tree.h (build_case_label): Declare.
6191         * tree.c (build_case_label): Define.
6192
6193 2011-05-05  Jason Merrill  <jason@redhat.com>
6194
6195         PR c++/40975
6196         * tree-inline.c (copy_tree_r): Use copy_statement_list.
6197         (copy_statement_list): Don't recurse.
6198         * stor-layout.c (copy_self_referential_tree_r): Don't allow
6199         STATEMENT_LIST.
6200
6201 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
6202
6203         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
6204         through from -mfpu= handling.
6205         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
6206
6207 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
6208
6209         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
6210         POST_MODIFY.
6211
6212 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
6213
6214         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
6215         for 11.31.
6216         (hppa[12]*-*-hpux11*): Ditto.
6217         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
6218         * config/ia64/hpux-unix2003.h: New.
6219         * config/pa/pa-hpux1131.opt: New.
6220         * config/pa/pa-hpux1131.h: New.
6221         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
6222         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
6223         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
6224
6225 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
6226
6227         PR debug/48853
6228         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
6229         instead of mode as 3rd argument to recursive call.
6230         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
6231         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
6232         VOIDmode.
6233         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
6234         don't give up if mode is Pmode and mem_mode is not VOIDmode.
6235         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
6236         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
6237
6238 2011-05-05  Julian Brown  <julian@codesourcery.com>
6239
6240         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
6241         parenthesis in D-register case.
6242
6243 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
6244
6245         * opt-functions.awk (var_type_struct): Handle Enum options.
6246         * optc-gen.awk: Don't check range of variables of character type.
6247         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
6248         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
6249         rs6000_sdata_name, rs6000_explicit_options): Remove.
6250         (rs6000_option_override_internal): Check for -malign-power here.
6251         Use global_options_set instead of rs6000_explicit_options.
6252         (rs6000_parse_fpu_option): Remove.
6253         (rs6000_handle_option): Access variables via opts and opts_set
6254         pointers.  Use error_at and warning_at.  Add fall-through
6255         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
6256         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
6257         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
6258         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
6259         here.  Don't use rs6000_parse_fpu_option.
6260         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
6261         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
6262         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
6263         (mrecip=): Use Var.
6264         (mspe): Use Var and Save.
6265         (mtraceback=): Use Enum and Var.
6266         (rs6000_traceback_type): New Enum and EnumValue entries.
6267         (mfloat-gprs=): Use Enum, Var and Save.
6268         (rs6000_float_gprs): New Enum and EnumValue entries.
6269         (mlong-double-): use Var and Save.
6270         (msched-costly-dep=, minsert-sched-nops=): Use Var.
6271         (malign-): Use Enum and Var.
6272         (rs6000_alignment_flags): New Enum and EnumValue entries.
6273         (mfpu=): Use Enum.
6274         (fpu_type_t): New Enum and EnumValue entries.
6275         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6276         global_options_set instead of rs6000_explicit_options.
6277         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6278         global_options_set instead of rs6000_explicit_options.
6279         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6280         global_options_set instead of rs6000_explicit_options.
6281         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6282         global_options_set instead of rs6000_explicit_options.
6283         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
6284         global_options_set instead of rs6000_explicit_options.
6285         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6286         global_options_set instead of rs6000_explicit_options.
6287         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
6288         definition.
6289         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6290         global_options_set instead of rs6000_explicit_options.
6291         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
6292         (rs6000_cmodel): New Enum and EnumValue entries.
6293         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6294         global_options_set instead of rs6000_explicit_options.
6295         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
6296         (mtls-size=): Use Enum and Var.
6297         (rs6000_tls_size): New Enum and EnumValue entries.
6298
6299 2011-05-05  Michael Matz  <matz@suse.de>
6300
6301         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
6302         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
6303         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
6304         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
6305         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
6306         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
6307         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
6308         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
6309         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
6310         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
6311         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
6312         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
6313         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
6314         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
6315         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
6316         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
6317
6318 2011-05-05  Richard Guenther  <rguenther@suse.de>
6319
6320         * expmed.c (expand_variable_shift): Rename to ...
6321         (expand_shift_1): ... this.  Take an expanded shift amount.
6322         For rotates recurse directly not building trees for the shift amount.
6323         (expand_variable_shift): Wrap around expand_shift_1.
6324         (expand_shift): Adjust.
6325
6326 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
6327
6328         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
6329
6330 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6331
6332         * tree.h (get_pending_sizes): Remove prototype.
6333         (put_pending_size): Likewise.
6334         (put_pending_sizes): Likewise.
6335         * stor-layout.c (pending_sizes): Delete.
6336         (get_pending_sizes): Likewise.
6337         (put_pending_size): Likewise.
6338         (put_pending_sizes): Likewise.
6339         (variable_size): Do not call put_pending_size and tidy up.
6340         * function.h (struct function): Remove dont_save_pending_sizes_p.
6341         * lto-streamer-in.c (input_function): Do not stream it.
6342         * lto-streamer-out.c (output_function): Likewise.
6343         * tree-inline.c (initialize_cfun): Do not copy it.
6344         * c-decl.c (store_parm_decls): Do not set it.
6345         * omp-low.c (create_task_copyfn): Likewise.
6346         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6347
6348 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
6349
6350         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
6351         conditions.
6352         (*movdf_internal): Ditto.
6353         (*movdf_internal_nointeger): Ditto.
6354         (*movsf_internal): Ditto.
6355
6356 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
6357
6358         * c-decl.c (finish_decl): Don't call get_pending_sizes.
6359         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
6360         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
6361         (c_variable_size): Remove.
6362         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
6363         call put_pending_sizes.
6364         (get_parm_info): Add parameter expr.  Use it to set
6365         arg_info->pending_sizes.
6366         (store_parm_decls): Use arg_info->pending_sizes instead or calling
6367         get_pending_sizes.
6368         * c-parser.c (c_parser_parms_declarator): Update call to
6369         c_parser_parms_list_declarator.
6370         (c_parser_parms_list_declarator): Take parameter expr.  Update
6371         call to push_parm_decl.  Update recursive call.  Don't call
6372         get_pending_sizes.  Update calls to get_parm_info.
6373         (c_parser_objc_method_definition): Update calls to
6374         c_parser_objc_method_decl and objc_start_method_definition.
6375         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
6376         (c_parser_objc_method_decl): Add parameter expr.  Update call to
6377         grokparm.
6378         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
6379         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
6380         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
6381
6382 2011-05-05  Michael Hope  <michael.hope@linaro.org>
6383
6384         PR pch/45979
6385         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
6386         __ARM_EABI__ hosts.
6387
6388 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6389
6390         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
6391         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
6392         (spu_output_mi_thunk): New function.
6393
6394 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6395
6396         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
6397         targetm.asm_out.print_operand.
6398         * config/sol2.c: Include target.h.
6399
6400 2011-05-04  Jan Hubicka  <jh@suse.cz>
6401
6402         * ipa-inline.c (reset_edge_caches): New function.
6403         (update_caller_keys): Add check_inlinablity_for; do not
6404         reset edge caches; remove now unnecesary loop.
6405         (update_callee_keys): Add comments; reset node_growth_cache of callee.
6406         (update_all_callee_keys): Likewise.
6407         (inline_small_functions): Sanity check cache; update code
6408         recomputing it.
6409
6410 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
6411
6412         PR rtl-optimization/47612
6413         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
6414         as the last insn of the sequence to be moved.
6415
6416 2011-05-04  Tobias Burnus  <burnus@net-b.de>
6417
6418         PR fortran/48864
6419         * doc/invoke.texi (Ofast): Document that it
6420         enables Fortran's -fno-protect-parens.
6421
6422 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
6423
6424         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
6425
6426 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
6427
6428         * stor-layout.c (variable_size): Do not issue errors.
6429
6430 2011-05-04  Richard Guenther  <rguenther@suse.de>
6431
6432         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
6433         for array-ref indices.
6434         (tree_coverage_counter_addr): Likewise.
6435         (build_fn_info_type): Use size_int for index types.
6436         (build_gcov_info): Likewise.
6437
6438 2011-05-04  Richard Guenther  <rguenther@suse.de>
6439
6440         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
6441         to build_int_cst.
6442         * c-typeck.c (really_start_incremental_init): Use bitsize_int
6443         for constructor indices.
6444         (push_init_level): Likewise.
6445
6446 2011-05-04  Richard Guenther  <rguenther@suse.de>
6447
6448         * explow.c (promote_mode): Move variable declarations before code.
6449
6450 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
6451
6452         * tree.h (build_function_type_array): Declare.
6453         (build_varargs_function_type_array): Declare.
6454         (build_function_type_vec, build_varargs_function_type_vec): Define.
6455         * tree.c (build_function_type_array_1): New function.
6456         (build_function_type_array): New function.
6457         (build_varargs_function_type_array): New function.
6458
6459 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
6460
6461         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
6462         before setting STMT_VINFO_TYPE.
6463
6464 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6465
6466         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
6467         instead of spu_pass_by_reference.
6468
6469 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6470
6471         * calls.c (emit_library_call_value_1): Invoke
6472         promote_function_mode hook on libcall arguments.
6473         * explow.c (promote_function_mode, promote_mode): Handle TYPE
6474         argument being NULL.
6475         * targhooks.c (default_promote_function_mode): Lisewise.
6476         * config/s390/s390.c (s390_promote_function_mode): Likewise.
6477         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
6478
6479         * doc/tm.texi: Document that TYPE argument might be NULL.
6480
6481 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
6482
6483         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
6484
6485 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
6486
6487         From Bernd Schmidt
6488         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
6489
6490 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6491
6492         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
6493         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
6494         Move ...
6495         * mips-tfile.c: ... here.
6496         Don't include coretypes.h, tm.h, filenames.h.
6497         (saber_stop): Remove definition and all calls.
6498         [__SABER__]: Remove.
6499         (__LINE__): Remove default.
6500         (Size_t, Ptrdiff_t): Remove definitions.
6501         Replace by size_t, ptrdiff_t.
6502         [!MIPS_DEBUGGING_INFO]: Remove.
6503         (SHASH_SIZE, THASH_SIZE): Remove defaults.
6504         (progname): Add const.
6505         (STATIC): Remove.
6506         Replace all uses by static.
6507         (ALIGN_SYMTABLE_OFFSET): Remove default.
6508         * mips-tdump.c: Don't include coretypes.h, tm.h.
6509         Remove !MIPS_IS_STAB guard.
6510         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
6511         $(TM_H), filenames.h dependencies.
6512         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
6513
6514 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
6515
6516         From Jie Zhang
6517         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
6518         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
6519
6520 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
6521
6522         From Bernd Schmidt
6523         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
6524         account and save/restore RETS.
6525         (PROFILE_BEFORE_PROLOGUE): Define.
6526         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
6527         the push insn to use predecrement.
6528
6529 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
6530
6531         From Jie Zhang
6532         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
6533
6534 2011-05-04  Nick Clifton  <nickc@redhat.com>
6535
6536         * config/mn10300/mn10300.c: Include cfgloop.h.
6537         (DUMP): New macro.
6538         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
6539         Lcc or a FLcc insn into the instruction stream.
6540         (mn10300_block_contains_call): New function.  Returns true if the
6541         given basic block contains a CALL insn.
6542         (mn10300_loop_contains_call_insn): New function.  Returns true if
6543         the given loop contains a CALL insn.
6544         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
6545         to use the SETLB and Lcc or FLcc insns.
6546         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
6547         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
6548         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
6549         disable the SETLB optimization.
6550         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
6551         __SETLB__ or __NO_SETLB__.
6552         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
6553         (movsf_internal): Handle MDR register.
6554         (cmpsi): Make visible.
6555         (setlb): New pattern.
6556         (Lcc): New pattern.
6557         (FLcc): New pattern.
6558
6559 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
6560
6561         PR target/48860
6562         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
6563         for reg<->xmm moves.
6564         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
6565         (vec_concatv2di_rex64_sse): Ditto.
6566         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
6567         (*vec_extractv2di_1_rex64): Ditto.
6568
6569         Revert:
6570         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
6571
6572         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
6573         reg<->xmm moves.
6574         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
6575
6576 2011-05-04  Richard Guenther  <rguenther@suse.de>
6577
6578         * tree.h (int_const_binop): Remove notrunc argument.
6579         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
6580         create integer constants that are properly truncated.
6581         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
6582         (const_binop): Remove zero notrunc argument to int_const_binop.
6583         (size_binop_loc): Likewise.
6584         (fold_div_compare): Likewise.
6585         (maybe_canonicalize_comparison_1): Likewise.
6586         (fold_comparison): Likewise.
6587         (fold_binary_loc): Likewise.
6588         (multiple_of_p): Likewise.
6589         * expr.c (store_constructor): Likewise.
6590         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
6591         (maybe_fold_stmt_addition): Likewise.
6592         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
6593         * stor-layout.c (layout_type): Likewise.
6594         * tree-data-ref.c (tree_fold_divides_p): Likewise.
6595         * tree-sra.c (build_ref_for_offset): Likewise.
6596         (build_user_friendly_ref_for_offset): Likewise.
6597         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
6598         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
6599         * tree-ssa-loop-niter.c (inverse): Likewise.
6600         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
6601         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
6602         * tree-switch-conversion.c (check_range): Likewise.
6603         (build_constructors): Likewise.
6604         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
6605         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
6606         (extract_range_from_assert): Likewise.
6607         (vrp_int_const_binop): Likewise.
6608         (extract_range_from_binary_expr): Likewise.
6609         (extract_range_from_unary_expr): Likewise.
6610         (check_array_ref): Likewise.
6611         (find_case_label_range): Likewise.
6612         (simplify_div_or_mod_using_ranges): Likewise.
6613         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
6614         comparing case labels for merging.
6615
6616 2011-05-03  Mark Wielaard  <mjw@redhat.com>
6617
6618         * dwarf2out.c (debug_str_hash_forced): Removed.
6619         (gen_label_for_indirect_string): Removed.
6620         (get_debug_string_label): Removed.
6621         (AT_string_form): Generate label directly.
6622         (output_indirect_string): Test indirect_string_node for
6623         DW_FORM_strp instead of checking label and refcount.
6624         (prune_indirect_string): Removed.
6625         (prune_unused_types): Don't check debug_str_hash_forced or
6626         call prune_indirect_string.
6627
6628 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
6629
6630         PR other/48093
6631         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
6632
6633 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
6634
6635         PR debug/47994
6636         PR debug/47919
6637         * combine.c (try_combine): Skip debug insns at m_split tests.
6638
6639 2011-04-26  Mark Wielaard  <mjw@redhat.com>
6640
6641         PR42288
6642         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
6643         when info_section_emitted.
6644
6645 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
6646
6647         * config/mips/mips-opts.h: New.
6648         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
6649         to mips-opts.h.
6650         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
6651         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
6652         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
6653         via opts pointer.
6654         * config/mips/mips.h (enum mips_code_readable_setting): Move to
6655         mips-opts.h.
6656         (mips_abi, mips_code_readable): Don't declare.
6657         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
6658         (mabi=): Use Enum and Var.
6659         (mips_abi): New Enum and EnumValue entries.
6660         (mcode-readable=): Use Enum and Var.
6661         (mips_code_readable_setting): New Enum and EnumValue entries.
6662         (mr10k-cache-barrier=): Use Enum and Var.
6663         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
6664
6665 2011-05-03  Jan Hubicka  <jh@suse.cz>
6666
6667         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
6668         replace hash by pointer map.
6669         (cgraph_node_set_element_def, cgraph_node_set_element,
6670         const_cgraph_node_set_element, varpool_node_set_element_def,
6671         varpool_node_set_element, const_varpool_node_set_element): Remove.
6672         (free_cgraph_node_set, free_varpool_node_set): New function.
6673         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
6674         * tree-emutls.c: Free varpool node set.
6675         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
6676         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
6677         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
6678         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
6679         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
6680         Move here from ipa.c; implement using pointer_map
6681         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
6682         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
6683         debug_cgraph_node_set, varpool_node_set_new,
6684         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
6685         dump_varpool_node_set, debug_varpool_node_set):
6686         Move to ipa-uitls.c.
6687         * passes.c (ipa_write_summaries): Update.
6688
6689 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6690
6691         From Mike Frysinger:
6692         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
6693         bf542/bf544/bf547/bf548/bf549.
6694
6695 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
6696
6697         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
6698
6699 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6700
6701         From Bernd Schmidt:
6702         * config/bfin/bfin.md (MOVCC): New mode_macro.
6703         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
6704         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
6705         comments from generated assembly.
6706
6707 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6708
6709         From Bernd Schmidt
6710         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
6711         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
6712         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
6713         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
6714         * config/bfin/lib1funcs.asm (___muldi3): New function.
6715
6716 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6717
6718         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
6719         build_function_type_list instead of build_function_type.
6720         Rearrange initialization of `args' to do so.
6721
6722 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6723
6724         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
6725         instead of build_function_type.
6726
6727 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6728
6729         * config/rs6000/rs6000.c (spe_init_builtins): Call
6730         build_function_type_list instead of build_function_type.
6731         (paired_init_builtins, altivec_init_builtins): Likewise.
6732         (builtin_function_type): Likewise.
6733
6734 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6735
6736         * config/sh/sh.c (sh_media_init_builtins): Call
6737         build_function_type_list instead of build_function_type.
6738
6739 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6740
6741         * config/sparc/sparc.c (sparc_file_end): Call
6742         build_function_type_list instead of build_function_type.
6743
6744 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6745
6746         * config/alpha/alpha.c (alpha_init_builtins): Call
6747         build_function_type_list instead of build_function_type.
6748
6749 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6750
6751         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
6752         build_function_type_list instead of build_function_type.
6753
6754 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6755
6756         * config/iq2000/i2000.c (iq2000_init_builtins): Call
6757         build_function_type_list instead of build_function_type.
6758         Delete `endlink' variable.
6759
6760 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6761
6762         * config/avr/avr.c (avr_init_builtins): Call
6763         build_function_type_list instead of build_function_type.
6764
6765 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6766
6767         * config/picochip/picochip.c (picochip_init_builtins): Call
6768         build_function_type_list instead of build_function_type.
6769         Delete `endlink' variable.
6770
6771 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6772
6773         * config/bfin/bfin.c (bfin_init_builtins): Call
6774         build_function_type_list instead of build_function_type.
6775
6776 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6777
6778         From Bernd Schmidt
6779         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
6780         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
6781
6782 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6783
6784         From Jie Zhang:
6785         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
6786         libbffastfp overrides libgcc when -mfast-fp.
6787
6788 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6789
6790         Originally from Bernd Schmidt
6791         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
6792         * config/bfin/bfin.c (override_options): Test it and error if
6793         TARGET_FDPIC.
6794
6795 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6796
6797         Originally From Bernd Schmidt
6798         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
6799         FD-PIC.
6800
6801 2011-05-03  Jeff Law  <law@redhat.com>
6802
6803         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
6804         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
6805         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
6806         than accessing AUX field directly.  Free the AUX field before
6807         clearing it.
6808         (thread_block, thread_through_loop_header): Likewise.
6809         (thread_single_edge, mark_threaded_blocks): Likewise.
6810         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
6811         (register_jump_thread): Do not attempt to thread to a NULL edge.
6812
6813 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
6814
6815         * function.c (init_function_start): Call decide_function_section.
6816         * varasm.c (decide_function_section): New function.
6817         (assemble_start_function): When not using
6818         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
6819         or first_function_block_is_cold.
6820         * rtl.h (decide_function_section): Declare.
6821
6822 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
6823             Jakub Jelinek  <jakub@redhat.com>
6824
6825         PR target/48774
6826         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
6827         only succeed if req_mode is the same as set_mode.
6828
6829 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
6830
6831         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
6832         * genemit.c (gen_exp): Handle RETURN.
6833         * emit-rtl.c (verify_rtx_sharing): Likewise.
6834         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
6835         * rtl.c (copy_rtx): RETURN is shared.
6836         * rtl.h (enum global_rtl_index): Add GR_RETURN.
6837         (ret_rtx): New.
6838         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
6839         * config/s390/s390.c (s390_emit_epilogue): Likewise.
6840         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
6841         * config/cris/cris.c (cris_expand_return): Likewise.
6842         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
6843         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
6844         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
6845         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
6846         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
6847         Likewise.
6848         * config/v850/v850.c (expand_epilogue): Likewise.
6849         * config/bfin/bfin.c (bfin_expand_call): Likewise.
6850         * config/arm/arm.md (epilogue): Likewise.
6851         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
6852         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
6853         variable to ret_reg.
6854
6855 2011-05-03  Richard Guenther  <rguenther@suse.de>
6856
6857         PR lto/48846
6858         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
6859         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
6860         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
6861
6862 2011-05-03  Richard Guenther  <rguenther@suse.de>
6863
6864         * c-decl.c (grokdeclarator): Instead of looking at
6865         TREE_OVERFLOW check if the constant fits in the index type.
6866
6867 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
6868
6869         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
6870         (vec_store_lanes<mode><mode>): Likewise.
6871
6872 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
6873
6874         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
6875         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
6876         convert_optab_index values.
6877         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
6878         * genopinit.c (optabs): Initialize the new optabs.
6879         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
6880         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
6881         (expand_STORE_LANES): New functions.
6882         * tree.h (build_array_type_nelts): Declare.
6883         * tree.c (build_array_type_nelts): New function.
6884         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
6885         (vect_model_load_cost): Likewise.
6886         (vect_store_lanes_supported, vect_load_lanes_supported)
6887         (vect_record_strided_load_vectors): Declare.
6888         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
6889         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
6890         (vect_transform_strided_load): Split out statement recording into...
6891         (vect_record_strided_load_vectors): ...this new function.
6892         * tree-vect-stmts.c (create_vector_array, read_vector_array)
6893         (write_vector_array, create_array_ref): New functions.
6894         (vect_model_store_cost): Add store_lanes_p argument.
6895         (vect_model_load_cost): Add load_lanes_p argument.
6896         (vectorizable_store): Try to use store-lanes functions for
6897         interleaved stores.
6898         (vectorizable_load): Likewise load-lanes and loads.
6899         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
6900         to vect_model_store_cost.
6901         (vect_build_slp_tree): Likewise vect_model_load_cost.
6902
6903 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
6904
6905         * hooks.h (hook_bool_mode_uhwi_false): Declare.
6906         * hooks.c (hook_bool_mode_uhwi_false): New function.
6907         * target.def (array_mode_supported_p): New hook.
6908         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
6909         * doc/tm.texi: Regenerate.
6910         * stor-layout.c (mode_for_array): New function.
6911         (layout_type): Use it.
6912         * config/arm/arm.c (arm_array_mode_supported_p): New function.
6913         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
6914
6915 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
6916
6917         PR target/48723
6918         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
6919         for -fstack-check if the size to allocate is negative.
6920
6921 2011-05-02  Lawrence Crowl  <crowl@google.com>
6922
6923         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
6924         (timevar_cond_start): New for starting a timer only when it is not
6925         already running.
6926         (timevar_cond_stop): New for stopping a timer when it was not already
6927         running.
6928
6929         * timevar.c (timevar_stop): Enable start/stop timers to start again.
6930         (timevar_cond_start): New as above.
6931         (timevar_cond_stop): New as above.
6932
6933         * timevar.def: Add start/stop timers for compiler phases,
6934         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
6935         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
6936         and TV_PHASE_FINALIZE.
6937         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
6938         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
6939         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
6940         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
6941         Make unused TV_OVERLOAD into a start/stop timer.
6942
6943         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
6944         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
6945         to indicate that they are start/stop timers.
6946
6947         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
6948         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
6949         Move initialization to do_compile.
6950         (do_compile): Add initialization from above.
6951         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
6952
6953         * c-decl.c (c_write_global_declarations): Add start/stop of
6954         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
6955
6956         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
6957         or TV_PARSE_INLINE, as appropriate.
6958         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
6959         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
6960
6961 2011-05-02  Jason Merrill  <jason@redhat.com>
6962
6963         PR c++/40975
6964         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
6965
6966 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
6967
6968         PR c/35445
6969         * c-decl.c (finish_decl): Only create a composite if the types are
6970         compatible.
6971
6972 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
6973
6974         * config/fr30/fr30-protos.h (Mmode): Don't define.
6975         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
6976         definition where used.
6977         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
6978         define.  Expand definitions where used.
6979         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
6980         Expand definitions where used.
6981         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
6982         rx_function_arg, rx_function_arg_advance,
6983         rx_function_arg_boundary): Expand definitions of those macros.
6984         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
6985         definition where used.
6986
6987 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
6988
6989         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
6990         reg<->xmm moves.
6991         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
6992         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
6993         with *movv2sf_internal_rex64_avx.
6994         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
6995         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
6996         Use %v prefix in insn mnemonic to handle TARGET_AVX.
6997         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
6998         "vex" in "prefix" attribute calculation.
6999         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
7000
7001 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
7002
7003         PR target/47951
7004         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
7005         inputs match the output.
7006
7007 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
7008
7009         PR target/47955
7010         * config/m68k/m68k.c (m68k_expand_prologue): Set
7011         current_function_static_stack_size.
7012
7013 2011-05-02   Jan Hubicka  <jh@suse.cz>
7014
7015         * lto-streamer.c (lto_streamer_cache_insert_1,
7016         lto_streamer_cache_lookup, lto_streamer_cache_create,
7017         lto_streamer_cache_delete): Use pointer map instead of hashtable.
7018         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
7019
7020 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
7021
7022         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
7023         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
7024         config/m68k/t-opts: New files.
7025         * config/m68k/m68k-tables.opt: New file (generated).
7026         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
7027         extra_options and m68k/t-opts to tmake_file.
7028         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
7029         (all_isas): Initialize using m68k-isas.def.
7030         (all_microarchs): Initialize using m68k-microarchs.def.
7031         (m68k_find_selection): Remove.
7032         (m68k_handle_option): Don't assert that global structures are in
7033         use.  Use error_at.  Access variables via opts pointer.  Don't
7034         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
7035         directly for -m68020-40 and -m68020-60.
7036         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
7037         m68k_tune_entry here.
7038         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
7039         to m68k-opts.h.
7040         (m68k_library_id_string): Remove declaration.
7041         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
7042         (m68k_library_id_string): New Variable.
7043         (march=, mcpu=, mtune=): Use Enum and Var.
7044
7045 2011-05-02  Richard Guenther  <rguenther@suse.de>
7046
7047         * varasm.c (output_constructor_regular_field): Compute zero-based
7048         index with double-ints.  Make sure to ICE instead of producing
7049         wrong code.
7050         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
7051         in asserts.  Properly use a signed type.
7052
7053 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
7054
7055         * config/i386/sse.md (V): New mode iterator.
7056         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
7057         TARGET_SSE2.
7058         (V_256): Rename from AVX256MODE.
7059         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
7060         condition to all users.
7061         (VF1): Ditto.
7062         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
7063         condition to all users.
7064         (VF_128): Make V4SF mode unconditional.
7065         (VF_256): Rename from AVX256MODEF2P.
7066         (VI4F_128): Rename from SSEMODE4S.
7067         (VI8F_128): Rename from SSEMODE2D.
7068         (VI4F_256): Rename from AVX256MODE8P.
7069         (VI8F_256): Rename from AVX256MODE4P.
7070         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
7071         (ssescalarmodesuffix): Remove SF and DF modes.
7072         (SSEMODE124): Remove.
7073         (SSEMODE1248): Ditto.
7074         (SSEMODEF2P): Ditto.
7075         (AVXMODEF2P): Ditto.
7076         (AVXMODEFDP): Ditto.
7077         (AVXMODEFSP): Ditto.
7078         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
7079         unconditional.
7080         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
7081         unconditional.
7082         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
7083         xop_pcmov_<mode>256.  Use V mode iterator.
7084
7085         Adjust RTX patterns globally for renamed mode attributes.
7086
7087 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7088
7089         * haifa-sched.c (sched_emit_insn): Emit insn before first
7090         non-scheduled insn.  Inform back-end about new insn.  Add
7091         new insn to scheduled_insns list.
7092
7093 2011-05-02  Richard Guenther  <rguenther@suse.de>
7094
7095         PR tree-optimization/48822
7096         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
7097         (process_scc): Indicate which iteration we start.
7098
7099 2011-05-02  Jan Hubicka  <jh@suse.cz>
7100
7101         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
7102         (lto_section_overrun): New.
7103         * lto-section-out.c (append_block): Rename to ...
7104         (lto_append_block): ... this one; export.
7105         (lto_output_1_stream): Move lto lto-streamer.h
7106         (lto_output_data_stream): Update.
7107         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
7108         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
7109         functions.
7110
7111 2011-05-02  Richard Guenther  <rguenther@suse.de>
7112
7113         * tree.c (tree_code_counts): New global array.
7114         (record_node_allocation_statistics): Count individual tree codes.
7115         (dump_tree_statistics): Dump individual code stats.
7116
7117 2011-05-01  Jan Hubicka  <jh@suse.cz>
7118
7119         * ipa-inline.c (caller_growth_limits): Fix thinko when
7120         looking for largest stack frame.
7121         * ipa-inline.h (dump_inline_summary): Declare.
7122         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
7123         on stack usage.
7124         (dump_inline_summary): Export.
7125         (debug_inline_summary): Declare as DEBUG_FUNCTION.
7126
7127 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
7128
7129         * reginfo.c (memory_move_cost): Change rclass argument type form
7130         'enum reg_class' to reg_class_t.
7131         * reload.h (memory_move_cost): Update prototype.
7132         * postreload.c reload_cse_simplify_set): Change type dclass var to
7133         reg_class_t.
7134         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
7135         Update prototype.
7136         (ira_allocate_and_set_costs): Change aclass argument type form
7137         'enum reg_class' to reg_class_t.
7138         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
7139         Change aclass argument type to reg_class_t.
7140         (update_conflict_hard_reg_costs): Change type aclass and pref vars
7141         to reg_class_t.
7142         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
7143         memory_move_cost call.
7144
7145         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
7146         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
7147         Change type tmp var to reg_class_t.
7148
7149 2011-04-30  Jan Hubicka  <jh@suse.cz>
7150
7151         * ipa-inline.c (can_inline_edge_p): Disregard limits when
7152         inlining into function with flatten attribute.
7153         (want_inline_small_function_p): Be more realistic about inlining
7154         cold calls where callee size grows.
7155
7156 2011-04-30  Jan Hubicka  <jh@suse.cz>
7157
7158         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
7159         flags.
7160
7161 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
7162
7163         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
7164         PRINT_OPERAND_PUNCT_VALID_P): Remove.
7165         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
7166         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
7167         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7168         (print_operand): Rename to...
7169         (sparc_print_operand): ...this. Make static. Adjust
7170         sparc_print_operand function call.
7171         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
7172         functions.
7173
7174 2011-04-30  Jan Hubicka  <jh@suse.cz>
7175
7176         PR middle-end/48752
7177         * ipa-inline.c (early_inliner): Disable when doing late
7178         addition of function.
7179
7180 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
7181
7182         * dwarf2out.c (get_address_mode): New inline.
7183         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
7184         if not dwarf_strict emit
7185         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
7186         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
7187         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
7188         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
7189         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
7190         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
7191         mem_loc_descriptor callers.
7192         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
7193         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
7194         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
7195         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
7196         (base_types): New variable.
7197         (get_base_type_offset, calc_base_type_die_sizes,
7198         base_type_for_mode, mark_base_types, base_type_cmp,
7199         move_marked_base_types): New functions.
7200         (calc_die_sizes): Assert that die_offset is 0 or equal to
7201         next_die_offset.
7202         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
7203         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
7204         callers.  If not dwarf_strict, call mem_loc_descriptor even for
7205         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
7206         (gen_subprogram_die): Don't give up on call site parameters
7207         with non-integral or large integral modes.  Adjust
7208         mem_loc_descriptor callers.
7209         (prune_unused_types): Call prune_unused_types_mark on base_types
7210         vector entries.
7211         (resolve_addr): Call mark_base_types.
7212         (dwarf2out_finish): Call move_marked_base_types.
7213
7214         PR tree-optimization/48809
7215         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
7216         type.
7217         (gen_inbound_check): Don't compute index_expr - range_min in utype
7218         again, instead reuse SSA_NAME initialized in build_arrays.
7219         Remove two useless gsi_for_stmt calls.
7220
7221 2011-04-29  Jeff Law  <law@redhat.com>
7222
7223         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
7224
7225 2011-04-29  Martin Jambor  <mjambor@suse.cz>
7226
7227         * cgraph.h (cgraph_postorder): Remove declaration.
7228         * ipa-utils.h (ipa_free_postorder_info): Declare.
7229         (ipa_reverse_postorder): Likewise.
7230         * cgraphunit.c: Include ipa-utils.h.
7231         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
7232         * ipa-inline.c: Include ipa-utils.h.
7233         (ipa_inline): Update call to ipa_reverse_postorder.
7234         * ipa-pure-const.c (propagate_pure_const): Update call to
7235         ipa_reduced_postorder and ipa_print_order.  Call
7236         ipa_free_postorder_info to clean up.
7237         (propagate_nothrow): Likewise.
7238         * ipa-reference.c (propagate): Removed a useless call to
7239         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
7240         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
7241         * ipa.c: Include ipa-utils.h.
7242         (ipa_profile): Update call to ipa_reverse_postorder.
7243         (cgraph_postorder): Moved to...
7244         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
7245         (ipa_utils_print_order): Renamed to ipa_print_order.
7246         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
7247         comments.
7248         (ipa_free_postorder_info): New function.
7249         * passes.c: Include ipa-utils.h.
7250         (do_per_function_toporder): Update call to ipa_reverse_postorder.
7251         (ipa_write_summaries): Likewise.
7252         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
7253         (cgraphunit.o): Likewise.
7254         (ipa.o): Likewise.
7255         (ipa-inline.o): Likewise.
7256
7257 2011-04-29  Jan Hubicka  <jh@suse.cz>
7258
7259         * gcc.dg/tree-ssa/inline-10.c: New testcase.
7260         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
7261         * ipa-inline.h (clause_t): Turn into unsigned int.
7262         * ipa-inline-analysis.c (add_clause): Do more simplification.
7263         (and_predicates): Shortcut more cases.
7264         (predicates_equal_p): Move forward; check that clauses are properly
7265         ordered.
7266         (or_predicates): Shortcut more cases.
7267         (edge_execution_predicate): Rewrite as...
7268         (set_cond_stmt_execution_predicate): ... this function; handle
7269         __builtin_constant_p.
7270         (set_switch_stmt_execution_predicate): New .
7271         (compute_bb_predicates): New.
7272         (will_be_nonconstant_predicate): Update TODO.
7273         (estimate_function_body_sizes): Use compute_bb_predicates
7274         and free them later, always try to estimate if stmt is constant.
7275         (estimate_time_after_inlining, estimate_size_after_inlining):
7276         Gracefully handle optimized out edges.
7277         (read_predicate): Fix off by one error.
7278
7279 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7280
7281         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
7282
7283 2011-04-27  Xinliang David Li  <davidxl@google.com>
7284
7285         * tree-profile.c (init_ic_make_global_vars): Set
7286         tls attribute on ic vars.
7287         * coverage.c (coverage_end_function): Initialize
7288         function_list with zero.
7289
7290 2011-04-29  Richard Guenther  <rguenther@suse.de>
7291
7292         * builtins.c (fold_builtin_classify_type): Use integer_type_node
7293         for the type of the result.
7294         (fold_builtin_isascii): Likewise.
7295         (fold_builtin_toascii): Use integer_type_node where appropriate.
7296         (fold_builtin_logb): Likewise.
7297         (fold_builtin_frexp): Likewise.
7298         (fold_builtin_strstr): Likewise.
7299         (fold_builtin_strpbrk): Likewise.
7300         (fold_builtin_fputs): Likewise.
7301         (fold_builtin_sprintf): Likewise.
7302         (fold_builtin_snprintf): Likewise.
7303         (fold_builtin_printf): Likewise.
7304         (do_mpfr_remquo): Use a proper type for the assigned constant.
7305         (do_mpfr_lgamma_r): Likewise.
7306         * dwarf2out.c (resolve_one_addr): Use size_int.
7307         * except.c (init_eh): Likewise.
7308         (assign_filter_values): Use integer_type_node for filter values.
7309         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
7310         indices.
7311         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
7312         for EH region numbers.
7313         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
7314         for the shift amount.
7315
7316 2011-04-29  Richard Guenther  <rguenther@suse.de>
7317
7318         * expr.h (expand_shift): Rename to ...
7319         (expand_variable_shift): ... this.
7320         (expand_shift): Take a constant shift amount.
7321         * expmed.c (expand_shift): Rename to ...
7322         (expand_variable_shift): ... this.
7323         (expand_shift): New wrapper around expand_variable_shift.
7324         * expr.c (convert_move, emit_group_load_1, emit_group_store,
7325         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
7326         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
7327         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
7328         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
7329         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
7330         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
7331         emit_store_flag_1, emit_store_flag): Likewise.
7332         * builtins.c (expand_builtin_signbit): Likewise.
7333         * calls.c (load_register_parameters): Likewise.
7334         * function.c (assign_parm_setup_block): Likewise.
7335         * lower-subreg.c (resolve_shift_zext): Likewise.
7336         * optabs.c (widen_bswap, expand_abs_nojump,
7337         expand_one_cmpl_abs_nojump, expand_float): Likewise.
7338         * spu/spu.c (spu_expand_extv): Likewise.
7339         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
7340
7341 2011-04-29  Richard Guenther  <rguenther@suse.de>
7342
7343         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
7344         for the remapped region number.
7345         * predict.c (build_predict_expr): Use integer_type_node for the
7346         predict kind.
7347         * fold-const.c (fold_binary_loc): Use integer_type_node for
7348         the shift amount.  Use a proper type for the PLUS_EXPR operand.
7349
7350 2011-04-29  Michael Matz  <matz@suse.de>
7351
7352         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
7353         other trees that just builtins.
7354         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
7355
7356 2011-04-29  Richard Guenther  <rguenther@suse.de>
7357
7358         * tree-nested.c (get_trampoline_type): Use size_int.
7359         (get_nl_goto_field): Likewise.
7360         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
7361         for all indexes.
7362         (lower_eh_constructs_2): Likewise.
7363         (lower_resx): Likewise.
7364         (lower_eh_dispatch): Likewise.
7365         * tree-mudflap.c (mf_build_string): Use size_int.
7366         (mudflap_register_call): Use integer_type_node for the flag.
7367         (mudflap_enqueue_constant): Use size_int.
7368         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
7369         instead of rebuilding it.
7370
7371 2011-04-29  Richard Guenther  <rguenther@suse.de>
7372
7373         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
7374         Handle OBJ_TYPE_REF.
7375         (find_func_aliases_for_call): Use it more consistently.
7376
7377 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
7378
7379         * haifa-sched.c (last_nondebug_scheduled_insn): New.
7380         (rank_for_schedule): Use it.
7381         (schedule_block): Set it.
7382
7383 2011-04-28  David Li  <davidxl@google.com>
7384
7385         * tree.c (crc32_string): Use crc32_byte.
7386         (crc32_byte): New function.
7387         * tree.h (crc32_byte): New function.
7388         * gcov.c (read_graph_file): Handle new cfg_cksum.
7389         (read_count_file): Ditto.
7390         * profile.c (instrument_values): Ditto.
7391         (get_exec_counts): Ditto.
7392         (read_profile_edge_counts): Ditto.
7393         (compute_branch_probabilities): Ditto.
7394         (compute_value_histograms): Ditto.
7395         (branch_prob): Ditto.
7396         (end_branch_prob): Ditto.
7397         * coverage.c (read_counts_file): Ditto.
7398         (get_coverage_counts): Ditto.
7399         (tree_coverage_counter_addr): Ditto.
7400         (coverage_checksum_string): Ditto.
7401         (coverage_begin_output): Ditto.
7402         (coverage_end_function): Ditto.
7403         (build_fn_info_type): Ditto.
7404         (build_fn_info_value): Ditto.
7405         * libgcov.c (gcov_exit): Ditto.
7406         * gcov-dump.c (tag_function): Ditto.
7407         (compute_checksum): Remove.
7408
7409 2011-04-29  Alan Modra  <amodra@gmail.com>
7410
7411         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7412         unspec plus offset.  Tidy macho code.
7413
7414 2011-04-29  Martin Jambor  <mjambor@suse.cz>
7415
7416         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
7417         node instead of a decl.  Update all callers.
7418         * cgraph.h: Update declaration.
7419
7420 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
7421
7422         PR tree-optimization/48765
7423         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
7424         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
7425         to indicate if loop aware SLP is being used.  Scan the statements
7426         and update the vectorization factor according to the type of
7427         vectorization before statement analysis.
7428         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
7429         pass it to vect_analyze_loop_operations.
7430         (vectorizable_reduction): Set number of copies to 1 in case of pure
7431         SLP statement.
7432         * tree-vect-stmts.c (vectorizable_conversion,
7433         vectorizable_assignment, vectorizable_shift,
7434         vectorizable_operation, vectorizable_type_demotion,
7435         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
7436         Likewise.
7437         (vectorizable_condition): Move the check that it is not SLP
7438         vectorization before the number of copies check.
7439         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
7440         to vectorize the loop using SLP.
7441
7442 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
7443
7444         PR middle-end/48597
7445         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
7446         inline asm.
7447
7448 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
7449
7450         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
7451         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
7452         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
7453         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
7454         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
7455         linux*.h headers.
7456         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
7457         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7458         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7459         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7460         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7461         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
7462         REG_NAME.
7463         * config/i386/linux.h (REG_NAME): Don't define.
7464         * config/i386/linux64.h (REG_NAME): Don't define.
7465         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
7466         Undefine before defining.
7467
7468 2011-04-28  Jan Hubicka  <jh@suse.cz>
7469
7470         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
7471         nonconstant_names array.
7472         (estimate_function_body_sizes): Build nonconstant_names array; handle
7473         BUILT_IN_CONSTANT_P.
7474
7475 2011-04-28  Richard Guenther  <rguenther@suse.de>
7476
7477         PR bootstrap/48804
7478         Revert
7479         2011-04-28  Richard Guenther  <rguenther@suse.de>
7480
7481         * tree-ssa-structalias.c (solve_constraints): Build succ graph
7482         as late as possible.
7483
7484 2011-04-28  Richard Guenther  <rguenther@suse.de>
7485
7486         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
7487         (debug_constraint): Do it here.
7488         (dump_constraints): And here.
7489         (rewrite_constraints): And here.
7490         (dump_constraint_edge): Remove.
7491         (dump_constraint_graph): Rewrite to produce DOT output.
7492         (solve_constraints): Build succ graph as late as possible.
7493         Dump constraint graphs before and after solving.
7494
7495 2011-04-28  Richard Guenther  <rguenther@suse.de>
7496
7497         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7498         New function split out from ...
7499         (find_func_aliases): ... here.  Call it.
7500         (find_func_aliases_for_call): Likewise.
7501
7502 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7503
7504         * internal-fn.h (internal_fn_name_array): Declare.
7505         (internal_fn_flags_array): Likewise.
7506
7507 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
7508
7509         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
7510         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
7511         Move from sse.md.
7512         (ssemodefsuffix): Remove.
7513         (ssevecmodesuffix): New mode attribute.
7514         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
7515         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
7516         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
7517         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
7518         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
7519         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
7520         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
7521         ssemodesuffix mode attribute.
7522         (float splitters): Use ssevecmodesuffix mode attribute.
7523         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
7524         (sseinsmode): Rename from avxvecmode.
7525         (avxsizesuffix): Rename from avxmodesuffix.
7526         (sseintvecmode): Rename from avxpermvecmode.
7527         (ssedoublevecmode): Rename from ssedoublesizemode.
7528         (ssehalfvecmode): Rename from avxhalfvecmode.
7529         (ssescalarmode): Rename from avxscalarmode.
7530         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
7531         templates for ssemodesuffix mode attribute.
7532         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
7533         mode attribute.
7534
7535         Adjust RTX patterns globally for renamed mode attributes.
7536
7537 2011-04-27  Jan Hubcika  <jh@suse.cz>
7538
7539         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
7540         * ipa-inline-analysis.c: Include alloc-pool.h.
7541         (edge_predicate_pool): New.
7542         (trye_predicate_p): New function
7543         (false_predicate_p): New function.
7544         (add_clause): Sanity check that false clauses are "optimized";
7545         never add clauses to predicate that is already known to be false.
7546         (and_predicate): Use flase_predicate_p.
7547         (evaulate_predicate): Rename to ...
7548         (evaluate_predicate): ... this one; update all callers; assert
7549         that false is not listed among possible truths.
7550         (dump_predicate): Use true_predicate_p.
7551         (account_size_time): Use false_predicate_p.
7552         (evaulate_conditions_for_edge): Rename to ...
7553         (evaluate_conditions_for_edge) ... this one.
7554         (edge_set_predicate): New function.
7555         (inline_edge_duplication_hook): Duplicate edge predicates.
7556         (inline_edge_removal_hook): Free edge predicates.
7557         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
7558         (dump_inline_summary): Update.
7559         (estimate_function_body_sizes): Set edge predicates.
7560         (estimate_calls_size_and_time): Handle predicates.
7561         (estimate_callee_size_and_time): Update.
7562         (remap_predicate): Add toplev_predicate; update comment.
7563         (remap_edge_predicates): New function.
7564         (inline_merge_summary): Compute toplev predicate; update.
7565         (read_predicate): New function.
7566         (read_inline_edge_summary): Use it.
7567         (inline_read_section): Likewise.
7568         (write_predicate): New function.
7569         (write_inline_edge_summary): Use it.
7570         (inline_write_summary): Likewise.
7571         (inline_free_summary): Free alloc pool and edge summary vec.
7572
7573 2011-04-27  Richard Guenther  <rguenther@suse.de>
7574
7575         * tree-ssa-structalias.c (changed_count): Remove.
7576         (changed): Use a bitmap.
7577         (unify_nodes): Adjust.
7578         (do_sd_constraint): Likewise.
7579         (do_ds_constraint): Likewise.
7580         (do_complex_constraint): Likewise.
7581         (solve_graph): Likewise.
7582
7583 2011-04-27  Jan Hubicka  <jh@suse.cz>
7584
7585         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
7586
7587 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
7588
7589         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
7590         (avx_vperm2f128_*_operand): Ditto.
7591         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
7592         Use avx_vpermilp_parallel in insn condition.
7593         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
7594         Use avx_vperm2f128_parallel in insn condition.
7595
7596 2011-04-27  Richard Guenther  <rguenther@suse.de>
7597
7598         * Makefile.in (tree-ssa-structalias.o): Remove
7599         gt-tree-ssa-structalias.h dependency.
7600         (GTFILES): Remove tree-ssa-structalias.c.
7601         * tree.c (allocate_decl_uid): New function.
7602         (make_node_stat): Use it.
7603         (copy_node_stat): Likewise.
7604         * tree.h (allocate_decl_uid): Declare.
7605         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
7606         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
7607         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
7608         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7609         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
7610         (struct heapvar_map): Likewise.
7611         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
7612         heapvar_insert): Likewise.
7613         (make_heapvar_for): Rename to ...
7614         (make_heapvar): ... this.  Simplify.
7615         (fake_var_decl_obstack): New global var.
7616         (build_fake_var_decl): New function.
7617         (make_constraint_from_heapvar): Adjust.
7618         (handle_lhs_call): Likewise.
7619         (create_function_info_for): Likewise.
7620         (intra_create_variable_infos): Likewise.
7621         (init_alias_vars): Allocate fake_var_decl_obstack.
7622         (init_alias_heapvars, delete_alias_heapvars): Remove.
7623         (compute_points_to_sets): Do not call init_alias_heapvars.
7624         (ipa_pta_execute): Likewise.
7625         (delete_points_to_sets): Free fake_var_decl_obstack.
7626
7627 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7628
7629         * config/spu/divmovti4.c (union qword_UTItype): New data type.
7630         (si_from_UTItype, si_to_UTItype): New functions.
7631         (__udivmodti4): Use them to implement type-punning.
7632         * config/spu/multi3.c (union qword_TItype): New data type.
7633         (si_from_TItype, si_to_TItype): New functions.
7634         (__multi3): Use them to implement type-punning.
7635
7636 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7637
7638         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
7639
7640 2011-04-27  Jan Hubicka  <jh@suse.cz>
7641
7642         * ipa-prop.c (function_insertion_hook_holder): New holder.
7643         (ipa_add_new_function): New function.
7644         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
7645         Register/deregister holder.
7646
7647 2011-04-27  Richard Guenther  <rguenther@suse.de>
7648
7649         PR tree-optimization/48772
7650         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
7651
7652 2011-04-27  Richard Guenther  <rguenther@suse.de>
7653
7654         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
7655         TARGET_MEM_REF handling.
7656
7657 2011-04-27  Nick Clifton  <nickc@redhat.com>
7658
7659         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
7660         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
7661         (REG_CLASS_NAMES): Likewise.
7662         (REG_CLASS_CONTENTS): Likewise.
7663         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
7664         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
7665         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
7666         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
7667         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
7668         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
7669         duplicate register classes.
7670         (frv_class_likely_spilled_p): Likewise.
7671         (frv_register_move_cost): Likewise.
7672
7673         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
7674         end of the regno_reg_class array.
7675
7676 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
7677
7678         PR c/48742
7679         * c-typeck.c (build_binary_op): Don't wrap arguments if
7680         int_operands is true.
7681
7682 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
7683
7684         PR target/48767
7685         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
7686         targetm.calls.must_pass_in_stack for void type.
7687
7688 2011-04-26  Jan Hubicka  <jh@suse.cz>
7689
7690         * cgraphbuild.c (build_cgraph_edges): Update call
7691         of cgraph_create_edge and cgraph_create_indirect_edge.
7692         * cgraph.c (cgraph_create_edge_including_clones,
7693         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
7694         cgraph_update_edges_for_call_stmt_node): Do not take nest
7695         argument; do not initialize call_stmt_size/time.
7696         (dump_cgraph_node): Do not dump nest.
7697         (cgraph_clone_edge): Do not take loop_nest argument;
7698         do not propagate it; do not clone call_stmt_size/time.
7699         (cgraph_clone_node): Likewise.
7700         (cgraph_create_virtual_clone): Update.
7701         * cgraph.h (struct cgraph_edge): Remove
7702         call_stmt_size/call_stmt_time/loop_nest.
7703         (cgraph_create_edge, cgraph_create_indirect_edge,
7704         cgraph_create_edge_including_clones, cgraph_clone_node): Update
7705         prototype.
7706         * tree-emutls.c (gen_emutls_addr): Update.
7707         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
7708         loop_nest; handle indirect calls, too.
7709         (clone_inlined_nodes): Do not care about updating inline summaries.
7710         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
7711         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
7712         stream call_stmt_size/call_stmt_time/loop_nest.
7713         * ipa-inline.c (edge_badness): Update.
7714         (ipa_inline): dump summaries after inlining.
7715         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
7716         New.
7717         (inline_edge_summary): New function.
7718         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
7719         (inline_edge_removal_hook): Handle edge summaries.
7720         (inline_edge_duplication_hook): New hook.
7721         (inline_summary_alloc): Alloc hooks.
7722         (initialize_growth_caches): Do not register removal hooks.
7723         (free_growth_caches); Do not free removal hook.
7724         (dump_inline_edge_summary): New function.
7725         (dump_inline_summary): Use it.
7726         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
7727         (inline_update_callee_summaries): New function.
7728         (inline_merge_summary): Use it.
7729         (do_estimate_edge_time, do_estimate_edge_growth): Update.
7730         (read_inline_edge_summary): New function.
7731         (inline_read_section): Use it.
7732         (write_inline_edge_summary): New function.
7733         (inline_write_summary): Use it.
7734         (inline_free_summary): Free edge new holders.
7735         * tree-inline.c (copy_bb): Update.
7736
7737 2011-04-26  Jason Merrill  <jason@redhat.com>
7738
7739         * tree-eh.c (lower_try_finally_switch): Create the label along with
7740         the CASE_LABEL_EXPR.
7741
7742 2011-04-26  David S. Miller  <davem@davemloft.net>
7743             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7744
7745         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
7746         * configure: Regenerate.
7747
7748 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7749
7750         PR target/48258
7751         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
7752         reduction.
7753         (VEC_reduc): New code iterator and splitters for vector reduction.
7754         (VEC_reduc_name): Ditto.
7755         (VEC_reduc_rtx): Ditto.
7756         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
7757         (reduc_<VEC_reduc_name>_v4sf): Ditto.
7758
7759         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
7760         support for extracting SF on VSX.
7761
7762         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
7763         generating xscvspdp.
7764         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
7765         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
7766         double add, minimum, maximum vector reduction.
7767         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
7768         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
7769         optimize double vector reduction.
7770         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
7771
7772 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
7773
7774         * config/fr30/fr30.h (inhibit_libc): Don't define.
7775         * config/m32r/m32r-protos.h: Correct comment.
7776         * config/v850/v850.h (GHS_default_section_names,
7777         GHS_current_section_names): Use tree, not union tree_node *.
7778
7779 2011-04-26  Xinliang David Li  <davidxl@google.com>
7780
7781         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
7782         * c-family/c-opts.c (c_common_handle_option): Set
7783         warn_maybe_uninitialized.
7784         * opts.c (common_handle_option): Ditto.
7785         * common.opt:  New option.
7786         * tree-ssa.c (warn_uninit): Add one more parameter.
7787         (warn_uninitialized_var): Pass warning code.
7788         * tree-flow.h: Interface change.
7789
7790 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7791
7792         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
7793         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
7794         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
7795
7796 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7797
7798         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
7799         * config/mips/mips.opt (mmips-tfile): Remove.
7800
7801         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
7802         mips-tdump reference to ...
7803         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
7804         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
7805         reference by Tru64 UNIX.
7806
7807 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
7808
7809         PR debug/48768
7810         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
7811         is error_mark_node, set value to NULL.
7812
7813         PR tree-optimization/48734
7814         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
7815         if return value from maybe_fold_*_comparsions isn't something
7816         the code is prepared to handle.
7817
7818 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
7819
7820         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
7821         mode check.
7822         (ext_QIreg_nomode_operands): Remove.
7823         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
7824         (*andsi_1): Ditto.
7825         (*andhi_1): Ditto.
7826
7827 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
7828
7829         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
7830
7831 2011-04-26  Richard Guenther  <rguenther@suse.de>
7832
7833         * c-typeck.c (build_unary_op): Do not expand array-refs via
7834         pointer arithmetic.  Only adjust qualifiers for function types.
7835
7836 2011-04-26  Richard Guenther  <rguenther@suse.de>
7837
7838         PR middle-end/48694
7839         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
7840         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
7841         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
7842         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
7843
7844 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
7845
7846         * doc/extend.texi: Document __underlying_type.
7847
7848 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
7849
7850         * config/rs6000/titan.md (automata_option "progress"): Remove.
7851
7852 2011-04-25  Jeff Law  <law@redhat.com>
7853
7854         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
7855
7856 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
7857
7858         * system.h (ENUM_BITFIELD): Remove.
7859
7860 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
7861             Eric Botcazou  <ebotcazou@adacore.com>
7862
7863         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
7864         for STORE_FLAG_VALUE==-1 case.
7865
7866 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
7867
7868         PR target/43804
7869         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
7870         LEGITIMATE_PIC_OPERAND_P.
7871
7872 2011-04-24  Jan Hubicka  <jh@suse.cz>
7873
7874         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
7875         WPA hack.
7876         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
7877         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
7878         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
7879         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
7880         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
7881         Sanity check predicate length.
7882         (remap_predicate): Likewise; sanity check jump functions.
7883         (inline_read_section, inline_write_summary): Sanity check
7884         predicate length.
7885
7886 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
7887
7888         PR other/48748
7889         * doc/extend.texi (Type Traits): Document __is_standard_layout,
7890         __is_literal_type, and __is_trivial; update throughout about
7891         possibly cv-qualified void types.
7892
7893 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
7894
7895         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
7896         testsuite and make it version agnostic.
7897
7898 2011-04-22  Jan Hubicka  <jh@suse.cz>
7899
7900         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
7901
7902 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
7903
7904         PR c/48685
7905         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
7906         to VOID_TYPE even around MODIFY_EXPR.
7907
7908 2011-04-22  Mike Stump  <mikestump@comcast.net>
7909
7910         * gensupport.c (read_md_rtx): Fix typo in comment.
7911         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
7912         comment.
7913
7914 2011-04-22  Jan Hubicka  <jh@suse.cz>
7915
7916         * gengtype.c (open_base_files): Add ipa-inline.h include.
7917         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
7918         ipa-prop.c; update all uses.
7919         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
7920         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
7921         merge summary of inlined function into former caller.
7922         * ipa-inline.c (max_benefit): Remove.
7923         (edge_badness): Compensate for removal of benefits.
7924         (update_caller_keys): Use
7925         reset_node_growth_cache/reset_edge_growth_cache.
7926         (update_callee_keys): Likewise.
7927         (update_all_callee_keys): Likewise.
7928         (inline_small_functions): Do not collect max_benefit; do not reset
7929         estimated_growth; call free_growth_caches and initialize_growth_caches.
7930         * ipa-inline.h (struct condition, type clause_t, struct predicate,
7931         struct size_time_entry): New structures.
7932         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
7933         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
7934         and estimated_growth.
7935         (edge_growth_cache_entry): New structure.
7936         (node_growth_cache, edge_growth_cache): New global vars.
7937         (estimate_growth): Turn into inline.
7938         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
7939         initialize_growth_caches, free_growth_caches): Declare.
7940         (estimate_edge_growth): Rewrite.
7941         (estimate_edge_time): Implement as inline cache lookup.
7942         (reset_node_growth_cache, reset_edge_growth_cache): New inline
7943         functions.
7944         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
7945         (NUM_CONDITIONS): New constant.
7946         (predicate_conditions): New enum.
7947         (IS_NOT_CONSTANT): New constant.
7948         (edge_removal_hook_holder): New var.
7949         (node_growth_cache, edge_growth_cache): New global vars.
7950         (true_predicate, single_cond_predicate, false_predicate,
7951         not_inlined_predicate, add_condition, add_clause, and_predicates,
7952         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
7953         dump_clause, dump_predicate, account_size_time,
7954         evaulate_conditions_for_edge): New functions.
7955         (inline_summary_alloc): Move to heap.
7956         (inline_node_removal_hook): Clear condition and entry vectors.
7957         (inline_edge_removal_hook): New function.
7958         (initialize_growth_caches, free_growth_caches): New function.
7959         (dump_inline_summary): Update.
7960         (edge_execution_predicate): New function.
7961         (will_be_nonconstant_predicate): New function.
7962         (estimate_function_body_sizes): Compute BB and constantness predicates.
7963         (compute_inline_parameters): Do not clear estimated_growth.
7964         (estimate_edge_size_and_time): New function.
7965         (estimate_calls_size_and_time): New function.
7966         (estimate_callee_size_and_time): New function.
7967         (remap_predicate): New function.
7968         (inline_merge_summary): New function.
7969         (do_estimate_edge_time): New function based on...
7970         (estimate_edge_time): ... this one.
7971         (do_estimate_edge_growth): New function.
7972         (do_estimate_growth): New function based on....
7973         (estimate_growth): ... this one.
7974         (inline_analyze_function): Analyze after deciding on jump functions.
7975         (inline_read_section): New function.
7976         (inline_read_summary): Use it.
7977         (inline_write_summary): Write all the new data.
7978         * ipa-prop.c (ipa_get_param_decl_index): Export.
7979         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
7980         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
7981         Declare.
7982         (ipa_get_lattice): Move here from ipa-cp.c
7983         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
7984         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
7985         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
7986         cgraph_edge_inlinable_p): Remove.
7987         * cgraphunit.c: Include ipainline.h
7988         (cgraph_process_new_functions): Update call of
7989         compute_inline_parameters.
7990
7991 2011-04-22  Richard Guenther  <rguenther@suse.de>
7992
7993         * tree.c (build_int_cst): Properly create canonicalized integer
7994         constants.
7995         (build_int_cst_type): Remove scary comments.
7996
7997 2011-04-22  Xinliang David Li  <davidxl@google.com>
7998
7999         * toplev.c (process_options): Enable -Werror=coverage-mismatch
8000         by default when -Wno-error is not specified.
8001         * opts-global.c (decode_options): Remove call to
8002         control_warning_options.
8003
8004 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
8005
8006         PR tree-optimization/48717
8007         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
8008         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
8009
8010 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
8011
8012         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
8013         definition where used.
8014
8015 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
8016
8017         PR c/48716
8018         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
8019         TREE_STATIC variables declared inside of some OpenMP construct.
8020
8021 2011-04-22  Martin Jambor  <mjambor@suse.cz>
8022
8023         PR middle-end/48585
8024         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
8025
8026 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
8027
8028         PR c/36750
8029         * c-typeck.c (pop_init_level): Do not warn about initializing
8030         with ` = {0}'.
8031
8032 2011-04-22  Alan Modra  <amodra@gmail.com>
8033
8034         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
8035         when returning call_cookie.
8036         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
8037         pointers, to functions with no more vector args than the current
8038         function, and some non-local calls for ABI_V4.
8039         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
8040         sibcall_nonlocal_aix64): Combine to ..
8041         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
8042         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
8043         (sibcall_value_nonlocal_aix<mode>): ..likewise.
8044         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
8045         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
8046         operand.
8047         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
8048         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
8049         sibcall_value_symbolic_64): Delete.
8050
8051 2011-04-21  Xinliang David Li  <davidxl@google.com>
8052
8053         * cgraph.h: Remove pid.
8054         * cgraph.c: Remove pid.
8055         * value-prof.c (init_node_map): New function.
8056         (del_node_map): New function.
8057         (find_func_by_funcdef_no): New function.
8058         (gimple_ic_transform): Call new function.
8059         * cgraphunit.c (cgraph_finalize_function): Remove pid.
8060         * function.c (get_last_funcdef_no): New function.
8061         * function.h (get_last_funcdef_no): New function.
8062         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
8063         to libgcov function.
8064         (tree-profiling): Call node map init and delete function.
8065
8066 2011-04-21  Ian Lance Taylor  <iant@google.com>
8067
8068         * godump.c (go_format_type): Use exported Go name for anonymous
8069         field name.
8070
8071 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
8072
8073         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
8074         Call builtin_function_type_list instead of builtin_function_type.
8075         (UNARY, BINARY, TRINARY, QUAD): Likewise.
8076
8077 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
8078
8079         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
8080         build_function_type_list instead of build_function_type.
8081         Delete variable `endlink'.
8082
8083 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
8084
8085         * config/s390/s390.c (s390_init_builtins): Call
8086         build_function_type_list instead of build_function_type.
8087
8088 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
8089
8090         * config/ia64/ia64.c (ia64_init_builtins): Call
8091         build_function_type_list instead of builtin_function_type.
8092
8093 2011-04-21  Easwaran Raman  <eraman@google.com>
8094
8095         * cfgexpand.c (stack_var): Remove OFFSET...
8096         (add_stack_var): ...and its reference here...
8097         (expand_stack_vars): ...and here.
8098         (stack_var_cmp): Sort by descending order of size.
8099         (partition_stack_vars): Change heuristic.
8100         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
8101         (dump_stack_var_partition): Add newline after each partition.
8102
8103 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
8104             Jeff Law  <law@redhat.com>
8105
8106         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
8107         * gengtype.c (matching_file_name_substitute): Likewise.
8108
8109 2011-04-21  Richard Guenther  <rguenther@suse.de>
8110
8111         PR lto/48703
8112         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
8113
8114 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
8115
8116         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
8117
8118 2011-04-21  Richard Guenther  <rguenther@suse.de>
8119
8120         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
8121         file name.
8122
8123 2011-04-21  Richard Guenther  <rguenther@suse.de>
8124
8125         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
8126         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
8127         Use DECL_P, not SSA_VAR_P.
8128         (ptr_derefs_may_alias_p): Likewise.
8129         (ptr_deref_may_alias_ref_p_1): Likewise.
8130         (decl_refs_may_alias_p): Likewise.
8131         (refs_may_alias_p_1): Likewise.
8132         (ref_maybe_used_by_call_p_1): Likewise.
8133         (call_may_clobber_ref_p_1): Likewise.
8134         (indirect_ref_may_alias_decl_p): Assume indirect refrences
8135         are either MEM_REF or TARGET_MEM_REF.
8136         (indirect_refs_may_alias_p): Likewise.
8137         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
8138         for MEM_EXPR of indirect calls.
8139
8140 2011-04-21  Tristan Gingold  <gingold@adacore.com>
8141
8142         * vmsdbgout.c (write_srccorr): Compute file length from the string.
8143         (dst_file_info_struct): Remove flen field.
8144         (lookup_filename): Remove code that set flen field.
8145
8146 2011-04-21  Tristan Gingold  <gingold@adacore.com>
8147
8148         * config/ia64/ia64.c (ia64_start_function): Add a guard.
8149
8150 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
8151
8152         PR target/48708
8153         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
8154         vec_extract and vec_concat for non-SSE4_1 targets.
8155
8156 2011-04-21  Richard Guenther  <rguenther@suse.de>
8157
8158         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
8159         return statements.
8160
8161 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
8162
8163         * config/i386/cygming.h (union tree_node, TREE): Don't define or
8164         undefine.
8165         (FILE): Don't undefine.
8166
8167 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
8168
8169         * config/alpha/alpha.c (struct machine_function): Use rtx, not
8170         struct rtx_def *.
8171         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
8172         struct rtx_def *.
8173         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
8174         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
8175         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
8176         rtx_def *.
8177         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
8178         definitions where used.
8179         * config/microblaze/microblaze.h (struct microblaze_args): Use
8180         rtx, not struct rtx_def *.
8181         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
8182         rtx_def *.
8183         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
8184         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
8185         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
8186         not struct rtx_def *.
8187         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
8188         struct rtx_def *.
8189         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
8190         rtx_def *.
8191         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
8192
8193 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
8194
8195         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
8196         operand_equal_p to compare DR_BASE_ADDRESSes.
8197         (vect_check_interleaving): Likewise.
8198
8199 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
8200
8201         PR target/46329
8202         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
8203         for all Neon struct constants.
8204
8205 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
8206
8207         * target.def (legitimate_constant_p): New hook.
8208         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
8209         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
8210         * doc/tm.texi: Regenerate.
8211         * hooks.h (hook_bool_mode_rtx_true): Declare.
8212         * hooks.c (hook_bool_mode_rtx_true): Define.
8213         * system.h (LEGITIMATE_CONSTANT_P): Poison.
8214         * calls.c (precompute_register_parameters): Replace uses of
8215         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
8216         (emit_library_call_value_1): Likewise.
8217         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
8218         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
8219         * ira-costs.c (scan_one_insn): Likewise.
8220         * recog.c (general_operand, immediate_operand): Likewise.
8221         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
8222         * reload1.c (init_eliminable_invariants): Likewise.
8223
8224         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
8225         mode argument.
8226         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
8227         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
8228         argument.
8229         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8230         * config/alpha/predicates.md (input_operand): Update call to
8231         alpha_legitimate_constant_p.
8232
8233         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
8234         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
8235         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
8236         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8237         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
8238         (arm_legitimate_constant_p): New functions.
8239         (arm_cannot_force_const_mem): Make static.
8240
8241         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
8242
8243         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
8244         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
8245         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
8246         instead of bfin_legitimate_constant_p.
8247         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
8248         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8249
8250         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
8251
8252         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
8253
8254         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
8255         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
8256         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8257         (frv_legitimate_constant_p): Make static.  Add a mode argument.
8258
8259         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
8260         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
8261         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
8262
8263         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
8264         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
8265         * config/i386/i386.c (legitimate_constant_p): Rename to...
8266         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
8267         argument.
8268         (ix86_cannot_force_const_mem): Update accordingly.
8269         (ix86_legitimate_address_p): Likewise.
8270         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8271         * config/i386/i386.md: Update commentary.
8272
8273         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
8274         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
8275         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8276         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
8277
8278         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
8279
8280         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
8281         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
8282         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8283         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
8284
8285         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
8286         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
8287         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
8288
8289         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
8290         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8291         (m32r_legitimate_constant_p): New function.
8292
8293         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
8294         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
8295         LEGITIMATE_CONSTANT_P.
8296         (LEGITIMATE_CONSTANT_P): Delete.
8297         * config/m68k/m68k.c (m68k_expand_prologue): Call
8298         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
8299         (m68k_legitimate_constant_p): New function.
8300         * config/m68k/m68k.md: Update comments.
8301
8302         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
8303         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8304         (mcore_legitimate_constant_p): New function.
8305
8306         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
8307         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
8308         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
8309         Add a mode argument.
8310         (mep_legitimate_address): Update accordingly.
8311         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8312
8313         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
8314         Delete.
8315         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
8316         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
8317         static.  Check OP's mode for VOIDmode.
8318         (microblaze_legitimate_constant_p): New function.
8319         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8320
8321         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
8322         * config/mips/mips.c (mips_legitimate_constant_p): New function.
8323         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
8324         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8325         * config/mips/predicates.md: Update comments.
8326
8327         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
8328         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
8329         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8330         (mmix_legitimate_constant_p): Make static, return a bool, and take
8331         a mode argument.
8332         (mmix_print_operand_address): Update accordingly.
8333
8334         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
8335         Delete.
8336         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
8337         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
8338         static.  Add a mode argument.
8339         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8340
8341         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
8342
8343         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
8344         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8345         (pa_legitimate_constant_p): New function.
8346
8347         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
8348
8349         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
8350         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8351         (pdp11_legitimate_constant_p): New function.
8352
8353         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
8354         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8355         (rs6000_legitimate_constant_p): New function.
8356
8357         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
8358         (rx_legitimate_constant_p): ...this.
8359         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
8360         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
8361         (rx_legitimate_constant_p): ...this.
8362         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8363         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
8364
8365         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
8366         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
8367         * config/s390/s390.c (legitimate_constant_p): Rename to...
8368         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
8369         and add a mode argument.
8370         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8371
8372         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
8373
8374         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
8375         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8376         (sh_legitimate_constant_p): New function.
8377
8378         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
8379         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
8380         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8381         (legitimate_constant_p): Rename to...
8382         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
8383         argument.
8384         (constant_address_p): Update accordingly.
8385
8386         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
8387         argument and return a bool.
8388         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
8389         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8390         (spu_legitimate_constant_p): Add a mode argument and return a bool.
8391         (spu_rtx_costs): Update accordingly.
8392         * config/spu/predicates.md (vec_imm_operand): Likewise.
8393
8394         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
8395
8396         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
8397         * config/v850/v850.c (v850_legitimate_constant_p): New function.
8398         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8399
8400         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
8401         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
8402         * config/vax/vax.c (legitimate_constant_p): Likewise.
8403
8404         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
8405         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8406         (xtensa_legitimate_constant_p): New function.
8407
8408 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
8409
8410         * target.def (cannot_force_const_mem): Add a mode argument.
8411         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
8412         * doc/tm.texi: Regenerate.
8413         * hooks.h (hook_bool_mode_rtx_false): Declare.
8414         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
8415         (hook_bool_mode_const_rtx_true): Likewise.
8416         (hook_bool_mode_rtx_false): New function.
8417         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
8418         to be non-VOID.  Update call to cannot_force_const_mem.
8419         (find_reloads): Update accordingly.
8420         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
8421         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
8422         argument.
8423         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
8424         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
8425         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
8426         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
8427         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
8428         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
8429         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
8430         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
8431         (m68k_cannot_force_const_mem): ...this new function.
8432         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
8433         argument.
8434         (mips_const_insns, mips_legitimize_const_move): Update calls.
8435         (mips_secondary_reload_class): Likewise.
8436         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
8437         (pa_cannot_force_const_mem): ...this new function.
8438         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
8439         (rs6000_cannot_force_const_mem): ...this new function.
8440         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
8441         argument.
8442         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
8443         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
8444         to...
8445         (xtensa_cannot_force_const_mem): ...this new function.
8446
8447 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
8448
8449         * config/mips/mips.c (mips16_build_function_stub): Call
8450         build_function_type_list instead of build_function_type.
8451         (mips16_build_call_stub): Likewise.
8452
8453 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
8454
8455         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
8456         instead of build_function_type.
8457
8458 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
8459
8460         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
8461         instead of build_function_type.
8462
8463 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
8464
8465         PR target/48678
8466         * config/i386/i386.md (insv): Change operand 0 constraint to
8467         "register_operand".  Change operand 1 and 2 constraint to
8468         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
8469         * config/i386/sse.md (sse4_1_pinsrb): Export.
8470         (sse2_pinsrw): Ditto.
8471         (sse4_1_pinsrd): Ditto.
8472         (sse4_1_pinsrq): Ditto.
8473         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
8474         * config/i386/i386.c (ix86_expand_pinsr): New.
8475
8476 2011-04-20  Easwaran Raman  <eraman@google.com>
8477
8478         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
8479         containing union type only with -fstrict-aliasing.
8480
8481 2011-04-20  Jim Meyering  <meyering@redhat.com>
8482
8483         Remove useless if-before-free tests.
8484         * calls.c (expand_call, save_area): Likewise.
8485         * cfgcleanup.c (try_forward_edges): Likewise.
8486         * collect2.c (collect_execute): Likewise.
8487         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
8488         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
8489         * coverage.c (coverage_checksum_string): Likewise.
8490         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
8491         * cselib.c (cselib_init): Likewise.
8492         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
8493         (df_set_clean_cfg): Likewise.
8494         * function.c (free_after_compilation): Likewise.
8495         * gcc.c (do_spec_1, main): Likewise.
8496         * gcov.c (create_file_names): Likewise.
8497         * gensupport.c (identify_predicable_attribute): Likewise.
8498         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
8499         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
8500         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
8501         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
8502         * ipa-pure-const.c (local_pure_const): Likewise.
8503         * ipa-reference.c (propagate): Likewise.
8504         * ira-costs.c (free_ira_costs): Likewise.
8505         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
8506         * matrix-reorg.c (mat_free): Likewise.
8507         * prefix.c (get_key_value): Likewise.
8508         * profile.c (compute_value_histograms): Likewise.
8509         * reload1.c (free_reg_equiv): Likewise.
8510         * sched-deps.c (free_deps): Likewise.
8511         * sel-sched-ir.c (fence_clear): Likewise.
8512         * sese.c (set_rename, if_region_set_false_region): Likewise.
8513         * tree-data-ref.c (free_rdg): Likewise.
8514         * tree-eh.c (lower_try_finally): Likewise.
8515         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
8516         * tree-ssa-live.c (delete_var_map): Likewise.
8517         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
8518         * tree-ssa-pre.c (phi_trans_add): Likewise.
8519
8520 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
8521
8522         PR tree-optimization/48611
8523         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
8524         beyond ERT_MUST_NOT_THROW region.
8525
8526 2011-04-20  Catherine Moore  <clm@codesourcery.com>
8527
8528         * config/mips/mips.opt (mfix-24k): New.
8529         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
8530         * config/mips/mips.md (length): Increase by 4 for stores if
8531         fixing 24K errata.
8532         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
8533         all noreorder if fixing 24K errata.
8534         * doc/invoke.texi: Document mfix-24k.
8535
8536 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
8537
8538         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
8539         quad-word modes, reduce to 9-bit index range when above 1016 limit.
8540
8541 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
8542
8543         * config/arm/arm.c (arm_gen_constant): Move movw support ....
8544         (const_ok_for_op): ... to here.
8545
8546 2011-04-20  Kai Tietz  <ktietz@redhat.com>
8547
8548         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
8549         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
8550
8551 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
8552
8553         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
8554
8555 2011-04-20  Richard Guenther  <rguenther@suse.de>
8556
8557         PR tree-optimization/47892
8558         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
8559         are if-convertible.
8560
8561 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
8562
8563         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
8564
8565 2011-04-20  Tristan Gingold  <gingold@adacore.com>
8566
8567         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
8568
8569 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
8570
8571         PR target/18145
8572
8573         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
8574         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
8575         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
8576         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
8577         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
8578
8579         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
8580         New prototype.
8581
8582         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
8583         (avr_asm_named_section, avr_asm_output_aligned_common,
8584         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
8585         New functions to update...
8586         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
8587         (avr_asm_init_sections): Overwrite section callbacks for
8588         data_section, bss_section.
8589         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
8590         from here to...
8591         (avr_file_end): ...here.
8592
8593 2011-04-20  Richard Guenther  <rguenther@suse.de>
8594
8595         PR middle-end/48695
8596         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
8597         objects and types here.  Adjust for their offset before comparing.
8598
8599 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
8600
8601         * tree-vect-stmts.c (vectorizable_store): Only chain one related
8602         statement per copy.
8603
8604 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
8605
8606         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
8607         (GIMPLE_H): Include $(INTERNAL_FN_H).
8608         (OBJS-common): Add internal-fn.o.
8609         (internal-fn.o): New rule.
8610         * internal-fn.def: New file.
8611         * internal-fn.h: Likewise.
8612         * internal-fn.c: Likewise.
8613         * gimple.h: Include internal-fn.h.
8614         (GF_CALL_INTERNAL): New gf_mask.
8615         (gimple_statement_call): Put fntype into a union with a new
8616         internal_fn field.
8617         (gimple_build_call_internal): Declare.
8618         (gimple_build_call_internal_vec): Likewise.
8619         (gimple_call_same_target_p): Likewise.
8620         (gimple_call_internal_p): New function.
8621         (gimple_call_internal_fn): Likewise.
8622         (gimple_call_fntype): Return null for internal calls.
8623         (gimple_call_set_fntype): Assert that the function is not internal.
8624         (gimple_call_set_fn): Likewise.
8625         (gimple_call_set_fndecl): Likewise.
8626         (gimple_call_set_internal_fn): New function.
8627         (gimple_call_addr_fndecl): Handle null functions.
8628         (gimple_call_return_type): Likewise null types.
8629         * gimple.c (gimple_build_call_internal_1): New function.
8630         (gimple_build_call_internal): Likewise.
8631         (gimple_build_call_internal_vec): Likewise.
8632         (gimple_call_same_target_p): Likewise.
8633         (gimple_call_flags): Handle calls to internal functions.
8634         (gimple_call_fnspec): New function.
8635         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
8636         (gimple_has_side_effects): Handle null functions.
8637         (gimple_rhs_has_side_effects): Likewise.
8638         (gimple_call_copy_skip_args): Handle calls to internal functions.
8639         * cfgexpand.c (expand_call_stmt): Likewise.
8640         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
8641         * gimple-fold.c (gimple_fold_call): Handle null functions.
8642         (gimple_fold_stmt_to_constant_1): Don't fold
8643         calls to internal functions.
8644         * gimple-low.c (gimple_check_call_args): Handle calls to internal
8645         functions.
8646         * gimple-pretty-print.c (dump_gimple_call): Likewise.
8647         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
8648         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
8649         (do_warn_unused_result): Likewise.
8650         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
8651         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
8652         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
8653         the target of a call.
8654         (initialize_hash_element): Update accordingly.
8655         (hashable_expr_equal_p): Use gimple_call_same_target_p.
8656         (iterative_hash_hashable_expr): Handle calls to internal functions.
8657         (print_expr_hash_elt): Likewise.
8658         * tree-ssa-pre.c (can_value_number_call): Likewise.
8659         (eliminate): Handle null functions.
8660         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
8661         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
8662         (find_func_aliases): Likewise.
8663         * value-prof.c (gimple_ic_transform): Likewise.
8664         (gimple_indirect_call_to_profile): Likewise.
8665         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8666         * lto-streamer-out.c (output_gimple_stmt): Likewise.
8667
8668 2011-04-19  Jan Hubicka  <jh@suse.cz>
8669
8670         * ipa-inline-transform.c (save_inline_function_body): Add comments.
8671         * ipa-inline.c (inline_small_functions): Compute summaries first,
8672         populate heap later.
8673
8674 2011-04-19  Jan Hubicka  <jh@suse.cz>
8675
8676         * cgraph.h (save_inline_function_body): Remove.
8677         * ipa-inline-transform.c: New file, broke out of...
8678         * ipa-inline.c: ... this one; Update toplevel comment.
8679         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
8680         make global.
8681         (update_noncloned_frequencies): Move to ipa-inline-transform.c
8682         (cgraph_mark_inline_edge): Rename to inline_call; move to
8683         ipa-inline-transform.c.
8684         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
8685         move to ipa-inline-transform.c
8686         (recursive_inlining, inline_small_functions, flatten_function,
8687         ipa_inline, inline_always_inline_functions,
8688         early_inline_small_functions): Update.
8689         (inline_transform): Move to ipa-inline-transform.c.
8690         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
8691         Declare.
8692         * Makefile.in (ipa-inline-transform.o): New file.
8693         * cgraphunit.c (save_inline_function_body): Move to
8694         ipa-inline-transform.c
8695
8696 2011-04-19  DJ Delorie  <dj@redhat.com>
8697
8698         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
8699         registers if we already know there aren't any.
8700         (m32c_emit_epilogue): Don't emit a barrier here.
8701         (m32c_emit_eh_epilogue): Likewise.
8702         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
8703         operands at expand time.
8704         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
8705         int" wchar type.
8706         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
8707         duplicates.  Provide aliases instead.
8708         * config/m32c/prologue.md (eh_return): Emit a barrier here.
8709         (eh_epilogue): Add a "(return)" here as a hint to other parts of
8710         the compiler.
8711
8712 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
8713
8714         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
8715         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
8716         (general_or_i64_p, sparc_register_move_cost): New function.
8717
8718 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8719
8720         * doc/install.texi (Configuration, --enable-threads): Remove mach.
8721         Add lynx, mipssde.  Sort table.
8722
8723 2011-04-19  Xinliang David Li  <davidxl@google.com>
8724
8725         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
8726         not negative.
8727
8728 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
8729
8730         PR target/48678
8731         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
8732         is a SUBREG with non-MODE_INT mode inside of it.
8733
8734 2011-04-19  Martin Jambor  <mjambor@suse.cz>
8735
8736         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
8737         also according to actual contants.
8738         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
8739         (gimple_fold_call): Use it.
8740         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
8741
8742 2011-04-19  Martin Jambor  <mjambor@suse.cz>
8743
8744         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
8745         non-pointer assignments.
8746
8747 2011-04-19  Martin Jambor  <mjambor@suse.cz>
8748
8749         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
8750         account anc_offset and otr_type from the indirect edge info.
8751         * ipa-prop.c (get_ancestor_addr_info): New function.
8752         (compute_complex_ancestor_jump_func): Assignment analysis moved to
8753         get_ancestor_addr_info, call it.
8754         (ipa_note_param_call): Do not initialize information about polymorphic
8755         calls, return the indirect call graph edge.  Remove the last
8756         parameter, adjust all callers.
8757         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
8758         parameters.  Initialize polymorphic information in the indirect edge.
8759
8760 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
8761
8762         PR lto/48148
8763         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
8764         the types if they have different enumeration identifiers.
8765
8766 2011-04-19  Jan Hubicka  <jh@suse.cz>
8767
8768         * cgraph.h (cgraph_optimize_for_size_p): Declare.
8769         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
8770         * predict.c (cgraph_optimize_for_size_p): Break out from ...
8771         (optimize_function_for_size_p) ... here.
8772
8773 2011-04-19  Richard Guenther  <rguenther@suse.de>
8774
8775         PR lto/48207
8776         * tree.c (free_lang_data): Do not reset the decl-assembler-name
8777         langhook.
8778
8779 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
8780
8781         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
8782         if DECL_NO_INLINE_WARNING_P is set on the function.
8783
8784 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
8785
8786         PR fortran/47976
8787         * reload1.c (inc_for_reload): Return void. All callers changed.
8788         (emit_input_reload_insns): Don't try to delete previous output
8789         reloads to a register, or record spill_reg_store for autoincs.
8790
8791 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
8792
8793         * gengtype.h: Updated copyright year.
8794         (struct input_file_st): Add inpisplugin field.
8795         (type_fileloc): New function.
8796         * gengtype.c
8797         (write_typed_struct_alloc_def): Add gcc_assert.
8798         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
8799         (write_typed_alloc_defns): Don't output for plugin files.
8800         (input_file_by_name): Clear inpisplugin field.
8801         (main): Set inpisplugin field for plugin files.
8802
8803 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
8804
8805         * gengtype-state.c (string_eq): New.
8806         (read_state): Use string_eq instead of strcmp when creating the
8807         state_ident_tab.
8808
8809 2011-04-19  Wei Guozhi  <carrot@google.com>
8810
8811         PR target/47855
8812         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
8813         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
8814         linkage.
8815         * config/arm/constraints.md (Uu): New constraint.
8816         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
8817
8818 2011-04-19  Tristan Gingold  <gingold@adacore.com>
8819
8820         * config.gcc (-*-*-*vms): Added.
8821         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
8822         definitions moved.
8823         * config/vms/vms-ld.c: New file.
8824         * config/vms/vms-ar.c: New file.
8825         * config/vms/t-vmsnative: New file.
8826
8827 2011-04-18  Xinliang David Li  <davidxl@google.com>
8828
8829         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
8830
8831 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
8832
8833         PR middle-end/48661
8834         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
8835         if TREE_TYPE (v) is non-NULL.
8836
8837         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
8838         gimple_get_virt_mehtod_for_binfo.
8839         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
8840         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
8841         callers.
8842         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8843
8844 2011-04-18  Michael Matz  <matz@suse.de>
8845             Steve Ellcey  <sje@cup.hp.com>
8846
8847         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
8848         use its mode as source mode if it isn't VOIDmode.
8849
8850 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
8851
8852         * doc/passes.texi: Fill crossref nodes.
8853
8854 2011-04-18  Jim Meyering  <meyering@redhat.com>
8855
8856         Fix doubled-word typos in comments and strings
8857         * config/alpha/vms-unwind.h: s/for for/for/
8858         * config/arm/unwind-arm.h: Likewise.
8859         * config/microblaze/microblaze.c: Likewise.
8860         * config/sh/constraints.md: s/in in/in/
8861         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
8862
8863 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
8864
8865         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
8866         (AVX_FLOAT_MODE_P): Ditto.
8867         (AVX128_VEC_FLOAT_MODE_P): Ditto.
8868         (AVX256_VEC_FLOAT_MODE_P): Ditto.
8869         (AVX_VEC_FLOAT_MODE_P): Ditto.
8870         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
8871         (UNSPEC_MASKSTORE): Ditto.
8872         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
8873         Merge from <sse>_movmsk<ssemodesuffix> and
8874         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
8875         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
8876         iterator.
8877         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
8878         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
8879         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
8880
8881 2011-04-18  Jan Hubicka  <jh@suse.cz>
8882
8883         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
8884
8885         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
8886         (want_inline_function_called_once_p): Break out the logic from
8887         ipa_inline.
8888         (edge_badness): Ensure that profile is not misupdated.
8889         (lookup_recursive_calls): Prioritize by call frequencies.
8890         (inline_small_functions): Move program size estimates here;
8891         actually process whole queue even when unit growth has been
8892         met. (to properly compute inline_failed reasons and for the
8893         case unit size decrease.) Revisit comments on recursive inlining.
8894         (ipa_inline): Remove unit summary code; first inline hot calls
8895         of functions called once, cold calls next.
8896         (order, nnodes): Remove unused variables.
8897         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
8898         (GTFILES): Remove ipa-inline.c
8899         * sel-sched.c (fill_insns): Silence uninitialized var warning.
8900
8901 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
8902
8903         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
8904
8905 2011-04-18  Jie Zhang  <jie@codesourcery.com>
8906             Richard Earnshaw  <rearnsha@arm.com>
8907
8908         * arm.c (neon_builtin_type_bits): Remove.
8909         (typedef enum neon_builtin_mode): New.
8910         (T_MAX): Don't define.
8911         (typedef enum neon_builtin_datum): Remove bits, codes[],
8912         num_vars and base_fcode.  Add mode, code and fcode.
8913         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
8914         VAR10): Change accordingly.
8915         (neon_builtin_data[]): Change accordingly
8916         (arm_init_neon_builtins): Change accordingly.
8917         (neon_builtin_compare): Remove.
8918         (locate_neon_builtin_icode): Remove.
8919         (arm_expand_neon_builtin): Change accordingly.
8920
8921         * arm.h (enum arm_builtins): Move to ...
8922         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
8923
8924         * arm.c (arm_builtin_decl): Declare.
8925         (TARGET_BUILTIN_DECL): Define.
8926         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
8927         (arm_builtin_decls[]): New.
8928         (arm_init_neon_builtins): Store builtin declarations in
8929         arm_builtin_decls[].
8930         (arm_init_tls_builtins): Likewise.
8931         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
8932         (arm_builtin_decl): New.
8933
8934 2011-04-18  Richard Guenther  <rguenther@suse.de>
8935
8936         * tree.c (upper_bound_in_type): Build properly canonicalized
8937         INTEGER_CSTs.
8938         (lower_bound_in_type): Likewise.
8939
8940 2011-04-18  Richard Guenther  <rguenther@suse.de>
8941
8942         * gimple.h (gimple_call_addr_fndecl): New function.
8943         (gimple_call_fndecl): Use it.
8944         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
8945         for direct calls.
8946         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
8947         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
8948
8949 2011-04-18  Richard Guenther  <rguenther@suse.de>
8950
8951         PR middle-end/48650
8952         * tree.c (build_string): STRING_CST is now derived from tree_typed.
8953
8954 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
8955
8956         PR lto/48492
8957         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
8958         DECL_IN_CONSTANT_POOL without RTL.
8959
8960 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
8961             Ira Rosen  <ira.rosen@linaro.org>
8962
8963         PR target/48252
8964         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
8965         to match neon_vzip/vuzp/vtrn_internal.
8966         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
8967         outputs explicitly dependent on both inputs.
8968         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
8969
8970 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
8971
8972         PR tree-optimization/48616
8973         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
8974         whether the shift is by scalar or vector based on whether all SLP
8975         scalar stmts have the same rhs.
8976
8977 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
8978
8979         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
8980         memory operands.
8981
8982 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
8983
8984         PR target/43700
8985         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
8986         registers.
8987
8988 2011-04-17  Jan Hubicka  <jh@suse.cz>
8989
8990         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
8991         * cgrpahunit.c (cgraph_finalize_function): Do not set
8992         finalized_by_frontend.
8993         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
8994         finalized_by_frontend.
8995
8996 2011-04-17  Jan Hubicka  <jh@suse.cz>
8997
8998         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
8999         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
9000         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
9001         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
9002         method.
9003         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
9004         gimple-fold.c
9005         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
9006
9007 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
9008
9009         PR lto/48538
9010         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
9011         is non-null before accessing it.
9012         (input_cgraph): Remove trailing spaces.
9013
9014 2011-04-17  Revital Eres  <revital.eres@linaro.org>
9015
9016         * params.def (sms-min-sc): New param flag.
9017         * modulo-sched.c (sms_schedule): Use it.
9018         * doc/invoke.texi (sms-min-sc): Document it.
9019
9020 2011-04-17  Jan Hubicka  <jh@suse.cz>
9021
9022         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
9023         present, also set gimple_call_set_cannot_inline.
9024         * ipa-inline.c: Update toplevel comment.
9025         (MAX_TIME): Remove.
9026         (cgraph_clone_inlined_nodes): Fix linebreaks.
9027         (cgraph_check_inline_limits): Restructure to ...
9028         (caller_growth_limits): ... this one; be more tolerant
9029         on growth in nested inline chains; add explanatory comment;
9030         fix stack accounting thinko introduced by previous patch.
9031         (cgraph_default_inline_p): Remove.
9032         (report_inline_failed_reason): New function.
9033         (can_inline_edge_p): New function.
9034         (can_early_inline_edge_p): New function.
9035         (leaf_node_p): Move upwards in file.
9036         (want_early_inline_function_p): New function.
9037         (want_inline_small_function_p): New function.
9038         (want_inline_self_recursive_call_p): New function.
9039         (cgraph_edge_badness): Rename to ...
9040         (edge_badness) ... this one; fix linebreaks.
9041         (update_edge_key): Update call of edge_baddness; add
9042         detailed dump about queue updates.
9043         (update_caller_keys): Use can_inline_edge_p and
9044         want_inline_small_function_p.
9045         (cgraph_decide_recursive_inlining): Rename to...
9046         (recursive_inlining): Use can_inline_edge_p and
9047         want_inline_self_recursive_call_p; simplify and remove no longer
9048         valid FIXME.
9049         (cgraph_set_inline_failed): Remove.
9050         (add_new_edges_to_heap): Use can_inline_edge_p and
9051         want_inline_small_function_p.
9052         (cgraph_decide_inlining_of_small_functions): Rename to ...
9053         (inline_small_functions): ... this one; cleanup; use
9054         can/want predicates; cleanup debug ouput; work edges till fibheap
9055         is exhausted and do not stop once unit growth is reached; remove
9056         later loop processing remaining edges.
9057         (cgraph_flatten): Rename to ...
9058         (flatten_function): ... this one; use can_inline_edge_p
9059         and can_early_inline_edge_p predicates.
9060         (cgraph_decide_inlining): Rename to ...
9061         (ipa_inline): ... this one; remove unreachable nodes before
9062         inlining functions called once; simplify the pass.
9063         (cgraph_perform_always_inlining): Rename to ...
9064         (inline_always_inline_functions): ... this one; use
9065         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
9066         (cgraph_decide_inlining_incrementally): Rename to ...
9067         (early_inline_small_functions): ... this one; simplify
9068         using new predicates; cleanup; make dumps prettier.
9069         (cgraph_early_inlining): Rename to ...
9070         (early_inliner): newer inline regular functions into always-inlines;
9071         fix updating of call stmt summaries.
9072         (pass_early_inline): Update for new names.
9073         (inline_transform): Fix formating.
9074         (gate_cgraph_decide_inlining): Rename to ...
9075         (pass_ipa_inline): ... this one.
9076         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
9077         * ipa-inline-analysis.c (dump_inline_summary): Update.
9078         (compute_inline_parameters): Do not compute disregard_inline_limits;
9079         look for mismatching arguments.
9080         (estimate_growth): Fix handlig of non-trivial self recursion.
9081         (inline_read_summary): Do not read info->disregard_inline_limits.
9082         (inline_write_summary): Do not write info->disregard_inline_limits.
9083         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
9084         and move all checks into can_inline_edge_p predicate; re-enable code
9085         comparing optimization levels.
9086         (expand_call_inline): Do not test inline_forbidden_into_p.
9087         * Makefile.in (ipa-inline.o): Update arguments.
9088
9089 2011-04-17  Revital Eres  <revital.eres@linaro.org>
9090
9091         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
9092
9093 2011-04-17  Revital Eres  <revital.eres@linaro.org>
9094
9095         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
9096
9097 2011-04-17  Michael Matz  <matz@suse.de>
9098
9099         PR tree-optimization/48622
9100         PR lto/48645
9101         * ipa-inline-analysis.c (inline_read_summary): Read size/time
9102         in same order as they're written.
9103
9104 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9105
9106         * config/pa/predicates.md: Reorganize and simplify predicates.
9107         Eliminate duplicate code checks.
9108         (arith_operand): Rename to arith14_operand
9109         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
9110         * config/pa/pa.md: Use renamed operands.
9111         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
9112         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
9113         arith11_operand, adddi3_operand, indexed_memory_operand,
9114         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
9115         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
9116         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
9117         move_dest_operand, move_src_operand, prefetch_cc_operand,
9118         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
9119         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
9120         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
9121         div_operand, int5_operand, movb_comparison_operator,
9122         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
9123         arith_double_operand, ireg_operand, lhs_lshift_operand,
9124         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
9125         integer_store_memory_operand): Likewise.
9126         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
9127         (integer_store_memory_operand, read_only_operand,
9128         function_label_operand, borx_reg_operand,
9129         non_hard_reg_operand): Likewise.
9130         (eq_neq_comparison_operator): Delete unused operator.
9131         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
9132         function_label_operand.
9133         (emit_move_sequence): Likewise.
9134
9135 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
9136
9137         * config/i386/sse.md (sseunpackmode): New mode attribute.
9138         (ssepackmode): Ditto.
9139         (vec_pack_trunc_<mode>): Macroize expander from
9140         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
9141         (vec_unpacks_lo_<mode>): Macroize expander from
9142         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
9143         (vec_unpacks_hi_<mode>): Macroize expander from
9144         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
9145         (vec_unpacku_lo_<mode>): Macroize expander from
9146         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
9147         (vec_unpacku_hi_<mode>): Macroize expander from
9148         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
9149         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
9150         ix86_expand_sse4_unpack.
9151         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
9152
9153 2011-04-16  Jan Hubicka  <jh@suse.cz>
9154
9155         * cgraphbuild.c: Include ipa-inline.h.
9156         (reset_inline_failed): Use initialize_inline_failed.
9157         * cgraph.c: Include ipa-inline.h.
9158         (cgraph_create_node_1): Do not initialize estimated_growth.
9159         (initialize_inline_failed): More to ipa-inline-analysis.c
9160         (dump_cgraph_node): Do not dump inline flags.
9161         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
9162         and disregard_inline_limits flags.
9163         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
9164         time, size, estimated_growth.
9165         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
9166         Update.
9167         * cgraphunit.c (cgraph_decide_is_function_needed): Use
9168         DECL_DISREGARD_INLINE_LIMITS.
9169         (cgraph_analyze_function): Do not initialize
9170         node->local.disregard_inline_limits.
9171         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
9172         inlinable, versionable and disregard_inline_limits.
9173         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
9174         cgraph_check_inline_limits, cgraph_default_inline_p,
9175         cgraph_edge_badness, update_caller_keys, update_callee_keys,
9176         add_new_edges_to_heap): Update.
9177         (cgraph_decide_inlining_of_small_function): Update; set
9178         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
9179         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
9180         cgraph_decide_inlining_incrementally): Update.
9181         * ipa-inline.h (inline_summary): Add inlinable, versionable,
9182         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
9183         time, size and estimated_growth parameters.
9184         (estimate_edge_growth): Update.
9185         (initialize_inline_failed): Declare.
9186         * ipa-split.c: Include ipa-inline.h
9187         (execute_split_functions): Update.
9188         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
9189         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
9190         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
9191         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
9192         estimated_growth to INT_MIN.
9193         (inline_node_duplication_hook): Likewise.
9194         (dump_inline_summary): Dump new fields.
9195         (compute_inline_parameters): Update.
9196         (estimate_edge_time, estimate_time_after_inlining,
9197         estimate_size_after_inlining, estimate_growth, inline_read_summary,
9198         inline_write_summary):
9199         (initialize_inline_failed): Move here from cgraph.c.
9200         * tree-sra.c: Include ipa-inline.h.
9201         (ipa_sra_preliminary_function_checks): Update.
9202         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
9203         ipa-inline.h.
9204
9205 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
9206
9207         * config/i386/sse.md (V16): New mode iterator.
9208         (VI1, VI8): Ditto.
9209         (AVXMODEQI, AVXMODEDI): Remove.
9210         (sse2, sse3): New mode attribute.
9211         (mov<mode>): Use V16 mode iterator.
9212         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
9213         (push<mode>1): Use V16 mode iterator.
9214         (movmisalign<mode>): Ditto.
9215         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
9216         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
9217         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
9218         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
9219         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
9220         avx_movdqu<avxmodesuffix>.
9221         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
9222         *avx_movdqu<avxmodesuffix>.
9223         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
9224         avx_lddqu<avxmodesuffix>.
9225         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
9226         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
9227         avx_movnt<AVXMODEDI:mode>.
9228         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
9229         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
9230
9231 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
9232
9233         PR target/48629
9234         * haifa-sched.c (prune_ready_list, schedule_block): Use
9235         sched_pressure_p rather than flag_sched_pressure.
9236
9237 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
9238
9239         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
9240         cgraph_get_node instead of cgraph_get_create_node.
9241
9242 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
9243
9244         * cfgexpand.c (expand_debug_expr): Use
9245         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
9246
9247 2011-04-15  Michael Matz  <matz@suse.de>
9248
9249         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
9250         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
9251         * function.c (gimplify_parameters): Ditto.
9252         * gimplify.c (gimplify_vla_decl): Ditto.
9253
9254         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
9255         (gimple_call_set_alloca_for_var): New inline function.
9256         (gimple_call_alloca_for_var_p): Ditto.
9257         * gimple.c (gimple_build_call_from_tree): Remember
9258         CALL_ALLOCA_FOR_VAR_P state.
9259         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
9260
9261         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
9262         calls if they were for VLA objects.
9263
9264 2011-04-15  Martin Jambor  <mjambor@suse.cz>
9265
9266         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
9267         of ADR_EXPRs.
9268
9269 2011-04-15  Martin Jambor  <mjambor@suse.cz>
9270
9271         PR middle-end/48601
9272         * tree-emutls.c (lower_emutls_function_body): Call
9273         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
9274         result is non-NULL.
9275
9276 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
9277
9278         * c-decl.c (detect_field_duplicates): Call
9279         objc_detect_field_duplicates instead of objc_get_interface_ivars.
9280
9281 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
9282
9283         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
9284         * gimple.c (gimple_asm_clobbers_memory_p): Define.
9285         * ipa-pure-const.c (check_stmt): Call it.
9286         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
9287
9288 2011-04-15  Richard Guenther  <rguenther@suse.de>
9289
9290         PR tree-optimization/48290
9291         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
9292         Properly decide inhibiting propagation based on the valueized
9293         operand.  Do loop-closed SSA form preserving here ...
9294         (init_copy_prop): ... not here.
9295
9296 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
9297
9298         PR target/48612
9299         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
9300         (*ieee_smax<mode>3): Likewise.
9301
9302 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9303
9304         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
9305         Replace match_operand with match_dup for the third operand in
9306         these expanders.
9307
9308 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
9309
9310         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
9311         to track processing of conditionals.  Update all callers.
9312         (try_combine, simplify_if_then_else): Update.
9313
9314 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
9315
9316         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
9317         -fsched-pressure.
9318
9319 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
9320
9321         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
9322         instead of match_operand for operand 3.
9323
9324 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
9325
9326         * recog.h (insn_operand_data): Add an "allows_mem" field.
9327         * genoutput.c (output_operand_data): Initialize it.
9328         * optabs.c (maybe_legitimize_operand_same_code): New function.
9329         (maybe_legitimize_operand): Use it when matching the original
9330         op->value.
9331
9332 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9333
9334         * gimplify.c: Fix issues in comments throughout.
9335         (voidify_wrapper_expr): Fix long line.
9336         (build_stack_save_restore): Likewise.
9337         (gimplify_loop_expr): Likewise.
9338         (gimplify_compound_lval): Likewise.
9339         (gimplify_init_ctor_eval): Likewise.
9340         (gimplify_modify_expr_rhs): Likewise.
9341         (omp_notice_threadprivate_variable): Likewise.
9342
9343 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9344
9345         * cfgexpand.c (expand_call_stmt): Convert the function type to the
9346         original one if this is not a builtin function.
9347
9348 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
9349
9350         PR target/48605
9351         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
9352         offset it as needed based on top 2 bits in operands[3], change
9353         MEM mode to SFmode and mask those 2 bits away from operands[3].
9354
9355 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
9356
9357         * c-parser.c (c_parser_objc_protocol_definition): Updated for
9358         change from objc_declare_protocols() to objc_declare_protocol().
9359
9360 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
9361
9362         * config/i386/sse.md (sse4_1): New mode attribute.
9363         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
9364         avx_blend<ssemodesuffix><avxmodesuffix> and
9365         sse4_1_blend<ssemodesuffix> using VF mode iterator.
9366         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
9367         avx_blendv<ssemodesuffix><avxmodesuffix> and
9368         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
9369         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
9370         avx_dp<ssemodesuffix><avxmodesuffix> and
9371         sse4_1_dp<ssemodesuffix> using VF mode iterator.
9372         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
9373         (sse4_1_packusdw): Merge with *avx_packusdw.
9374         (sse4_1_pblendvb): Merge with *avx_pblendvb.
9375         (sse4_1_pblendw): Merge with *avx_pblendw.
9376         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
9377         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
9378         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
9379         VF mode iterator.
9380         (sse4_1_round<ssescalarmodesuffix>): Merge with
9381         *avx_round<ssescalarmodesuffix>.
9382         (aesenc): Merge with *avx_aesenc.
9383         (aesenclast): Merge with *avx_aesenclast.
9384         (aesdec): Merge with *avx_aesdec.
9385         (aesdeclast): Merge with *avx_aesdeclast.
9386         (pclmulqdq): Merge with *pclmulqdq.
9387         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
9388         New predicate.
9389         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
9390
9391 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
9392
9393         PR middle-end/48608
9394         * cfgexpand.c (get_decl_align_unit): Renamed to ...
9395         (align_local_variable): This.  Update DECL_ALIGN.
9396         (add_stack_var): Updated.
9397         (expand_one_stack_var): Likewise.
9398
9399 2011-04-14  Richard Guenther  <rguenther@suse.de>
9400
9401         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
9402         Remove.
9403         (dse_initialize_block_local_data, dse_leave_block,
9404         record_voperand_set, get_stmt_uid): Likewise.
9405         (dse_possible_dead_store_p): Allow any kind of killing stmt.
9406         (dse_optimize_stmt): Remove voperand set handling code.
9407         Simplify and improve to handle any kind of killing stmt.
9408         (dse_record_phi): Remove.
9409         (dse_enter_block): Simplify.
9410         (tree_ssa_dse): Likewise.
9411         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
9412
9413 2011-04-14  Jan Hubicka  <jh@suse.cz>
9414
9415         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
9416         * cgraph.h (struct inline_summary): Move to ipa-inline.h
9417         (cgraph_local_info): Remove inline_summary.
9418         * ipa-cp.c: Include ipa-inline.h.
9419         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
9420         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
9421         accesor.
9422         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
9423         (input_overwrite_node): Do not set inline summary.
9424         (input_node): Do not stream inline summary.
9425         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
9426         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
9427         growth; we do not have inline parameters computed for that anyway.
9428         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
9429         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
9430         (inline_summary_t): New type and VECtor.
9431         (debug_inline_summary, dump_inline_summaries): Declare.
9432         (inline_summary): Use VOCtor.
9433         (estimate_edge_growth): Kill hack computing call stmt size directly.
9434         * lto-section-in.c (lto_section_name): Add inline section.
9435         * ipa-inline-analysis.c: Include lto-streamer.h
9436         (node_removal_hook_holder, node_duplication_hook_holder): New holders
9437         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
9438         (inline_summary_vec): Define.
9439         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
9440         dump_inline_summaries): New functions.
9441         (estimate_function_body_sizes): Properly compute size/time of outgoing
9442         calls.
9443         (compute_inline_parameters): Alloc inline_summary; do not compute
9444         size/time of incomming calls.
9445         (estimate_edge_time): Avoid missing time summary hack.
9446         (inline_read_summary): Read inline summary info.
9447         (inline_write_summary): Write inline summary info.
9448         (inline_free_summary): Free all hooks and inline summary vector.
9449         * lto-streamer.h: Add LTO_section_inline_summary section.
9450         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
9451         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
9452
9453 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
9454
9455         * tree-vectorizer.h (vect_strided_store_supported): Add a
9456         HOST_WIDE_INT argument.
9457         (vect_strided_load_supported): Likewise.
9458         (vect_permute_store_chain): Return void.
9459         (vect_transform_strided_load): Likewise.
9460         (vect_permute_load_chain): Delete.
9461         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
9462         count argument.  Check that the count is a power of two.
9463         (vect_strided_load_supported): Likewise.
9464         (vect_permute_store_chain): Return void.  Update after above changes.
9465         Assert that the access is supported.
9466         (vect_permute_load_chain): Likewise.
9467         (vect_transform_strided_load): Return void.
9468         * tree-vect-stmts.c (vectorizable_store): Update calls after
9469         above interface changes.
9470         (vectorizable_load): Likewise.
9471         (vect_analyze_stmt): Don't check for strided powers of two here.
9472
9473 2011-04-14  Richard Guenther  <rguenther@suse.de>
9474
9475         PR tree-optimization/48590
9476         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
9477         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
9478         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
9479         BUILT_IN_STACK_SAVE.
9480         * tree-ssa-dce.c (propagate_necessity): Handle
9481         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
9482
9483 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
9484
9485         * c-parser.c (c_parser_objc_class_declaration): Updated call to
9486         objc_declare_class.
9487
9488 2011-04-14  Richard Guenther  <rguenther@suse.de>
9489
9490         * tree.h (get_object_alignment_1): Declare.
9491         * builtins.c (get_object_alignment_1): Split out worker from ...
9492         (get_object_alignment): ... here.
9493         * fold-const.c (get_pointer_modulus_and_residue): Use
9494         get_object_alignment_1.
9495
9496 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
9497
9498         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
9499         type parameter.
9500         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
9501         parameter.  Generalise code to handle arrays as well as vectors.
9502         (vect_setup_realignment): Update accordingly.
9503         * tree-vect-stmts.c (vectorizable_store): Likewise.
9504         (vectorizable_load): Likewise.
9505
9506 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
9507
9508         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
9509         within the per-copy loop.
9510
9511 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
9512
9513         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
9514         in the dump file.
9515
9516 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
9517
9518         * doc/options.texi (Negative): Explicitly mention that the
9519         Negative chain must be circular.
9520
9521 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
9522
9523         * function.h (block_chainon): Declare.
9524         * function.c (block_chainon): Define.
9525
9526 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
9527             Eric Weddington  <eric.weddington@atmel.com>
9528             Georg-Johann Lay  <avr@gjlay.de>
9529
9530         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
9531         New Includes
9532         (avr_init_builtins, avr_expand_builtin,
9533         avr_expand_delay_cycles, avr_expand_unop_builtin,
9534         avr_expand_binop_builtin ): New functions.
9535         (avr_builtin_id): New enum
9536         (struct avr_builtin_description): New struct
9537         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
9538         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
9539
9540         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
9541         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
9542         UNSPECV_DELAY_CYCLES): new enumeration values
9543         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
9544         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
9545         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
9546         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
9547         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
9548         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
9549         "fmulsu"): New insns
9550
9551         * config/avr/avr-c.c: fix line endings
9552         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
9553         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
9554         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
9555         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
9556         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
9557
9558         * doc/extend.texi (AVR Built-in Functions): New node
9559         (Target Builtins): Add documentation of AVR
9560         built-in functions.
9561
9562 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
9563
9564         PR target/44643
9565         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
9566         alone. Error if non-const data has attribute progmem.
9567
9568 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
9569
9570         * tree.h (struct tree_constructor): Include tree_typed instead of
9571         tree_common.
9572         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
9573         TS_TYPED instead of TS_COMMON.
9574
9575 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
9576
9577         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
9578         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
9579         (sse2_psadbw): Merge with *avx_psadbw.
9580         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
9581         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
9582         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
9583         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
9584         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
9585         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
9586         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
9587         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
9588         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
9589         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
9590         (ssse3_palignrti): Merge with *avx_palignrti.
9591
9592 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
9593
9594         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
9595         * tree-ssanames.c (fini_ssanames): VEC_free it.
9596         (make_ssa_name_fn): Update for VECness of free_ssanames.
9597         (release_ssa_name, release_dead_ssa_names): Likewise.
9598         * tree.h (struct tree_ssa_name): Include tree_typed instead of
9599         tree_common.
9600         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
9601         TS_TYPED instead of TS_COMMON.
9602
9603 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
9604
9605         * postreload-gcse.c (gcse_after_reload_main): Add calls to
9606         statistics_counter_event.
9607         * tree-ssa-copyrename.c (stats): Define.
9608         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
9609         statistics_counter_event.
9610         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
9611         (bswap_stats, widen_mul_stats): Define.
9612         (insert_reciprocals): Increment rdivs_inserted.
9613         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
9614         rfuncs_inserted.  Add calls to statistics_counter_event.
9615         (execute_cse_sincos_1): Increment inserted.
9616         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
9617         statistics_counter_event.
9618         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
9619         of bswap_stats.  Add calls to statistics_counter_event.
9620         (convert_mult_to_widen): Increment widen_mults_inserted.
9621         (convert_plusminus_to_widen): Increment maccs_inserted.
9622         (convert_mult_to_fma): Increment fmas_inserted.
9623         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
9624         calls to statistics_counter_event.
9625
9626 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
9627
9628         PR rtl-optimization/48455
9629         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
9630         `temp_costs->mem_cost'.
9631
9632 2011-04-13  Jan Hubicka  <jh@suse.cz>
9633
9634         * ipa-inline.h: New file.
9635         * ipa-inline-analysis.c: New file. Broken out of ...
9636         * ipa-inline.c: ... this file; update toplevel comment;
9637         include ipa-inline.h
9638         (inline_summary): Move to ipa-inline.h
9639         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
9640         ipa-inline-analysis.c.
9641         (cgraph_estimate_time_after_inlining): Rename to
9642         estiamte_time_after_inlining; move to ipa-inline-analysis.c
9643         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
9644         to estimate_edge_growth.
9645         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
9646         rename to estimate_size_after_inlining.
9647         (cgraph_mark_inline_edge): Update for new naming convention.
9648         (cgraph_check_inline_limits): Likewise.
9649         (cgraph_edge_badness): Likewise.
9650         (cgraph_decide_recursive_inlining): Likewise.
9651         (cgraph_decide_inlining_of_small_functions): Likewise.
9652         (cgraph_decide_inlining_incrementally): Likewise.
9653         (cgraph_estimate_growth): Rename to estimate_growth; move to
9654         ipa-inline-analysis.c.
9655         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
9656         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
9657         (compute_inline_parameters): Likewise.
9658         (compute_inline_parameters_for_current): Likewise.
9659         (pass_inline_parameters): Likewise.
9660         (inline_indirect_intraprocedural_analysis): Likewise.
9661         (analyze_function): Rename to inline_analyze_function; likewise.
9662         (add_new_function): Move to ipa-inline-analysis.c.
9663         (inline_generate_summary): Likewise.
9664         (inline_read_summary): Likewise.
9665         (inline_write_summary): Likewise.
9666         * Makefile.in (ipa-inline-analysis.c): New file.
9667
9668 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9669
9670         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
9671         * configure: Regenerate.
9672
9673 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
9674
9675         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
9676         instead of tree_common.
9677         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
9678         Likewise.
9679         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
9680         TS_TYPED rather than TS_COMMON.
9681         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
9682
9683 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
9684
9685         PR target/45263
9686         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
9687         r20 around calls of __tablejump_elpm__
9688
9689 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
9690
9691         PR middle-end/48591
9692         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
9693         NULL.
9694         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
9695
9696 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
9697
9698         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
9699         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
9700         (cfi_vec): New typedef.
9701         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
9702         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
9703         (cie_cfi_vec): New static variable.
9704         (cie_cfi_head): Delete.
9705         (add_cfi): Accept a cfi_vec * as first argument. All callers and
9706         declaration changed. Use vector rather than list operations.
9707         (new_cfi): Don't initialize the dw_cfi_next field.
9708         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
9709         rather than list operations.
9710         (lookup_cfa): Use vector rather than list operations.
9711         (output_cfis): New argument upto. Accept a cfi_vec rather than
9712         a dw_cfi_ref list head as argument. All callers changed.
9713         Iterate over the vector using upto as a maximum index.
9714         (output_all_cfis): New static function.
9715         (output_fde): Use vector rather than list operations. Use the
9716         new upto argument for output_cfis rather than manipulating a
9717         list.
9718         (dwarf2out_begin_prologue): Change initializations to match
9719         new struct members.
9720         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
9721         from the vector length rather than searching for the end of a list.
9722         Use output_all_cfis.
9723         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
9724
9725 2011-04-13  Nick Clifton  <nickc@redhat.com>
9726
9727         * config/rx/rx.md (movmemsi): Do not use this pattern when
9728         volatile pointers are involved.
9729
9730 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
9731
9732         * config/i386/sse.md (pinsrbits): Remove.
9733         (sse2_packsswb): Merge with *avx_packsswb.
9734         (sse2_packssdw): Merge with *avx_packssdw.
9735         (sse2_packuswb): Merge with *avx_packuswb.
9736         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
9737         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
9738         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
9739         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
9740         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
9741         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
9742         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
9743         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
9744         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
9745         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
9746         (sse2_loadld): Merge with *avx_loadld.
9747         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
9748         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
9749         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
9750         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
9751         (vec_concatv2di): Merge with *vec_concatv2di_avx.
9752
9753 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
9754
9755         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
9756         calling TREE_CHAIN.
9757         * print-tree.c (print_node): Likewise.
9758         * tree-inline.c (copy_tree_r): Likewise.
9759         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
9760         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
9761         instead of TS_COMMON.
9762         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
9763         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
9764         (copy_node_stat): Zero TREE_CHAIN only if necessary.
9765         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
9766         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
9767         ...and these...
9768         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
9769         * tree.h: ...here.
9770         (TREE_CHAIN): Check for a TS_COMMON structure.
9771         (TREE_TYPE): Check for a TS_TYPED structure.
9772
9773 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
9774
9775         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
9776         cgraph_get_create_node instead of cgraph_node.
9777
9778 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
9779
9780         * c-parser.c (c_parser_initelt): Updated call to
9781         objc_build_message_expr.
9782         (c_parser_postfix_expression): Likewise.
9783
9784 2011-04-12  Kai Tietz  <ktietz@redhat.com>
9785
9786         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
9787         MASK_MS_BITFIELD_LAYOUT bit.
9788
9789 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
9790
9791         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
9792         assert it is always true.
9793         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
9794         moves.
9795
9796 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
9797
9798         * c-parser.c (c_lex_one_token): Rewritten conditional used when
9799         compiling Objective-C to be more efficient.
9800
9801 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
9802
9803         * opts-common.c (decode_cmdline_options_to_array): Remove variable
9804         argv_copied.
9805
9806 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
9807
9808         * recog.h, genoutput.c, optabs.c: Revert last patch.
9809
9810 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9811
9812         PR target/48090
9813         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
9814
9815 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
9816
9817         * recog.h (insn_operand_data): Add an "allows_mem" field.
9818         * genoutput.c (output_operand_data): Initialize it.
9819         * optabs.c (maybe_legitimize_operand_same_code): New function.
9820         (maybe_legitimize_operand): Use it when matching the original
9821         op->value.
9822
9823 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
9824
9825         * genpreds.c (process_define_predicate): Move most processing
9826         to gensupport.c.  Continue to validate the expression.
9827         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
9828         (process_define_predicate): Move processing to gensupport.c.
9829         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
9830         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
9831         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
9832         argument.
9833         (valid_predicate_name_p): New function, split out from old
9834         genpreds.c:process_define_predicate.
9835         (process_define_predicate): New function, combining code from
9836         old genpreds.c and genrecog.c functions.
9837         (process_rtx): Call it for DEFINE_PREDICATE and
9838         DEFINE_SPECIAL_PREDICATE.
9839
9840 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
9841
9842         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
9843         size of a '%A' memory reference.
9844         (T_DREG, T_QREG): New neon_builtin_type_bits.
9845         (arm_init_neon_builtins): Assert that the load and store operands
9846         are neon_struct_operands.
9847         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
9848         (NEON_ARG_MEMORY): New builtin_arg.
9849         (neon_dereference_pointer): New function.
9850         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
9851         Handle NEON_ARG_MEMORY.
9852         (arm_expand_neon_builtin): Update after above interface changes.
9853         Use NEON_ARG_MEMORY for loads and stores.
9854         * config/arm/predicates.md (neon_struct_operand): New predicate.
9855         * config/arm/iterators.md (V_two_elem): Tweak formatting.
9856         (V_three_elem): Use BLKmode for accesses that have no associated mode.
9857         (V_four_elem): Tweak formatting.
9858         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
9859         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
9860         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
9861         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
9862         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
9863         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
9864         (neon_vst4<mode>): Replace pointer operand with a memory operand.
9865         Use %A in the output template.
9866         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
9867         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
9868         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
9869         the width of the memory access.  Remove post-increment.
9870         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
9871
9872 2011-04-12  Nick Clifton  <nickc@redhat.com>
9873
9874         * config/v850/v850.c (expand_prologue): Do not use the CALLT
9875         instruction for interrupt handlers if the target is the basic V850
9876         architecture.
9877         (expand_epilogue): Likewise.
9878
9879 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
9880
9881         PR rtl-optimization/48549
9882         * combine.c (propagate_for_debug): Also stop after BB_END of
9883         this_basic_block.  Process LAST and just stop processing after it.
9884         (combine_instructions): If last_combined_insn has been deleted,
9885         set last_combined_insn to its PREV_INSN.
9886
9887 2011-04-12  Richard Guenther  <rguenther@suse.de>
9888
9889         PR tree-optimization/46076
9890         * gimple.h (struct gimple_statement_call): Add fntype field.
9891         (gimple_call_fntype): Adjust.
9892         (gimple_call_set_fntype): New function.
9893         * gimple.c (gimple_build_call_1): Set the call function type.
9894         * gimplify.c (gimplify_call_expr): Preserve the function
9895         type the frontend used for the call.
9896         (gimplify_modify_expr): Likewise.
9897         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
9898         function type.
9899         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
9900         function type.
9901         * tree-ssa.c (useless_type_conversion_p): Function pointer
9902         conversions are useless.
9903
9904 2011-04-12  Martin Jambor  <mjambor@suse.cz>
9905
9906         * cgraph.h (cgraph_node): Remove function declaration.
9907         (cgraph_create_node): Declare.
9908         (cgraph_get_create_node): Likewise.
9909         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
9910         Updated all callers.
9911         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
9912         the decl does not already exist.  Call cgraph_get_create_node instead
9913         of cgraph_node.
9914         (cgraph_get_create_node): New function.
9915         (cgraph_same_body_alias): Update comment.
9916         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
9917         assert it does not return NULL.
9918         (cgraph_update_edges_for_call_stmt): Likewise.
9919         (cgraph_clone_edge): Likewise.
9920         (cgraph_create_virtual_clone): Likewise.
9921         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
9922         instead of cgraph_node.
9923         (cgraph_add_new_function): Call cgraph_create_node or
9924         cgraph_get_create_node instead of cgraph_node.
9925         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
9926         instead of cgraph_node.
9927         (record_eh_tables): Likewise.
9928         (mark_address): Likewise.
9929         (mark_load): Likewise.
9930         (build_cgraph_edges): Call cgraph_get_create_node instead
9931         of cgraph_node.
9932         (rebuild_cgraph_edges): Likewise.
9933         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
9934         instead of cgraph_node.
9935         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
9936         cgraph_node.
9937         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
9938         cgraph_create_node instead of cgraph_node.
9939         * c-decl.c (finish_function): Call cgraph_get_create_node instead
9940         of cgraph_node.
9941         * lto-cgraph.c (input_node): Likewise.
9942         * lto-streamer-in.c (input_function): Likewise.
9943         * varasm.c (mark_decl_referenced): Likewise.
9944         (assemble_alias): Likewise.
9945
9946 2011-04-12  Martin Jambor  <mjambor@suse.cz>
9947
9948         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
9949         instead of cgraph_node and assert it does not return NULL.
9950         * lto-streamer-in.c (lto_read_body): Likewise.
9951         * omp-low.c (new_omp_context): Likewise.
9952         (create_task_copyfn): Likewise.
9953         * tree-emutls.c (lower_emutls_function_body): Likewise.
9954         * matrix-reorg.c (transform_allocation_sites): Likewise.
9955
9956 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
9957
9958         PR c/48552
9959         * c-typeck.c (build_asm_expr): Error out on attempts to use
9960         void type outputs or inputs for constraints that allow reg or
9961         don't allow memory.
9962
9963 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
9964             Richard Earnshaw  <rearnsha@arm.com>
9965
9966         PR target/48250
9967         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
9968         to use sign-magnitude offsets. Reject unsupported unaligned
9969         cases. Add detailed description in comments.
9970         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
9971         condition from TARGET_32BIT to TARGET_ARM.
9972
9973 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
9974
9975         * tree.h (struct typed_tree): New.
9976         (struct tree_common): Include it instead of tree_base.
9977         (TREE_TYPE): Update for new location of type field.
9978         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
9979         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
9980         (union tree_node): Add typed field.
9981         * treestruct.def (TS_TYPED): New.
9982         * lto-streamer.c (check_handled_ts_structures): Handle it.
9983         * tree.c (MARK_TS_TYPED): New macro.
9984         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
9985
9986 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
9987
9988         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
9989         (force_nonfallthru): Do not alter the loop nest if no basic block
9990         was created.
9991
9992 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
9993
9994         * config/i386/sse.md (VI): New mode iterator.
9995         (SSEMODEI): Remove.
9996         (AVX256MODEI): Ditto.
9997         (AVXMODEF4P): Ditto.
9998         (avxvecpsmode): Ditto.
9999         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
10000         (sse2_andnot<mode>3): New expander.
10001         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
10002         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
10003         (<any_logic:code><mode>3): Use VI mode iterator.
10004         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
10005         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
10006         (*andnottf3): Handle AVX three-operand constraints.
10007         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
10008
10009 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
10010             Robert Millan  <rmh@gnu.org>
10011
10012         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
10013         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
10014         GNU_USER_DYNAMIC_LINKER64): Define.
10015         (REG_NAME): Don't undefine.
10016         (MD_UNWIND_SUPPORT): Undefine.
10017         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
10018         (REG_NAME): Don't undefine.
10019         (MD_UNWIND_SUPPORT): Undefine.
10020         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
10021
10022 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
10023
10024         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
10025         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
10026
10027 2011-04-11  Xinliang David Li  <davidxl@google.com>
10028
10029         * value-profile.c (check_ic_target): New function.
10030         (gimple_ic_transform): Sanity check indirect call target.
10031         * gimple-low.c (gimple_check_call_args): Interface change.
10032         (gimple_check_call_matching_types): New function.
10033         * tree-inline.c (tree_can_inline_p): Call new function.
10034
10035 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
10036
10037         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
10038         tree-pretty-print.h & realmpfr.h.
10039
10040 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
10041
10042         PR middle-end/48464
10043         * ira.c (setup_pressure_classes): Fix typo in loop condition.
10044         (setup_allocno_and_important_classes): Ditto.
10045
10046 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
10047
10048         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
10049         GNU_USER_DYNAMIC_LINKER.
10050         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
10051         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10052         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
10053         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
10054         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
10055         GNU_USER_TARGET_OS_CPP_BUILTINS.
10056         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
10057         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10058         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
10059         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10060         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
10061         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
10062         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
10063         GNU_USER_TARGET_OS_CPP_BUILTINS.
10064         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10065         GNU_USER_DYNAMIC_LINKER.
10066         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
10067         GNU_USER_TARGET_OS_CPP_BUILTINS.
10068         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
10069         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10070         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
10071         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10072         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
10073         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
10074         GNU_USER_DYNAMIC_LINKER64): Remove.
10075         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
10076         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10077         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10078         GNU_USER_DYNAMIC_LINKER.
10079         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
10080         GNU_USER_TARGET_OS_CPP_BUILTINS.
10081         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
10082         GNU_USER_TARGET_OS_CPP_BUILTINS.
10083         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
10084         to GNU_USER_TARGET_OS_CPP_BUILTINS.
10085         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
10086         GNU_USER_TARGET_OS_CPP_BUILTINS.
10087         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
10088         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
10089         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
10090         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
10091         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10092         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10093         GNU_USER_DYNAMIC_LINKER.
10094         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
10095         GNU_USER_TARGET_OS_CPP_BUILTINS.
10096         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
10097         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10098         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10099         GNU_USER_DYNAMIC_LINKER.
10100         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
10101         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10102         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
10103         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10104         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10105         GNU_USER_DYNAMIC_LINKER.
10106         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
10107         GNU_USER_DYNAMIC_LINKERN32.
10108         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
10109         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
10110         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
10111         GNU_USER_DYNAMIC_LINKER32.
10112         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
10113         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10114         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10115         GNU_USER_DYNAMIC_LINKER.
10116         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
10117         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10118         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
10119         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10120         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
10121         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
10122         GNU_USER_DYNAMIC_LINKER32.
10123         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
10124         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
10125         GNU_USER_DYNAMIC_LINKER.
10126         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
10127         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10128         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
10129         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
10130         GNU_USER_DYNAMIC_LINKER64.
10131         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
10132         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10133         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10134         GNU_USER_DYNAMIC_LINKER.
10135         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
10136         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10137         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10138         GNU_USER_DYNAMIC_LINKER.
10139         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
10140         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10141         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
10142         GNU_USER_DYNAMIC_LINKER32.
10143         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
10144         GNU_USER_DYNAMIC_LINKER64.
10145         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
10146         GNU_USER_DYNAMIC_LINKER64.
10147         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
10148         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10149         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
10150         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10151         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
10152
10153 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
10154
10155         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
10156         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
10157         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
10158         GNU_USER_DYNAMIC_LINKER.
10159         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
10160         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
10161         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
10162         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
10163         GNU_USER_DYNAMIC_LINKER64.
10164         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
10165         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
10166         GNU_USER_LINK_EMULATION.
10167         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
10168         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
10169         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
10170         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
10171         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
10172         CPP_SPEC, CC1_SPEC): Remove.
10173         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
10174         (GNU_USER_DYNAMIC_LINKER): Define.
10175         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
10176         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
10177         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
10178         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
10179         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
10180         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
10181         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
10182         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
10183         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
10184         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
10185         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
10186         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
10187         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
10188         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
10189         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
10190         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
10191         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10192         GNU_USER_DYNAMIC_LINKER.
10193         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10194         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
10195         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10196         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
10197         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10198         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
10199         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
10200         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
10201         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
10202         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
10203
10204 2011-04-11  Kai Tietz  <ktietz@redhat.com>
10205
10206         PR target/9601
10207         PR target/11772
10208         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
10209         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
10210         comment.
10211         (ix86_is_msabi_thiscall): Removed.
10212         (ix86_is_type_thiscall): Likewise.
10213         (ix86_get_callcvt): New function.
10214         (ix86_comp_type_attributes): Simplify check.
10215         (ix86_function_regparm): Use ix86_get_callcvt for calling
10216         convention attribute checks.
10217         (ix86_return_pops_args): Likewise.
10218         (ix86_static_chain): Likewise.
10219         (x86_this_parameter): Likewise.
10220         (x86_output_mi_thunk): Likewise.
10221         (ix86_function_type_abi): Optimize check for types without attributes.
10222         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
10223         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
10224         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
10225         by flag-values.
10226         (IX86_BASE_CALLCVT): Helper macro.
10227         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
10228         Use ix86_get_callcvt for calling convention attribute checks and avoid
10229         symbol-decoration for stdcall in TARGET_RTD case.
10230         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
10231         Likewise.
10232         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
10233         for declaration.
10234
10235 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
10236
10237         * config/i386/sse.md (VI_128): New mode iterator.
10238         (VI12_128): Rename from SSEMODE12.
10239         (VI14_128): Rename from SSEMODE14.
10240         (VI124_128): New mode iterator.
10241         (VI24_128): Rename from SSEMODE248.
10242         (VI248_128): Rename from SSEMODE248.
10243         (SSEMODE124C8): Remove.
10244         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
10245         (*sse2_<plusminus_insn><mode>3): Merge with
10246         *avx_<plusminus_insn><mode>3.
10247         (*mulv8hi3): Merge with *avx_mulv8hi3.
10248         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
10249         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
10250         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
10251         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
10252         (ashr<mode>3): Merge with *avx_ashr<mode>3.
10253         (lshr<mode>3): Merge with *avx_lshr<mode>3.
10254         (ashl<mode>3): Merge with *avx_ashl<mode>3.
10255         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
10256         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
10257         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10258         (*<smaxmin:code>v8hi3): Ditto.
10259         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
10260         (*<smaxmin:code>v16qi3): Ditto.
10261         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
10262         (*sse2_eq<mode>3): Ditto.
10263         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
10264         (*sse2_gt<mode>3): Ditto.
10265         (vcondv2di): Split out of vcond<mode>.
10266         (vconduv2di): Split out of vcondu<mode>.
10267
10268 2011-04-11  Richard Guenther  <rguenther@suse.de>
10269
10270         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
10271         before calling tree_low_cst.
10272
10273 2011-04-11  Richard Guenther  <rguenther@suse.de>
10274
10275         * stor-layout.c (layout_type): Compute all array index size operations
10276         in the original type.
10277         (initialize_sizetypes): Add comment.
10278         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
10279
10280 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
10281
10282         * common.opt (Tbss=, Tdata=, Ttext=): New options.
10283
10284 2011-04-11  Martin Jambor  <mjambor@suse.cz>
10285
10286         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
10287         of cgraph_node, handle NULL return value.
10288         (cgraph_global_info): Likewise.
10289         (cgraph_rtl_info): Likewise.
10290         * tree-inline.c (estimate_num_insns): Likewise.
10291         * gimplify.c (unshare_body): Likewise.
10292         (unvisit_body): Likewise.
10293         (gimplify_body): Likewise.
10294         * predict.c (optimize_function_for_size_p): Likewise.
10295         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
10296         (call_may_clobber_ref_p_1): Likewise.
10297         * varasm.c (function_section_1): Likewise.
10298         (assemble_start_function): Likewise.
10299
10300 2011-04-11  Martin Jambor  <mjambor@suse.cz>
10301
10302         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
10303         of cgraph_node.
10304         * final.c (rest_of_clean_state): Likewise.
10305         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
10306         * passes.c (pass_init_dump_file): Likewise.
10307         (execute_all_ipa_transforms): Likewise.
10308         (function_called_by_processed_nodes_p): Likewise.
10309         * predict.c (maybe_hot_frequency_p): Likewise.
10310         (probably_never_executed_bb_p): Likewise.
10311         (compute_function_frequency): Likewise.
10312         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
10313         (unnest_nesting_tree_1): Likewise.
10314         (lower_nested_functions): Likewise.
10315         * tree-optimize.c (execute_fixup_cfg): Likewise.
10316         (tree_rest_of_compilation): Likewise.
10317         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
10318         * tree-sra.c (ipa_early_sra): Likewise.
10319         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
10320         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
10321         * ipa.c (record_cdtor_fn): Likewise.
10322         * ipa-inline.c (cgraph_early_inlining): Likewise.
10323         (compute_inline_parameters_for_current): Likewise.
10324         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
10325         * ipa-pure-const.c (local_pure_const): Likewise.
10326         * ipa-split.c (split_function): Likewise.
10327         (execute_split_functions): Likewise.
10328         * cgraphbuild.c (build_cgraph_edges): Likewise.
10329         (rebuild_cgraph_edges): Likewise.
10330         (cgraph_rebuild_references): Likewise.
10331         (remove_cgraph_callee_edges): Likewise.
10332         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
10333         (verify_cgraph_node): Likewise.
10334         (cgraph_analyze_functions): Likewise.
10335         (cgraph_preserve_function_body_p): Likewise.
10336         (save_inline_function_body): Likewise.
10337         (save_inline_function_body): Likewise.
10338         * tree-inline.c (copy_bb): Likewise.
10339         (optimize_inline_calls): Likewise.
10340
10341 2011-04-11  Martin Jambor  <mjambor@suse.cz>
10342
10343         PR tree-optimization/48195
10344         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
10345         ipa_check_create_edge_args.
10346         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
10347         ipa_check_create_edge_args.
10348         * ipa-inline.c (inline_generate_summary): Do not call
10349         ipa_check_create_node_params and ipa_check_create_edge_args.
10350         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
10351         ipa_check_create_edge_args.
10352
10353 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
10354
10355         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
10356         instead of loop.
10357         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10358         * function.c (record_hard_reg_sets): Likewise.
10359         * ira.c (compute_regs_asm_clobbered): Likewise.
10360         * sched-deps.c (sched_analyze_1): Likewise.
10361         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
10362
10363 2011-04-09  Xinliang David Li  <davidxl@google.com>
10364
10365         PR tree-optimization/PR48484
10366         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
10367         has_valid_pred lazily
10368
10369 2011-04-09  Duncan Sands  <baldrick@free.fr>
10370
10371         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
10372
10373 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
10374
10375         * combine.c (combine_validate_cost): Adjust comments.  Set registered
10376         cost of I0 to zero at the end, if any.
10377
10378 2011-04-08  Xinliang David Li  <davidxl@google.com>
10379
10380         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
10381         to insane profile data.
10382
10383 2011-04-08  Xinliang David Li  <davidxl@google.com>
10384
10385         * ipa-cp.c (ipcp_update_profiling): Correct
10386          negative scale factor due to insane profile data.
10387
10388 2011-04-08  Xinliang David Li  <davidxl@google.com>
10389
10390         * final.c (dump_basic_block_info): New function.
10391         (final): Dump basic block.
10392         (final_scan_insn): Remove old dump.
10393
10394 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
10395
10396         PR target/47829
10397         * config.gcc (i386-*-freebsd): Disable unwind table generation for
10398         crtbegin/crtend.
10399
10400 2011-04-08  Michael Matz  <matz@suse.de>
10401
10402         PR middle-end/48389
10403         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
10404         functions.
10405         (rebuild_jump_labels): Call rebuild_jump_labels_1.
10406         * rtl.h (rebuild_jump_labels_chain): Declare.
10407         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
10408         insns inserted on edges.
10409
10410 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
10411
10412         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
10413         * config/arm/arm-arches.def: New.
10414         * config/arm/arm-opts.h: New.
10415         * config/arm/genopt.sh: New.
10416         * config/arm/arm-tables.opt: New (generated).
10417         * config/arm/arm.c (arm_handle_option, arm_target_help,
10418         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
10419         (all_architectures): Get most table contents from arm-arches.def.
10420         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
10421         arm_selected_tune here.
10422         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
10423         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
10424         (march=, mcpu=, mtune=): Use Enum and Var.
10425         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
10426         (arm.o): Update dependencies.
10427
10428 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
10429
10430         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
10431         of header_file.
10432         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
10433         (write_typed_alloc_defns): Likewise.
10434         (main): Calls write_typed_alloc_defns with output_header.
10435
10436 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
10437
10438         PR inline-asm/48435
10439         * ira-color.c (setup_profitable_hard_regs): Add comments.
10440         Don't take prohibited hard regs into account.
10441         (setup_conflict_profitable_regs): Rename to
10442         get_conflict_profitable_regs.
10443         (check_hard_reg_p): Check prohibited hard regs.
10444
10445 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
10446
10447         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
10448         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
10449         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
10450
10451 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10452
10453         PR target/48366
10454         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
10455         move from floating point to shift amount register.
10456         (emit_move_sequence): Remove secondary reload support for floating
10457         point to shift amount amount register copies.
10458         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
10459         amount register copies.
10460         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
10461         register, return false if mode isn't a scalar integer mode.
10462         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
10463
10464 2011-04-08  Richard Guenther  <rguenther@suse.de>
10465
10466         * gimple.c (gimple_call_flags): Remove kludge.
10467
10468 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
10469
10470         * sel-sched.c (sel_region_init): Move call to
10471         sel_setup_region_sched_flags after setup_current_loop_nest.
10472
10473 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
10474
10475         PR rtl-optimization/48272
10476         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
10477         init_insn_reg_pressure_info.  Adjust a caller.
10478         * sched-int.h (init_insn_reg_pressure_info): Declare.
10479         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
10480         when sched-pressure is enabled.
10481
10482 2011-04-08  Richard Guenther  <rguenther@suse.de>
10483
10484         * gimple.c (gimple_set_modified): Do not queue calls to
10485         MODIFIED_NORETURN_CALLS here ...
10486         * tree-ssa-operands.c (update_stmt_operands): ... but here.
10487
10488 2011-04-08  Richard Guenther  <rguenther@suse.de>
10489
10490         PR lto/48467
10491         * toplev.c (lang_dependent_init): Do not open asm_out_file
10492         in WPA mode, nor perform debug machinery initialization.
10493         (finalize): Do not unlink asm_out_file in WPA mode.
10494
10495 2011-04-08  Richard Guenther  <rguenther@suse.de>
10496
10497         * gimple.h (gimple_call_fntype): New function.
10498         (gimple_call_return_type): Use it.
10499         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
10500         * gimple-low.c (gimple_check_call_args): Likewise.
10501         * gimple.c (gimple_call_flags): Likewise.
10502         (gimple_call_arg_flags): Likewise.
10503         (gimple_call_return_flags): Likewise.
10504         * tree-cfg.c (verify_gimple_call): Likewise.
10505         (do_warn_unused_result): Likewise.
10506         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
10507         * value-prof.c (gimple_ic_transform): Fix fndecl check.
10508
10509 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
10510
10511         PR rtl-optimization/48235
10512         * sel-sched.c (code_motion_process_successors): Recompute the last
10513         insn in basic block if control flow changed.
10514         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
10515         Update condition for ilist_remove.
10516
10517 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
10518
10519         PR rtl-optimization/48302
10520         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
10521         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
10522         it to record added preheader blocks.
10523         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
10524         on to sel_add_loop_preheaders.
10525         (sel_region_init): Move call to setup_current_loop_nest after
10526         sel_init_bbs.
10527
10528 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
10529
10530         PR target/48273
10531         * cfgloop.h (loop_has_exit_edges): New helper.
10532         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
10533         non-clonable.
10534         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
10535         that have no exit edges.
10536
10537 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
10538
10539         PR rtl-optimization/48442
10540         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
10541         all callers.  Adjust assert.
10542
10543 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
10544
10545         PR tree-optimization/48377
10546         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
10547         is_packed to true even for types with smaller TYPE_ALIGN than
10548         TYPE_SIZE.
10549
10550 2011-04-08  Richard Guenther  <rguenther@suse.de>
10551
10552         PR bootstrap/48513
10553         * doc/tm.texi: Re-generate.
10554
10555 2011-04-08  Wei Guozhi  <carrot@google.com>
10556
10557         PR target/47855
10558         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
10559         * config/arm/arm.c (arm_attr_length_push_multi): New function.
10560         * config/arm/arm.md (*push_multi): Change the length computation to
10561         call a C function.
10562
10563 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
10564
10565         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
10566         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
10567         * doc/tm.texi: Regenerate.
10568         * system.h (ASM_OUTPUT_BSS): Poison.
10569         * varasm.c (asm_output_bss): Remove function.
10570         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
10571
10572         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
10573         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
10574         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
10575         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10576         Likewise.
10577         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10578         Likewise.
10579         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10580         Likewise.
10581         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10582
10583 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
10584
10585         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
10586         EnumValue lines.
10587
10588 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
10589
10590         * config/m68k/m68k.c (m68k_handle_option): Don't handle
10591         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
10592         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
10593         OPT_mcpu32.
10594         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
10595         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
10596         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
10597         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
10598         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
10599         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
10600         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
10601         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
10602         options.  Don't map other m68k options manually.  Don't handle
10603         old-style options as canonical.
10604         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
10605         * doc/install.texi (m68k-*-*): Document binutils version requirement.
10606
10607 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10608
10609         * basic-block.h (force_nonfallthru): Move to...
10610         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
10611         (force_nonfallthru): ...here.
10612         * cfghooks.c (force_nonfallthru): New function.
10613         * cfgrtl.c (force_nonfallthru): Rename into...
10614         (rtl_force_nonfallthru): ...this.
10615         (commit_one_edge_insertion): Do not set AUX field.
10616         (commit_edge_insertions): Do not discover new basic blocks.
10617         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
10618         (cfg_layout_rtl_cfg_hooks): Likewise.
10619         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
10620         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
10621         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
10622
10623 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
10624
10625         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
10626         Remove macros.
10627
10628 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
10629
10630         * config/i386/sse.md: Update copyright year.
10631         (avxcvtvecmode): Remove.
10632         (sse_movhlps): Merge with *avx_movhlps.
10633         (sse_movlhps): Merge with *avx_movlhps.
10634         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
10635         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
10636         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
10637         (sse_loadhps): Merge with *avx_loadhps.
10638         (sse_storelps): Merge with *avx_storelps.
10639         (sse_loadlps): Merge with *avx_loadlps.
10640         (sse_movss): Merge with *avx_movss.
10641         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
10642         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
10643         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
10644         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
10645         (vec_set<mode>_0): Ditto.
10646         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
10647         (sse4_1_insertps): Merge with *avx_insertps.
10648         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
10649         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
10650         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
10651         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
10652         (sse2_storehpd): Merge with *avx_storehpd.
10653         (sse2_loadhpd): Merge with *avx_loadhpd.
10654         (sse2_loadlpd): Merge with *avx_loadlpd.
10655         (sse2_movsd): Merge with *avx_movsd.
10656         (*vec_concatv2df): Merge with *vec_concatv2df.
10657
10658 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
10659
10660         PR debug/48343
10661         * combine.c (combine_instructions): Add last_combined_insn,
10662         update it if insn is after it, pass it to all try_combine calls.
10663         (try_combine): Add last_combined_insn parameter, pass it instead of
10664         i3 to propagate_for_debug.
10665
10666 2011-04-07  Nick Clifton  <nickc@redhat.com>
10667
10668         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
10669         to handle MDR <-> data register transfers.
10670         (movhi_internal): Likewise.
10671
10672 2011-04-07  Alan Modra  <amodra@gmail.com>
10673
10674         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
10675         previous stack info.
10676
10677 2011-04-07  Tom de Vries  <tom@codesourcery.com>
10678
10679         PR target/43920
10680         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
10681         flow_find_cross_jump.  Swap variables to implement backward replacement.
10682         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
10683
10684 2011-04-07  Tom de Vries  <tom@codesourcery.com>
10685
10686         PR target/43920
10687         * cfgcleanup.c (walk_to_nondebug_insn): New function.
10688         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
10689         and bb2.
10690         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
10691         src1 or src2.  Redirect edges to the last basic block.  Update
10692         frequency and count on multiple basic blocks in case of fallthru.
10693
10694 2011-04-07  Tom de Vries  <tom@codesourcery.com>
10695
10696         PR target/43920
10697         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
10698         function.
10699         (old_insns_match_p): Change return type.  Replace return false/true
10700         with return dir_none/dir_both.  Use can_replace_by.
10701         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
10702         direction from dir_p.  Register replacement direction in dir, last_dir
10703         and afterlast_dir.  Handle new return type of old_insns_match_p using
10704         merge_dir.  Return replacement direction in dir_p.
10705         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
10706         return type of old_insns_match_p.
10707         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
10708         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
10709         flow_find_cross_jump.
10710         * basic-block.h (enum replace_direction): New type.
10711         (flow_find_cross_jump): Add parameter to declaration.
10712
10713 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
10714
10715         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
10716         (AVXMODEDCVTPS2DQ): Ditto.
10717         (VEC_FLOAT_MODE): Ditto.
10718         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
10719         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
10720         (<any_logic:code><mode>3): Use VF mode iterator.
10721         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
10722         Use VF mode iterator.
10723         (copysign<mode>3): Use VF mode iterator.
10724         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
10725         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
10726         (*<any_logic:code><MODEF:mode>3): Merge with
10727         *avx_<any_logic:code><MODEF:mode>3.
10728         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
10729         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
10730         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
10731         (avx_cvtdq2ps<avxmodesuffix>): Remove.
10732         (sse2_cvtdq2ps): Use %v modifier.
10733         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
10734         (avx_cvtps2dq<avxmodesuffix>): Remove.
10735         (sse2_cvtps2dq): Use %v modifier.
10736         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
10737         (avx_cvttps2dq<avxmodesuffix>): Remove.
10738         (sse2_cvttps2dq): Use %v modifier.
10739         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
10740         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
10741         (sse2_cvtsd2siq): Fix insn template.
10742         (sse2_cvtsd2siq_2): Ditto.
10743         (sse2_cvttsd2siq): Ditto.
10744         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
10745         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
10746
10747 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
10748
10749         * gcov-io.c: Use GCC Runtime Library Exception.
10750
10751 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
10752
10753         PR debug/48466
10754         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
10755         as base_reg whatever register reg has been eliminated to, instead
10756         of hardcoding STACK_POINTER_REGNUM.
10757
10758 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
10759
10760         * doc/tm.texi.in: Document C target hooks as separate from general
10761         target hooks.
10762         * doc/tm.texi: Regenerate.
10763         * genhooks.c (struct hook_desc): Add docname field.
10764         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
10765         docname field.
10766         (hook_array): Include c-target.def.
10767         (emit_documentation): Use docname field in output.
10768         (emit_init_macros): Take docname argument.  Only emit definitions
10769         for hooks matching docname.
10770         (main): Expect additional arguments in all cases.  Pass argument
10771         to emit_init_macros.
10772         * target.def: Move initial macro definitions and comments to
10773         target-hooks-macros.h.
10774         (gcc_targetcm): Move to c-family/c-target.def.
10775         * target.h (targetcm): Move declaration to c-family/c-target.h.
10776         * targhooks.c (default_handle_c_option): Move to
10777         c-family/c-opts.c.
10778         * targhooks.h (default_handle_c_option): Move declaration to
10779         c-family/c-common.h.
10780         * target-hooks-macros.h: New file.
10781         * config.gcc (target_has_targetcm): Define and use to add to
10782         c_target_objs and cxx_target_objs.
10783         * config/default-c.c: New file.
10784         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
10785         of target.h and target-def.h.
10786         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
10787         (darwin_objc_construct_string, darwin_cfstring_ref_p,
10788         darwin_check_cfstring_format_arg): Make static.
10789         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
10790         TARGET_STRING_OBJECT_REF_TYPE_P,
10791         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
10792         * config/darwin-protos.h (darwin_objc_construct_string,
10793         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
10794         declare.
10795         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
10796         TARGET_STRING_OBJECT_REF_TYPE_P,
10797         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
10798         * config/t-darwin (darwin-c.o): Update dependencies.
10799         * system.h (TARGET_HAS_TARGETCM): Poison.
10800         * Makefile.in (TARGET_H): Update.
10801         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
10802         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
10803         (default-c.o): New target.
10804         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
10805         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
10806         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
10807         c-target.def.
10808         (build/genhooks.o): Update dependencies.
10809
10810 2011-04-06  Richard Guenther  <rguenther@suse.de>
10811
10812         * ipa-inline.c (enum inlining_mode): Remove.
10813         (cgraph_flatten): Use some other token.
10814         (cgraph_edge_early_inlinable_p): New function, split out from ...
10815         (cgraph_perform_always_inlining): New function, split out from ...
10816         (cgraph_decide_inlining_incrementally): ... here.
10817         (cgraph_mark_inline_edge): Adjust.
10818         (cgraph_early_inlining): Re-structure.
10819         (pass_early_inline): Require SSA form.
10820
10821 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
10822             Julian Brown  <julian@codesourcery.com>
10823             Mark Shinwell  <shinwell@codesourcery.com>
10824
10825         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
10826         LO_REGS only for Thumb-1.
10827         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
10828         be used in short instructions when optimising for size on Thumb-2.
10829
10830 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
10831
10832         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
10833         associated with user returns to be preserved.
10834
10835 2011-04-06  Tristan Gingold  <gingold@adacore.com>
10836
10837         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
10838         symbol_queue_size, DBXOUT_DECR_NESTING,
10839         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
10840         if XCOFF_DEBUGGING_INFO.
10841
10842 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
10843
10844         * config/i386/i386.md (attribute isa): New.
10845         (attribute enabled): New.
10846         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
10847         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
10848         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
10849         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
10850         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
10851         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10852         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
10853         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
10854
10855         * config/i386/sse.md (VF): New mode iterator.
10856         (VF1): Ditto.
10857         (VF2): Ditto.
10858         (VF_128): Ditto.
10859         (SSEMODEF4): Remove.
10860         (attribute sse): Handle V8SF and V4DF modes.
10861         (<absneg:code><mode>2): Use VF mode iterator.
10862         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
10863         mode iterator.
10864         (<plusminus_insn><mode>3): Use VF mode iterator.
10865         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
10866         Use VF mode iterator.
10867         (<sse>_vm<plusminus_insn><mode>3): Merge with
10868         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
10869         (mul<mode>3): Use VF mode iterator.
10870         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
10871         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
10872         mode iterator.
10873         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
10874         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
10875         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
10876         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
10877         mode iterator.
10878         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
10879         Use VF1 mode iterator.
10880         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
10881         (sqrt<VF2:mode>2): New expander.
10882         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
10883         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
10884         and sqrtv2df2.  Use VF mode iterator.
10885         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
10886         mode iterator.
10887         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
10888         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
10889         Use VF1 mode iterator.
10890         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
10891         (<smaxmin:code><mode>3): Use VF mode iterator.
10892         (*<smaxmin:code><mode>3_finite): Merge with
10893         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
10894         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10895         (<sse>_vm<smaxmin:code><mode>2): Merge with
10896         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
10897         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
10898         mode iterator.
10899         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
10900         mode iterator.
10901         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
10902         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
10903         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
10904         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
10905         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
10906         VF mode iterator.
10907         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
10908         Use VF_128 mode iterator.
10909         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
10910         mode iterator.
10911         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
10912         VF_128 mode iterator.
10913         (vcond<mode>): Use VF mode iterator.
10914         * config/i386/predicates.md (sse_comparison_operator): Merge with
10915         avx_comparison_float_operator.  Do not declare as special_predicate.
10916         * config/i386/i386.c (struct builtin_description): Update for renamed
10917         compare patterns.
10918         (ix86_expand_args_builtin): Ditto.
10919         (ix86_expand_sse_compare_mask): Ditto.
10920
10921 2011-04-06  Richard Guenther  <rguenther@suse.de>
10922
10923         * tree-inline.c (estimate_num_insns): For calls simply account
10924         for all passed arguments and a used return value.
10925
10926 2011-04-06  Richard Guenther  <rguenther@suse.de>
10927
10928         PR tree-optimization/47663
10929         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
10930         call_stmt_time fields.
10931         (cgraph_edge_inlinable_p): Declare.
10932         (cgraph_edge_recursive_p): New inline function.
10933         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
10934         (cgraph_clone_edge): Copy it.
10935         * ipa-inline.c (cgraph_estimate_edge_time): New function.
10936         Account for call stmt time.
10937         (cgraph_estimate_time_after_inlining): Take edge argument.
10938         (cgraph_estimate_edge_growth): Account call stmt size.
10939         (cgraph_estimate_size_after_inlining): Take edge argument.
10940         (cgraph_mark_inline_edge): Adjust.
10941         (cgraph_check_inline_limits): Likewise.
10942         (cgraph_recursive_inlining_p): Remove.
10943         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
10944         (cgraph_decide_recursive_inlining): Take edge argument and
10945         adjust.
10946         (cgraph_decide_inlining_of_small_functions): Do not avoid
10947         diags for recursive inlining here.
10948         (cgraph_flatten): Adjust.
10949         (cgraph_decide_inlining_incrementally): Likewise.
10950         (estimate_function_body_sizes): Remove call cost handling.
10951         (compute_inline_parameters): Initialize caller edge call costs.
10952         (cgraph_estimate_edge_growth): New function.
10953         (cgraph_estimate_growth): Use it.
10954         (cgraph_edge_badness): Likewise.
10955         (cgraph_check_inline_limits): Take an edge argument.
10956         (cgraph_decide_inlining_of_small_functions): Adjust.
10957         (cgraph_decide_inlining): Likewise.
10958         * tree-inline.c (estimate_num_insns): Only account for call
10959         return value if it is used.
10960         (expand_call_inline): Avoid diagnostics on recursive inline
10961         functions here.
10962         * lto-cgraph.c (lto_output_edge): Output edge call costs.
10963         (input_edge): Input edge call costs.
10964
10965 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10966
10967         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
10968
10969 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
10970
10971         * doc/invoke.texi (Spec Files): Fix typo.
10972
10973 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
10974
10975         * profile.c (branch_prob): Move declaration of local variable.  Remove
10976         obsolete ??? comment.  Expand the location explicitly instead of using
10977         the LOCATION_FILE and LOCATION_LINE macros.
10978
10979 2011-04-06  Wei Guozhi  <carrot@google.com>
10980
10981         PR target/47855
10982         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
10983         (arm_cond_branch): Likewise.
10984         (arm_cond_branch_reversed): Likewise.
10985         (arm_jump): Likewise.
10986         (push_multi): Likewise.
10987         * config/arm/constraints.md (Py): New constraint.
10988
10989 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
10990
10991         PR bootstrap/48471
10992         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
10993         Move these...
10994         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
10995         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
10996         #ifdef DBX_DEBUGGING_INFO.
10997
10998 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
10999
11000         PR bootstrap/48403
11001         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
11002         if old and new states differ.
11003
11004 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
11005
11006         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
11007         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
11008         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
11009         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
11010         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
11011         mcfv4e): Use Alias.
11012         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
11013         ColdFire options to -mcpu= options.
11014
11015 2011-04-05  Jeff Law  <law@redhat.com>
11016
11017         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
11018         check if BB is a successor of LOOP->header and return
11019         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
11020
11021 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
11022
11023         * cprop.c (struct reg_use): Remove.
11024         (reg_use_table): Make an array of RTX.
11025         (find_used_regs, constprop_register, local_cprop_pass,
11026         bypass_block): Simplify users of reg_use_table.
11027         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
11028         on one of the uses found by find_used_regs.
11029
11030 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11031
11032         PR bootstrap/48469
11033         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
11034         declaration.
11035
11036 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11037
11038         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
11039         as an rtx.
11040         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
11041
11042 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
11043
11044         PR middle-end/48441
11045         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
11046
11047 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11048
11049         * combine.c: Include obstack.h.
11050         (struct insn_link): Define.
11051         (uid_log_links): Adjust type.
11052         (FOR_EACH_LOG_LINK): New macro.
11053         (insn_link_obstack): Declare.
11054         (alloc_insn_link): Define.
11055         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
11056         type of link variables.
11057         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
11058         (try_combine, record_promoted_values, distribute_notes): Likewise.
11059         (distribute_links): Likewise.  Tweak prototype.
11060         (clear_log_links): Delete.
11061         (adjust_for_new_dest): Call alloc_insn_link.
11062         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
11063
11064 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11065
11066         * gcse.c (modify_mem_list): Convert to an array of VECs.
11067         (canon_modify_mem_list, compute_transp): Tweak formatting.
11068         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
11069         (load_killed_in_block_p): Likewise.
11070         (record_last_mem_set_info): Likewise.
11071         (clear_modify_mem_tables): Likewise.
11072
11073 2011-04-05  Tom de Vries  <tom@codesourcery.com>
11074
11075         PR middle-end/48461
11076         * function.c (emit_use_return_register_into_block): Only define if
11077         HAVE_return.
11078
11079 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
11080
11081         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
11082
11083 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
11084
11085         * config/rx/rx-opts.h: New.
11086         * config/rx/rx.c (rx_cpu_type): Remove.
11087         (rx_handle_option): Don't assert that global structures are in
11088         use.  Access variables via opts pointer.  Defer most handling of
11089         OPT_mint_register_.  Use error_at.
11090         (rx_option_override): Handle deferred OPT_mint_register_ here.
11091         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
11092         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
11093         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
11094         (rx_cpu_types): New Enum and EnumValue entries.
11095         (mint-register=): Use Defer and use Var accordingly.
11096
11097 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11098
11099         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
11100         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
11101         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
11102         Move these...
11103         (debug_free_queue, debug_nesting, symbol_queue_index):
11104         ...and these...
11105         * dbxout.c: ...to here.  Make static.
11106
11107 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11108
11109         * gcse.c (modify_pair): Define.  Define a VEC of it.
11110         (canon_modify_mem_list): Convert to an array of VECs.
11111         (free_insn_expr_list_list): Delete.
11112         (clear_modify_mem_tables): Call VEC_free instead.
11113         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
11114         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
11115         (canon_list_insert, compute_transp): Likewise.
11116
11117 2011-04-05  Tom de Vries  <tom@codesourcery.com>
11118
11119         PR target/43920
11120         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
11121         for size.
11122
11123 2011-04-05  Tom de Vries  <tom@codesourcery.com>
11124
11125         PR target/43920
11126         * function.c (emit_use_return_register_into_block): New function.
11127         (thread_prologue_and_epilogue_insns): Use
11128         emit_use_return_register_into_block.
11129
11130 2011-04-05  Tom de Vries  <tom@codesourcery.com>
11131
11132         PR target/43920
11133         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
11134         insn.
11135
11136 2011-04-05  Tom de Vries  <tom@codesourcery.com>
11137
11138         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
11139
11140 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
11141
11142         * config/arm/arm.md (define_constants for unspec): Replace with
11143         define_c_enum.
11144         (define_constants for unspecv): Replace with define_c_enum.
11145         * config/arm/neon.md (define_constants for unspec): Replace with
11146         define_c_enum.
11147
11148 2011-04-04  Richard Henderson  <rth@redhat.com>
11149
11150         PR bootstrap/48400
11151         * dwarf2out.c (output_line_info): Always emit line info from
11152         at least one section.
11153         (dwarf2out_init): Create text_section_line_info here ...
11154         (set_cur_line_info_table): ... not here.
11155
11156 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
11157
11158         PR target/48380
11159         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
11160         not called.
11161
11162         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
11163
11164 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
11165
11166         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
11167         (expr_equiv_p): Remove.
11168         (insert_set_in_table): Look at <dest, src> pair instead of expr.
11169         (hash_scan_set): Update call to insert_set_in_table.
11170         (dump_hash_table): Dump <dest, src> pair.
11171         (lookup_set): Simplify.  Lookup <dest, src> pair.
11172         (compute_transp): Remove, fold heavily simplified code into...
11173         (compute_local_properties): ...here.  Expect COMP and TRANSP
11174         unconditionally.
11175         (find_avail_set): Take set directly from struct expr.
11176         (find_bypass-set): Likewise.
11177         (bypass_block): Likewise.
11178         (cprop_insn): Likewise.  Remove redundant INSN_P test.
11179
11180         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
11181         checks on form of COND from find_implicit_sets to here.
11182         (find_implicit_sets): Cleanup control flow. Split critical edges
11183         if it exposes implicit sets.  Allocate/resize implicit_sets as
11184         necessary.
11185         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
11186         changed something.  Run df_analyze after find_implicit_sets if any
11187         edges were split.  Do not allocate implicit_sets here.
11188
11189         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
11190         (gcse_obstack): Renamed to cprop_obstack.
11191         (GNEW, GNEWVEC, GNEWVAR): Remove.
11192         (gmalloc): Remove.
11193         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
11194         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
11195         (gcse_alloc): Likewise, and rename to cprop_alloc.
11196         (alloc_gcse_men, free_gcse_mem): Remove.
11197         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
11198         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
11199         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
11200
11201         * cprop.c (oprs_not_set_p): Remove.
11202         (mark_set, mark_clobber): Remove.
11203         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
11204         (reg_not_set_p): New function.
11205         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
11206         (cprop_insn): Likewise.
11207         (cprop_jump): Use FOR_EACH_EDGE.
11208
11209 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
11210
11211         PR bootstrap/48403
11212         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
11213         (rank_for_schedule): Use scheduled_insns vector instead of
11214         last_scheduled_insn.
11215         (ok_for_early_queue_removal): Likewise.
11216         (queue_to_ready): Search forward in nonscheduled_insns_begin if
11217         we have a dbg_cnt.
11218         (choose_ready): Likewise.
11219         (commit_schedule): Use VEC_iterate.
11220         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
11221         a dbg_cnt, use it and ensure the first insn is in the ready list.
11222         (haifa_sched_init): Allocate scheduled_insns.
11223         (sched_extend_ready_list): Don't allocate it; reserve space.
11224         (haifa_sched_finish): Free it.
11225
11226 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
11227
11228         * optc-gen.awk: Always remove type from Variable entry before
11229         recording in var_seen.
11230
11231 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
11232
11233         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
11234         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
11235         call to tidy_fallthru_edges.
11236
11237 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
11238
11239         * doc/options.texi (ToLower): Document.
11240         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
11241         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
11242         * opts.h (cl_option): Add cl_tolower field.
11243         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
11244         arguments with lowercase strings.
11245         * config/rx/rx.opt (mcpu=): Add ToLower.
11246         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
11247         argument.
11248
11249 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
11250
11251         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
11252
11253 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
11254
11255         * config/vax/vax.c: Include reload.h.
11256
11257 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
11258
11259         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
11260         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
11261         (sparc_preferred_reload_class): New function.
11262
11263 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
11264
11265         PR debug/48401
11266         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
11267         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
11268
11269 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
11270
11271         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
11272         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
11273
11274 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
11275
11276         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
11277         (ASM_OUTPUT_ALIGNED_BSS): Define.
11278
11279 2011-04-03  Michael Matz  <matz@suse.de>
11280
11281         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
11282         and next_slot members.
11283         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
11284         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
11285         (lto_streamer_cache_append): Declare.
11286         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
11287         unsigned index, remove offset parameter, ensure that we append
11288         or update existing entries.
11289         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
11290         parameter, update next_slot for append.
11291         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
11292         parameter.
11293         (lto_streamer_cache_insert_at): Likewise.
11294         (lto_streamer_cache_append): New function.
11295         (lto_streamer_cache_lookup): Use unsigned index.
11296         (lto_streamer_cache_get): Likewise.
11297         (lto_record_common_node): Don't test tree_node_can_be_shared.
11298         (preload_common_node): Adjust call to lto_streamer_cache_insert.
11299         (lto_streamer_cache_delete): Don't free offsets member.
11300         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
11301         (lto_output_string_with_length): Use lto_output_data_stream.
11302         (lto_output_tree_header): Remove ix parameter, don't write it.
11303         (lto_output_builtin_tree): Likewise.
11304         (lto_write_tree): Adjust callers to above, don't track and write
11305         offset, write unsigned index.
11306         (output_unreferenced_globals): Don't emit all global vars.
11307         (write_global_references): Use unsigned indices.
11308         (lto_output_decl_state_refs): Likewise.
11309         (write_symbol): Likewise.
11310         * lto-streamer-in.c (lto_input_chain): Move earlier.
11311         (input_function): Use unsigned index.
11312         (input_alias_pairs): Don't read and then ignore all global vars.
11313         (lto_materialize_tree): Remove ix_p parameter, don't read index,
11314         don't pass it back, use lto_streamer_cache_append.
11315         (lto_register_var_decl_in_symtab): Use unsigned index.
11316         (lto_register_function_decl_in_symtab): Likewise.
11317         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
11318         index.
11319         (lto_get_builtin_tree): Don't read index, use
11320         lto_streamer_cache_append.
11321         (lto_read_tree): Adjust call to lto_materialize_tree.
11322
11323         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
11324         don't use function calls in arguments to MIN.
11325
11326         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
11327         twice.
11328
11329         * gimple.c (gimple_type_leader_entry): Mark deletable.
11330
11331 2011-04-03  Alan Modra  <amodra@gmail.com>
11332
11333         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
11334
11335 2011-04-03  Michael Matz  <matz@suse.de>
11336
11337         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
11338         an integer.
11339         * tree.h (tree_decl_non_common.vindex): Adjust comment.
11340
11341 2011-04-03  Michael Matz  <matz@suse.de>
11342
11343         * cgraphbuild.c (record_reference): Canonicalize constructor values.
11344         * gimple-fold.c (canonicalize_constructor_val): Accept being called
11345         without function context.
11346         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
11347         current_function_decl and cfun.
11348
11349 2011-04-03  Michael Matz  <matz@suse.de>
11350
11351         * tree.c (decl_init_priority_insert): Don't create entry for
11352         default priority.
11353         (decl_fini_priority_insert): Ditto.
11354         (fields_compatible_p, find_compatible_field): Remove.
11355         * tree.h (fields_compatible_p, find_compatible_field): Remove.
11356         * gimple.c (gimple_compare_field_offset): Adjust block comment.
11357
11358 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
11359
11360         * combine.c (try_combine): Remove useless local variable.
11361
11362 2011-04-03  Richard Guenther  <rguenther@suse.de>
11363             Ira Rosen  <ira.rosen@linaro.org>
11364
11365         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
11366         non-variable offsets and compare the remaining bases of the two
11367         accesses instead of looking for exact same data-ref.
11368
11369 2011-04-02  Kai Tietz  <ktietz@redhat.com>
11370
11371         PR target/48416
11372         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
11373
11374         * i386.c (ix86_is_msabi_thiscall): New helper function.
11375         (ix86_is_type_thiscall): New helper function.
11376         (ix86_comp_type_attributes): Handle thiscall for method-functions
11377         special.
11378         (init_cumulative_args): Likewise.
11379         (find_drap_reg): Likewise.
11380         (ix86_static_chain): Likewise.
11381         (x86_this_parameter): Likewise.
11382         (x86_output_mi_thunk): Likewise.
11383
11384 2011-04-01  Olivier Hainque  <hainque@adacore.com>
11385             Nicolas Setton  <setton@adacore.com>
11386             Eric Botcazou  <ebotcazou@adacore.com>
11387
11388         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
11389         (add_gnat_descriptive_type_attribute): New function.
11390         (gen_array_type_die): Call it.
11391         (gen_enumeration_type_die): Likewise.
11392         (gen_struct_or_union_type_die): Likewise.
11393         (modified_type_die): Likewise.
11394         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
11395         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
11396         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
11397
11398 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
11399
11400         PR bootstrap/48148
11401         * dwarf2out.c (resolve_addr): Don't call force_decl_die
11402         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
11403
11404         Revert:
11405         2011-03-17  Richard Guenther  <rguenther@suse.de>
11406
11407         PR bootstrap/48148
11408         * lto-cgraph.c (input_overwrite_node): Clear the abstract
11409         origin for decls in other ltrans units.
11410         (input_varpool_node): Likewise.
11411
11412 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
11413
11414         PR middle-end/48335
11415         * expr.c (expand_assignment): Handle all possibilities
11416         if TO_RTX is CONCAT.
11417         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
11418         (store_split_bit_field): If SUBREG_REG (op0) or
11419         op0 itself has smaller mode than word, return it
11420         for offset 0 and const0_rtx for out-of-bounds stores.
11421         If word is const0_rtx, skip it.
11422
11423 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
11424
11425         * config/h8300/h8300.c (print_operand_address): Rename to...
11426         (h8300_print_operand_address): ...this. Make static. Adjust comments.
11427         Call h8300_print_operand and h8300_print_operand_address instead of
11428         print_operand and print_operand_address. Declare.
11429         (print_operand): Renake to...
11430         (h8300_print_operand): ...this. Make static. Adjust comments.
11431         Call h8300_print_operand instead of print_operand. Declare.
11432         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
11433         (h8300_register_move_cost): Likewise.
11434         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
11435         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
11436         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
11437         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
11438         * config/h8300/h8300-protos.h (print_operand): Delete.
11439         (print_operand_address): Delete.
11440
11441 2011-04-01  Richard Henderson  <rth@redhat.com>
11442
11443         PR 48400
11444         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
11445         in strict mode before dwarf4.  Re-order tests to early out
11446         before switching sections.
11447
11448 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
11449
11450         * config/h8300/constraints.md: New file.
11451         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
11452         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
11453         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
11454         * config/h8300/predicates.md (bit_operand): Likewise.
11455         (incdec_operand): Use satisfies_constraint_M and
11456         satisfies_constraint_O.  Don't use C code block.
11457         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
11458         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
11459         (compute_mov_length): Use satisfies_constraint_G.
11460         (fix_bit_operand): Use satisfies_constraint_U.
11461         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
11462         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
11463         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
11464         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
11465         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
11466         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
11467         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11468         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
11469         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
11470         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
11471         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
11472         (EXTRA_MEMORY_CONSTRAINT): Delete.
11473
11474 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
11475             Michael Meissner  <meissner@linux.vnet.ibm.com>
11476
11477         PR target/48262
11478         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
11479         operands, as per the specifications.
11480
11481         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
11482         (vec_extract_evenv4sf): Ditto.
11483         (vec_extract_evenv8hi): Ditto.
11484         (vec_extract_evenv16qi): Ditto.
11485         (vec_extract_oddv4si): Ditto.
11486
11487 2011-03-31  Mark Wielaard  <mjw@redhat.com>
11488
11489         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
11490         high_pc attribute if the CU has no associated code. Only output
11491         DW_AT_entry_pc for CU if not generating strict dwarf and
11492         dwarf_version < 4.
11493
11494 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
11495
11496         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
11497         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
11498         out of ...
11499         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
11500         * final.c (final_start_function): Call the new function rather
11501         than using a NULL argument for dwarf2out_frame_debug.
11502
11503         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
11504         that contains the prologue.
11505
11506         * haifa-sched.c (queue_insn): New arg REASON.  All callers
11507         changed.  Print it in debugging output.
11508
11509         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
11510
11511         * sched-ebb.c (begin_schedule_ready): Remove second argument.
11512         Split most of the code into...
11513         (begin_move_insn): ... here.  New function.
11514         (ebb_sched_info): Add a pointer to it.
11515         * haifa-sched.c (scheduled_insns): New static variable.
11516         (sched_extend_ready_list): Allocate it.
11517         (schedule_block): Use it to record the order of scheduled insns.
11518         Perform RTL changes to move insns only after all scheduling
11519         decisions have been made.
11520         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
11521         begin_move_insn field.
11522         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
11523         * sched-int.h (struct haifa_sched_info): Remove second argument
11524         from begin_schedule_ready hook.  Add new member begin_move_insn.
11525         * sched-rgn.c (begin_schedule_ready): Remove second argument.
11526         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
11527
11528         * haifa-sched.c (prune_ready_list): New function, broken out of
11529         schedule_block.
11530         (schedule_block): Use it.
11531
11532 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11533
11534         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
11535
11536 2011-04-01  Kai Tietz  <ktietz@redhat.com>
11537
11538         * config.gcc (*-*-mingw*): Allow as option the
11539         posix threading model.
11540         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
11541         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
11542         definition.
11543         (CPP_SPEC): Add pthread/no-pthread handling.
11544         (LIB_SPEC): Likewise.
11545         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
11546         (LIB_SPEC): Likewise.
11547         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
11548         flag to pass -pthread option for shared libgcc build.
11549         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
11550         for shared libgcc build.
11551         * config/i386/t-mingw-pthread: New file.
11552         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
11553         New define to enable use of library pthread by default.
11554         * config/i386/mingw.opt (pthread): New driver option.
11555         (no-pthread): New driver option.
11556         * config/i386/cygming.opt: Make sure trailing empty line is retained.
11557         * config/i386/mingw-w64.opt: Likewise.
11558
11559 2011-04-01  Gary Funck  <gary@intrepid.com>
11560
11561         * c-decl.c (grokdeclarator): Fix formatting.
11562
11563 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
11564
11565         * expr.c (emit_block_move_via_movmem): Use n_generator_args
11566         instead of n_operands.
11567         (set_storage_via_setmem): Likewise.
11568         * optabs.c (maybe_gen_insn): Likewise.
11569         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
11570         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
11571         (mips_expand_builtin_direct): Likewise.
11572         * config/spu/spu.c (expand_builtin_args): Likewise.
11573
11574 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
11575
11576         * recog.h (insn_data_d): Add n_generator_args.
11577         * genoutput.c (data): Likewise.
11578         (output_insn_data): Print it.
11579         (max_opno, num_dups): Delete.
11580         (scan_operands): Just fill in "d->operand[...]".
11581         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
11582
11583 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
11584
11585         * gensupport.h (pattern_stats): New structure.
11586         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
11587         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
11588         (max_operand_1, max_operand_vec): Delete.
11589         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
11590
11591 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
11592
11593         * emit-rtl.c (emit_pattern_after_setloc): New function.
11594         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
11595         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
11596         (emit_pattern_after): New function.
11597         (emit_insn_after, emit_jump_insn_after): Call it.
11598         (emit_call_insn_after, emit_debug_insn_after): Likewise.
11599         (emit_pattern_before_setloc): New function.
11600         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
11601         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
11602         Likewise.
11603         (emit_pattern_before): New function.
11604         (emit_insn_before, emit_jump_insn_before): Call it.
11605         (emit_call_insn_before, emit_debug_insn_before): Likewise.
11606
11607 2011-03-31  Richard Henderson  <rth@redhat.com>
11608
11609         * dwarf2out.c (dw_separate_line_info_ref): Remove.
11610         (dw_separate_line_info_entry): Remove.
11611         (enum dw_line_info_opcode): New.
11612         (dw_line_info_entry): Use it.
11613         (dw_line_info_table, dw_line_info_table_p): New.
11614         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
11615         (line_info_table, line_info_label_num): Remove.
11616         (line_info_table_in_use): Remove.
11617         (separate_line_info_table): Remove.
11618         (separate_line_info_table_allocated): Remove.
11619         (separate_line_info_table_in_use): Remove.
11620         (LINE_INFO_TABLE_INCREMENT): Remove.
11621         (line_info_label_num): New.
11622         (cur_line_info_table): New.
11623         (text_section_line_info, cold_text_section_line_info): New.
11624         (separate_line_info): New.
11625         (SEPARATE_LINE_CODE_LABEL): Remove.
11626         (print_dwarf_line_table): Remove.
11627         (debug_dwarf): Don't dump it.
11628         (output_one_line_info_table): New.
11629         (output_line_info): Use it.
11630         (new_line_info_table): New.
11631         (set_cur_line_info_table): New.
11632         (dwarf2out_switch_text_section): Use it.
11633         (dwarf2out_begin_function): Likewise.
11634         (push_dw_line_info_entry): New.
11635         (dwarf2out_source_line): Rewrite for new line info tables.
11636         (dwarf2out_init): Remove dead initailizations.
11637
11638 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
11639
11640         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
11641         various flags.
11642         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
11643         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
11644         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
11645         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
11646         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
11647         * opt-functions.awk (flag_init, switch_bit_fields): New.
11648         (switch_flags): Don't handle flags moved to bit-fields.  Don't
11649         generate CL_MISSING_OK or CL_SAVE.
11650         * optc-gen.awk: Update to generate bit-field output as well as
11651         flags field.
11652         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
11653         bit-field instead of CL_REJECT_DRIVER flag.
11654         * opts-common.c (generate_canonical_option,
11655         decode_cmdline_option): Use bit-fields instead of CL_* flags.
11656         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
11657         instead of CL_REJECT_NEGATIVE flag.
11658         * toplev.c (print_switch_values): Use cl_report bit-field instead
11659         of CL_REPORT flag.
11660
11661 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
11662
11663         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
11664         a zero minimum index only if it is redundant.
11665
11666 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
11667
11668         PR rtl-optimization/48381
11669         * ira-color.c (assign_hard_reg): Use hard reg set intersection
11670         instead of ira_class_hard_reg_index for calculating conflicting
11671         hard registers.
11672
11673 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
11674
11675         * cprop.c: Clean up hash table building.
11676         (reg_avail_info): Remove.
11677         (oprs_available_p): Remove.
11678         (record_last_reg_set_info): Remove.
11679         (record_last_set_info): Remove.
11680         (reg_available_p): New function.
11681         (gcse_constant_p): Do not treat unfolded conditions as constants.
11682         (make_set_regs_unavailable): New function.
11683         (hash_scan_set): Simplify with new reg_available_p.
11684         (compute_hash_table_work): Traverse insns stream only once.
11685         Do not compute reg_avail_info. Traverse insns in reverse order.
11686         Record implicit sets after recording explicit sets from the block.
11687
11688 2011-03-31  Michael Matz  <matz@suse.de>
11689
11690         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
11691
11692 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
11693
11694         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
11695         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
11696         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11697         (h8300_mode_dependent_address_p): New function.
11698         (h8300_get_index): Make static.
11699
11700 2011-03-31  Jeff Law  <law@redhat.com>
11701
11702         * reload1.c (elimination_effects): Fix typo in recent change.
11703
11704         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
11705         typo potentially leading to null pointer dereference.
11706
11707         * caller-save.c (new_saved_hard_reg): Eliminate return value.
11708         (setup_save_areas): Corresponding changes to avoid useless
11709         assignments.
11710
11711         * jump.c (reversed_comparison_code_parts): Avoid successive return
11712         statements when REVERSE_CONDITION is defined.
11713
11714         * expr.c (expand_assignment): Avoid useless assignments.
11715         (expand_expr_real_1): Likewise.
11716         (expand_expr_real_2): Avoid useless statements.
11717
11718         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
11719
11720         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
11721
11722         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
11723         statements.
11724
11725         * stmt.c (expand_expr_stmt): Avoid useless assignment.
11726
11727 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
11728
11729         PR target/47109
11730         * doc/tm.texi.in (TARGET_VERSION): Remove.
11731         * doc/tm.texi: Regenerate.
11732         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
11733         * collect2.c (main): Don't use TARGET_VERSION.
11734         * mips-tdump.c (main): Don't use TARGET_VERSION.
11735         * mips-tfile.c (main): Don't use TARGET_VERSION.
11736         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
11737         * config/rs6000/vxworksae.h: Remove.
11738         * config/alpha/alpha.h (TARGET_VERSION): Remove.
11739         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
11740         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
11741         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
11742         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
11743         * config/arm/arm.h (TARGET_VERSION): Remove.
11744         * config/arm/coff.h (TARGET_VERSION): Remove.
11745         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
11746         * config/arm/elf.h (TARGET_VERSION): Remove.
11747         * config/arm/freebsd.h (TARGET_VERSION): Remove.
11748         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
11749         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
11750         * config/arm/pe.h (TARGET_VERSION): Remove.
11751         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
11752         * config/arm/semi.h (TARGET_VERSION): Remove.
11753         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
11754         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
11755         * config/arm/vxworks.h (TARGET_VERSION): Remove.
11756         * config/avr/avr.h (TARGET_VERSION): Remove.
11757         * config/bfin/bfin.h (TARGET_VERSION): Remove.
11758         * config/fr30/fr30.h (TARGET_VERSION): Remove.
11759         * config/frv/frv.h (TARGET_VERSION): Remove.
11760         * config/h8300/h8300.h (TARGET_VERSION): Remove.
11761         * config/i386/cygwin.h (TARGET_VERSION): Remove.
11762         * config/i386/darwin.h (TARGET_VERSION): Remove.
11763         * config/i386/darwin64.h (TARGET_VERSION): Remove.
11764         * config/i386/djgpp.h (TARGET_VERSION): Remove.
11765         * config/i386/freebsd.h (TARGET_VERSION): Remove.
11766         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
11767         * config/i386/gnu.h (TARGET_VERSION): Remove.
11768         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
11769         * config/i386/i386elf.h (TARGET_VERSION): Remove.
11770         * config/i386/linux.h (TARGET_VERSION): Remove.
11771         * config/i386/linux64.h (TARGET_VERSION): Remove.
11772         * config/i386/lynx.h (TARGET_VERSION): Remove.
11773         * config/i386/mingw32.h (TARGET_VERSION): Remove.
11774         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
11775         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
11776         * config/i386/netware.h (TARGET_VERSION): Remove.
11777         * config/i386/nto.h (TARGET_VERSION): Remove.
11778         * config/i386/openbsd.h (TARGET_VERSION): Remove.
11779         * config/i386/vxworks.h (TARGET_VERSION): Remove.
11780         * config/ia64/elf.h (TARGET_VERSION): Remove.
11781         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
11782         * config/ia64/hpux.h (TARGET_VERSION): Remove.
11783         * config/ia64/linux.h (TARGET_VERSION): Remove.
11784         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
11785         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
11786         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
11787         * config/lm32/lm32.h (TARGET_VERSION): Remove.
11788         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
11789         * config/m32c/m32c.h (TARGET_VERSION): Remove.
11790         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
11791         * config/m32r/m32r.h (TARGET_VERSION): Remove.
11792         * config/m68k/linux.h (TARGET_VERSION): Remove.
11793         * config/m68k/m68k.h (TARGET_VERSION): Remove.
11794         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
11795         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
11796         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
11797         * config/mep/mep.h (TARGET_VERSION): Remove.
11798         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
11799         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
11800         * config/mips/iris6.h (MACHINE_TYPE): Remove.
11801         * config/mips/linux.h (TARGET_VERSION): Remove.
11802         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
11803         * config/mips/vxworks.h (TARGET_VERSION): Remove.
11804         * config/mmix/mmix.h (TARGET_VERSION): Remove.
11805         * config/mn10300/linux.h (TARGET_VERSION): Remove.
11806         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
11807         * config/pa/pa.h (TARGET_VERSION): Remove.
11808         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
11809         * config/picochip/picochip.h (TARGET_VERSION): Remove.
11810         * config/rs6000/aix.h (TARGET_VERSION): Remove.
11811         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
11812         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
11813         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
11814         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
11815         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
11816         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
11817         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
11818         * config/rs6000/linux.h (TARGET_VERSION): Remove.
11819         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
11820         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
11821         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
11822         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
11823         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
11824         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
11825         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
11826         * config/s390/linux.h (TARGET_VERSION): Remove.
11827         * config/s390/s390.h (TARGET_VERSION): Remove.
11828         * config/s390/tpf.h (TARGET_VERSION): Remove.
11829         * config/score/score.h (TARGET_VERSION): Remove.
11830         * config/sh/linux.h (TARGET_VERSION): Remove.
11831         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
11832         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
11833         * config/sh/sh.h (TARGET_VERSION): Remove.
11834         * config/sh/sh64.h (TARGET_VERSION): Remove.
11835         * config/sh/superh.h (TARGET_VERSION): Remove.
11836         * config/sh/vxworks.h (TARGET_VERSION): Remove.
11837         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
11838         * config/sparc/linux.h (TARGET_VERSION): Remove.
11839         * config/sparc/linux64.h (TARGET_VERSION): Remove.
11840         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
11841         TARGET_NAME32, TARGET_NAME): Remove.
11842         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
11843         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
11844         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
11845         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
11846         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
11847         * config/spu/spu.h (TARGET_VERSION): Remove.
11848         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
11849         * config/v850/v850.h (TARGET_VERSION): Remove.
11850         * config/vax/linux.h (TARGET_VERSION): Remove.
11851         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
11852         * config/xtensa/elf.h (TARGET_VERSION): Remove.
11853         * config/xtensa/linux.h (TARGET_VERSION): Remove.
11854
11855 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
11856
11857         PR target/48142
11858         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
11859         frame-related from frame-unrelated adjustments to the stack pointer.
11860
11861 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
11862
11863         * common.opt (fdebug-types-section): Move earlier.
11864         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
11865
11866 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
11867
11868         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
11869         var.
11870
11871 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
11872
11873         * tree.h (CASE_CHAIN): Define.
11874         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
11875         (gimple_redirect_edge_and_branch): Likewise.
11876
11877 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11878
11879         PR middle-end/48367
11880         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
11881         calculation.
11882
11883 2011-03-30  Jeff Law  <law@redhat.com>
11884
11885         * PR bootstrap/48371
11886         * reload1.c (reload): Fix botch in last change.
11887
11888         * reload.h (struct reload): Fix typo introduced in last change.
11889
11890 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
11891
11892         * config/arm/arm.opt (mhard-float, msoft-float): Mark
11893         Undocumented.  Remove help text.
11894         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
11895         -mhard-float.
11896
11897 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
11898
11899         * doc/options.texi (NegativeAlias): Document.
11900         (Alias): Mention NegativeAlias.
11901         * opt-functions.awk: Handle NegativeAlias.
11902         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
11903         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
11904         * opts.h (CL_NEGATIVE_ALIAS): Define.
11905         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
11906         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
11907         OPT_mspe_.
11908         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
11909         Alias entries.
11910         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
11911         mno-spe and mno-isel instead of mspe=no and -misel=no.
11912
11913 2011-03-29  Mark Wielaard  <mjw@redhat.com>
11914
11915         * common.opt (fdebug-types-section): New flag.
11916         * doc/invoke.texi: Document new -fno-debug-types-section flag.
11917         * dwarf2out.c (use_debug_types): New define.
11918         (struct die_struct): Mark die_id with GTY desc use_debug_types.
11919         (print_die): Guard output of type unit signatures using
11920         use_debug_types.
11921         (build_abbrev_table): Replace assert of dwarf_version >= 4
11922         with assert on use_debug_types.
11923         (size_of_die): Likewise.
11924         (unmark_dies): Likewise.
11925         (value_format): Decide AT_ref_external form on use_debug_types.
11926         (output_die): Replace dwarf_version version check guard with
11927         use_debug_types where appropriate.
11928         (modified_type_die): Likewise.
11929         (gen_reference_type_die): Likewise.
11930         (dwarf2out_start_source_file): Likewise.
11931         (dwarf2out_end_source_file): Likewise.
11932         (prune_unused_types_walk_attribs): Likewise.
11933         (dwarf2out_finish): Likewise.
11934
11935 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11936
11937         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
11938
11939 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
11940
11941         PR rtl-optimization/48332
11942         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
11943         mode of input operand N and modeN to its actual mode.
11944
11945 2011-03-30  Jeff Law  <law@redhat.com>
11946
11947         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
11948         define accessor macro.
11949         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
11950         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
11951         (reg_equiv_init): Likewise.
11952         (reg_equivs_size): New variable.
11953         (reg_equiv_init_size): Remove.
11954         (allocate_initial_values): Move prototype to here from....
11955         * integrate.h (allocate_initial_values): Remove prototype.
11956         * integrate.c: Include reload.h.
11957         (allocate_initial_values): Corresponding changes.
11958         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
11959         (fix_reg_equiv_init, no_equiv): Corresponding changes.
11960         (update_equiv_regs): Corresponding changes.
11961         (ira): Corresponding changes.
11962         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
11963         (push_secondary_reload): Corresponding changes.
11964         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
11965         (make_memloc, find_reloads_address): Corresponding changes.
11966         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
11967         (find_reloads_address_1): Corresponding changes.
11968         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
11969         (refers_to_regno_for_reload_p): Corresponding changes.
11970         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
11971         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
11972         * reload1.c: Include ggc.h.
11973         (grow_reg_equivs): New function.
11974         (replace_pseudos_in, reload): Corresponding changes.
11975         (calculate_needs_all_insns, alter_regs): Corresponding changes.
11976         (eliminate_regs_1, elimination_effects): Corresponding changes.
11977         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
11978         (delete_output_reload): Likewise.
11979         * caller-save.c (mark_referenced_regs): Corresponding changes.
11980         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
11981         * frv/predicates.md (frv_load_operand): Corresponding changes.
11982         * microblaze/microblaze.c (double_memory_operand): Corresponding
11983         changes.
11984         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
11985         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
11986         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
11987         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
11988         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
11989         changes.
11990         * pa/pa.c (emit_move_sequence): Corresponding changes.
11991         * vax/vax.c (nonindexed_address_p): Corresponding changes.
11992
11993 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
11994
11995         PR target/47551
11996         * config/arm/arm.c (coproc_secondary_reload_class): Handle
11997         structure modes.  Don't check neon_vector_mem_operand for
11998         vector or structure modes.
11999
12000 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
12001             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12002
12003         PR target/43590
12004         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
12005         operand 1 and reshuffle the operands to match.
12006         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
12007
12008 2011-03-30  Christian Schüler  <cschueler@gmx.de>
12009
12010         PR driver/48208
12011         * config/c.opt (F): Added 'Driver' to -F option.
12012
12013         PR driver/48260
12014         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
12015           handler function.
12016         * config/darwin.opt: Added '-arch' option.
12017
12018 2011-03-30  Nick Clifton  <nickc@redhat.com>
12019
12020         * config/rx/rx.md: Add peepholes and patterns to combine
12021         extending loads and simple arithmetic instructions.
12022         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
12023         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
12024         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
12025         modes to use pre-decrement and post-increment addressing.
12026         (rx_is_restricted_memory_address): Add range checking of REG+INT
12027         addresses.
12028         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
12029         (rx_memory_move_cost): Adjust cost of stores.
12030         (rx_adjust_insn_length): New function.
12031
12032 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
12033
12034         PR c/48305
12035         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
12036         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
12037         matching arg00/arg01 types.
12038
12039 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
12040
12041         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
12042         last_location to UNKNOWN_LOCATION.
12043
12044 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
12045
12046         PR target/48349
12047         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
12048         FLOAT_SSE_REGS.
12049
12050 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
12051             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12052
12053         PR bootstrap/48337
12054         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
12055         Init(PROCESSOR_V7).
12056         (sparc_cpu): Likewise.
12057         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
12058         PROCESSOR_V7.
12059
12060 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
12061
12062         PR target/48336
12063         PR middle-end/48342
12064         PR rtl-optimization/48345
12065         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
12066         hard regs for given mode from profitable regs when doing secondary
12067         allocation.
12068
12069 2011-03-29  Jeff Law  <law@redhat.com>
12070
12071         PR bootstrap/48327
12072         * tree-ssa-threadupdate.c (struct redirection_data): Remove
12073         do_not_duplicate field.
12074         (lookup_redirection_data): Corresponding changes.
12075         (create_duplicates): Always create a template block.
12076         (redirect_edges): Remove code which reused the original block
12077         when it was going to become unreachable code.
12078         (thread_block): Don't set do_not_duplicate field.
12079
12080 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
12081
12082         * lto-opts.c (register_user_option_p, lto_register_user_option):
12083         Make type argument unsigned.
12084         * lto-streamer.h (lto_register_user_option): Make type argument
12085         unsigned.
12086         * opth-gen.awk: Make CL_* macros unsigned.
12087         * opts-common.c (find_opt): Make lang_mask argument unsigned.
12088         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
12089         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
12090         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
12091         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
12092         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
12093         (find_opt): Make lang_mask argument unsigned.
12094
12095 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
12096
12097         PR rtl-optimization/48331
12098         PR rtl-optimization/48334
12099         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
12100         for any used algorithm.
12101
12102 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
12103
12104         * ira-conflicts.c (build_object_conflicts): Add unused attribute
12105         to parent_max.
12106
12107 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
12108
12109         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
12110         (alpha_option_override): Don't set alpha_sr_alias_set.
12111         (emit_frame_store_1): Use gen_frame_mem rather than calling
12112         set_mem_alias_set.
12113         (alpha_expand_epilogue): Ditto.
12114
12115 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
12116
12117         PR tree-optimization/48290
12118         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
12119         vectorization, check that relevant phis in the basic block after
12120         the inner loop are really inner loop's exit phis.
12121
12122 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
12123
12124         PR debug/48190
12125         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
12126         (cached_dw_loc_list_def): New structure.
12127         (cached_dw_loc_list): New typedef.
12128         (cached_dw_loc_list_table): New variable.
12129         (cached_dw_loc_list_table_hash): New function.
12130         (cached_dw_loc_list_table_eq): Likewise.
12131         (add_location_or_const_value_attribute): Take a bool cache_p.
12132         Cache the list when the parameter is true.
12133         (gen_formal_parameter_die): Update caller.
12134         (gen_variable_die): Likewise.
12135         (dwarf2out_finish): Likewise.
12136         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
12137         while generating debug info for the decl.
12138         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
12139         (dwarf2out_init): Initialize cached_dw_loc_list_table.
12140         (resolve_addr): Cache the result of resolving a chain of
12141         location lists.
12142
12143 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
12144
12145         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
12146         conflict object hard regset nodes have intersecting hard reg sets.
12147
12148         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
12149         after regstat_init_n_sets_and_refs.
12150
12151         * ira.c: Add more comments at the top.
12152         (setup_stack_reg_pressure_class, setup_pressure_classes):
12153         Add comments how we compute the register pressure classes.
12154         (setup_allocno_and_important_classes): Add more comments.
12155         (setup_class_translate_array, reorder_important_classes)
12156         (setup_reg_class_relations): Add comments.
12157
12158         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
12159         start of the file.
12160
12161         * ira-color.c: Add 2011 to the Copyright line.
12162         (assign_hard_reg):  Add more comments.
12163         (improve_allocation): Ditto.
12164
12165         * ira-costs.c: Add 2011 to the Copyright line.
12166         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
12167         comments.
12168         (setup_regno_cost_classes_by_mode): Ditto.
12169
12170         Initial patches from ira-improv branch:
12171
12172         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
12173
12174         * ira-build.c (ira_create_object): Remove initialization of
12175         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
12176         (ira_create_allocno): Remove initialization of
12177         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
12178         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
12179         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
12180         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
12181         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
12182         Initialize ALLOCNO_ADD_DATA.
12183         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
12184         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
12185         ALLOCNO_REG.
12186         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
12187         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
12188
12189         * ira.c (ira_reallocate): Remove.
12190         (setup_pressure_classes): Call
12191         ira_init_register_move_cost_if_necessary.  Use
12192         ira_register_move_cost instead of ira_get_register_move_cost.
12193         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
12194         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
12195
12196         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
12197         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
12198         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
12199         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
12200         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
12201         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
12202         Fix formatting.
12203         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
12204         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
12205         (struct allocno_color_data): New.
12206         (allocno_color_data_t): New typedef.
12207         (allocno_color_data): New definition.
12208         (ALLOCNO_COLOR_DATA): New macro.
12209         (struct object_color_data): New.
12210         (object_color_data_t): New typedef.
12211         (object_color_data): New definition.
12212         (OBJECT_COLOR_DATA): New macro.
12213         (update_copy_costs, calculate_allocno_spill_cost): Call
12214         ira_init_register_move_cost_if_necessary.  Use
12215         ira_register_move_cost instead of ira_get_register_move_cost.
12216         (move_spill_restore, update_curr_costs): Ditto.
12217         (allocno_spill_priority): Make it inline.
12218         (color_pass): Allocate and free allocno_color_dat and object_color_data.
12219         (struct coalesce_data, coalesce_data_t): New.
12220         (allocno_coalesce_data): New definition.
12221         (ALLOCNO_COALESCE_DATA): New macro.
12222         (merge_allocnos, coalesced_allocno_conflict_p): Use
12223         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
12224         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
12225         (coalesce_allocnos): Ditto.
12226         (setup_coalesced_allocno_costs_and_nums): Ditto.
12227         (collect_spilled_coalesced_allocnos): Ditto.
12228         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
12229         (setup_slot_coalesced_allocno_live_ranges): Ditto.
12230         (coalesce_spill_slots): Ditto.
12231         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
12232         free allocno_coalesce_data.
12233
12234         * ira-conflicts.c: Fix formatting.
12235         (process_regs_for_copy): Call
12236         ira_init_register_move_cost_if_necessary.  Use
12237         ira_register_move_cost instead of ira_get_register_move_cost.
12238         (build_object_conflicts): Optimize.
12239
12240         * ira-costs.c (record_reg_classes): Optimize.  Call
12241         ira_init_register_move_cost_if_necessary.  Use
12242         ira_register_move_cost, ira_may_move_in_cost, and
12243         ira_may_move_out_cost instead of ira_get_register_move_cost and
12244         ira_get_may_move_cost.
12245         (record_address_regs): Ditto.
12246         (scan_one_insn): Optimize.
12247         (find_costs_and_classes): Optimize.
12248         (process_bb_node_for_hard_reg_moves): Call
12249         ira_init_register_move_cost_if_necessary.  Use
12250         ira_register_move_cost instead of ira_get_register_move_cost.
12251
12252         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
12253         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
12254         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
12255         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
12256         definitions.
12257         (ira_initiate_emit_data, ira_finish_emit_data)
12258         (create_new_allocno): New functions.
12259         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
12260         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
12261         Use ira_register_move_cost instead of ira_get_register_move_cost.
12262
12263         * ira-int.h: Fix some comments.
12264         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
12265         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
12266         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
12267         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
12268         add_data.
12269         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
12270         bitfield after mode.  Make hard_regno a short int.  Make
12271         hard_regno short.  Remove first_coalesced_allocno and
12272         next_coalesced_allocno.  Move mem_optimized_dest_p,
12273         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
12274         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
12275         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
12276         temp, colorable_p.  Add new member add_data.
12277         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
12278         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
12279         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
12280         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
12281         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
12282         (ALLOCNO_ADD_DATA): New macro.
12283         (ira_emit_data_t): New typedef.
12284         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
12285         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
12286         from struct ira_allocno.
12287         (ALLOCNO_EMIT_DATA): New macro.
12288         (ira_allocno_emit_data, allocno_emit_reg): New.
12289         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
12290         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
12291         (OBJECT_ADD_DATA): New macro.
12292         (ira_reallocate): Remove.
12293         (ira_initiate_emit_data, ira_finish_emit_data): New.
12294         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
12295         (ira_init_register_move_cost_if_necessary): New.
12296         (ira_object_conflict_iter_next): Merge into
12297         ira_object_conflict_iter_cond.
12298         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
12299
12300         * ira-live.c (process_single_reg_class_operands): Call
12301         ira_init_register_move_cost_if_necessary.  Use
12302         ira_register_move_cost instead of ira_get_register_move_cost.
12303
12304         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
12305
12306         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
12307
12308         * ira-costs.c: Fix formatting.
12309         (cost_classes, cost_classes_num): Remove.
12310         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
12311         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
12312         (cost_classes_del, cost_classes_htab): New.
12313         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
12314         (initiate_regno_cost_classes, setup_cost_classes): New.
12315         (setup_regno_cost_classes_by_aclass): New.
12316         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
12317         (record_reg_classes): Use regno_cost_classes instead of
12318         cost_classes.  Move checking opposite operand up.
12319         (record_address_regs): Use regno_cost_classes
12320         instead of cost_classes.
12321         (scan_one_insn): Ditto.  Use always general register.
12322         (print_allocno_costs): Use regno_cost_classes instead of
12323         cost_classes.
12324         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
12325         (find_costs_and_classes): Set up cost classes for each registers.
12326         Use also their mode for this.  Use regno_cost_classes instead of
12327         cost_classes.
12328         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
12329         cost_classes.
12330         (free_ira_costs, ira_init_costs): Don't use cost_classes.
12331         (ira_costs, ira_set_pseudo_classes): Call
12332         initiate_regno_cost_classes and finish_regno_cost_classes.
12333
12334         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
12335
12336         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
12337
12338         * target.def (ira_cover_classes): Remove.
12339
12340         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
12341
12342         * doc/tm.texi.in: Ditto.
12343
12344         * ira-conflicts.c: Remove mentioning cover classes from the file.
12345         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
12346         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
12347
12348         * targhooks.c (default_ira_cover_classes): Remove.
12349
12350         * targhooks.h (default_ira_cover_classes): Ditto.
12351
12352         * haifa-sched.c: Remove mentioning cover classes from the file.
12353         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
12354         ira_pressure_classes and ira_pressure_classes_num instead of
12355         ira_reg_class_cover_size and ira_reg_class_cover.  Use
12356         sched_regno_pressure_class instead of sched_regno_cover_class.
12357         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
12358         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12359
12360         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
12361         classes from the file.
12362         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
12363         (struct object_hard_regs, struct object_hard_regs_node): New.
12364         (struct ira_object): New members profitable_hard_regs,
12365         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
12366         (struct ira_allocno): Rename cover_class to aclass.  Rename
12367         cover_class_cost and updated_cover_class_cost to class_cost and
12368         updated_class_cost.  Remove splay_removed_p and
12369         left_conflict_size.  Add new members colorable_p.
12370         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
12371         (ALLOCNO_COLORABLE_P): New macro.
12372         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
12373         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
12374         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
12375         (OBJECT_...): Rename parameter C to O.
12376         (OBJECT_PROFITABLE_HARD_REGS): New macro.
12377         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
12378         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
12379         (struct target_ira_int): New members x_ira_max_memory_move_cost,
12380         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
12381         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
12382         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
12383         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
12384         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
12385         x_ira_reg_class_subunion.
12386         (ira_max_memory_move_cost, ira_max_register_move_cost)
12387         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
12388         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
12389         (ira_important_class_nums, ira_reg_class_superunion): New macros.
12390         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
12391         (ira_reg_class_union): Rename to ira_reg_class_subunion.
12392         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
12393         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
12394         (ira_tune_allocno_costs_and_cover_classes): Rename to
12395         ira_tune_allocno_costs.
12396         (ira_debug_hard_regs_forest): New.
12397         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
12398         (ira_object_conflict_iter_next): Fix comments.
12399         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
12400         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
12401         cover_class to aclass.
12402         (ira_allocate_and_accumulate_costs): Ditto.
12403         (ira_allocate_and_set_or_copy_costs): Ditto.
12404
12405         * opts.c (decode_options): Remove ira_cover_class check.
12406
12407         * ira-color.c: Remove mentioning cover classes from the file.  Use
12408         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
12409         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
12410         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
12411         (splay-tree.h): Remove include.
12412         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
12413         before copy_freq_compare_func.
12414         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
12415         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
12416         New definitions.
12417         (hard_regs_roots, hard_regs_node_vec): Ditto.
12418         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
12419         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
12420         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
12421         (create_new_object_hard_regs_node): Ditto.
12422         (add_new_object_hard_regs_node_to_forest): Ditto.
12423         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
12424         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
12425         Ditto.
12426         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
12427         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
12428         (remove_unused_object_hard_regs_nodes): Ditto.
12429         (enumerate_object_hard_regs_nodes): Ditto.
12430         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
12431         (object_hard_regs_subnode_t): Ditto.
12432         (struct object_hard_regs_subnode): Ditto.
12433         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
12434         (setup_object_hard_regs_subnode_index): Ditto.
12435         (get_object_hard_regs_subnodes_num): Ditto.
12436         (form_object_hard_regs_nodes_forest): Ditto.
12437         (finish_object_hard_regs_nodes_tree): Ditto.
12438         (finish_object_hard_regs_nodes_forest): Ditto.
12439         (allocnos_have_intersected_live_ranges_p): Rename to
12440         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
12441         (pseudos_have_intersected_live_ranges_p): Rename to
12442         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
12443         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
12444         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
12445         (update_copy_costs): Remove assert.  Skip cost update if the hard
12446         reg does not belong the class.
12447         (assign_hard_reg): Process only profitable hard regs.
12448         (uncolorable_allocnos_num): Make it scalar.
12449         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
12450         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
12451         and ira_reg_class_max_nregs.
12452         (bucket_allocno_compare_func): Check frequency first.
12453         (sort_bucket): Add compare function as a parameter.
12454         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
12455         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
12456         (push_allocno_to_stack): Rewrite for checking new allocno
12457         colorability.
12458         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
12459         (push_only_colorable): Pass new parameter to sort_bucket.
12460         (push_allocno_to_spill): Remove.
12461         (allocno_spill_priority_compare): Make it inline and rewrite.
12462         (splay_tree_allocate, splay_tree_free): Remove.
12463         (allocno_spill_sort_compare): New function.
12464         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
12465         build and use splay tree.  Choose first allocno in uncolorable
12466         allocno bucket to spill.  Remove setting spill cost.
12467         (all_conflicting_hard_regs): Remove.
12468         (setup_allocno_available_regs_num): Check only profitable hard
12469         regs.  Print info about hard regs nodes.
12470         (setup_allocno_left_conflicts_size): Remove.
12471         (put_allocno_into_bucket): Don't call
12472         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
12473         (improve_allocation): New.
12474         (color_allocnos): Call setup_profitable_hard_regs,
12475         form_object_hard_regs_nodes_forest, improve_allocation,
12476         finish_object_hard_regs_nodes_forest.  Setup spill cost.
12477         (print_loop_title): Use pressure classes.
12478         (color_allocnso): Ditto.
12479         (do_coloring): Remove allocation and freeing splay_tree_node_pool
12480         and allocnos_for_spilling.
12481         (ira_sort_regnos_for_alter_reg): Don't setup members
12482         {first,next}_coalesced_allocno.
12483         (color): Remove allocating and freeing removed_splay_allocno_vec.
12484         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
12485         prohibited_class_mode_regs.
12486
12487         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
12488         formatting.
12489         (update_allocno_pressure_excess_length): Use pressure classes.
12490         (inc_register_pressure, dec_register_pressure): Check for pressure
12491         class.
12492         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
12493         pressure class.  Use ira_reg_class_nregs instead of
12494         ira_reg_class_max_nregs.
12495         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
12496         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
12497         (single_reg_class): Use ira_reg_class_nregs instead of
12498         ira_reg_class_max_nregs.
12499         (process_bb_node_lives): Use pressure classes.
12500
12501         * ira-emit.c: Remove mentioning cover classes from the file.  Use
12502         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
12503         (change_loop): Use pressure classes.
12504         (modify_move_list): Call ira_set_allocno_class instead of
12505         ira_set_allocno_cover_class.
12506
12507         * ira-build.c: Remove mentioning cover classes from the file.  Use
12508         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
12509         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
12510         ALLOCNO_UPDATED_CLASS_COST instead of
12511         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
12512         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
12513         (ira_create_allocno): Remove initialization of
12514         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
12515         ALLOCNO_COLORABLE_P.
12516         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
12517         Update conflict regs for the objects.
12518         (create_cap_allocno): Remove assert.  Don't propagate
12519         ALLOCNO_AVAILABLE_REGS_NUM.
12520         (ira_free_allocno_costs): New function.
12521         (finish_allocno): Change a part of code into call of
12522         ira_free_allocno_costs.
12523         (low_pressure_loop_node_p): Use pressure classes.
12524         (object_range_compare_func): Don't compare classes.
12525         (setup_min_max_conflict_allocno_ids): Ditto.
12526
12527         * loop-invariant.c: Remove mentioning cover classes from the file.
12528         Use ira_pressure_classes and ira_pressure_classes_num instead of
12529         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
12530         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
12531         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12532         Use reg_allocno_class instead of reg_cover_class.
12533         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
12534         STACK_REG_COVER_CLASS.
12535         (get_regno_cover_class): Rename to get_regno_pressure_class.
12536         (move_loop_invariants): Initialize and finalize regstat.
12537
12538         * ira.c: Remove mentioning cover classes from the file.  Add
12539         comments about coloring without cover classes.  Use ALLOCNO_CLASS
12540         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
12541         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
12542         setup_class_subset_and_memory_move_costs.
12543         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
12544         (setup_cover_and_important_classes): Rename to
12545         setup_allocno_and_important_classes.
12546         (setup_class_translate_array): New.
12547         (setup_class_translate): Call it for allocno and pressure classes.
12548         (cover_class_order): Rename to allocno_class_order.
12549         (comp_reg_classes_func): Use ira_allocno_class_translate instead
12550         of ira_class_translate.
12551         (reorder_important_classes): Set up ira_important_class_nums.
12552         (setup_reg_class_relations): Set up ira_reg_class_superunion.
12553         (print_class_cover): Rename to print_classes.  Add parameter.
12554         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
12555         Print pressure classes too.
12556         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
12557         setup_reg_subclasses.
12558         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
12559         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
12560         (setup_prohibited_class_mode_regs): Use
12561         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
12562         (clarify_prohibited_class_mode_regs): New function.
12563         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
12564         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
12565         (ira_init_once): Initialize them.
12566         (free_register_move_costs): Process them.
12567         (ira_init): Move calls of find_reg_classes and
12568         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
12569         Call clarify_prohibited_class_mode_regs.
12570         (ira_no_alloc_reg): Remove.
12571         (too_high_register_pressure_p): Use pressure classes.
12572
12573         * sched-deps.c: Remove mentioning cover classes from the file.
12574         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
12575         ira_pressure_classes and ira_pressure_classes_num instead of
12576         ira_reg_class_cover_size and ira_reg_class_cover.
12577         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
12578         sched_regno_pressure_class instead of sched_regno_cover_class.
12579         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
12580         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12581
12582         * ira.h: Add 2010 to Copyright.
12583         (ira_no_alloc_reg): Remove external.
12584         (struct target_ira): Rename x_ira_hard_regno_cover_class,
12585         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
12586         x_ira_class_translate to x_ira_hard_regno_allocno_class,
12587         x_ira_allocno_classes_num, x_ira_allocno_classes, and
12588         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
12589         x_ira_pressure_classes, x_ira_pressure_class_translate, and
12590         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
12591         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
12592         x_ira_no_alloc_regs.
12593         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
12594         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
12595         ira_allocno_classes_num and ira_allocno_classes.
12596         (ira_class_translate): Rename to ira_allocno_class_translate.
12597         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
12598         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
12599         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
12600         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
12601         (ira_no_alloc_regs): New.
12602
12603         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
12604         classes from the file.  Use ALLOCNO_CLASS instead of
12605         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
12606         ALLOCNO_COVER_CLASS_COST.
12607         (regno_cover_class): Rename to regno_aclass.
12608         (record_reg_classes): Use ira_reg_class_subunion instead of
12609         ira_reg_class_union.
12610         (record_address_regs): Check overflow.
12611         (scan_one_insn): Ditto.
12612         (print_allocno_costs): Print total mem cost fore regional allocation.
12613         (print_pseudo_costs): Use REG_N_REFS.
12614         (find_costs_and_classes): Use classes intersected with them on the
12615         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
12616         ira_reg_class_union.  Use ira_allocno_class_translate and
12617         regno_aclass instead of ira_class_translate and regno_cover_class.
12618         Modify code for finding regno_aclass.  Setup preferred classes for
12619         the next pass.
12620         (setup_allocno_cover_class_and_costs): Rename to
12621         setup_allocno_class_and_costs.  Use regno_aclass instead of
12622         regno_cover_class.  Use ira_set_allocno_class instead of
12623         ira_set_allocno_cover_class.
12624         (init_costs, finish_costs): Use regno_aclass instead of
12625         regno_cover_class.
12626         (ira_costs): Use setup_allocno_class_and_costs instead of
12627         setup_allocno_cover_class_and_costs.
12628         (ira_tune_allocno_costs_and_cover_classes): Rename to
12629         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
12630         by processing objects.  Use ira_reg_class_max_nregs instead of
12631         ira_reg_class_nregs.
12632
12633         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
12634
12635         * sched-int.h: Remove mentioning cover classes from the file.
12636         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
12637
12638         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
12639         classes from the file.
12640         (struct reg_pref): Rename coverclass into allocnoclass.
12641         (reg_cover_class): Rename to reg_allocno_class.
12642
12643         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
12644
12645         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
12646
12647         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
12648
12649         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
12650
12651         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
12652
12653         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
12654
12655         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
12656
12657         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
12658
12659         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
12660
12661         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
12662
12663         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
12664         (i386_ira_cover_classes): Ditto.
12665
12666         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
12667
12668         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
12669
12670         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
12671
12672         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
12673
12674         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
12675
12676         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
12677
12678         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
12679         (mips_ira_cover_classes): Ditto.
12680
12681         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
12682
12683         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
12684
12685         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
12686
12687         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
12688
12689         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
12690
12691         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
12692         (IRA_COVER_CLASSES_VSX): Ditto.
12693
12694         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
12695         (rs6000_ira_cover_classes): Ditto.
12696
12697         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
12698
12699         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
12700
12701         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
12702
12703         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
12704
12705         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
12706
12707         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
12708
12709         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
12710
12711         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
12712
12713         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
12714
12715         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
12716
12717 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
12718
12719         PR debug/48253
12720         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
12721         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
12722         dw_fde_unlikely_section_end_label, cold_in_std_section,
12723         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
12724         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
12725         fields.
12726         (output_fde): Use dw_fde_second_{begin,end} if second is
12727         true, otherwise dw_fde_{begin,end}.
12728         (output_call_frame_info): Test dw_fde_second_begin != NULL
12729         instead of dw_fde_switched_sections.
12730         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
12731         fields, initialize new fields.  Initialize in_std_section
12732         unconditionally from the first partition.
12733         (dwarf2out_end_epilogue): Don't override dw_fde_end when
12734         dw_fde_second_begin is non-NULL.
12735         (dwarf2out_switch_text_section): Stop initializing removed
12736         dw_fde_struct fields, initialize new fields, initialize
12737         also dw_fde_end here.  Set dw_fde_switch_cfi even when
12738         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
12739         (struct var_loc_list_def): Add last_before_switch field.
12740         (arange_table, arange_table_allocated, arange_table_in_use,
12741         ARANGE_TABLE_INCREMENT, add_arange): Removed.
12742         (size_of_aranges): Count !in_std_section and !second_in_std_section
12743         hunks in fdes, instead of looking at arange_table_in_use.
12744         (output_aranges): Add aranges_length argument, don't call
12745         size_of_aranges here.  Instead of using aranges_table*
12746         emit ranges for fdes when !in_std_section resp.
12747         !second_in_std_section.
12748         (dw_loc_list): Break ranges crossing section switch.
12749         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
12750         use dw_fde_second_end instead of dw_fde_end as end of last range.
12751         (gen_subprogram_die): Don't call add_arange.  Use
12752         dw_fde_{begin,end} for first partition and if switched
12753         section dw_fde_second_{begin,end} for the second.
12754         (var_location_switch_text_section_1,
12755         var_location_switch_text_section): New functions.
12756         (dwarf2out_begin_function): Initialize cold_text_section even
12757         when function_section () isn't text_section.
12758         (prune_unused_types): Don't walk arange_table.
12759         (dwarf2out_finish): Don't needlessly test
12760         flag_reorder_blocks_and_partition when testing cold_text_section_used.
12761         If info_section_emitted, call size_of_aranges and if it indicates
12762         non-empty .debug_aranges, call output_aranges with the computed
12763         size.  Stop using removed dw_fde_struct fields, use
12764         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
12765         for second.
12766
12767         PR debug/48203
12768         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
12769         create ENTRY_VALUE if incoming or address of incoming's MEM
12770         is a hard REG.
12771         * dwarf2out.c (mem_loc_descriptor): Don't emit
12772         DW_OP_GNU_entry_value of DW_OP_fbreg.
12773         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
12774         on ENTRY_VALUE is able to find the canonical parameter VALUE.
12775         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
12776         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
12777         ENTRY_VALUE_EXPs.
12778         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
12779         is a REG_P or MEM_P with REG_P address, compute hash directly
12780         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
12781         (preserve_only_constants): Don't clear VALUES forwaring
12782         ENTRY_VALUE to some other VALUE.
12783
12784 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
12785
12786         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
12787         instead of GEN_INT.
12788
12789 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
12790
12791         * cfgexpand.c (expand_gimple_cond): Always set the source location and
12792         block before expanding the statement.
12793         (expand_gimple_stmt_1): Likewise.  Set them here...
12794         (expand_gimple_stmt): ...and not here.  Tidy.
12795         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
12796         unknown.
12797
12798 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
12799
12800         * Makefile.in: New rule for cprop.o.
12801         * gcse.c: Move constant/copy propagation to cprop.c.
12802         (compute_local_properties): Only handle expression tables.
12803         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
12804         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
12805         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
12806         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
12807         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
12808         compute_cprop_data, find_used_regs, try_replace_reg,
12809         find_avail_set, cprop_jump, constprop_register, cprop_insn,
12810         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
12811         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
12812         find_bypass_set, reg_killed_on_edge, bypass_block,
12813         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
12814         execute_rtl_cprop, pass_rtl_cprop): Move to...
12815         * cprop.c: ...here.  New file, constant/copy propagation for RTL
12816         moved from gcse.c to here with minor cleanups in duplicated code.
12817
12818 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
12819
12820         * config/i386/i386.c (flag_opts): Fix a typo in
12821         -mavx256-split-unaligned-store.
12822
12823 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
12824
12825         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
12826         LIBCALL_VALUE): Remove macros.
12827         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12828         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12829         (h8300_function_value, h8300_libcall_value,
12830         h8300_function_value_regno_p): New functions.
12831
12832 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
12833
12834         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
12835
12836 2011-03-28  Jeff Law  <law@redhat.com>
12837
12838         * tree-ssa-threadupdate.c (redirect_edges): Call
12839         create_edge_and_update_destination_phis as needed.
12840         (create_edge_and_update_destination_phis): Accept new BB argument.
12841         All callers updated.
12842         (thread_block): Do not update the profile when threading around
12843         intermediate blocks.
12844         (thread_single_edge): Likewise.
12845         (determine_bb_domination_status): If BB is not a successor of the
12846         loop header, return NONDOMINATING.
12847         (register_jump_thread): Note when we register a jump thread around
12848         an intermediate block.
12849         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
12850         (thread_across_edge): Use it.
12851
12852 2011-03-28  Tristan Gingold  <gingold@adacore.com>
12853
12854         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
12855         when for_return is 2.
12856
12857 2011-03-28  Jeff Law  <law@redhat.com>
12858
12859         * var-tracking.c (canonicalize_values_mark): Delete unused
12860         lhs assignment.
12861         (canonicalize_values_star, set_variable_part): Likewise.
12862         (clobber_variable_part, delete_variable_part): Likewise.
12863
12864 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
12865
12866         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
12867
12868 2011-03-28  Martin Jambor  <mjambor@suse.cz>
12869
12870         * tree-inline.c (expand_call_inline): Do not check that destination
12871         node is analyzed.
12872         (optimize_inline_calls): Assert that destination node is analyzed.
12873         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
12874         not call tree_lowering_passes.
12875         * cgraph.h (cgraph_analyze_function): Declare.
12876         * cgraphunit.c (cgraph_analyze_function): Make public.
12877
12878 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
12879
12880         * config/sparc/sparc-opts.h: New.
12881         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
12882         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
12883         (sparc_option_override): Store processor_type enumeration rather
12884         than string in cpu_default.  Remove name and enumeration from
12885         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
12886         without using sparc_select.  Use target_flags_explicit instead of
12887         fpu_option_set.
12888         * config/sparc/sparc.h (enum processor_type): Move to
12889         sparc-opts.h.
12890         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
12891         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
12892         HeaderInclude entry.
12893         (mcpu=, mtune=): Use Var and Enum.
12894         (sparc_processor_type): New Enum and EnumValue entries.
12895
12896 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12897             Iain Sandoe  <iains@gcc.gnu.org>
12898
12899         PR target/48245
12900         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
12901
12902 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
12903
12904         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
12905         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
12906         Insert new statements at it in lieu of STMT.
12907         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
12908         * tree-vect-stmts.c (vectorizable_store): Likewise.
12909         (vectorizable_load): Likewise.
12910
12911 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
12912
12913         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
12914         (divtf3): Ditto.
12915         (multf3): Ditto.
12916         (subtf3): Ditto.
12917
12918 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12919
12920         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
12921         unaligned 256bit load/store.
12922         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
12923         (*avx_movdqu<avxmodesuffix>): Likewise.
12924
12925 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12926
12927         PR target/48288
12928         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
12929         * config/pa/pa.md (iordi3): Use new predicate in expander.
12930         (iorsi3): Likewise.
12931
12932 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
12933
12934         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
12935         FUNCTION_VALUE_REGNO_P): Remove macros.
12936         * config/mips/mips-protos.h (mips_function_value): Remove.
12937         * config/mips/mips.c (mips_function_value): Rename to...
12938         (mips_function_value_1): ... this. Make static.  Handle receiving
12939         the function type in 'fn_decl_or_type' argument.
12940         (mips_function_value, mips_libcall_value,
12941         mips_function_value_regno_p): New function.
12942         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12943         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12944
12945 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12946
12947         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
12948         and -mavx256-split-unaligned-store.
12949         (ix86_option_override_internal): Split 32-byte AVX unaligned
12950         load/store by default.
12951         (ix86_avx256_split_vector_move_misalign): New.
12952         (ix86_expand_vector_move_misalign): Use it.
12953
12954         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
12955         -mavx256-split-unaligned-store.
12956
12957         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
12958         256bit load/store.  Generate unaligned store on misaligned memory
12959         operand.
12960         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
12961         256bit load/store.
12962         (*avx_movdqu<avxmodesuffix>): Likewise.
12963
12964         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
12965         -mavx256-split-unaligned-store.
12966
12967 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
12968
12969         PR target/38598
12970         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
12971         Update commentary.
12972
12973 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
12974
12975         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
12976         opno arguments with an expand_operand.  Use create_input_operand.
12977         (mips_prepare_builtin_target): Delete.
12978         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
12979         functions.
12980         (mips_expand_builtin_direct): Use create_output_operand and
12981         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
12982         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
12983         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
12984
12985 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
12986
12987         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
12988         function.
12989         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
12990
12991 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
12992
12993         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
12994         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
12995         basic blocks and call commit_edge_insertions directly.
12996         (fixup_abnormal_edges): Move from here to...
12997         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
12998         on the edges and return whether some have actually been inserted.
12999         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
13000         compensation code.
13001
13002 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
13003
13004         PR rtl-optimization/48144
13005         * sel-sched-ir.c (merge_history_vect): Factor out from ...
13006         (merge_expr_data): ... here.
13007         (av_set_intersect): Rename to av_set_code_motion_filter.
13008         Update all callers.  Call merge_history_vect when an expression
13009         is found in both sets.
13010         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
13011
13012 2011-03-26  Alan Modra  <amodra@gmail.com>
13013
13014         * config/rs6000/predicates.md (word_offset_memref_op): Handle
13015         cmodel medium addresses.
13016         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
13017         64-bit gpr loads and stores.
13018         (rs6000_secondary_reload_ppc64): New function.
13019         * config/rs6000/rs6000-protos.h: Declare it.
13020         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
13021
13022 2011-03-26  Alan Modra  <amodra@gmail.com>
13023
13024         PR target/47487
13025         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
13026         GNU Go in traceback table.
13027
13028 2011-03-25  Richard Henderson  <rth@redhat.com>
13029
13030         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
13031         if there are exactly 6 operands.
13032         (set_storage_via_setmem): Similarly.
13033
13034 2011-03-25  Kai Tietz  <ktietz@redhat.com>
13035
13036         * collect2.c (write_c_file_stat): Handle backslash
13037         as right-hand directory separator.
13038         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
13039         checking just for slash.
13040         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
13041         instead of checking for trailing slash.
13042         * gcc.c (record_temp_file): Use filename_cmp instead
13043         of strcmp.
13044         (do_spec_1): Likewise.
13045         (replace_outfile_spec_function): Likewise.
13046         (is_directory): Use filename_ncmp instead of strncmp.
13047         (print_multilib_info): Likewise.
13048         * gcov.c (find_source): Use filename_cmp instead
13049         instead of strcmp.
13050         (make_gcov_file_name): Fix order of slash/backslash
13051         checks.
13052         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
13053         (add_standard_paths): Likewise.
13054         * mips-tfile.c (saber_stop): Handle backslash.
13055         * prefix.c (update_path): Use filename_ncmp instead of
13056         strncmp.
13057         * profile.c (output_location): Use filename_cmp instead
13058         of strcmp.
13059         * read-md.c (handle_toplevel_file): Handle backslash.
13060         * tlink.c (frob_extension):  Likewise.
13061         * tree-cfg.c (same_line_p): Use filename_cmp instead of
13062         strcmp.
13063         * tree-dump.c (dequeue_and_dump): Handle backslash.
13064         * tree.c (get_file_function_name): Likewise.
13065         * gengtype.c (read_input_list): Likewise.
13066         (get_file_realbasename): Likewise.
13067         (get_output_file_with_visibility): Use filename_cmp
13068         instead of strcmp.
13069
13070 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
13071
13072         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
13073         case to VFPv1.
13074
13075 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
13076
13077         * fold-const.c (expr_location_or): New function.
13078         (fold_truth_not_expr): Call it.
13079
13080 2011-03-25  Jeff Law  <law@redhat.com>
13081
13082         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
13083         va_end.
13084         * c-family/c-common.c (def_fn_type): Likewise.
13085         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
13086         * emit-rtl.c (gen_rtvec): Likewise.
13087         * lto/lto-lang.c (def_fn_type): Likewise.
13088
13089 2011-03-25  Richard Guenther  <rguenther@suse.de>
13090
13091         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
13092         also generate copies.
13093         (fini_copy_prop): Handle constant values properly.
13094
13095 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
13096
13097         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
13098         mode size instead of bitsize with DWARF2_ADDR_SIZE.
13099         (hash_loc_operands, compare_loc_operands): Handle
13100         DW_OP_GNU_entry_value.
13101
13102 2011-03-25  Kai Tietz  <ktietz@redhat.com>
13103
13104         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
13105         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
13106         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
13107         comment and use macro TARGET_64BIT_MS_ABI instead.
13108         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
13109         and change default behavior for 32-bit MS_ABI.
13110         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
13111         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
13112         32-bit, too.
13113         (ix86_cfun_abi): Likewise.
13114         (ix86_maybe_switch_abi): Adjust comment.
13115         (init_cumulative_args): Check for bit-ness in MS_ABI case.
13116         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
13117         instead of checking for SYSV_ABI.
13118         (ix86_nsaved_sseregs): Likewise.
13119         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
13120         to 16 bytes.
13121         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
13122         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
13123         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
13124         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
13125         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
13126
13127 2011-03-25  Richard Guenther  <rguenther@suse.de>
13128
13129         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
13130         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
13131         (verify_gimple): Remove.
13132         * tree-cfg.c (verify_gimple_call): Merge verification
13133         from verify_stmts.
13134         (verify_gimple_phi): Merge verification from verify_stmts.
13135         (verify_gimple_label): New function.
13136         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
13137         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
13138         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
13139         (verify_stmts): Rename to verify_gimple_in_cfg.
13140         (verify_gimple_in_cfg): New function.
13141         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
13142         * tree-ssa.c (verify_ssa): Likewise.
13143         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
13144
13145 2011-03-25  Richard Guenther  <rguenther@suse.de>
13146
13147         * passes.c (init_optimization_passes): Add FRE pass after
13148         early SRA.
13149
13150 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
13151             Andrew Stubbs  <ams@codesourcery.com>
13152
13153         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
13154         for Cortex-A8.
13155         (arm_movdi_vfp_cortexa8): New pattern.
13156         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
13157         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
13158         instructions when tuning for Cortex-A8.  Set attribute "arch".
13159         * config/arm/arm.md: Move include arm-tune.md up a bit.
13160         (define_attr "arch"): Add "onlya8" and "nota8" values.
13161         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
13162
13163 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
13164
13165         PR bootstrap/48282
13166         Revert:
13167         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
13168
13169         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
13170         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
13171         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
13172         * passes.c (init_optimization_passes): Move
13173         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
13174
13175 2011-03-25  Kai Tietz  <ktietz@redhat.com>
13176
13177         * c-typeck.c (comptypes_internal): Replace target
13178         hook call of comp_type_attributes by version in tree.c file.
13179         * gimple.c (gimple_types_compatible_p_1): Likewise.
13180         * tree-ssa.c (useless_type_conversion_p): Likewise.
13181         * tree.c (build_type_attribute_qual_variant): Likewise.
13182         (attribute_value_equal): New static helper function.
13183         (comp_type_attributes): New function.
13184         (merge_attributes): Use attribute_value_equal for comparison.
13185         (attribute_list_contained): Likewise.
13186         * tree.h (comp_type_attributes): New prototype.
13187
13188 2011-03-25  Richard Guenther  <rguenther@suse.de>
13189
13190         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
13191         of complex types at -O0.
13192         (verify_gimple_assign_binary): Likewise.
13193         (verify_gimple_assign_ternary): Likewise.
13194
13195 2011-03-24  Mark Wielaard  <mjw@redhat.com>
13196
13197         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
13198         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
13199
13200 2011-03-24  Mark Wielaard  <mjw@redhat.com>
13201
13202         PR debug/48041
13203         * dwarf2out.c (output_abbrev_section): Only write table when
13204         abbrev_die_table_in_use > 1.
13205
13206 2011-02-24  Richard Henderson  <rth@redhat.com>
13207
13208         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
13209         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
13210         (alpha_expand_unaligned_load_words): Use extql.
13211         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
13212         (emit_insxl): Handle all modes for consistency.
13213
13214 2011-02-24  Richard Henderson  <rth@redhat.com>
13215
13216         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
13217         (alpha_expand_unaligned_load): Likewise.
13218         (alpha_expand_unaligned_store): Likewise.
13219         (alpha_expand_unaligned_load_words): Likewise.
13220         (alpha_expand_unaligned_store_words): Likewise.
13221         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
13222         (alpha_split_lock_test_and_set_12): Likewise.
13223         (print_operand, alpha_fold_builtin_extxx): Likewise.
13224         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
13225         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
13226         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
13227         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
13228         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
13229         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
13230         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
13231         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
13232         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
13233         (extwl, extll, extql): Similarly.
13234         (inswh, inslh, insqh): Similarly.
13235         (mskbl, mskwl, mskll, mskql): Similarly.
13236         (mskwh, msklh, mskqh): Similarly.
13237
13238 2011-02-24  Richard Henderson  <rth@redhat.com>
13239
13240         * config/alpha/alpha.md (attribute isa): Add er, ner.
13241         (attribute enabled): Handle them.
13242         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
13243
13244 2011-02-24  Richard Henderson  <rth@redhat.com>
13245
13246         * config/alpha/alpha.md (attribute isa): Add vms.
13247         (attribute enabled): Handle it.
13248         (*movsf): Merge *movsf_{nofix,fix,nofp}.
13249         (*movdf): Merge *movdf_{nofix,fix,nofp}.
13250         (*movtf): Rename from *movtf_internal for consistency.
13251         (*movsi): Merge with *movsi_nt_vms.
13252         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
13253         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
13254         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
13255         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
13256
13257 2011-02-24  Richard Henderson  <rth@redhat.com>
13258
13259         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
13260         (extendqisi2, extendhisi2): Likewise.
13261         (extendqidi2): Simplify BWX/non-BWX expansions.
13262         (extendhidi2): Similarly.
13263
13264 2011-02-24  Richard Henderson  <rth@redhat.com>
13265
13266         * config/alpha/alpha.md (attribute isa): New.
13267         (attribute enabled): New.
13268         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
13269         (zero_extendqisi2, zero_extendqidi2): Similarly.
13270         (zero_extendhisi2, zero_extendhidi2): Similarly.
13271         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
13272
13273 2011-02-24  Richard Henderson  <rth@redhat.com>
13274
13275         * config/alpha/predicates.md (input_operand): Revert last change;
13276         update comment to mention 32-bit VMS rather than Windows.
13277
13278 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
13279
13280         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
13281         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
13282         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
13283         * passes.c (init_optimization_passes): Move
13284         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
13285
13286 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
13287
13288         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
13289
13290 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
13291
13292         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
13293         correctly.
13294
13295 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
13296
13297         PR debug/48204
13298         * simplify-rtx.c (simplify_const_unary_operation): Call
13299         real_convert when changing mode class with FLOAT_EXTEND.
13300
13301 2011-03-24  Nick Clifton  <nickc@redhat.com>
13302
13303         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
13304         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
13305         * config/rx/rx.c (rx_option_override): Set align_jumps,
13306         align_loops and align_labels if not set by the user.
13307         (rx_align_for_label): New function.
13308         (rx_max_skip_for_label): New function.
13309         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
13310         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
13311         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
13312         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
13313         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
13314
13315 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
13316
13317         PR rtl-optimization/48263
13318         * optabs.c (expand_binop_directly): Reinstate convert_modes code
13319         and original commutative_p handling.  Use maybe_gen_insn.
13320
13321 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13322
13323         * reload.c (find_reloads_subreg_address): Add address_reloaded
13324         parameter and return true there if the full address has been
13325         reloaded.
13326         (find_reloads_toplev): Pass address_reloaded flag.
13327         (find_reloads_address_1): Don't use address_reloaded parameter.
13328
13329 2011-03-24  Jeff Law  <law@redhat.com>
13330
13331         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
13332         unused variable "ann".
13333         (remove_unused_locals): Likewise.
13334
13335         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
13336         statement.
13337
13338         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
13339         after it is freed.
13340
13341 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13342
13343         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
13344         for invalid symbolic addresses.
13345         (s390_secondary_reload): Don't use s390_check_symref_alignment for
13346         larl operands.
13347
13348 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
13349
13350         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
13351         the argument in calls to fold_truth_not_expr.
13352
13353 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
13354
13355         * tree.c (record_node_allocation_statistics): New function.
13356         (make_node_stat, copy_node_stat, build_string): Call it.
13357         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
13358         (build1_stat, build_omp_clause): Likewise.
13359
13360 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
13361
13362         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
13363         last commit.
13364
13365 2011-03-24  Richard Guenther  <rguenther@suse.de>
13366
13367         PR tree-optimization/48271
13368         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
13369         blocks that still exist.
13370
13371 2011-03-24  Richard Guenther  <rguenther@suse.de>
13372
13373         PR tree-optimization/48270
13374         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
13375         not free datarefs before ddrs.
13376
13377 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
13378
13379         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
13380         from the address built for a reference with variable offset.
13381
13382 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
13383
13384         PR target/48237
13385         * config/i386/i386.md (*movdf_internal_rex64): Do not split
13386         alternatives that can be handled with movq or movabsq insn.
13387         (*movdf_internal): Disable for !TARGET_64BIT.
13388         (*movdf_internal_nointeger): Ditto.
13389         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
13390
13391 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
13392
13393         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
13394         (FUNCTION_ARG_ADVANCE): Likewise.
13395         * tm.texi.in: Change references to them to hook references.
13396         * tm.texi: Regenerate.
13397         * targhooks.c (default_function_arg): Eliminate check for target macro.
13398         (default_function_incoming_arg): Likewise.
13399         (default_function_arg_advance): Likewise.
13400         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
13401         (function_arg_advance): Likewise.
13402         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
13403
13404 2011-03-24  Richard Guenther  <rguenther@suse.de>
13405
13406         PR middle-end/48269
13407         * tree-object-size.c (addr_object_size): Do not double-account
13408         for MEM_REF offsets.
13409
13410 2011-03-24  Diego Novillo  <dnovillo@google.com>
13411
13412         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
13413         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
13414         (lto_input_data_block): Move from lto-opts.c.  Make extern.
13415         Update all users.
13416         (lto_input_string): Rename from input_string.  Make extern.
13417         Update all users.
13418         * lto-streamer-out.c (lto_output_string_with_length): Rename from
13419         output_string_with_length.
13420         Output 0 to indicate a non-NULL string.  Update all callers to
13421         not emit 0.
13422         (lto_output_string): Rename from output_string.  Make extern.
13423         Update all users.
13424         (lto_output_decl_state_streams): Make extern.
13425         (lto_output_decl_state_refs): Make extern.
13426         * lto-streamer.h (lto_input_string): Declare.
13427         (lto_input_data_block): Declare.
13428         (lto_output_string): Declare.
13429         (lto_output_string_with_length): Declare.
13430         (lto_output_decl_state_streams): Declare.
13431         (lto_output_decl_state_refs): Declare.
13432
13433 2011-03-24  Richard Guenther  <rguenther@suse.de>
13434
13435         PR tree-optimization/46562
13436         * tree.c (build_invariant_address): New function.
13437         * tree.h (build_invariant_address): Declare.
13438         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
13439         a renamed function moved ...
13440         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
13441         Take valueization callback parameter.
13442         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
13443         * gimple-fold.h: New file.
13444         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
13445         (ccp_fold, fold_const_aggregate_ref,
13446         fold_ctor_reference, fold_nonarray_ctor_reference,
13447         fold_array_ctor_reference, fold_string_cst_ctor_reference,
13448         get_base_constructor): Move ...
13449         * gimple-fold.c: ... here.
13450         (gimple_fold_stmt_to_constant_1): New function
13451         split out from ccp_fold.  Take a valueization callback parameter.
13452         Valueize all operands.
13453         (gimple_fold_stmt_to_constant): New wrapper function.
13454         (fold_const_aggregate_ref_1): New function split out from
13455         fold_const_aggregate_ref.  Take a valueization callback parameter.
13456         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
13457         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
13458         invariant POINTER_PLUS_EXPRs to invariant form.
13459         (vn_valueize): New function.
13460         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
13461         * tree-vrp.c (vrp_valueize): New function.
13462         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
13463         to fold statements to constants.
13464         * tree-ssa-pre.c (eliminate): Properly guard propagation of
13465         function declarations.
13466         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
13467         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
13468
13469 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
13470
13471         * config/h8300/predicates.md (jump_address_operand): Fix register
13472         mode check.
13473
13474 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
13475
13476         * doc/invoke.texi (max-stores-to-sink): Document.
13477         * params.h (MAX_STORES_TO_SINK): Define.
13478         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
13479         if either vectorization or if-conversion is disabled.
13480         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
13481         tree-vect-data-refs.c vect_equal_offsets.
13482         (dr_equal_offsets_p): New function.
13483         (find_data_references_in_bb): Remove static.
13484         * tree-data-ref.h (find_data_references_in_bb): Declare.
13485         (dr_equal_offsets_p): Likewise.
13486         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
13487         (vect_drs_dependent_in_basic_block): Update calls to
13488         vect_equal_offsets.
13489         (vect_check_interleaving): Likewise.
13490         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
13491         (cond_if_else_store_replacement): Rename to...
13492         (cond_if_else_store_replacement_1): ... this.  Change arguments and
13493         documentation.
13494         (cond_if_else_store_replacement): New function.
13495         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
13496         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
13497
13498 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
13499
13500         PR target/46934
13501         * config/arm/arm.md (casesi): Use the gen_int_mode() function
13502         to subtract lower bound instead of GEN_INT().
13503
13504 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
13505
13506         PR other/48179
13507         PR other/48221
13508         PR other/48234
13509         * doc/extend.texi (Alignment): Move section to match order in TOC.
13510         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
13511         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
13512
13513 2011-03-23  Jeff Law  <law@redhat.com>
13514
13515         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
13516         before removing the edge.
13517
13518         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
13519         it may have been freed by redirect_branch_edge or
13520         redirect_edge_succ_nodup.
13521
13522 2011-03-23  Richard Guenther  <rguenther@suse.de>
13523
13524         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
13525         (check_va_list_escapes): Likewise.
13526         (check_all_va_list_escapes): Likewise.
13527
13528 2011-03-23  Richard Guenther  <rguenther@suse.de>
13529
13530         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
13531         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
13532         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
13533         (alias.o): Likewise.
13534         (ipa-type-escape.o): Remove.
13535         (ipa-struct-reorg.o): Likewise.
13536         (GTFILES): Remove ipa-struct-reorg.c.
13537         * alias.c: Do not include ipa-type-escape.h.
13538         * tree-ssa-alias.c: Likewise.
13539         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
13540         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
13541         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
13542         and ipa-type-escape passes.
13543         * tree-pass.h (pass_ipa_type_escape): Remove.
13544         (pass_ipa_struct_reorg): Likewise.
13545         * ipa-struct-reorg.h: Remove.
13546         * ipa-struct-reorg.c: Likewise.
13547         * ipa-type-escape.h: Likewise.
13548         * ipa-type-escape.c: Likewise.
13549         * doc/invoke.texi (-fipa-struct-reorg): Remove.
13550         (--param struct-reorg-cold-struct-ratio): Likewise.
13551         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
13552         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
13553         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
13554
13555 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13556
13557         * config/s390/2084.md: Enable all insn reservations also for z9_ec
13558         cpu attribute value.
13559         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
13560         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
13561         * config/s390/s390.c (processor_flags_table): New constant array.
13562         (s390_handle_arch_option): Remove.
13563         (s390_handle_option): Remove s390_handle_arch_option invocations
13564         and OPT_mwarn_framesize_ handling.
13565         (s390_option_override): Remove s390_handle_arch_option invocation.
13566         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
13567         warnings.
13568         * config/s390/s390.md (cpu attribute): Add z9_ec value.
13569         * config/s390/s390.opt (s390_tune, s390_arch)
13570         (march=): Replace s390_arch_option enum and values with
13571         processor_type.  Set variable name to s390_arch.  Set
13572         initialization value.
13573         (mtune=): Replace s390_arch_option with processor_type.  Set
13574         variable name to s390_tune.  Set initialization value.
13575
13576 2011-03-23  Julian Brown  <julian@codesourcery.com>
13577
13578         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
13579         accesses which are not naturally aligned.
13580
13581 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
13582
13583         PR target/47553
13584         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
13585
13586 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
13587
13588         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
13589         parameter from "int" to "enum insn_code".
13590         (expand_operand_type): New enum.
13591         (expand_operand): New structure.
13592         (create_expand_operand): New function.
13593         (create_fixed_operand, create_output_operand): Likewise
13594         (create_input_operand, create_convert_operand_to): Likewise.
13595         (create_convert_operand_from, create_address_operand): Likewise.
13596         (create_integer_operand): Likewise.
13597         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
13598         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
13599         (expand_insn, expand_jump_insn): Likewise.
13600         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
13601         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
13602         (expand_movstr, expand_builtin___clear_cache): Likewise.
13603         (expand_builtin_lock_release): Likewise.
13604         * explow.c (allocate_dynamic_stack_space): Likewise.
13605         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
13606         and use the default handling in that case.
13607         * expmed.c (check_predicate_volatile_ok): Delete.
13608         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
13609         (emit_cstore): Likewise.
13610         * expr.c (emit_block_move_via_movmem): Likewise.
13611         (set_storage_via_setmem, expand_assignment): Likewise.
13612         (emit_storent_insn, try_casesi): Likewise.
13613         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
13614         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
13615         (expand_vec_shift_expr, expand_binop_directly): Likewise.
13616         (expand_twoval_unop, expand_twoval_binop): Likewise.
13617         (expand_unop_direct, emit_indirect_jump): Likewise.
13618         (emit_conditional_move, vector_compare_rtx): Likewise.
13619         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
13620         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
13621         (expand_sync_lock_test_and_set): Likewise.
13622         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
13623         (emit_unop_insn): Likewise.
13624         (expand_copysign_absneg): Change icode to an insn_code.
13625         (create_convert_operand_from_type): New function.
13626         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
13627         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
13628         (expand_insn, expand_jump_insn): Likewise.
13629         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
13630         than const_int_operand for operand 2.
13631
13632 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13633
13634         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
13635         if possible.
13636
13637 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
13638
13639         * emit-rtl.c (emit_pattern_before_noloc): New function.
13640         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
13641         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
13642         (emit_pattern_after_noloc): New function.
13643         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
13644         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
13645
13646 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
13647
13648         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
13649         (__ffsDI2): Likewise.
13650
13651 2011-03-22  Richard Henderson  <rth@redhat.com>
13652
13653         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
13654         of !TARGET_ABI_OPEN_VMS.
13655         (alpha_trampoline_init, alpha_start_function): Likewise.
13656         (alpha_expand_epilogue, alpha_file_start): Likewise.
13657         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
13658         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
13659         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
13660         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
13661         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
13662
13663 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13664
13665         * config/s390/s390-opts.h: New.
13666         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
13667         s390_arch_flags, s390_warn_framesize, s390_stack_size,
13668         s390_stack_guard): Remove.
13669         (s390_handle_arch_option): Return void.  Take enum
13670         s390_arch_option value instead of string and searching array.
13671         (s390_handle_option): Don't assert that global structures are in
13672         use.  Access variables via opts pointer.  Use error_at.  Don't use
13673         sscanf for -mstack-guard= or -mstack-size=.  Update call to
13674         s390_handle_arch_option.
13675         (s390_option_override): Update call to s390_handle_arch_option.
13676         (s390_emit_prologue): Use %d format for s390_stack_size in
13677         diagnostic.  Use %wd for HOST_WIDE_INT.
13678         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
13679         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
13680         * config/s390/s390.opt (config/s390/s390-opts.h): New
13681         HeaderInclude entry.
13682         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
13683         s390_arch_flags, s390_warn_framesize): New Variable entries.
13684         (s390_arch_option): New Enum and EnumValue entries.
13685         (march=): Use Enum instead of Var.
13686         (mstack-guard=, mstack-size=): Use UInteger and Var.
13687         (mtune=): Use Enum.
13688
13689 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13690
13691         * config/score/score.c (score_handle_option): Don't assert that
13692         global structures are in use.  Access target_flags via opts
13693         pointer.  Use value of -march= option to determine target_flags
13694         settings.
13695         * config/score/score.opt (march=): Use Enum.
13696         (score_arch): New Enum and EnumValue entries.
13697
13698 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13699
13700         * config/mep/mep.c (option_mtiny_specified): Remove.
13701         (mep_option_override): Move register handling for -mivc2 from
13702         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
13703         instead of option_mtiny_specified.
13704         (mep_handle_option): Access target_flags via opts pointer.  Don't
13705         assert that global structures are in use.  Defer part of -mivc2
13706         handling and move it to mep_option_override.
13707         * config/mep/mep.opt (IVC2): New Mask entry.
13708         (mivc2): Use Var and Defer instead of Mask.
13709
13710 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13711
13712         * config/v850/v850-opts.h: New.
13713         * config/v850/v850.c (small_memory): Replace with
13714         small_memory_physical_max array.  Make that array static const.
13715         (v850_handle_memory_option): Take integer value of argument.  Take
13716         gcc_options pointer, option text and location.  Return void.
13717         Update for changes to small memory structures.
13718         (v850_handle_option): Access target_flags via opts pointer.  Don't
13719         assert that global structures are in use.  Update calls to
13720         v850_handle_memory_option.
13721         (v850_encode_data_area): Update references to small memory settings.
13722         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
13723         (enum small_memory_type): Move to v850-opts.h.
13724         * config/v850/v850.opt (config/v850/v850-opts.h): New
13725         HeaderInclude entry.
13726         (small_memory_max): New Variable entry.
13727         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
13728         (mtda, mzda): Likewise.
13729
13730 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13731
13732         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
13733         pointer.  Don't assert that global structures are in use.
13734
13735 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13736
13737         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
13738         via opts pointer.  Don't assert that global structures are in use.
13739
13740 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13741
13742         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
13743         (munix=93): Use Var.
13744         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
13745         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
13746         * config/pa/pa-opts.h: New.
13747         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
13748         (pa_handle_option): Don't assert that global structures are in
13749         use.  Access target_flags via opts pointer.  Don't handle
13750         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
13751         OPT_munix_98 here.
13752         (pa_option_override): Handle deferred OPT_mfixed_range_.
13753
13754 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13755
13756         * config/mn10300/mn10300-opts.h: New.
13757         * config/mn10300/mn10300.c (mn10300_processor,
13758         mn10300_tune_string): Remove.
13759         (mn10300_handle_option): Don't assert that global structures are
13760         in use.  Access mn10300_processor via opts pointer.  Don't handle
13761         OPT_mtune_ here.
13762         * config/mn10300/mn10300.h (enum processor_type): Move to
13763         mn10300-opts.h.
13764         (mn10300_processor): Remove.
13765         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
13766         HeaderInclude entry.
13767         (mn10300_processor): New Variable entry.
13768         (mtune=): Use Var.
13769
13770 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13771
13772         * config/microblaze/microblaze.c: Don't include opts.h.
13773         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
13774         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
13775         (mno-clearbss): Use Var and Warn.
13776
13777 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13778
13779         * config/m32r/m32r-opts.h: New.
13780         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
13781         (m32r_handle_option): Don't assert that global structures are in
13782         use.  Access target_flags and m32r_cache_flush_func via opts
13783         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
13784         OPT_mno_flush_trap here.
13785         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
13786         include of m32r-opts.h.
13787         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
13788         HeaderInclude entry.
13789         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
13790         (mmodel=): Use Enum and Var.
13791         (m32r_model): New Enum and EnumValue entries.
13792         (mno-flush-trap): Use Var.
13793         (msdata=): Use Enum and Var.
13794         (m32r_sdata): New Enum and EnumValue entries.
13795
13796 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13797
13798         * config/m32c/m32c.c: Don't include opts.h.
13799         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
13800         m32c_handle_option): Remove.
13801         (m32c_option_override): Check global_options_set.x_target_memregs
13802         instead of target_memregs_set.
13803         * config/m32c/m32c.h (target_memregs): Remove.
13804         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
13805         variable.
13806
13807 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13808
13809         * config/iq2000/iq2000-opts.h: New.
13810         * config/iq2000/iq2000.c: Don't include opts.h.
13811         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
13812         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
13813         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
13814         HeaderInclude entry.
13815         (iq2000_tune): New Variable entry.
13816         (march=): Add comment.  Use Enum.
13817         (iq2000_arch): New Enum and EnumValue entries.
13818         (mcpu=): Use Enum and Var.
13819         (iq2000_tune): New Enum and EnumValue entries.
13820
13821 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13822
13823         * config/ia64/ia64-opts.h: New.
13824         * config/ia64/ia64.c (ia64_tune): Remove.
13825         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
13826         here.  Use error_at.
13827         (ia64_option_override): Handle deferred OPT_mfixed_range_.
13828         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
13829         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
13830         HeaderInclude entry.
13831         (ia64_tune): New Variable entry.
13832         (mfixed-range=): Use Defer and Var.
13833         (mtune=): Use Enum and Var.
13834         (ia64_tune): New Enum and EnumValue entries.
13835
13836 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13837
13838         * config/frv/frv-opts.h: New.
13839         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
13840         frv-opts.h.
13841         (frv_cpu_type): Remove.
13842         * config/frv/frv.c: Don't include opts.h.
13843         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
13844         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
13845         (frv_cpu_type): New Variable entry.
13846         (frv_cpu): New Enum and EnumValue entries.
13847
13848 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13849
13850         * config/cris/cris.c (cris_handle_option): Access target_flags via
13851         opts pointer.  Don't assert that global structures are in use.
13852         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
13853         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
13854
13855 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13856
13857         * config/bfin/bfin-opts.h: New.
13858         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
13859         bfin_si_revision, bfin_workarounds): Remove.
13860         (bfin_cpus): Make static const.
13861         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
13862         not bfin_lib_id_given.
13863         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
13864         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
13865         pointer. Use error_at.  Don't assert that global structures are in use.
13866         * config/bfin/bfin.h: Include bfin-opts.h.
13867         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
13868         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
13869         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
13870         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
13871         entries.
13872
13873 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13874
13875         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
13876         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
13877         or -msoft-float here.
13878         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
13879         -msoft-float and -mhard-float.
13880         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
13881         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
13882         msoft-float.
13883         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
13884         -msoft-float.
13885         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
13886         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
13887         not mhard-float.
13888         (LIBGCC_SPEC): Don't handle -msoft-float.
13889         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
13890         -mhard-float.
13891         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
13892         msoft-float.
13893         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
13894         -mfloat-abi=*, not -msoft-float and -mhard-float.
13895         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
13896         -msoft-float.
13897         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
13898         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
13899         mhard-float and msoft-float.
13900         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
13901         mfloat-abi=soft in comments, not mhard-float and msoft-float.
13902         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
13903         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
13904         mhard-float.
13905         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
13906         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
13907         msoft-float.
13908         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
13909         not mhard-float.
13910         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
13911         not msoft-float.
13912
13913 2011-03-22  Richard Henderson  <rth@redhat.com>
13914
13915         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
13916         TARGET_ABI_WINDOWS_NT.
13917         (alpha_output_function_end_prologue): Likewise.
13918         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
13919         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
13920         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
13921         (trap, *movsi_nt_vms): Likewise.
13922         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
13923         (*tablejump_osf_nt_internal): Remove.
13924         * config/alpha/predicates.md (input_operand): Only test Pmode.
13925
13926 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13927
13928         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
13929         via opts pointer.  Use error_at.  Don't assert that global
13930         structures are in use.
13931
13932 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13933
13934         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
13935         (ix86_handle_option): Access ix86_isa_flags and
13936         ix86_isa_flags_explicit via opts pointer.  Don't assert that
13937         global structures are in use.
13938         (ix86_function_specific_save, ix86_function_specific_restore):
13939         Update ix86_isa_flags_explicit field name.
13940         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
13941         (ix86_isa_flags_explicit): Rename TargetSave entry to
13942         x_ix86_isa_flags_explicit.
13943
13944 2011-03-22  Richard Henderson  <rth@redhat.com>
13945
13946         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
13947         (alpha_option_override, direct_return): Likewise.
13948         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
13949         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
13950         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
13951         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
13952         (alpha_expand_epilogue, alpha_end_function): Likewise.
13953         (alpha_init_libfuncs): Likewise.
13954         (struct machine_function): Remove unicosmk members.
13955         (print_operand) ['t']: Remove.
13956         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
13957         unicosmk_output_module_name, unicosmk_output_common,
13958         current_section_align, unicosmk_output_text_section_asm_op,
13959         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
13960         unicosmk_section_type_flags, unicosmk_unique_section,
13961         unicosmk_asm_named_section, unicosmk_insert_attributes,
13962         unicosmk_output_align, unicosmk_defer_case_vector,
13963         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
13964         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
13965         unicosmk_output_ssib, unicosmk_add_call_info_word,
13966         unicosmk_extern_head, unicosmk_output_default_externs,
13967         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
13968         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
13969         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
13970         * config/alpha/alpha-protos.h: Update.
13971         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
13972         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
13973         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
13974         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
13975         (*mulsi_se, mulvsi3): Likewise.
13976         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
13977         (*divmodsi_internal, call, call_value, realign): Likewise.
13978         (moddi3, umoddi3): Likewise; remove duplicate expander.
13979         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
13980         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
13981         (*movdi_nofix): Remove r/U alternative.
13982         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
13983         * config/alpha/constraints.md ("U"): Remove.
13984         * config/alpha/predicates.md (call_operand"): Don't test
13985         TARGET_ABI_UNICOSMK.
13986
13987 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13988
13989         * target.def (handle_option): Take gcc_options and
13990         cl_decoded_option pointers and location_t.
13991         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
13992         * doc/tm.texi: Regenerate.
13993         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
13994         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
13995         * lto-opts.c (lto_reissue_options): Generate option structure for
13996         targetm.handle_option call.
13997         * opts.c (target_handle_option): Update call to
13998         targetm.handle_option.  Remove assertions about values now passed
13999         down to hook.
14000         * targhooks.c (default_target_handle_option): New.
14001         * targhooks.h (default_target_handle_option): Declare.
14002         * config/alpha/alpha.c: Include opts.h.
14003         (alpha_handle_option): Update to new hook interface.
14004         * config/arm/arm.c: Include opts.h.
14005         (arm_handle_option): Update to new hook interface.
14006         * config/arm/t-arm (arm.o): Update dependencies.
14007         * config/bfin/bfin.c: Include opts.h.
14008         (bfin_handle_option): Update to new hook interface.
14009         * config/cris/cris.c: Include opts.h.
14010         (cris_handle_option): Update to new hook interface.
14011         * config/frv/frv.c: Include opts.h.
14012         (frv_handle_option): Update to new hook interface.
14013         * config/i386/i386.c: Include opts.h.
14014         (ix86_handle_option): Update to new hook interface.
14015         (ix86_valid_target_attribute_inner_p): Generate option structure
14016         for call to ix86_handle_option.
14017         * config/i386/t-i386 (i386.o): Update dependencies.
14018         * config/ia64/ia64.c: Include opts.h.
14019         (ia64_handle_option): Update to new hook interface.
14020         * config/ia64/t-ia64 (ia64.o): Update dependencies.
14021         * config/iq2000/iq2000.c: Include opts.h.
14022         (iq2000_handle_option): Update to new hook interface.
14023         * config/m32c/m32c.c: Include opts.h.
14024         (m32c_handle_option): Update to new hook interface.
14025         * config/m32r/m32r.c: Include opts.h.
14026         (m32r_handle_option): Update to new hook interface.
14027         * config/m68k/m68k.c: Include opts.h.
14028         (m68k_handle_option): Update to new hook interface.
14029         * config/mep/mep.c: Include opts.h.
14030         (mep_handle_option): Update to new hook interface.
14031         * config/microblaze/microblaze.c: Include opts.h.
14032         (microblaze_handle_option): Update to new hook interface.
14033         * config/mips/mips.c: Include opts.h.
14034         (mips_handle_option): Update to new hook interface.
14035         * config/mn10300/mn10300.c: Include opts.h.
14036         (mn10300_handle_option): Update to new hook interface.
14037         * config/pa/pa.c: Include opts.h.
14038         (pa_handle_option): Update to new hook interface.
14039         * config/pdp11/pdp11.c: Include opts.h.
14040         (pdp11_handle_option): Update to new hook interface.
14041         * config/rs6000/rs6000.c: Include opts.h.
14042         (rs6000_handle_option): Update to new hook interface.
14043         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
14044         * config/rx/rx.c: Include opts.h.
14045         (rx_handle_option): Update to new hook interface.
14046         * config/s390/s390.c: Include opts.h.
14047         (s390_handle_option): Update to new hook interface.
14048         * config/score/score.c: Include opts.h.
14049         (score_handle_option): Update to new hook interface.
14050         * config/sh/sh.c: Include opts.h.
14051         (sh_handle_option): Update to new hook interface.
14052         * config/sparc/sparc.c: Include opts.h.
14053         (sparc_handle_option): Update to new hook interface.
14054         * config/v850/v850.c: Include opts.h.
14055         (v850_handle_option): Update to new hook interface.
14056
14057 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
14058
14059         * gcc.c (driver_unknown_option_callback): Only permit and save
14060         unknown -Wno- options.
14061         (driver_wrong_lang_callback): Save options directly instead of via
14062         driver_unknown_option_callback.
14063
14064 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
14065
14066         * combine.c (simplify_set): Try harder to find the best CC mode when
14067         simplifying a nested COMPARE on the RHS.
14068
14069 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
14070
14071         * config/alpha/gnu.h: Remove.
14072         * config/arc: Remove directory.
14073         * config/arm/netbsd.h: Remove.
14074         * config/arm/t-pe: Remove.
14075         * config/crx: Remove directory.
14076         * config/i386/netbsd.h: Remove.
14077         * config/m68hc11: Remove directory.
14078         * config/m68k/uclinux-oldabi.h: Remove.
14079         * config/mcore/mcore-pe.h: Remove.
14080         * config/mcore/t-mcore-pe: Remove.
14081         * config/netbsd-aout.h: Remove.
14082         * config/rs6000/gnu.h: Remove.
14083         * config/sh/sh-symbian.h: Remove.
14084         * config/sh/symbian-base.c: Remove.
14085         * config/sh/symbian-c.c: Remove.
14086         * config/sh/symbian-cxx.c: Remove.
14087         * config/sh/symbian-post.h: Remove.
14088         * config/sh/symbian-pre.h: Remove.
14089         * config/sh/t-symbian: Remove.
14090         * config/svr3.h: Remove.
14091         * config/vax/netbsd.h: Remove.
14092         * config.build: Don't handle i[34567]86-*-pe.
14093         * config.gcc: Remove handling of deprecations for most deprecated
14094         targets.
14095         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
14096         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
14097         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
14098         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
14099         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
14100         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
14101         Remove cases.
14102         * config.host: Don't handle i[34567]86-*-pe.
14103         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
14104         (ASM_SPEC32): Don't handle -mcall-gnu.
14105         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
14106         -mcall-gnu.
14107         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
14108         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
14109         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
14110         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
14111         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
14112         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
14113         conditional on SYMBIAN.
14114         * configure.ac: Don't handle powerpc*-*-gnu*.
14115         * configure: Regenerate.
14116         * doc/extend.texi (interrupt attribute): Don't mention CRX.
14117         * doc/install-old.texi (m6811, m6812): Don't mention.
14118         * doc/install.texi (arc-*-elf*): Don't document multilib option.
14119         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
14120         (m68k-uclinuxoldabi): Don't mention.
14121         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
14122         Remove.
14123         (-mcall-gnu): Remove.
14124         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
14125         families): Remove constraint documentation.
14126
14127 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
14128
14129         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
14130         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
14131         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
14132
14133 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
14134
14135         PR target/48226
14136         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
14137         vector when peeking at the next token for vector, don't expand the
14138         keywords.
14139
14140 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
14141
14142         * config/avr/avr-protos.h (expand_epilogue): Change prototype
14143         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
14144         * config/avr/avr.c (init_cumulative_args)
14145         (avr_function_arg_advance): Use it.
14146         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
14147         sibcall epilogues.
14148         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
14149         (avr_function_ok_for_sibcall): ...this new function.
14150         (avr_lookup_function_attribute1): New static Function.
14151         (avr_naked_function_p, interrupt_function_p)
14152         (signal_function_p, avr_OS_task_function_p)
14153         (avr_OS_main_function_p): Use it.
14154         * config/avr/avr.md ("sibcall", "sibcall_value")
14155         ("sibcall_epilogue"): New expander.
14156         ("*call_insn", "*call_value_insn"): New insn.
14157         ("call_insn", "call_value_insn"): Remove
14158         ("call", "call_value", "epilogue"): Change expander to handle
14159         sibling calls.
14160
14161 2011-03-21  Nick Clifton  <nickc@redhat.com>
14162
14163         * doc/invoke.texi (Overall Options): Move closing brace to end of
14164         options list.
14165         (Optimization Options): Add missing @gol.
14166         (Directory Options): Likewise.
14167         (i386 and x86-64 Options): Likewise.
14168         (RS6000 and PowerPC Options): Likewise.
14169         (i386 and x86-64 Windows Options): Likewise.
14170         (V850 Options): Add text missing from descriptions.
14171
14172 2011-03-22  Richard Henderson  <rth@redhat.com>
14173
14174         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
14175         (avr_incoming_return_addr_rtx): New.
14176         (emit_push_byte): New.
14177         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
14178         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
14179         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
14180         (emit_pop_byte): New.
14181         (expand_epilogue): Use it.  Pop frame pointer by bytes.
14182         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
14183         (INCOMING_RETURN_ADDR_RTX): New.
14184         (INCOMING_FRAME_SP_OFFSET): New.
14185         (ARG_POINTER_CFA_OFFSET): New.
14186         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
14187         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
14188         (pophi): Remove.
14189
14190         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
14191
14192 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
14193
14194         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
14195         (FUNCTION_ARG_ADVANCE): Likewise.
14196         * tm.texi.in: Change references to them to hook references.
14197         * tm.texi: Regenerate.
14198         * targhooks.c (default_function_arg): Eliminate check for target
14199         macro.
14200         (default_function_incoming_arg): Likewise.
14201         (default_function_arg_advance): Likewise.
14202         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
14203         (function_arg_advance): Likewise.
14204         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
14205
14206 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
14207
14208         * tree.c (build_call_1): New function.
14209         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
14210
14211 2011-03-22  Richard Guenther  <rguenther@suse.de>
14212
14213         PR tree-optimization/48228
14214         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
14215         for single-arg PHIs.
14216
14217 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
14218
14219         PR rtl-optimization/48143
14220         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
14221         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
14222         sse2_cvtps2pd): Likewise.
14223
14224 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14225
14226         * recog.c (canonicalize_change_group): Use validate_unshare_change.
14227
14228 2011-03-22  Richard Guenther  <rguenther@suse.de>
14229
14230         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
14231         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
14232         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
14233         and REALIGN_LOAD_EXPR.
14234         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
14235         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
14236         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
14237         DOT_PROD_EXPR case ...
14238         (expand_expr_real_2): ... here.
14239         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
14240         and REALIGN_LOAD_EXPR.
14241         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
14242         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
14243         (vect_create_epilog_for_reduction): Likewise.
14244         (vectorizable_reduction): Likewise.
14245         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
14246         * tree-vect-stmts.c (vectorizable_load): Likewise.
14247
14248 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
14249
14250         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
14251
14252 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14253
14254         * config/s390/s390.c (s390_delegitimize_address): Fix offset
14255         handling for PLTOFF/GOTOFF.
14256
14257 2011-03-22  Nick Clifton  <nickc@redhat.com>
14258
14259         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
14260         trailing backslash from the end of the macro definition.
14261
14262 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14263
14264         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
14265         and PLT unspecs.
14266
14267 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
14268
14269         * expr.h (prepare_operand): Move to...
14270         * optabs.h (prepare_operand): ...here and change the insn code
14271         parameter from "int" to "enum insn_code".
14272         (insn_operand_matches): Declare.
14273         * expr.c (init_expr_target): Use insn_operand_matches.
14274         (compress_float_constant): Likewise.
14275         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
14276         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
14277         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
14278         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
14279         Likewise.
14280         (gen_cond_trap): Likewise.
14281         (prepare_operand): Likewise.  Change icode to an insn_code.
14282         (insn_operand_matches): New function.
14283         * reload.c (find_reloads_address_1): Use insn_operand_matches.
14284         * reload1.c (gen_reload): Likewise.
14285         * targhooks.c (default_secondary_reload): Likewise.
14286
14287 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
14288
14289         * config/alpha/alpha.md (unspec): New define_c_enum.
14290         (unspecv): Ditto.
14291
14292 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
14293
14294         PR debug/48214
14295         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
14296         between a call and its CALL_ARG_LOCATION note.
14297
14298 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
14299
14300         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
14301
14302 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
14303
14304         PR c/42544
14305         PR c/48197
14306         * c-common.c (shorten_compare): If primopN is first sign-extended
14307         to opN and then zero-extended to result type, set primopN to opN.
14308
14309 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
14310
14311         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
14312         for barrier handlers.
14313
14314 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
14315
14316         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
14317         UNSPEC constants to be in the unspec enumeration, and redefine
14318         all UNSPECV constants to be in the unspecv enumeration, so that
14319         dumps print which unspec/unspec_volatile this is.
14320         * config/rs6000/vector.md (UNSPEC_*): Ditto.
14321         * config/rs6000/paired.md (UNSPEC_*): Ditto.
14322         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
14323         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
14324         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
14325
14326         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
14327         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
14328         UNSPECV_LWSYNC, since these are used as unspec_volatile.
14329         * config/rs6000/sync.md (isync, lwsync): Ditto.
14330
14331 2011-03-21  Richard Guenther  <rguenther@suse.de>
14332
14333         * params.def (lto-min-partition): Fix typo.
14334
14335 2011-03-21  Richard Guenther  <rguenther@suse.de>
14336
14337         PR c/47939
14338         * c-decl.c (grokdeclarator): Drop to the main variant only
14339         for array types.  Drop flag_gen_aux_info check.
14340
14341 2011-03-21  Richard Guenther  <rguenther@suse.de>
14342
14343         PR translation/47911
14344         * params.def (lto-partitions): Fix typo.
14345         (lto-min-partition): Fix wording.
14346
14347 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
14348
14349         * config/rs6000/t-freebsd: Remove duplication from file.
14350
14351 2011-03-21  Richard Guenther  <rguenther@suse.de>
14352
14353         PR middle-end/47661
14354         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
14355
14356 2011-03-21  Richard Guenther  <rguenther@suse.de>
14357
14358         PR lto/48210
14359         * params.def (lto-partitions): Require at least 1 partition.
14360
14361 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14362
14363         * gthr-solaris.h: Remove.
14364         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
14365         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
14366         (LIB_SPEC): Likewise.
14367         * config/sol2.opt (threads): Remove.
14368         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
14369         (sparc*-*-solaris2*): Likewise.
14370         * configure.ac (enable_threads): Enable solaris support.
14371         * configure: Regenerate.
14372         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
14373         * doc/install.texi (Configuration, --enable-threads=lib): Remove
14374         solaris.
14375
14376 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14377
14378         * config.gcc: Obsolete *-*-solaris2.8*.
14379         * doc/install.texi (Specific, *-*-solaris2*): Document it.
14380
14381 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14382
14383         PR bootstrap/48135
14384         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
14385         reference.  Solaris 8 perl works.
14386
14387 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14388
14389         PR bootstrap/48135
14390         * doc/install.texi (Prerequisites): Move jar etc. up.
14391         Explain support library version requirements.
14392
14393 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14394
14395         PR bootstrap/48135
14396         * doc/install.texi (Prerequisites): Move Perl to build
14397         requirements.  Always necessary on Solaris 2 with Sun ld.
14398
14399 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14400
14401         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
14402         binutils 2.21.
14403         (Specific, i?86-*-solaris2.[89]): Likewise.
14404         (Specific, i?86-*-solaris2.10): Likewise.
14405         (Specific, mips-sgi-irix6): Likewise.
14406         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
14407         Update for binutils 2.21.
14408
14409 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14410
14411         * configure.ac (gcc_cv_lto_plugin): Fix typo.
14412         Allow -fuse-linker-plugin for non-default plugin linker.
14413         * configure: Regenerate.
14414
14415 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
14416
14417         PR bootstrap/48167
14418         * gengtype.c (files_rules): Added rule for cp/parser.h.
14419
14420 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
14421
14422         PR target/48213
14423         * config/s390/s390.c (s390_delegitimize_address): Don't call
14424         lowpart_subreg if orig_x has BLKmode.
14425
14426 2011-03-21  Kai Tietz  <ktietz@redhat.com>
14427
14428         PR target/12171
14429         * doc/plugins.texi: Adjust documentation for plugin register_callback.
14430         * tree.h (attribute_spec): Add new member affects_type_identity.
14431         * attribs.c (empty_attribute_table): Adjust attribute_spec
14432         initializers.
14433         * config/alpha/alpha.c: Likewise.
14434         * config/arc/arc.c: Likewise.
14435         * config/arm/arm.c: Likewise.
14436         * config/avr/avr.c: Likewise.
14437         * config/bfin/bfin.c: Likewise.
14438         * config/crx/crx.c: Likewise.
14439         * config/darwin.h: Likewise.
14440         * config/h8300/h8300.c: Likewise.
14441         * config/i386/cygming.h: Likewise.
14442         * config/i386/i386.c: Likewise.
14443         * config/ia64/ia64.c: Likewise.
14444         * config/m32c/m32c.c: Likewise.
14445         * config/m32r/m32r.c: Likewise.
14446         * config/m68hc11/m68hc11.c: Likewise.
14447         * config/m68k/m68k.c: Likewise.
14448         * config/mcore/mcore.c: Likewise.
14449         * config/mep/mep.c: Likewise.
14450         * config/microblaze/microblaze.c: Likewise.
14451         * config/mips/mips.c: Likewise.
14452         * config/rs6000/rs6000.c: Likewise.
14453         * config/rx/rx.c: Likewise.
14454         * config/sh/sh.c: Likewise.
14455         * config/sol2.h: Likewise.
14456         * config/sparc/sparc.c: Likewise.
14457         * config/spu/spu.c: Likewise.
14458         * config/stormy16/stormy16.c: Likewise.
14459         * config/v850/v850.c: Likewise.
14460
14461 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
14462
14463         * simplify-rtx.c (simplify_binary_operation_1): Handle
14464         (xor (and A B) C) case when B and C are both constants.
14465
14466 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
14467
14468         * tree-dfa.c (add_referenced_var): Fix typo in comment.
14469
14470 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
14471
14472         PR bootstrap/48168
14473         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
14474
14475 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
14476
14477         PR rtl-optimization/48156
14478         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
14479         assume df and df_lr are not NULL.
14480
14481 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14482
14483         PR debug/48023
14484         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
14485         between a call and its CALL_ARG_LOCATION note.
14486
14487 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
14488
14489         PR debug/48178
14490         * config/sh/sh.c (find_barrier): Don't emit a constant pool
14491         between a call and its corresponding CALL_ARG_LOCATION note.
14492
14493 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
14494
14495         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
14496         instead of loop. Use HARD_REGISTER_NUM_P predicate.
14497         * haifa-sched.c (setup_ref_regs): Ditto.
14498         * caller-save.c (add_used_regs_1): Ditto.
14499         * dse.c (look_for_hardregs): Ditto.
14500         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
14501         * sched-rgn.c (check_live_1): Ditto.
14502
14503 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
14504
14505         * c-decl.c (diagnose_mismatched_decls): Give an error for
14506         redefining a typedef with variably modified type.
14507
14508 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
14509
14510         * c-decl.c (grokfield): Don't allow typedefs for structures or
14511         unions with no tag by default.
14512         * doc/extend.texi (Unnamed Fields): Update.
14513
14514 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
14515
14516         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
14517         Rewrite using indirect functions.
14518         (lwp_slwpcb): Ditto.
14519         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
14520         (avx_vinsertf128<mode>): Ditto.
14521
14522 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14523
14524         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
14525         unspecs.
14526
14527 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14528
14529         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
14530         splitting between a call and its corresponding CALL_ARG_LOCATION note.
14531
14532 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14533
14534         PR rtl-optimization/48170
14535         * gcse.c (hoist_code): Remove bogus asserts.
14536
14537 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
14538
14539         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
14540         computation for prologue/epilogue.
14541
14542 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14543
14544         * Makefile.in (check-consistency): Remove.
14545
14546 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
14547
14548         PR debug/48176
14549         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
14550         arange_table_in_use is 0, but either text_section_used or
14551         cold_text_section_used is true.  Don't call it if
14552         !info_section_emitted.
14553
14554 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
14555
14556         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
14557         FUNCTION_VALUE_REGNO_P): Remove.
14558         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
14559         Remove.
14560         * config/avr/avr.c (avr_ret_register): Make static inline.
14561         (avr_function_value_regno_p): New function.
14562         (avr_libcall_value): Make static. Add 'func' argument.
14563         (avr_function_value): Make static. Rename 'func' argument to
14564         'fn_decl_or_type', forward it to avr_libcall_value. Call
14565         avr_ret_register function instead of RET_REGISTER macro.
14566         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14567
14568 2011-03-18  Jason Merrill  <jason@redhat.com>
14569
14570         PR c++/23372
14571         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
14572
14573 2011-03-18  Richard Guenther  <rguenther@suse.de>
14574
14575         * doc/install.texi (--enable-gold): Remove.
14576         (--with-plugin-ld): Document.
14577         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
14578
14579 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
14580
14581         PR middle-end/47790
14582         * expr.c (optimize_bitfield_assignment_op): Revamp to work
14583         again after expansion changes.
14584
14585 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
14586
14587         * combine.c (try_combine): Do simplification only call of
14588         subst() on i2 even when i1 is present. Update comments.
14589
14590 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
14591
14592         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
14593         and UNSPEC_PCREL_SYMOFF.
14594
14595 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14596
14597         * config/s390/s390.md: Use define_c_enum for the unspec constant
14598         definitions.
14599
14600 2011-03-18  Richard Henderson  <rth@redhat.com>
14601             Jakub Jelinek  <jakub@redhat.com>
14602
14603         PR bootstrap/48161
14604         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
14605         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
14606
14607 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14608
14609         PR middle-end/47725
14610         * combine.c (cant_combine_insn_p): Don't check zero/sign
14611         extended hard registers.
14612
14613 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14614
14615         PR middle-end/47725
14616         * combine.c (cant_combine_insn_p): Check zero/sign extended
14617         hard registers.
14618
14619 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
14620
14621         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14622         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
14623         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
14624         Change return type to bool.
14625         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14626
14627 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
14628
14629         PR debug/48163
14630         * var-tracking.c (prepare_call_arguments): If CALL target
14631         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
14632         pc instead of looking it up using cselib_lookup and use
14633         Pmode for it if x has VOIDmode.
14634         * dwarf2out.c (gen_subprogram_die): If also both first and
14635         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
14636
14637         PR debug/48163
14638         * function.c (assign_parms): For data.passed_pointer parms
14639         use MEM of data.entry_parm instead of data.entry_parm itself
14640         as DECL_INCOMING_RTL.
14641         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
14642         also when passed and declared mode is the same, DECL_RTL
14643         is a MEM with pseudo as address and DECL_INCOMING_RTL is
14644         a MEM too.
14645
14646 2011-03-16  Jeff Law  <law@redhat.com>
14647
14648         PR rtl-optimization/37273
14649         * ira-costs.c (scan_one_insn): Detect constants living in memory and
14650         handle them like argument loads from stack slots.  Do not double
14651         count memory for memory constants and argument loads from stack slots.
14652
14653 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14654
14655         PR debug/48160
14656         * var-tracking.c (prepare_call_arguments): Check SUBREG.
14657
14658 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14659
14660         PR target/48171
14661         * config/i386/i386.opt: Add Save to -mavx and -mfma.
14662
14663 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
14664
14665         PR bootstrap/48153
14666         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
14667         if dwarf_strict.
14668         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
14669         Clear call_arg_locations and call_arg_loc_last always.
14670
14671         PR middle-end/48152
14672         * var-tracking.c (prepare_call_arguments): If argument needs to be
14673         passed by reference, adjust argtype and mode.
14674
14675 2011-03-17  Richard Guenther  <rguenther@suse.de>
14676
14677         PR middle-end/48134
14678         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
14679         a value make sure to fold the statement.
14680
14681 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
14682
14683         PR target/43872
14684         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
14685         return condition with !cfun->calls_alloca.
14686
14687 2011-03-17  Richard Guenther  <rguenther@suse.de>
14688
14689         PR bootstrap/48148
14690         * lto-cgraph.c (input_overwrite_node): Clear the abstract
14691         origin for decls in other ltrans units.
14692         (input_varpool_node): Likewise.
14693
14694 2011-03-17  Richard Guenther  <rguenther@suse.de>
14695
14696         PR middle-end/48165
14697         * tree-object-size.c (compute_object_offset): Properly return
14698         the offset operand of MEM_REFs as sizetype.
14699
14700 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
14701
14702         PR rtl-optimization/48141
14703         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
14704         * dse.c: Include params.h.
14705         (active_local_stores_len): New variable.
14706         (add_wild_read, dse_step1): Clear it when setting active_local_stores
14707         to NULL.
14708         (record_store, check_mem_read_rtx): Decrease it when removing
14709         from the chain.
14710         (scan_insn): Likewise.  Increase it when adding to chain, if it
14711         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
14712         set active_local_stores to NULL before the addition.
14713         * Makefile.in (dse.o): Depend on $(PARAMS_H).
14714
14715         PR rtl-optimization/48141
14716         * dse.c (record_store): If no positions are needed in an insn
14717         that cannot be deleted, at least unchain it from active_local_stores.
14718
14719 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
14720
14721         PR debug/47510
14722         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
14723         (lookup_type_die_strip_naming_typedef): ... here.
14724         (get_context_die): Use it.
14725         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
14726         the anonymous struct named by the naming typedef.
14727
14728 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
14729
14730         PR target/48154
14731         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
14732         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
14733
14734 2011-03-16  Jeff Law  <law@redhat.com>
14735
14736         * tree-vrp.c (identify_jump_threads): Slightly simplify type
14737         check for operands of conditional.  Allow type to be a pointer.
14738
14739 2011-03-16  Richard Guenther  <rguenther@suse.de>
14740
14741         PR tree-optimization/48149
14742         * fold-const.c (fold_binary_loc): Fold
14743         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
14744
14745 2011-03-16  Richard Guenther  <rguenther@suse.de>
14746
14747         PR tree-optimization/26134
14748         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
14749         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
14750         (non_rewritable_mem_ref_base): Handle complex type component
14751         accesses, constrain offsets for vector and complex extracts
14752         more properly.
14753
14754 2011-03-16  Richard Guenther  <rguenther@suse.de>
14755
14756         PR tree-optimization/48146
14757         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
14758         operands avoiding the need for renaming.
14759
14760 2011-03-16  Richard Guenther  <rguenther@suse.de>
14761
14762         * gimple-fold.c (maybe_fold_reference): Open-code relevant
14763         constant folding.  Move MEM_REF canonicalization first.
14764         Rely on fold_const_aggregate_ref for initializer folding.
14765         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
14766
14767 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
14768
14769         PR middle-end/48136
14770         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
14771         arg0/arg1 or their arguments are always fold converted to matching
14772         types.
14773
14774         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
14775         to nargs.
14776
14777 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14778
14779         PR lto/46944
14780         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
14781         Handle in-tree gold.
14782         (ld_vers): Extract binutils version for gold.
14783         (gcc_cv_ld_hidden): Handle gold here.
14784         (gcc_cv_lto_plugin): Determine level of linker plugin support.
14785         * configure: Regenerate.
14786         * config.in: Regenerate.
14787         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
14788         -fuse-linker-plugin otherwise.
14789         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
14790         (LINK_COMMAND_SPEC): Use it.
14791         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
14792
14793 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
14794
14795         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
14796         * calls.c: Remove debug.h include.
14797         (emit_call_1): Don't call virtual_call_token debug hook.
14798         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
14799         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
14800         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
14801         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
14802         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
14803         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
14804         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
14805         dwarf2out_virtual_call): Remove.
14806         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
14807         copy_call_info and virtual_call hooks.
14808         (dwarf2out_init): Don't initialize vcall_insn_table,
14809         debug_dcall_section and debug_vcall_section.
14810         (prune_unused_types): Don't mark nodes from dcall_table.
14811         (dwarf2out_finish): Don't output dcall or vcall tables.
14812         * final.c (final_scan_insn): Don't call direct_call or
14813         virtual_call debug hooks.
14814         * debug.h (struct gcc_debug_hooks): Remove direct_call,
14815         virtual_call_token, copy_call_info and virtual_call hooks.
14816         (debug_nothing_uid): Remove prototype.
14817         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
14818         copy_call_info and virtual_call hooks.
14819         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
14820         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
14821         * debug.c (do_nothing_debug_hooks): Likewise.
14822         (debug_nothing_uid): Remove.
14823         * doc/invoke.texi (-fenable-icf-debug): Remove.
14824         * common.opt (-fenable-icf-debug): Likewise.
14825
14826         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
14827         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
14828         call's MEM.  Handle functions returning aggregate through a hidden
14829         first pointer.  For virtual calls add clobbered pc to call arguments
14830         chain.
14831         * dwarf2out.c (gen_subprogram_die): Emit
14832         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
14833         can't be emitted.
14834
14835         PR debug/45882
14836         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
14837         * rtl.h (ENTRY_VALUE_EXP): Define.
14838         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
14839         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
14840         * print-rtl.c (print_rtx): Likewise.
14841         * gengtype.c (adjust_field_rtx_def): Likewise.
14842         * var-tracking.c (vt_add_function_parameter): Adjust
14843         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
14844         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
14845         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
14846         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
14847         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
14848
14849         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
14850         Call var_location debug hook even on CALL_INSNs.
14851         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
14852         * rtl.def (ENTRY_VALUE): New.
14853         * dwarf2out.c: Include cfglayout.h.
14854         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
14855         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
14856         (struct call_arg_loc_node): New type.
14857         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
14858         tail_call_site_count): New variables.
14859         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
14860         DW_TAG_GNU_call_site_parameter.
14861         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
14862         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
14863         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
14864         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
14865         and DW_AT_GNU_all_source_call_sites.
14866         (mem_loc_descriptor): Handle ENTRY_VALUE.
14867         (add_src_coords_attributes): Don't add enything if
14868         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
14869         (dwarf2out_abstract_function): Save and clear call_arg_location,
14870         call_site_count and tail_call_site_count around dwarf2out_decl call.
14871         (gen_call_site_die): New function.
14872         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
14873         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
14874         (dwarf2out_function_decl): Clear call_arg_locations,
14875         call_arg_loc_last, set call_site_count and tail_call_site_count
14876         to -1 and free block_map.
14877         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
14878         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
14879         followed by any real instructions.
14880         (dwarf2out_begin_function): Set call_site_count and
14881         tail_call_site_count to 0.
14882         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
14883         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
14884         attempt to force a DIE for it and worst case remove the attribute.
14885         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
14886         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
14887         the decl itself.
14888         * var-tracking.c: Include tm_p.h.
14889         (vt_stack_adjustments): For calls call note_register_arguments.
14890         (argument_reg_set): New variable.
14891         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
14892         ensure the VALUE is resolved.
14893         (call_arguments): New variable.
14894         (prepare_call_arguments): New function.
14895         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
14896         (struct expand_loc_callback_data): Add ignore_cur_loc field.
14897         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
14898         always use the best expression.
14899         (vt_expand_loc): Add ignore_cur_loc argument.
14900         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
14901         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
14902         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
14903         note for all calls.
14904         (vt_add_function_parameter): Use cselib_lookup_from_insn.
14905         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
14906         argument.  Don't call cselib_preserve_only_values and
14907         cselib_reset_table.
14908         (note_register_arguments): New function.
14909         (vt_initialize): Compute argument_reg_set.  Call
14910         vt_add_function_parameters before processing basic blocks instead of
14911         afterwards.  For calls call prepare_call_arguments before calling
14912         cselib_process_insn.
14913         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
14914         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
14915         (var-tracking.o): Depend on $(TM_P_H).
14916         * cfglayout.h (insn_scope): New prototype.
14917         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
14918         * cfglayout.c (insn_scope): No longer static.
14919         * insn-notes.def (CALL_ARG_LOCATION): New.
14920         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
14921         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
14922         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
14923         nothing for DECL_EXTERNAL BLOCK_VARS.
14924
14925 2011-03-16  Alan Modra  <amodra@gmail.com>
14926
14927         PR target/45844
14928         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
14929         create invalid offset address for vsx splat insn.
14930         * config/rs6000/predicates.md (splat_input_operand): New.
14931         * config/rs6000/vsx.md (vsx_splat_*): Use it.
14932
14933 2011-03-15  Xinliang David Li  <davidxl@google.com>
14934
14935         PR c/47837
14936         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
14937         (normalize_preds): New function.
14938         (is_use_properly_guarded): Normalize def predicates.
14939
14940 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14941
14942         PR target/46788
14943         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
14944         in the output template.
14945
14946 2011-03-15  Richard Guenther  <rguenther@suse.de>
14947
14948         PR middle-end/47650
14949         * tree-pretty-print.c (dump_function_declaration): Properly
14950         dump unprototyped and varargs function types.
14951
14952 2011-03-15  Richard Guenther  <rguenther@suse.de>
14953
14954         PR tree-optimization/13954
14955         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
14956         and friends.
14957
14958 2011-03-15  Richard Guenther  <rguenther@suse.de>
14959
14960         PR tree-optimization/48037
14961         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
14962         selects into BIT_FIELD_REFs.
14963         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
14964         vector select.
14965
14966 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
14967
14968         PR tree-optimization/48129
14969         * builtins.c (fold_builtin_snprintf): Convert to type of
14970         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
14971         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
14972
14973 2011-03-15  Richard Guenther  <rguenther@suse.de>
14974
14975         PR tree-optimization/41490
14976         * tree-ssa-dce.c (propagate_necessity): Handle returns without
14977         value but with VUSE.
14978         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
14979         return statements.
14980         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
14981         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
14982         * tree-tailcall.c (find_tail_calls): Ignore returns.
14983
14984 2011-03-15  Richard Guenther  <rguenther@suse.de>
14985
14986         PR middle-end/48031
14987         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
14988         or variable-indexed array accesses when in gimple form.
14989
14990 2011-03-15  Richard Guenther  <rguenther@suse.de>
14991
14992         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
14993
14994 2011-03-15  Alan Modra  <amodra@gmail.com>
14995
14996         PR target/48032
14997         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
14998         presume symbol_refs without a symbol_ref_decl are suitably
14999         aligned, nor other trees we may see here.  Handle anchor symbols.
15000         (legitimate_constant_pool_address_p): Comment.  Add mode param.
15001         Check cmodel=medium addresses.  Adjust all calls.
15002         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
15003         creating cmodel=medium optimized access to locals.
15004         * config/rs6000/constraints.md (R): Pass QImode to
15005         legitimate_constant_pool_address_p.
15006         * config/rs6000/predicates.md (input_operand): Pass mode to
15007         legitimate_constant_pool_address_p.
15008         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
15009         Update prototype.
15010
15011 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15012
15013         PR target/48053
15014         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
15015         64-bit constants being loaded into registers other than GPRs such
15016         as loading 0 into a VSX register.
15017
15018 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15019
15020         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
15021
15022 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
15023
15024         PR middle-end/47917
15025         * builtins.c (fold_builtin_snprintf): New function.
15026         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
15027         (fold_builtin_4): Likewise.
15028
15029         PR middle-end/38878
15030         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
15031         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
15032         and C - X == X also strip nops from +/-/p+ operand.
15033         When optimizing -X == C, fold C to arg0's type.
15034
15035         PR debug/47946
15036         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
15037         emit it as add_AT_int instead of add_AT_unsigned.
15038
15039 2011-03-14  Tom Tromey  <tromey@redhat.com>
15040
15041         * unwind-dw2.c: Include sys/sdt.h if it exists.
15042         (_Unwind_DebugHook): Use STAP_PROBE2.
15043         * config.in, configure: Rebuild.
15044         * configure.ac: Check for sys/sdt.h.
15045
15046 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
15047
15048         * config/i386/i386.md (ROUND_FLOOR): New constant.
15049         (ROUND_CEIL): Ditto.
15050         (ROUND_TRUNC): Ditto.
15051         (ROUND_MXCSR): Ditto.
15052         (ROUND_NO_EXC): Ditto.
15053         (rint<mode>2): Use new defines instead of numerical constants.
15054         (floor<mode>2): Ditto.
15055         (ceil<mode>2): Ditto.
15056         (btrunc<mode>2): Ditto.
15057         * config/i386/i386-builtin-types.def: Define ROUND function type
15058         aliases.
15059         * config/i386/i386.c (enum ix86_builtins): Add
15060         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
15061         (struct builtin_description): Add
15062         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
15063         (ix86_expand_sse_round): New static function.
15064         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
15065         function types.
15066         (ix86_builtin_vectorized_function): Handle
15067         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
15068
15069 2011-03-14  Tom Tromey  <tromey@redhat.com>
15070
15071         * c-parser.c (c_parser_asm_string_literal): Clear
15072         warn_overlength_strings.
15073
15074 2011-03-14  Tom Tromey  <tromey@redhat.com>
15075
15076         * c-parser.c (disable_extension_diagnostics): Save
15077         warn_overlength_strings.
15078         (restore_extension_diagnostics): Restore warn_overlength_strings.
15079
15080 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
15081
15082         * BASE-VER: Change to 4.7.0.
15083
15084 2011-03-14  Richard Guenther  <rguenther@suse.de>
15085
15086         PR middle-end/48098
15087         * tree.c (build_vector_from_val): Adjust assert to requirements
15088         and reality.
15089
15090 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
15091
15092         PR bootstrap/48102
15093         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
15094
15095 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
15096
15097         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
15098         terms of target_flags_explicit. Adjust copyright year.
15099
15100         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
15101         * config/rs6000/t-freebsd: New file. Add override for
15102         LIB2FUNCS_EXTRA.
15103
15104 2011-03-13  Chris Demetriou  <cgd@google.com>
15105
15106         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
15107         (-fno-diagnostics-show-option): this, to reflect current default.
15108         (-Werror=): Update text about -fno-diagnostics-show-option.
15109
15110 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
15111
15112         PR target/48053
15113         * config/rs6000/predicates.md (easy_vector_constant_add_self,
15114         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
15115         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
15116         mode is not V2DImode or V2DFmode.
15117         (vspltis_constant): Do not handle V2DImode and V2DFmode.
15118         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
15119         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
15120         registers to 0.
15121         (movdi_internal64): Likewise.
15122
15123 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
15124
15125         PR tree-optimization/47127
15126         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
15127         parameter.
15128         (set_cloog_options): Same.
15129         (scop_to_clast): Same.
15130         (print_clast_stmt): Do not call cloog_state_malloc and
15131         cloog_state_free.
15132         (print_generated_program): Same.
15133         (gloog): Same.
15134         * graphite-clast-to-gimple.h (cloog_state): Declared.
15135         (scop_to_clast): Adjust declaration.
15136         * graphite.c (cloog_state): Defined here.
15137         (graphite_initialize): Call cloog_state_malloc.
15138         (graphite_finalize): Call cloog_state_free.
15139
15140 2011-03-11  Jason Merrill  <jason@redhat.com>
15141
15142         * attribs.c (lookup_attribute_spec): Take const_tree.
15143         * tree.h: Adjust.
15144
15145 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
15146
15147         * config/sparc/sparc.c (sparc_option_override): Use
15148         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
15149
15150 2011-03-11  Richard Guenther  <rguenther@suse.de>
15151
15152         PR tree-optimization/48067
15153         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
15154         multiplication result will be only used once on the target
15155         stmt.
15156
15157 2011-03-11  Richard Guenther  <rguenther@suse.de>
15158
15159         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
15160
15161 2011-03-11  Richard Guenther  <rguenther@suse.de>
15162
15163         PR lto/48073
15164         * tree.c (find_decls_types_r): Do not walk types only reachable
15165         from IDENTIFIER_NODEs.
15166
15167 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
15168
15169         PR middle-end/48044
15170         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
15171         all vnode->force_output nodes as needed.
15172
15173 2011-03-11  Jason Merrill  <jason@redhat.com>
15174
15175         PR c++/48069
15176         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
15177         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
15178
15179 2011-03-11  Martin Jambor  <mjambor@suse.cz>
15180
15181         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
15182         cgraph_node.
15183
15184 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
15185
15186         PR tree-optimization/48063
15187         * ipa-inline.c (cgraph_decide_inlining): Don't try to
15188         inline functions called once if !tree_can_inline_p (node->callers).
15189
15190 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
15191
15192         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
15193         extra_objs.
15194         * config/score/score3.c: Delete.
15195         * config/score/score3.h: Delete.
15196         * config/score/mul-div.S: Delete.
15197         * config/score/sfp-machine.h: Add new file.
15198         * config/score/constraints.md: Add new file.
15199         * config/score/t-score-softfp: Add new file.
15200         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
15201         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
15202         (score7_extra_constraint): Delete.
15203         (score7_option_override): Remove unused code.
15204         * config/score/score.c: Remove score3 and score5 define and code.
15205         * config/score/score.h: Remove score3 and score5 define and code.
15206         * config/score/score.md: Remove score3 template and unusual insn.
15207         * config/score/score.opt: Remove score3 and score5 options.
15208
15209 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15210
15211         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
15212         when _HPUX_SOURCE is defined.
15213         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
15214
15215 2011-03-10  Jason Merrill  <jason@redhat.com>
15216
15217         PR c++/48029
15218         * stor-layout.c (layout_type): Don't set structural equality
15219         on arrays of incomplete type.
15220         * tree.c (type_hash_eq): Handle comparing them properly.
15221
15222 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
15223
15224         PR debug/48043
15225         * config/s390/s390.c (s390_delegitimize_address): Make sure the
15226         result mode matches original rtl mode.
15227
15228 2011-03-10  Nick Clifton  <nickc@redhat.com>
15229
15230         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
15231         (andsi3, andsi3_flags): Fix timings for three operand alternative.
15232
15233 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
15234
15235         PR rtl-optimization/47866
15236         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
15237         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
15238         if target wasn't scalar.
15239         * function.c (assign_stack_temp_for_type): Assert that neither
15240         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
15241         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
15242         macro.
15243         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
15244
15245 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15246
15247         * config/s390/s390-protos.h (s390_label_align): New prototype.
15248         * config/s390/s390.c (s390_label_align): New function.
15249         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
15250
15251 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
15252
15253         PR target/47755
15254         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
15255         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
15256         (output_vec_const_move): Ditto.
15257
15258 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
15259
15260         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
15261         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
15262         * config/mips/mips.c (mips_preferred_reload_class): Make static.
15263         Change 'rclass' argument and result type to reg_class_t.
15264         (TARGET_PREFERRED_RELOAD_CLASS): Define.
15265
15266 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
15267
15268         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15269         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
15270         (TARGET_MEMORY_MOVE_COST): Define.
15271         (avr_register_move_cost, avr_memory_move_cost): New Functions.
15272
15273 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
15274
15275         PR debug/47881
15276         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
15277         removed anything.
15278
15279         PR tree-optimization/48022
15280         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
15281         for EQ/NE_EXPR.
15282
15283 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
15284
15285         PR debug/47991
15286         * var-tracking.c (find_use_val): Return NULL for
15287         cui->sets && cui->store_p BLKmode MEMs.
15288
15289 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
15290
15291         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
15292         Remove.
15293         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
15294         xstormy16_print_operand_address): Remove.
15295         * config/stormy16/stormy16.c (xstormy16_print_operand,
15296         xstormy16_print_operand_address): Make static.
15297         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15298
15299 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
15300
15301         PR target/47862
15302         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
15303         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
15304         before definition.
15305
15306 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
15307
15308         PR bootstrap/48000
15309         * cfgloopmanip.c (fix_bb_placements): Return immediately
15310         if FROM is BASE_LOOP's header.
15311
15312 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
15313
15314         * gimplify.c (gimplify_function_tree): Fix building calls
15315         to __builtin_return_address.
15316
15317 2011-03-07  Alan Modra  <amodra@gmail.com>
15318
15319         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
15320         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
15321         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
15322         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
15323         return_mode args.
15324         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
15325         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
15326         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
15327         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
15328         * config/rs6000/rs6000.c
15329         (rs6000_elf_end_indicate_exec_stack): Rename to..
15330         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
15331         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
15332         (rs6000_file_start): ..here.
15333         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
15334         file scope variables.
15335         (call_ABI_of_interest): New function.
15336         (init_cumulative_args): Set above vars when function return value
15337         is a float, vector, or small struct.
15338         (rs6000_function_arg_advance_1): Likewise for function args.
15339         (rs6000_va_start): Set rs6000_passes_float if variable arg function
15340         references float args.
15341
15342 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
15343
15344         * doc/cfg.texi: Remove "See" before @ref.
15345         * doc/invoke.texi: Likewise.
15346
15347 2011-03-05  Jason Merrill  <jason@redhat.com>
15348
15349         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
15350
15351 2011-03-05  Anthony Green  <green@moxielogic.com>
15352
15353         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
15354
15355 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
15356
15357         PR rtl-optimization/47899
15358         * cfgloopmanip.c (fix_bb_placements): Fix first argument
15359         to flow_loop_nested_p when moving the loop upward.
15360
15361 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
15362
15363         PR target/47719
15364         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
15365
15366 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
15367
15368         PR tree-optimization/47967
15369         * ipa-cp.c (build_const_val): Return NULL instead of creating
15370         VIEW_CONVERT_EXPR for mismatching sizes.
15371         (ipcp_create_replace_map): Return NULL if build_const_val failed.
15372         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
15373         give up on versioning.
15374
15375 2011-03-05  Alan Modra  <amodra@gmail.com>
15376
15377         PR target/47986
15378         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
15379         full cmodel medium/large lo_sum + high addresses.
15380
15381 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15382
15383         * config/s390/s390.c (s390_decompose_address): Reject non-literal
15384         pool references in UNSPEC_LTREL_OFFSET.
15385
15386 2011-03-04  Jan Hubicka  <jh@suse.cz>
15387
15388         PR lto/47497
15389         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
15390         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
15391         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
15392         Add node pointers.
15393         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
15394         cgraph_add_thunk): Add node pointers.
15395         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
15396         associated to right node.
15397         (input_node): Update use of cgraph_same_body_alias
15398         and cgraph_add_thunk.
15399
15400 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
15401
15402         * config/i386/i386.opt (mprefer-avx128): New flag.
15403         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
15404         modes when the flag -mprefer-avx128 is on.
15405
15406 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
15407
15408         * dwarf2out.c (compare_loc_operands): Fix address handling.
15409
15410 2011-03-04  Alan Modra  <amodra@gmail.com>
15411
15412         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
15413
15414 2011-03-04  Richard Guenther  <rguenther@suse.de>
15415
15416         PR middle-end/47968
15417         * expmed.c (extract_bit_field_1): Prefer vector modes that
15418         vec_extract patterns can handle.
15419
15420 2011-03-04  Richard Guenther  <rguenther@suse.de>
15421
15422         PR middle-end/47975
15423         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
15424
15425 2011-03-04  Richard Henderson  <rth@redhat.com>
15426
15427         * explow.c (emit_stack_save): Remove 'after' parameter.
15428         (emit_stack_restore): Likewise.
15429         * expr.h: Update to match.
15430         * builtins.c, calls.c, stmt.c: Likewise.
15431         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
15432         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
15433         * function.c (expand_function_end): Insert the emit_stack_save
15434         sequence before parm_birth_insn instead of after.
15435
15436 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
15437
15438         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
15439         (ssse3_pmaddubsw128): Ditto.
15440         (ssse3_pmaddubsw): Ditto.
15441
15442 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
15443
15444         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
15445
15446 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
15447
15448         PR c/47963
15449         * gimplify.c (omp_add_variable): Only call omp_notice_variable
15450         on TYPE_SIZE_UNIT if it is a DECL.
15451
15452         PR debug/47283
15453         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
15454         first operand is not is_gimple_mem_ref_addr, try to fold it.
15455         If the operand still isn't is_gimple_mem_ref_addr, clear
15456         MEM_EXPR on op0.
15457
15458 2011-03-03  Richard Guenther  <rguenther@suse.de>
15459
15460         PR middle-end/47283
15461         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
15462         match comment.
15463         (refs_may_alias_p_1): For release branches return true if
15464         we are confused by our input.
15465
15466 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15467
15468         * config/s390/s390.c (s390_function_value): Rename to ...
15469         (s390_function_and_libcall_value): ... this.
15470         (s390_function_value): New function.
15471         (s390_libcall_value): New function.
15472         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
15473         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
15474         target macro definitions.
15475         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
15476
15477 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
15478
15479         * config/i386/freebsd64.h (CC1_SPEC): Define.
15480         * config/i386/linux64.h (CC1_SPEC): Define.
15481         * config/i386/x86-64.h (CC1_SPEC): Don't define.
15482
15483 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
15484
15485         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15486         Remove.
15487         * config/stormy16/stormy16.c: Include reload.h.
15488         (xstormy16_memory_move_cost): New function.
15489         (TARGET_MEMORY_MOVE_COST): Define.
15490
15491 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
15492
15493         PR rtl-optimization/47925
15494         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
15495         with side effects.  Remove the more-specific check for volatile asms.
15496
15497 2011-03-02  Alan Modra  <amodra@gmail.com>
15498
15499         PR target/47935
15500         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
15501         toc relative addresses for valid offsets.
15502
15503 2011-03-01  Richard Guenther  <rguenther@suse.de>
15504
15505         PR tree-optimization/47890
15506         * tree-vect-loop.c (get_initial_def_for_induction): Set
15507         related stmt properly.
15508
15509 2011-03-01  Richard Guenther  <rguenther@suse.de>
15510
15511         PR lto/47924
15512         * lto-streamer.c (lto_record_common_node): Also register
15513         the canonical type.
15514
15515 2011-03-01  Richard Guenther  <rguenther@suse.de>
15516
15517         PR lto/46911
15518         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
15519         Do not stream DECL_ABSTRACT_ORIGIN.
15520         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
15521         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
15522         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15523         Do not stream DECL_ABSTRACT_ORIGIN.
15524         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
15525         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
15526
15527 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
15528
15529         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
15530         FUNCTION_VALUE_REGNO_P): Remove.
15531         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
15532         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
15533         Add 'outgoing' argument.
15534         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
15535         function.
15536         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15537         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15538
15539 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
15540
15541         PR debug/28047
15542         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
15543         (lookup_filename): Likewise.
15544         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
15545
15546 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
15547             Jakub Jelinek  <jakub@redhat.com>
15548
15549         PR middle-end/47893
15550         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
15551         (assign_stack_local_1): Change last argument type to int.
15552         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
15553         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
15554         don't record padding space into frame_space_list nor use those areas.
15555         (assign_stack_local): Adjust caller.
15556         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
15557         of assign_stack_local, pass 0 as last argument.
15558         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
15559         callers.
15560
15561 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
15562
15563         PR debug/47283
15564         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
15565         Use target address_mode and pointer_mode hooks instead of hardcoded
15566         Pmode and ptr_mode.  Handle some simple cases of extending if
15567         POINTERS_EXTEND_UNSIGNED < 0.
15568         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
15569         Call convert_debug_memory_address.
15570         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
15571         convert_debug_memory_address.
15572
15573         PR middle-end/46790
15574         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
15575         * configure: Regenerated.
15576         * config.in: Regenerated.
15577         * varasm.c (default_function_section): Return NULL
15578         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
15579
15580 2011-02-28  Martin Jambor  <mjambor@suse.cz>
15581
15582         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
15583         the description to match the printed values.
15584
15585 2011-02-28  Richard Guenther  <rguenther@suse.de>
15586
15587         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
15588         of the copied scope tree.
15589
15590 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15591
15592         * doc/extend.texi (Function Attributes): Avoid deeply (and
15593         wrongly) nested tables.
15594
15595 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
15596
15597         PR middle-end/47903
15598         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
15599         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
15600         r isn't op0 nor op1.
15601
15602 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
15603
15604         * config/avr/avr.md: Remove magic comment for emacs.
15605
15606 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
15607
15608         PR target/45261
15609         * config/avr/avr.c (avr_option_override): Use error on bad options.
15610         (avr_help): New function.
15611         (TARGET_HELP): Define.
15612
15613 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
15614
15615         PR target/42240
15616         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
15617         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
15618
15619 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
15620
15621         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
15622         (ARM Options): Ditto.
15623         (i386 and x86-64 Options): Ditto.
15624         (RX Options): Ditto.
15625         (SPARC Options): Ditto.
15626
15627 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
15628
15629         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
15630         FreeBSD 6 and later.  Generally use cpu generic.
15631
15632 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
15633
15634         * doc/cpp.texi: Update copyright years.
15635
15636 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
15637
15638         PR target/46898
15639         * config/lm32/lm32.md (ashrsi3): Added needed variable.
15640
15641 2011-02-25  Jon Beniston  <jon@beniston.com>
15642
15643         PR target/46898
15644         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
15645         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
15646         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
15647         (lm32_block_move_inline): Add type cast to remove warning.
15648         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
15649         (gen_int_relational): Move declarations to start of function.
15650
15651 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
15652
15653         PR tree-optimization/45470
15654         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
15655         can throw internally only.
15656         * tree-vect-stmts.c (vectorizable_call): Likewise.
15657
15658 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
15659
15660         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
15661         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
15662         * config/stormy16/stormy16-protos.h
15663         (xstormy16_preferred_reload_class): Remove.
15664         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
15665         static. Change 'rclass' argument and return type to reg_class_t.
15666         (TARGET_PREFERRED_RELOAD_CLASS,
15667         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
15668
15669 2011-02-24  Richard Guenther  <rguenther@suse.de>
15670
15671         * lto-streamer-in.c (input_bb): Do not find referenced vars
15672         in debug statements.
15673
15674 2011-02-23  Jason Merrill  <jason@redhat.com>
15675
15676         * common.opt (fabi-version): Document v5 and v6.
15677
15678 2011-02-23  Richard Guenther  <rguenther@suse.de>
15679
15680         PR tree-optimization/47849
15681         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
15682
15683 2011-02-23  Jie Zhang  <jie@codesourcery.com>
15684
15685         * opts-common.c (decode_cmdline_option): Print empty string
15686         argument as "" in decoded->orig_option_with_args_text.
15687         * gcc.c (execute): Print empty string argument as ""
15688         in the verbose output.
15689         (do_spec_1): Keep empty string argument.
15690
15691 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
15692
15693         * config.gcc: Declare score-* and crx-* obsolete.
15694
15695 2011-02-23  Jie Zhang  <jie@codesourcery.com>
15696
15697         PR rtl-optimization/47763
15698         * web.c (web_main): Ignore naked clobber when replacing register.
15699
15700 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
15701
15702         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
15703         Remove.
15704
15705 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
15706
15707         PR doc/47848
15708         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
15709
15710 2011-02-22  Mike Stump  <mikestump@comcast.net>
15711
15712         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
15713         assembler.
15714         * configure: Regenerate.
15715
15716 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
15717
15718         PR rtl-optimization/46002
15719         * ira-color.c (update_copy_costs): Change class intersection
15720         test to reg_class_contents[] test of 'hard_regno'.
15721
15722 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
15723
15724         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
15725         than Driver option.
15726         * config/hpux11.opt (mt): Likewise.
15727         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
15728         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
15729         * config/vax/elf.opt (mno-asm-pic): Likewise.
15730         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
15731
15732 2011-02-21  Mike Stump  <mikestump@comcast.net>
15733
15734         PR target/47822
15735         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
15736         tree so we can get save the type.
15737         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
15738         for CFString instead of trying to use past the end of the builtins.
15739         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
15740         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
15741         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
15742         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
15743         Rename to darwin_builtin_cfstring.
15744         (darwin_init_cfstring_builtins): Return the built type.
15745
15746 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
15747
15748         PR target/47840
15749         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
15750         (_mm256_insert_epi64): Use _mm_insert_epi64.
15751
15752 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
15753
15754         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15755         * config/stormy16/stormy16-protos.h
15756         (xstormy16_mode_dependent_address_p): Remove.
15757         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
15758         Make static. Change return type to bool. Change argument type to
15759         const_rtx. Remove dead code.
15760         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15761
15762 2011-02-21  Richard Guenther  <rguenther@suse.de>
15763
15764         PR lto/47820
15765         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
15766         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
15767         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
15768         TUs context.
15769         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15770         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
15771
15772 2011-02-20  Richard Guenther  <rguenther@suse.de>
15773
15774         PR lto/47822
15775         * tree.c (free_lang_data_in_decl): Clean builtins from
15776         the TU decl BLOCK_VARS.
15777
15778 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
15779
15780         PR debug/47620
15781         PR debug/47630
15782         * haifa-sched.c (fix_tick_ready): Skip tick computation
15783         for debug insns.
15784
15785 2011-02-19  Richard Guenther  <rguenther@suse.de>
15786
15787         PR lto/47647
15788         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
15789         Remove lazy BLOCK_VARS streaming.
15790         (lto_input_ts_block_tree_pointers): Likewise.
15791         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
15792
15793 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
15794
15795         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
15796
15797 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
15798
15799         * config/i386/biarch32.h, config/i386/mach.h,
15800         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
15801
15802 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
15803
15804         PR target/47800
15805         * config/i386/i386.md (peephole2 for shift and plus): Use
15806         operands[1] original mode in the first insn.
15807
15808 2011-02-18  Mike Stump  <mikestump@comcast.net>
15809
15810         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
15811
15812 2011-02-18  Jan Hubicka  <jh@suse.cz>
15813
15814         PR middle-end/47788
15815         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
15816         to zero when the function is not inlinable at all.
15817
15818 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15819
15820         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
15821         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15822         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
15823         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
15824         * config/pa/t-pa64: Likewise.
15825         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
15826
15827 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
15828
15829         PR driver/47787
15830         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
15831
15832 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15833
15834         PR target/47792
15835         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
15836
15837 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
15838
15839         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
15840         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
15841         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
15842         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
15843         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
15844         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
15845         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
15846         m32r_load_postinc_p, m32r_store_preinc_predec_p,
15847         m32r_legitimate_address_p): New functions.
15848         * config/m32r/constraints.md (constraint "S"): Don't use
15849         STORE_PREINC_PREDEC_P.
15850         (constraint "U"): Don't use LOAD_POSTINC_P.
15851
15852 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
15853
15854         PR rtl-optimization/46178
15855         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
15856         compute ira_hard_regno_cover_class[].
15857
15858 2011-02-18  Richard Guenther  <rguenther@suse.de>
15859
15860         PR lto/47798
15861         * lto-streamer.h (lto_global_var_decls): Declare.
15862         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
15863         statics for global var processing.
15864
15865 2011-02-18  Richard Guenther  <rguenther@suse.de>
15866
15867         PR tree-optimization/47737
15868         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
15869         edge dominance check.
15870
15871 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
15872
15873         PR debug/47780
15874         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
15875         avoid invalid rtx sharing.
15876
15877 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
15878
15879         * doc/cpp.texi (Obsolete Features): Add background on the
15880         origin of assertions.
15881
15882 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
15883
15884         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
15885         objc_abi == 2.
15886         * config/darwin.c (output_objc_section_asm_op): Added support for
15887         ABI v1 and v2.
15888         (is_objc_metadata): New.
15889         (darwin_objc2_section): New.
15890         (darwin_objc1_section): New.
15891         (machopic_select_section): Added support for ABI v1 and v2.
15892         (darwin_emit_objc_zeroed): New.
15893         (darwin_output_aligned_bss): Detect objc metadata and treat it
15894         appropriately.
15895         (darwin_asm_output_aligned_decl_common): Same.
15896         (darwin_asm_output_aligned_decl_local): Same.
15897         * config/darwin-sections.def: Updated for ABI v1 and v2.
15898         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
15899         compiling Objective-C code for the NeXT runtime, default to using
15900         ABI version 0 for 32-bit, and version 2 for 64-bit.
15901
15902 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
15903
15904         * common.opt (optimize_fast): New Variable.
15905         * opts.c (default_options_optimization): Use opts->x_optimize_fast
15906         instead of local variable ofast.
15907
15908 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
15909
15910         * doc/invoke.texi (fobjc-abi-version): Documented.
15911         (fobjc-nilcheck): Documented.
15912         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
15913         version.
15914
15915 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
15916
15917         PR driver/47390
15918         * common.opt (export-dynamic): New Driver option.
15919         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
15920
15921 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
15922
15923         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
15924
15925 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
15926             Jan Hubicka  <jh@suse.cz>
15927
15928         PR debug/47106
15929         PR debug/47402
15930         * cfgexpand.c (account_used_vars_for_block): Remove.
15931         (estimated_stack_frame_size): Use referenced vars.
15932         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
15933         that were referenced in the original function.  Test src_fn
15934         rather than cfun.  Drop redundant get_var_ann.
15935         (setup_one_parameter): Drop redundant get_var_ann.
15936         (declare_return_variable): Likewise.
15937         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
15938         (copy_arguments_for_versioning): Drop redundant get_var_ann.
15939         * ipa-inline.c (compute_inline_parameters): Do not compute
15940         disregard_inline_limits here.
15941         (compute_inlinable_for_current, pass_inlinable): New.
15942         (pass_inline_parameters): Require PROP_referenced_vars.
15943         * cgraphunit.c (cgraph_process_new_functions): Don't run
15944         compute_inline_parameters explicitly unless function is in SSA form.
15945         (cgraph_analyze_function): Set .disregard_inline_limits.
15946         * tree-sra.c (convert_callers): Compute inliner parameters
15947         only for functions already in SSA form.
15948
15949 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
15950
15951         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
15952         -mlittle-endian-data.
15953
15954 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
15955
15956         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
15957         -mno-fpu, not -fpu and -no-fpu.
15958         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
15959         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
15960
15961 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
15962
15963         PR target/43653
15964         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
15965         input reload with PLUS RTX.
15966
15967 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
15968
15969         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
15970         of InverseVar(MDMX).
15971
15972 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
15973
15974         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
15975         --m4-340.
15976
15977 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
15978
15979         * config/mn10300/mn10300.opt (mno-crt0): New.
15980
15981 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
15982
15983         * config/m68k/uclinux.opt (static-libc): New Driver option.
15984
15985 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
15986
15987         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
15988
15989 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
15990
15991         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
15992         %{muser-extend-enabled}.
15993
15994 2011-02-16  Richard Guenther  <rguenther@suse.de>
15995
15996         PR tree-optimization/47738
15997         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
15998         the TODO from tree_predictive_commoning.
15999
16000 2011-02-15  Jeff Law  <law@redhat.com>
16001
16002         Revert
16003         2011-01-25  Jeff Law  <law@redhat.com>
16004
16005         PR rtl-optimization/37273
16006         * ira-costs.c (scan_one_insn): Detect constants living in memory and
16007         handle them like argument loads from stack slots.  Do not double
16008         count memory for memory constants and argument loads from stack slots.
16009
16010 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
16011
16012         PR middle-end/47725
16013         * combine.c (cant_combine_insn_p): Revert the last change.
16014
16015 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
16016
16017         PR target/47755
16018         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
16019         mode for vector constants.  Remove code that checks for TImode.
16020
16021 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
16022
16023         PR debug/47106
16024         PR debug/47402
16025         * cgraph.h (compute_inline_parameters): Return void.
16026         * ipa-inline.c (compute_inline_parameters): Adjust.
16027
16028 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
16029
16030         PR debug/47106
16031         PR debug/47402
16032         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
16033         rather than decl.
16034         * cfgexpand.c (estimated_stack_frame_size): Likewise.
16035         * ipa-inline.c (compute_inline_parameters): Adjust.
16036
16037 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
16038
16039         PR debug/47106
16040         PR debug/47402
16041         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
16042         Adjust all users.  Pass FN to...
16043         * tree-flow-inline.h (first_referenced_var): ... this.  Add
16044         fn argument.
16045         * ipa-struct-reorg.c: Adjust.
16046         * tree-dfa.c: Adjust.
16047         * tree-into-ssa.c: Adjust.
16048         * tree-sra.c: Adjust.
16049         * tree-ssa-alias.c: Adjust.
16050         * tree-ssa-live.c: Adjust.
16051         * tree-ssa.c: Adjust.
16052         * tree-ssanames.c: Adjust.
16053         * tree-tailcall.c: Adjust.
16054
16055 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
16056
16057         PR debug/47106
16058         PR debug/47402
16059         * tree-flow.h (referenced_var_lookup): Add fn parameter.
16060         Adjust all callers.
16061         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
16062         * tree-flow-inline.h: Adjust.
16063         * gimple-pretty-print.c: Adjust.
16064         * tree-into-ssa.c: Adjust.
16065         * tree-ssa.c: Adjust.
16066         * cfgexpand.c: Adjust.
16067
16068 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
16069
16070         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
16071         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16072         (EXTRA_CONSTRAINT): Delete.
16073         * config/iq2000/constraints.md: New file.
16074         * config/iq2000/iq2000.md: Include it.
16075         (define_insn ""): Delete.
16076         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
16077         unsupported constraint letters from patterns.
16078         (call_value, call_value_internal1): Likewise.
16079         (call_value_multiple_internal1): Likewise.
16080
16081 2011-02-15  Nick Clifton  <nickc@redhat.com>
16082
16083         * config/mn10300/mn10300.c: Include tm-constrs.h.
16084         (struct liw_data): New data structure describing an LIW candidate
16085         instruction.
16086         (extract_bundle): Use struct liw_data.  Allow small integer
16087         operands for some instructions.
16088         (check_liw_constraints): Use struct liw_data.  Remove swapped
16089         parameter.  Add comments describing the checks.  Fix bug when
16090         assigning the source of liw1 to the source of liw2.
16091         (liw_candidate): Delete.  Code moved into extract_bundle.
16092         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
16093         before swapping.
16094         * config/mn10300/predicates.md (liw_operand): New predicate.
16095         Allows registers and small integer constants.
16096         * config/mn10300/constraints.md (O): New constraint.  Accetps
16097         integers in the range -8 to +7 inclusive.
16098         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
16099         for moving a small integer into a register.  Give this alternative
16100         LIW attributes.
16101         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
16102         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
16103         using the J,K,L and M constraints,
16104         (liw): Remove SI mode on second operands to allow for HI and QI
16105         mode values.
16106         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
16107         instruction.
16108
16109 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
16110
16111         PR middle-end/47725
16112         * combine.c (cant_combine_insn_p): Check zero/sign extended
16113         hard registers.
16114
16115 2011-02-15  Richard Guenther  <rguenther@suse.de>
16116
16117         PR tree-optimization/47743
16118         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
16119         for a non-type-compatible VN lookup bail out.
16120
16121 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
16122
16123         * config/fr30/constraints.md: New file.
16124         * config/fr30/fr30.md: Include it.
16125         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
16126         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16127         (EXTRA_CONSTRAINT): Delete.
16128
16129 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
16130
16131         * config/frv/constraints.md: New file.
16132         * config/frv/predicates.md: Include it.
16133         * config/frv/frv.c (reg_class_from_letter): Delete.
16134         (frv_option_override): Don't initialize it.
16135         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
16136         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
16137         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
16138         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
16139         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
16140         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16141         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
16142         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
16143         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
16144         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
16145         (REG_CLASS_FROM_CONSTRAINT): Delete.
16146
16147 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
16148
16149         PR middle-end/47581
16150         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
16151         if frame size is 0 in a leaf function.
16152
16153 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16154
16155         PR pch/14940
16156         * config/alpha/host-osf.c: New file.
16157         * config/alpha/x-osf: New file.
16158         * config.host (alpha*-dec-osf*): Use it.
16159
16160 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
16161
16162         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16163         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
16164         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
16165         (rx_mode_dependent_address_p): ...this. Make static. Change argument
16166         type to const_rtx.
16167         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16168
16169 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
16170
16171         * config/stormy16/constraints.md: New file.
16172         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
16173         Use satisfies_constraint_Q and satisfies_constraint_R.
16174         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
16175         Delete.
16176         (xstormy16_legitiamte_address_p): Declare.
16177         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
16178         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16179         (EXTRA_CONSTRAINT): Delete.
16180         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
16181         Un-staticize.
16182         (xstormy16_extra_constraint_p): Delete.
16183
16184 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
16185
16186         PR tree-optimization/46494
16187         * loop-unroll.c (split_edge_and_insert): Adjust comment.
16188         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
16189         (pass_rtl_loop_done): Add TODO_verify_flow.
16190         * fwprop.c (pass_rtl_fwprop): Likewise.
16191         * modulo-sched.c (pass_sms): Likewise.
16192         * tree-ssa-dom.c (pass_dominator): Likewise.
16193         * tree-ssa-loop-ch.c (pass_ch): Likewise.
16194         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
16195         (pass_tree_loop_done): Likewise.
16196         * tree-ssa-pre.c (execute_pre): Likewise.
16197         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
16198         * tree-ssa-sink.c (pass_sink_code): Likewise.
16199         * tree-vrp.c (pass_vrp): Likewise.
16200
16201 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
16202
16203         * config/v850/constraints.md: New file.
16204         * config/v850/v850.md: Include it.
16205         * config/v850/predicates.md (reg_or_0_operand): Use
16206         satisfies_constraint_G.
16207         (special_symbolref_operand): Use satisfies_constraint_K.
16208         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
16209         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
16210         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
16211         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
16212         (EXTRA_CONSTRAINT): Delete.
16213         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
16214         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
16215         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
16216
16217 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
16218
16219         PR target/47696
16220         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
16221         description.
16222
16223 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
16224
16225         * config/mcore/constraints.md: New file.
16226         * config/mcore/mcore.md: Include it.
16227         * config/mcore/mcore.c (reg_class_from_letter): Delete.
16228         * config/mcore/mcore.h (reg_class_from_letter): Delete.
16229         (REG_CLASS_FROM_LETTER): Delete.
16230         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
16231         insn_const_int_ok_for_constraint.
16232         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
16233         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
16234         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16235         (EXTRA_CONSTRAINT): Delete.
16236
16237 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16238
16239         PR ada/41929
16240         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
16241         (IS_SIGHANDLER): Define.
16242         (sparc64_is_sighandler): New function, split off from
16243         sparc64_fallback_frame_state.
16244         (sparc_is_sighandler): New function, split off from
16245         sparc_fallback_frame_state.
16246         (sparc64_fallback_frame_state): Merge with ...
16247         (sparc_fallback_frame_state): ... this into ...
16248         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
16249         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
16250         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
16251         stack instead of hardcoded offsets.
16252
16253 2011-02-14  Andriy Gapon  <avg@freebsd.org>
16254
16255         PR target/45808
16256         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
16257
16258 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16259
16260         * configure: Regenerate.
16261
16262 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
16263
16264         PR driver/45731
16265         * gcc.c (asm_options): Correct spec matching --target-help.
16266
16267 2011-02-12  Martin Jambor  <mjambor@suse.cz>
16268
16269         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
16270         to gimple call error.
16271
16272 2011-02-12  Mike Stump  <mikestump@comcast.net>
16273
16274         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
16275         comments in backslash regions.
16276
16277 2011-02-12  Mike Stump  <mikestump@comcast.net>
16278             Jakub Jelinek  <jakub@redhat.com>
16279             Iain Sandoe  <iains@gcc.gnu.org>
16280
16281         PR target/47324
16282         * dwarf2out.c (output_cfa_loc): When required, apply the
16283         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
16284         (output_loc_sequence): Likewise.
16285         (output_loc_operands_raw): Likewise.
16286         (output_loc_sequence_raw): Likewise.
16287         (output_cfa_loc): Likewise.
16288         (output_loc_list): Suppress register number adjustment when
16289         calling output_loc_sequence()
16290         (output_die): Likewise.
16291
16292 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
16293
16294         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16295         Remove macros.
16296         * config/xtensa/xtensa.c (xtensa_register_move_cost,
16297         xtensa_memory_move_cost): New functions.
16298         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
16299
16300 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
16301
16302         PR lto/47225
16303         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
16304         in the current directory.
16305         * configure: Rebuilt.
16306
16307 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
16308
16309         * config/darwin.c (darwin_override_options): Add a hunk missed
16310         from the commit of r168571.  Trim comment line lengths and
16311         correct indents of the preceding block.
16312
16313 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
16314
16315         * gcc.c (driver_handle_option): Concatenate the argument to -F with
16316         the switch.
16317
16318 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
16319
16320         * common.opt (nostartfiles): New Driver option.
16321
16322 2011-02-11  Xinliang David Li  <davidxl@google.com>
16323
16324         PR tree-optimization/47707
16325         * tree-chrec.c (convert_affine_scev): Keep type precision.
16326
16327 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
16328
16329         PR tree-optimization/47420
16330         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
16331
16332 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
16333
16334         PR rtl-optimization/47614
16335         * rtl.h (check_for_inc_dec): Declare.
16336         * dse.c (check_for_inc_dec): Externalize...
16337         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
16338         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
16339
16340 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
16341
16342         PR driver/47678
16343         * gcc.c (main): Do not compile inputs if there were errors in
16344         option handling.
16345         * opts-common.c (read_cmdline_option): Check for wrong language
16346         after other error checks.
16347
16348 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
16349
16350         * cgraph.c: Fix comment typos.
16351         * cgraph.h: Likewise.
16352         * cgraphunit.c: Likewise.
16353         * ipa-cp.c: Likewise.
16354         * ipa-inline.c: Likewise.
16355         * ipa-prop.c: Likewise.
16356         * ipa-pure-const.c: Likewise.
16357         * ipa-ref.c: Likewise.
16358         * ipa-reference.c: Likewise.
16359
16360 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
16361
16362         PR debug/47684
16363         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
16364
16365 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16366
16367         PR testsuite/47400
16368         * doc/sourcebuild.texi (Require Support): Document
16369         dg-require-ascii-locale.
16370
16371 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
16372
16373         * doc/lto.texi (Write summary): Fix missing parentheses.
16374
16375 2011-02-10  DJ Delorie  <dj@redhat.com>
16376
16377         * config/m32c/m32c.c (m32c_option_override): Disable
16378         -fcombine-stack-adjustments until flag value tracking and compare
16379         optimization can be rewritten.
16380
16381 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
16382
16383         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
16384         PROCESSOR_POWER7.
16385         (PROCESSOR_DEFAULT64): Likewise.
16386
16387 2011-02-10  Richard Henderson  <rth@redhat.com>
16388
16389         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
16390         change from 2011-02-03.
16391         * config/rx/rx.c (flags_from_code): Likewise.
16392         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
16393         is valid, n/pz otherwise.
16394         (rx_select_cc_mode): Return CCmode if Y is not zero.
16395
16396 2011-02-10  Richard Guenther  <rguenther@suse.de>
16397
16398         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
16399
16400 2011-02-10  Richard Guenther  <rguenther@suse.de>
16401
16402         PR tree-optimization/47677
16403         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
16404
16405 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
16406
16407         PR target/47665
16408         * combine.c (make_compound_operation): Only change shifts into
16409         multiplication for SCALAR_INT_MODE_P.
16410
16411 2011-02-10  Jie Zhang  <jie@codesourcery.com>
16412
16413         PR testsuite/47622
16414         Revert
16415         2011-02-05  Jie Zhang  <jie@codesourcery.com>
16416         PR debug/42631
16417         * web.c (entry_register): Don't clobber the number of the
16418         first uninitialized reference in used[].
16419
16420 2011-02-09  Richard Guenther  <rguenther@suse.de>
16421
16422         PR tree-optimization/47664
16423         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
16424         all edges again.
16425
16426 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
16427
16428         PR target/46481
16429         PR target/47032
16430         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
16431         PROCESSOR_POWER7.
16432         (PROCESSOR_DEFAULT64): Same.
16433         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
16434
16435 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16436
16437         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
16438
16439 2011-02-09  Martin Jambor  <mjambor@suse.cz>
16440
16441         PR middle-end/45505
16442         * tree-sra.c (struct access): New flags grp_scalar_read and
16443         grp_scalar_write.  Changed description of assignment read and write
16444         flags.
16445         (dump_access): Dump new flags, reorder all of them.
16446         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
16447         to detect multiple scalar reads.
16448         (analyze_access_subtree): Use the new scalar read write flags instead
16449         of the old flags.  Adjusted comments.
16450
16451 2011-02-08  DJ Delorie  <dj@redhat.com>
16452
16453         PR target/47548
16454         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
16455         patterns.
16456
16457 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16458
16459         * config/m68k/uclinux.opt: New.
16460         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
16461
16462 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16463
16464         * config/cris/elf.opt (sim): New Driver option.
16465
16466 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16467
16468         * config/xtensa/elf.opt: New.
16469         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
16470
16471 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16472
16473         * config/vax/elf.opt: New.
16474         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
16475
16476 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16477
16478         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
16479
16480 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16481
16482         * config/gnu-user.opt: New.
16483         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
16484         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
16485         *-*-uclinux*): Use gnu-user.opt.
16486
16487 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
16488
16489         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
16490         * config/i386/gnu.h (CPP_SPEC): Likewise.
16491
16492 2011-02-08  Ian Lance Taylor  <iant@google.com>
16493
16494         * common.opt (fcx-limited-range): Add SetByCombined flag.
16495         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
16496         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
16497         (fassociative-math, freciprocal-math): Likewise.
16498         (funsafe-math-optimizations): Likewise.
16499         * opth-gen.awk: Handle SetByCombined.
16500         * optc-gen.awk: Likewise.
16501         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
16502         (set_unsafe_math_optimizations_flags): Likewise.
16503         * doc/options.texi (Option properties): Document SetByCombined.
16504
16505 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16506
16507         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
16508         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
16509         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
16510         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
16511         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
16512
16513 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
16514
16515         PR tree-optimization/46834
16516         PR tree-optimization/46994
16517         PR tree-optimization/46995
16518         * graphite-sese-to-poly.c (used_outside_reduction): New.
16519         (detect_commutative_reduction): Call used_outside_reduction.
16520         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
16521         translate_scalar_reduction_to_array only when at least one
16522         loop-phi/close-phi tuple has been detected.
16523
16524 2011-02-08  Richard Guenther  <rguenther@suse.de>
16525
16526         PR middle-end/47639
16527         * tree-vect-generic.c (expand_vector_operations_1): Update
16528         stmts here ...
16529         (expand_vector_operations): ... not here.  Cleanup EH info
16530         and the CFG if required.
16531
16532 2011-02-08  Richard Guenther  <rguenther@suse.de>
16533
16534         PR tree-optimization/47641
16535         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
16536         require type compatibility.
16537
16538 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16539
16540         * gimple-low.c (lower_function_body): Don't remove the location of
16541         the return statement here.
16542         (lower_gimple_return): Do it here instead but only if the return
16543         statement is actually used twice.
16544
16545 2011-02-08  Richard Guenther  <rguenther@suse.de>
16546
16547         PR tree-optimization/47632
16548         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
16549         unused up_to_stmt parameter, return whether cfg-cleanup is
16550         necessary, remove EH info properly.
16551         (forward_propagate_into_gimple_cond): Adjust caller.
16552         (forward_propagate_into_cond): Likewise.
16553         (forward_propagate_comparison): Likewise.
16554         (tree_ssa_forward_propagate_single_use_vars): Make
16555         forward_propagate_comparison case similar to the two others.
16556
16557 2011-02-08  Nick Clifton  <nickc@redhat.com>
16558
16559         * config/mn10300/mn10300.opt (mliw): New command line option.
16560         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
16561         (liw_bundling): New automaton.
16562         (liw): New attribute.
16563         (liw_op): New attribute.
16564         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
16565         (movsi_internal): Add LIW attributes.
16566         (andsi3): Likewise.
16567         (iorsi3): Likewise.
16568         (xorsi3): Likewise.
16569         (addsi3): Separate register and immediate alternatives.
16570         Add LIW attributes.
16571         (subsi3): Likewise.
16572         (cmpsi): Likewise.
16573         (aslsi3): Likewise.
16574         (lshrsi3): Likewise.
16575         (ashrsi3): Likewise.
16576         (liw): New pattern.
16577         * config/mn10300/mn10300.c (liw_op_names): New
16578         (mn10300_print_operand): Handle 'W' operand descriptor.
16579         (extract_bundle): New function.
16580         (check_liw_constraints): New function.
16581         (liw_candidate): New function.
16582         (mn10300_bundle_liw): New function.
16583         (mn10300_reorg): New function.
16584         (TARGET_MACHINE_DEPENDENT_REORG): Define.
16585         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
16586         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
16587         __LIW__ or __NO_LIW__.
16588         * doc/invoke.texi: Describe the -mliw command line option.
16589
16590 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16591
16592         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
16593         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
16594         pthread_mutex_unlock): Remove.
16595         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
16596         * config/pa/t-pa64: Likewise.
16597         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
16598         shared libc if not linking against libpthread.
16599         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
16600
16601 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
16602
16603         PR target/47558
16604         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
16605         on 10.6 and later to ensure that we always use the unwinder from
16606         the system.  Only add -no_compact_unwind when tarteting darwin
16607         10.6 or later.
16608
16609 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
16610
16611         PR target/46997
16612         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
16613         (vec_interleave_lowv2sf): Ditto.
16614         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
16615         (vec_extract_oddv2sf): Ditto.
16616
16617 2011-02-07  Mike Stump  <mikestump@comcast.net>
16618
16619         PR target/42333
16620         Add __ieee_divdc3 entry point.
16621         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
16622         entry point.
16623         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
16624         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
16625         * config/darwin.c (darwin_rename_builtins): Add.
16626         * config/darwin-protos.h (darwin_rename_builtins): Add.
16627
16628 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
16629
16630         PR target/47636
16631         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
16632         for the condition.
16633
16634 2011-02-07  Mike Stump  <mikestump@comcast.net>
16635
16636         * config/darwin.opt (mmacosx-version-min): Update default OS version.
16637
16638 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
16639
16640         PR target/47534
16641         * config/avr/libgcc.S (exit): Move .endfunc
16642
16643 2011-02-07  Richard Guenther  <rguenther@suse.de>
16644
16645         PR tree-optimization/47615
16646         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
16647         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
16648         (run_scc_vn): Initialize it.
16649         (visit_reference_op_load): Use it.
16650         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
16651
16652 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16653
16654         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
16655         DImode trapping arithmetic libfuncs.
16656
16657 2011-02-07  Richard Guenther  <rguenther@suse.de>
16658
16659         PR tree-optimization/47621
16660         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
16661         two duplicates ...
16662         (execute_update_addresses_taken): ... here.  Make it more
16663         conservative in what we accept.
16664
16665 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
16666
16667         * config/sparc/freebsd.h (ASM_SPEC): Define.
16668         * config/sparc/vxworks.h (ASM_SPEC): Define.
16669
16670 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
16671
16672         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
16673
16674 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
16675
16676         * doc/invoke.texi: Remove reference to compiler internals from
16677         user documentation.
16678
16679         * reg-notes.def: Remove REG_VALUE_PROFILE.
16680         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
16681
16682 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
16683
16684         PR middle-end/47610
16685         * varasm.c (default_section_type_flags): If decl is NULL,
16686         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
16687
16688 2011-02-05  Jie Zhang  <jie@codesourcery.com>
16689
16690         PR debug/42631
16691         * web.c (entry_register): Don't clobber the number of the
16692         first uninitialized reference in used[].
16693
16694 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
16695
16696         PR tree-optimization/46194
16697         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
16698         (build_classic_dist_vector_1): Do not represent classic distance
16699         vectors when the access functions are variating in different loops.
16700
16701 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
16702
16703         * config/mips/iris6.opt: New.
16704         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
16705
16706 2011-02-04  Richard Henderson  <rth@redhat.com>
16707             Steve Ellcey  <sje@cup.hp.com>
16708
16709         PR target/46997
16710         * config/ia64/predicates.md (mux1_brcst_element): New.
16711         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
16712         * config/ia64/ia64.c (ia64_unpack_assemble): New.
16713         (ia64_unpack_sign): New.
16714         (ia64_expand_unpack): Rewrite using new routines.
16715         (ia64_expand_widen_sum): Ditto.
16716         (ia64_expand_dot_prod_v8qi): Ditto.
16717         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
16718         routines, add endian check.
16719         (pmpy2_even): Rename from pmpy2_r, add endian check.
16720         (pmpy2_odd): Rename from pmpy2_l, add endian check.
16721         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
16722         (vec_widen_smult_hi_v4hi): Ditto.
16723         (vec_widen_umult_lo_v4hi): Ditto.
16724         (vec_widen_umult_hi_v4hi): Ditto.
16725         (mulv2si3): Change endian checks.
16726         (sdot_prodv4hi): Rewrite with new calls.
16727         (udot_prodv4hi): New.
16728         (vec_pack_ssat_v4hi): Add endian check.
16729         (vec_pack_usat_v4hi): Ditto.
16730         (vec_pack_ssat_v2si): Ditto.
16731         (max1_even): Rename from max1_r, add endian check.
16732         (max1_odd): Rename from max1_l, add endian check.
16733         (*mux1_rev): Format change.
16734         (*mux1_mix): Ditto.
16735         (*mux1_shuf): Ditto.
16736         (*mux1_alt): Ditto.
16737         (*mux1_brcst_v8qi): Use new predicate.
16738         (vec_extract_evenv8qi): Remove endian check.
16739         (vec_extract_oddv8qi): Ditto.
16740         (vec_interleave_lowv4hi): Format change.
16741         (vec_interleave_highv4hi): Ditto.
16742         (mix2_even): Rename from mix2_r, add endian check.
16743         (mix2_odd): Rename from mux2_l, add endian check.
16744         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
16745         (vec_extract_evenodd_helper): Format change.
16746         (vec_extract_evenv4hi): Remove endian check.
16747         (vec_extract_oddv4hi): Remove endian check.
16748         (vec_interleave_lowv2si): Format change.
16749         (vec_interleave_highv2si): Format change.
16750         (vec_initv2si): Remove endian check.
16751         (vecinit_v2si): Add endian check.
16752         (reduc_splus_v2sf): Add endian check.
16753         (reduc_smax_v2sf): Ditto.
16754         (reduc_smin_v2sf): Ditto.
16755         (vec_initv2sf): Remove endian check.
16756         (fpack): Add endian check.
16757         (fswap): Add endian check.
16758         (vec_interleave_highv2sf): Add endian check.
16759         (vec_interleave_lowv2sf): Add endian check.
16760         (fmix_lr): Add endian check.
16761         (vec_setv2sf): Format change.
16762         (*vec_extractv2sf_0_be): Use shift to extract operand.
16763         (*vec_extractv2sf_1_be): New.
16764         (vec_pack_trunc_v4hi): Add endian check.
16765         (vec_pack_trunc_v2si): Format change.
16766
16767 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
16768
16769         PR inline-asm/23200
16770         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
16771         do bb, locus and block comparison and disallow loads if it is not set.
16772         (stmt_is_replaceable_p): New function.
16773         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
16774         callers.
16775         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
16776         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
16777         SSA_NAME_DEF_STMT.
16778         * tree-flow.h (stmt_is_replaceable_p): New prototype.
16779
16780 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
16781
16782         * config/rs6000/xilinx.opt: New.
16783         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
16784
16785 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
16786
16787         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
16788
16789 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
16790
16791         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
16792         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
16793         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
16794         secondary_reload_info, xtensa_secondary_reload): Remove.
16795         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
16796         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
16797         (xtensa_preferred_reload_class): Make static. Change return and
16798         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
16799         Use CONST_DOUBLE_P predicate.
16800         (xtensa_preferred_output_reload_class): New function.
16801         (xtensa_secondary_reload): Make static.
16802
16803 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
16804
16805         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
16806         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
16807         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
16808
16809 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
16810
16811         PR middle-end/31490
16812         * output.h (SECTION_RELRO): Define.
16813         (SECTION_MACH_DEP): Adjust.
16814         (get_variable_section): New prototype.
16815         * varpool.c (varpool_finalize_named_section_flags): New function.
16816         (varpool_assemble_pending_decls): Call it.
16817         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
16818         * cgraphunit.c (cgraph_output_in_order): Call
16819         varpool_finalize_named_section_flags.
16820         * varasm.c (get_section): Allow section flags conflicts between
16821         relro and read-only sections if the section hasn't been declared yet.
16822         Set SECTION_OVERRIDE after diagnosing section type conflict.
16823         (get_variable_section): No longer static.
16824         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
16825         readonly sections that need relocations.
16826         (decl_readonly_section_1): New function.
16827         (decl_readonly_section): Use it.
16828
16829         Revert:
16830         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
16831                     Steve Ellcey  <sje@cup.hp.com>
16832
16833         PR middle-end/31490
16834         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
16835         if section attribute used.
16836
16837 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
16838
16839         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
16840         * config/darwin.c (SECTION_NO_ANCHOR): Define.
16841         (darwin_init_sections): Remove assertion.
16842
16843 2011-02-03  Nick Clifton  <nickc@redhat.com>
16844
16845         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
16846         lt and ge.
16847         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
16848         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
16849         instead of "n" and "pz".
16850         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
16851         CC_FLAG_S.
16852
16853 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
16854
16855         PR target/47312
16856         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
16857         fma, expand FMA_EXPR as fma{,f,l} call.
16858
16859         PR lto/47274
16860         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
16861         copy them into a unsigned char variable and pass address of it to
16862         lto_output_data_stream.
16863
16864         PR target/47564
16865         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
16866         around backend_init_target and lang_dependent_init_target calls.
16867         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
16868         (verify_cgraph_node): Don't call set_cfun here.  Use
16869         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
16870         Set error_found for incorrectly represented calls to thunks.
16871
16872 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
16873
16874         PR debug/43092
16875         PR rtl-optimization/43494
16876         * rtl.h (for_each_inc_dec_fn): New type.
16877         (for_each_inc_dec): Declare.
16878         * rtlanal.c (struct for_each_inc_dec_ops): New type.
16879         (for_each_inc_dec_find_inc_dec): New fn.
16880         (for_each_inc_dec_find_mem): New fn.
16881         (for_each_inc_dec): New fn.
16882         * dse.c (struct insn_size): Remove.
16883         (replace_inc_dec, replace_inc_dec_mem): Remove.
16884         (emit_inc_dec_insn_before): New fn.
16885         (check_for_inc_dec): Use it, along with for_each_inc_dec.
16886         (canon_address): Pass mem modes to cselib_lookup.
16887         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
16888         (cselib_lookup_from_insn): Likewise.
16889         (cselib_subst_to_values): Likewise.
16890         * cselib.c (find_slot_memmode): New var.
16891         (cselib_find_slot): New fn.  Use it instead of
16892         htab_find_slot_with_hash everywhere.
16893         (entry_and_rtx_equal_p): Use find_slot_memmode.
16894         (autoinc_split): New fn.
16895         (rtx_equal_for_cselib_p): Rename and implement in terms of...
16896         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
16897         Deal with autoinc.  Special-case recursion into MEMs.
16898         (cselib_hash_rtx): Likewise.
16899         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
16900         address and MEM modes.
16901         (cselib_subst_to_values): Add memmode, pass it on.
16902         Deal with autoinc.
16903         (cselib_lookup): Add memmode argument, pass it on.
16904         (cselib_lookup_from_insn): Add memmode.
16905         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
16906         (struct cselib_record_autoinc_data): New.
16907         (cselib_record_autoinc_cb): New fn.
16908         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
16909         mode to cselib_lookup.  Reset autoinced REGs here instead of...
16910         (cselib_process_insn): ... here.
16911         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
16912         to cselib_lookup.
16913         (add_uses): Likewise, also to cselib_subst_to_values.
16914         (add_stores): Likewise.
16915         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
16916         cselib_subst_to_values.
16917         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
16918         * gcse.c (do_local_cprop): Adjusted.
16919         * postreload.c (reload_cse_simplify_set): Adjusted.
16920         (reload_cse_simplify_operands): Adjusted.
16921         * sel-sched-dump (debug_mem_addr_value): Pass mode.
16922
16923 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
16924
16925         PR tree-optimization/45122
16926         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
16927         unsafe assumptions when there's more than one loop exit.
16928
16929 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16930
16931         PR target/47272
16932         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
16933         Document using vector double with the load/store builtins, and
16934         that the load/store builtins always use Altivec instructions.
16935
16936         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
16937         to use altivec memory instructions, even on VSX.
16938         (vector_altivec_store_<mode>): Ditto.
16939
16940         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
16941         function.
16942
16943         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16944         V2DF, V2DI support to load/store overloaded builtins.
16945
16946         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
16947         altivec load/store builtins for V2DF/V2DI types.
16948
16949         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
16950         set avoid indexed addresses on power6 if -maltivec.
16951         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
16952         vector_altivec_load/vector_altivec_store builtins.
16953         (altivec_expand_st_builtin): Ditto.
16954         (altivec_expand_builtin): Add VSX memory builtins.
16955         (rs6000_init_builtins): Add V2DI types to internal types.
16956         (altivec_init_builtins): Add support for V2DF/V2DI altivec
16957         load/store builtins.
16958         (rs6000_address_for_altivec): Insure memory address is appropriate
16959         for Altivec.
16960
16961         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
16962         vec_vsx_ld and vec_vsx_st.
16963         (vsx_store_<mode>): Ditto.
16964
16965         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
16966         variables to hold long long types for VSX vector memory builtins.
16967         (RS6000_BTI_unsigned_long_long): Ditto.
16968         (long_long_integer_type_internal_node): Ditti.
16969         (long_long_unsigned_type_internal_node): Ditti.
16970
16971         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
16972         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
16973         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
16974
16975         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
16976         short cuts.
16977         (vec_vsx_st): Ditto.
16978
16979 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
16980
16981         * config/pa/pa-hpux10.opt: New.
16982         * config/hpux11.opt (pthread): New Driver option.
16983         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
16984         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
16985
16986 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
16987
16988         * config/ia64/vms.opt: New.
16989         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
16990
16991 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
16992
16993         PR target/47580
16994         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
16995         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
16996         generator functions.
16997         (vsx_floatuns<VSi><mode>2): Ditto.
16998         (vsx_fix_trunc<mode><VSi>2): Ditto.
16999         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
17000
17001 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
17002
17003         * config/i386/djgpp.opt (posix): New Driver option.
17004
17005 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
17006
17007         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
17008         Move to the unsupported targets list.
17009
17010 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
17011
17012         PR rtl-optimization/47525
17013         * df-scan.c: Update copyright years.
17014         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
17015         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
17016
17017 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17018
17019         * config/i386/sysv4.h (TARGET_VERSION): Remove.
17020         (SUBTARGET_RETURN_IN_MEMORY): Remove.
17021         (ASM_OUTPUT_ASCII): Remove.
17022         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
17023
17024 2011-02-02  Jeff Law  <law@redhat.com>
17025
17026         PR middle-end/47543
17027         * reload.c (find_reloads_address): Handle reg+d address where both
17028         components are invalid by reloading the entire address.
17029
17030 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
17031             Richard Guenther  <rguenther@suse.de>
17032
17033         PR tree-optimization/40979
17034         PR bootstrap/47044
17035         * passes.c (init_optimization_passes): After LIM call copy_prop
17036         and DCE to clean up.
17037         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
17038
17039 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
17040
17041         PR tree-optimization/47576
17042         PR tree-optimization/47555
17043         * doc/invoke.texi (scev-max-expr-complexity): Documented.
17044         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17045         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
17046         * tree-scalar-evolution.c (follow_ssa_edge): Use
17047         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
17048
17049 2011-02-02  Richard Guenther  <rguenther@suse.de>
17050
17051         PR tree-optimization/47566
17052         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
17053
17054 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
17055
17056         PR debug/47106
17057         PR debug/47402
17058         * tree-inline.c (declare_return_variable): Remove unused caller
17059         variable.
17060
17061         PR debug/47106
17062         PR debug/47402
17063         * tree-flow-inline.h (clear_is_used, is_used_p): New.
17064         * cfgexpand.c (account_used_vars_for_block): Use them.
17065         * tree-nrv.c (tree_nrv): Likewise.
17066         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
17067         (dump_scope_block): Likewise.
17068         (remove_unused_locals): Likewise.
17069
17070         PR debug/47106
17071         PR debug/47402
17072         * tree-inline.c (declare_return_variable): Add result decl to
17073         local decls only once.
17074         * gimple-low.c (record_vars_into): Mark newly-created variables
17075         as referenced.
17076
17077 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
17078
17079         PR debug/47498
17080         PR debug/47501
17081         PR debug/45136
17082         PR debug/45130
17083         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
17084         debug insns.
17085         (no_real_insns_p, schedule_block, set_priorities): Drop special
17086         treatment of boundary debug insns.
17087         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
17088         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
17089         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
17090         (BOUNDARY_DEBUG_INSN_P): Likewise.
17091         (SCHEDULE_DEBUG_INSN_P): Likewise.
17092         * sched-rgn.c (init_ready_list): Drop special treatment of
17093         boundary debug insns.
17094         * final.c (rest_of_clean_state): Clear notes' BB.
17095
17096 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17097
17098         * config/openbsd.opt (assert=): New Driver option.
17099
17100 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17101
17102         * config/i386/nto.opt: New.
17103         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
17104
17105 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17106
17107         * config/i386/netware.opt: New.
17108         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
17109
17110 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17111
17112         * config/interix.opt (posix): New Driver option.
17113
17114 2011-02-01  DJ Delorie  <dj@redhat.com>
17115
17116         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
17117
17118         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
17119         class for A0/A1.
17120
17121 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
17122
17123         PR tree-optimization/47561
17124         * toplev.c (process_options): Print the Graphite flags.  Add
17125         flag_loop_flatten to the list of options requiring Graphite.
17126
17127 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17128
17129         * config/i386/cygming.opt (posix): New Driver option.
17130
17131 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17132
17133         * config/arm/vxworks.opt: New.
17134         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
17135
17136 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17137
17138         * config/alpha/elf.opt: New.
17139         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
17140         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
17141
17142 2011-02-01  Richard Guenther  <rguenther@suse.de>
17143
17144         PR tree-optimization/47559
17145         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
17146         store-motion on references that can throw.
17147
17148 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
17149
17150         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
17151         * tree-pass.h (TDF_CSELIB): New macro.
17152         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
17153         cselib_lookup): Check for it rather than for TDF_DETAILS.
17154
17155 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
17156
17157         PR driver/47547
17158         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
17159         is HOST_BIT_BUCKET.
17160
17161         * opts.c (finish_options): Don't add x_aux_base_name if it is
17162         HOST_BIT_BUCKET.
17163
17164 2011-02-01  Richard Guenther  <rguenther@suse.de>
17165
17166         PR tree-optimization/47555
17167         Revert
17168         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
17169
17170         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17171
17172 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
17173
17174         PR gcc/46692
17175         * config/lm32/t-lm32: Add multilib for all CPU options.
17176
17177 2011-02-01  Richard Guenther  <rguenther@suse.de>
17178
17179         PR tree-optimization/47541
17180         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
17181         sure to have a field at offset zero.
17182
17183 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
17184
17185         * config/arc/arc.opt (EB, EL): New Driver options.
17186
17187 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
17188
17189         * config/alpha/osf5.opt: New.
17190         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
17191
17192 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
17193
17194         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
17195
17196 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
17197
17198         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
17199         -floop-interchange.
17200         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
17201         is an alias of -floop-interchange and that it requires the
17202         Graphite infrastructure.
17203         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
17204         flag_loop_interchange based on the value of flag_tree_loop_linear.
17205
17206 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
17207             Richard Guenther  <rguenther@suse.de>
17208
17209         PR tree-optimization/47538
17210         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
17211         type instead of r1type, except for comparisons.  For right
17212         shifts and comparisons punt if there are mismatches in
17213         sizetype vs. non-sizetype types.
17214
17215 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17216
17217         * doc/sourcebuild.texi (Effective-Target Keywords): Document
17218         avx_runtime.
17219
17220 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17221
17222         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
17223         version number.
17224         * configure: Regenerate.
17225
17226 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17227
17228         * configure.ac (gcc_cv_ld_static_option): Define.
17229         (gcc_cv_ld_dynamic_option): Define.
17230         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
17231         instead.
17232         (HAVE_LD_STATIC_DYNAMIC): Update message.
17233         (LD_STATIC_OPTION): Define.
17234         (LD_DYNAMIC_OPTION): Define.
17235         * configure: Regenerate.
17236         * config.in: Regenerate.
17237         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
17238         HAVE_LD_STATIC_DYNAMIC]: Use them.
17239
17240 2011-01-31  Nick Clifton  <nickc@redhat.com>
17241
17242         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
17243         registers inside interrupt handlers if the handler is not a leaf
17244         function.
17245
17246 2011-01-31  Nick Clifton  <nickc@redhat.com>
17247
17248         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
17249         reg_renumber returning an INVALID_REGNUM.
17250
17251 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
17252
17253         PR libgcj/44341
17254         * doc/install.texi: Document host options discarded when cross
17255         configuring target libraries.
17256
17257 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
17258
17259         Reverted:
17260         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
17261         PR debug/45136
17262         PR debug/45130
17263         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
17264         debug insns.
17265         (no_real_insns_p, schedule_block, set_priorities): Drop special
17266         treatment of boundary debug insns.
17267         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
17268         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
17269         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
17270         (BOUNDARY_DEBUG_INSN_P): Likewise.
17271         (SCHEDULE_DEBUG_INSN_P): Likewise.
17272         * sched-rgn.c (init_ready_list): Drop special treatment of
17273         boundary debug insns.
17274         * final.c (rest_of_clean-state): Clear notes' BB.
17275
17276 2011-01-31  Alan Modra  <amodra@gmail.com>
17277
17278         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
17279         toc relative expressions as we do in print_operand_address.
17280
17281 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
17282
17283         * doc/extend.texi: Follow spelling conventions.
17284         * doc/invoke.texi: Fix a typo.
17285
17286 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
17287
17288         * config/hpux11.opt: New.
17289         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
17290         ia64*-*-hpux*): Use hpux11.opt.
17291
17292 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
17293
17294         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
17295         to tmake_file.
17296
17297 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
17298
17299         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
17300         support sites.
17301
17302 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
17303
17304         * doc/install.texi (Binaries): Remove outdated reference for
17305         Motorola 68HC11/68HC12 downloads.
17306
17307 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
17308
17309         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
17310         Drepper's paper.
17311
17312 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
17313
17314         PR bootstrap/47147
17315         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
17316         used by NetBSD.
17317
17318 2011-01-28  Ahmad Sharif  <asharif@google.com>
17319
17320         * value-prof.c (check_counter): Corrected error message.
17321
17322 2011-01-29  Jie Zhang  <jie@codesourcery.com>
17323
17324         * config/arm/arm.c (arm_legitimize_reload_address): New.
17325         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
17326         arm_legitimize_reload_address.
17327         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
17328
17329 2011-01-28  Ian Lance Taylor  <iant@google.com>
17330
17331         * godump.c (go_define): Ignore macros whose definitions include
17332         two adjacent operands.
17333
17334 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
17335
17336         PR target/42894
17337         * varasm.c (force_const_mem): Store copy of x in desc->constant
17338         instead of x itself.
17339         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
17340         itself into REG_EQUAL note.
17341
17342 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
17343
17344         * config/freebsd.opt (posix, rdynamic): New Driver options.
17345
17346 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17347
17348         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
17349         -Bstatic/-Bdynamic.
17350         * configure: Regenerate.
17351
17352 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
17353
17354         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
17355         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
17356
17357 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
17358
17359         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
17360         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
17361         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
17362         (s390_preferred_reload_class): Make static. Change return and
17363         'rclass' argument type to reg_class_t.
17364
17365 2011-01-27  Jan Hubicka  <jh@suse.cz>
17366
17367         PR middle-end/46949
17368         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
17369         (process_function_and_variable_attributes): Check defined weakrefs.
17370
17371 2011-01-27  Martin Jambor  <mjambor@suse.cz>
17372
17373         PR tree-optimization/47228
17374         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
17375         build_ref_for_offset.
17376
17377 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17378
17379         * config/spu/spu-elf.h (ASM_SPEC): Remove.
17380
17381 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
17382
17383         PR rtl-optimization/46856
17384         * postreload.c (reload_combine_recognize_const_pattern): Do not
17385         separate cc0 setter and user on cc0 targets.
17386
17387 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
17388
17389         PR c/43082
17390         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
17391         passed a VOID_TYPE expression, immediately emit an error and
17392         return error_mark_node.
17393
17394 2011-01-26  Jeff Law  <law@redhat.com>
17395
17396         PR rtl-optimization/47464
17397         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
17398         rather than may_trap_p as needed.
17399
17400 2011-01-26  DJ Delorie  <dj@redhat.com>
17401
17402         PR rtl-optimization/46878
17403         * combine.c (insn_a_feeds_b): Check for the implicit cc0
17404         setter/user dependency as well.
17405
17406 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
17407
17408         PR rtl-optimization/44469
17409         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
17410         after removing trivially dead basic blocks.
17411
17412 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
17413
17414         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
17415         * config/frv/frv.h (LINK_SPEC): Likewise.
17416         * config/i386/netware.h (LINK_SPEC): Likewise.
17417         * config/m68k/linux.h (ASM_SPEC): Likewise.
17418         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
17419         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
17420         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17421         * config/sparc/linux.h (ASM_SPEC): Likewise.
17422         * config/sparc/linux64.h (ASM_SPEC): Likewise.
17423         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17424
17425 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
17426
17427         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
17428         * config/frv/frv.h (ASM_SPEC): Likewise.
17429         * config/m68k/linux.h (ASM_SPEC): Likewise.
17430         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
17431         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
17432         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17433         * config/sparc/linux.h (ASM_SPEC): Likewise.
17434         * config/sparc/linux64.h (ASM_SPEC): Likewise.
17435         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17436
17437 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
17438
17439         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
17440         * config/frv/frv.h (LINK_SPEC): Likewise.
17441         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
17442
17443 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
17444
17445         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
17446         * config/frv/frv.h (ASM_SPEC): Likewise.
17447         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
17448         * config/m68k/linux.h (ASM_SPEC): Likewise.
17449         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
17450         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
17451         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17452         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
17453         * config/sparc/linux.h (ASM_SPEC): Likewise.
17454         * config/sparc/linux64.h (ASM_SPEC): Likewise.
17455         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17456         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
17457
17458 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
17459
17460         PR target/46997
17461         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
17462         (*mux2): Ditto.
17463         (vec_extract_evenodd_help): Ditto.
17464         (vec_extract_evenv4hi): Ditto.
17465         (vec_extract_oddv4hi): Ditto.
17466         (vec_interleave_lowv2si): Ditto.
17467         (vec_interleave_highv2si): Ditto.
17468         (vec_extract_evenv2si): Ditto.
17469         (vec_extract_oddv2si: Ditto.
17470         (vec_pack_trunc_v2si): Ditto.
17471
17472 2011-01-22  Jan Hubicka  <jh@suse.cz>
17473
17474         PR target/47237
17475         * cgraph.h (cgraph_local_info): New field can_change_signature.
17476         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
17477         signature can change.
17478         (ipcp_estimate_growth): Call sequence simplify only if calle signature
17479         can change.
17480         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
17481         (cgraph_function_versioning): We can not change signature of functions
17482         that don't allow that.
17483         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
17484         (lto_input_node): Likewise.
17485         * ipa-inline.c (compute_inline_parameters): Compute
17486         local.can_change_signature.
17487         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
17488         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
17489         functions that can not change signature.
17490         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
17491         init_cumulative_args): Do not use local calling conventions
17492         for functions that can not change signature.
17493
17494 2011-01-22  Jan Hubicka  <jh@suse.cz>
17495
17496         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
17497
17498 2011-01-26  Richard Guenther  <rguenther@suse.de>
17499
17500         PR tree-optimization/47190
17501         * cgraphunit.c (process_common_attributes): New function.
17502         (process_function_and_variable_attributes): Use it.
17503
17504 2011-01-26  Richard Guenther  <rguenther@suse.de>
17505
17506         PR lto/47423
17507         * cgraphbuild.c (record_eh_tables): Record reference to personality
17508         function.
17509
17510 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
17511
17512         PR debug/45454
17513         * sel-sched.c (moveup_expr): Don't let debug insns prevent
17514         non-debug insns from moving up.
17515
17516 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
17517
17518         PR target/40125
17519         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
17520         t-dlldir{,-x} fragment for build and add it to tmake_file.
17521         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
17522         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
17523         * config/i386/t-dlldir: New file.
17524         (SHLIB_DLLDIR): Define.
17525         * config/i386/t-dlldir-x: New file.
17526         (SHLIB_DLLDIR): Define.
17527         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
17528         (SHLIB_INSTALL): Use it.
17529
17530 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
17531
17532         PR target/47246
17533         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
17534         lower bound of the allowed Thumb-2 coprocessor load/store
17535         index range to -256. Add explaining comment.
17536
17537 2011-01-25  Ian Lance Taylor  <iant@google.com>
17538
17539         * godump.c (go_define): Improve lexing of macro expansion to only
17540         accept expressions which match Go spec.
17541
17542 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
17543
17544         PR c++/43601
17545         * tree.c (handle_dll_attribute): Handle it.
17546         * doc/extend.texi (@item dllexport): Mention it.
17547         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
17548
17549 2011-01-25  Ian Lance Taylor  <iant@google.com>
17550
17551         PR tree-optimization/26854
17552         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
17553         (decl_jump_unsafe): Move higher in file, with no other change.
17554         (bind): Set has_jump_unsafe_decl if appropriate.
17555         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
17556         (check_earlier_gotos): Likewise.
17557         (c_check_switch_jump_warnings): Likewise.
17558
17559 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
17560
17561         * doc/invoke.texi (Warning Options): Add missing hyphen.
17562         (-fprofile-dir): Minor grammatical fixes.
17563         (-fbranch-probabilities): Likewise.
17564
17565 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
17566
17567         PR debug/45136
17568         PR debug/45130
17569         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
17570         debug insns.
17571         (no_real_insns_p, schedule_block, set_priorities): Drop special
17572         treatment of boundary debug insns.
17573         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
17574         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
17575         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
17576         (BOUNDARY_DEBUG_INSN_P): Likewise.
17577         (SCHEDULE_DEBUG_INSN_P): Likewise.
17578         * sched-rgn.c (init_ready_list): Drop special treatment of
17579         boundary debug insns.
17580         * final.c (rest_of_clean-state): Clear notes' BB.
17581
17582 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17583
17584         * Makefile.in (LAMBDA_H): Removed.
17585         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
17586         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
17587         lambda-trans.o, and tree-loop-linear.o.
17588         (lto-symtab.o): Remove dependence on LAMBDA_H.
17589         (tree-loop-linear.o): Remove rule.
17590         (lambda-mat.o): Same.
17591         (lambda-trans.o): Same.
17592         (lambda-code.o): Same.
17593         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
17594         (tree-vect-slp.o): Same.
17595         * hwint.h (gcd): Moved here.
17596         (least_common_multiple): Same.
17597         * lambda-code.c: Removed.
17598         * lambda-mat.c: Removed.
17599         * lambda-trans.c: Removed.
17600         * lambda.h: Removed.
17601         * tree-loop-linear.c: Removed.
17602         * lto-symtab.c: Do not include lambda.h.
17603         * omega.c (gcd): Removed.
17604         * passes.c (init_optimization_passes): Remove pass_linear_transform.
17605         * tree-data-ref.c (print_lambda_vector): Moved here.
17606         (lambda_vector_copy): Same.
17607         (lambda_matrix_copy): Same.
17608         (lambda_matrix_id): Same.
17609         (lambda_vector_first_nz): Same.
17610         (lambda_matrix_row_add): Same.
17611         (lambda_matrix_row_exchange): Same.
17612         (lambda_vector_mult_const): Same.
17613         (lambda_vector_negate): Same.
17614         (lambda_matrix_row_negate): Same.
17615         (lambda_vector_equal): Same.
17616         (lambda_matrix_right_hermite): Same.
17617         * tree-data-ref.h: Do not include lambda.h.
17618         (lambda_vector): Moved here.
17619         (lambda_matrix): Same.
17620         (dependence_level): Same.
17621         (lambda_transform_legal_p): Removed declaration.
17622         (lambda_collect_parameters): Same.
17623         (lambda_compute_access_matrices): Same.
17624         (lambda_vector_gcd): Same.
17625         (lambda_vector_new): Same.
17626         (lambda_vector_clear): Same.
17627         (lambda_vector_lexico_pos): Same.
17628         (lambda_vector_zerop): Same.
17629         (lambda_matrix_new): Same.
17630         * tree-flow.h (least_common_multiple): Removed declaration.
17631         * tree-parloops.c (lambda_trans_matrix): Moved here.
17632         (LTM_MATRIX): Same.
17633         (LTM_ROWSIZE): Same.
17634         (LTM_COLSIZE): Same.
17635         (LTM_DENOMINATOR): Same.
17636         (lambda_trans_matrix_new): Same.
17637         (lambda_matrix_vector_mult): Same.
17638         (lambda_transform_legal_p): Same.
17639         * tree-pass.h (pass_linear_transform): Removed declaration.
17640         * tree-ssa-loop.c (tree_linear_transform): Removed.
17641         (gate_tree_linear_transform): Removed.
17642         (pass_linear_transform): Removed.
17643         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
17644         flag_loop_interchange.
17645
17646 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
17647
17648         PR tree-optimization/47265
17649         PR tree-optimization/47443
17650         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
17651         if name still has some uses.
17652
17653 2011-01-25  Martin Jambor  <mjambor@suse.cz>
17654
17655         PR tree-optimization/47382
17656         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
17657         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
17658
17659 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
17660
17661         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
17662         sjlj_except_unwind_info.
17663
17664 2011-01-25  Richard Guenther  <rguenther@suse.de>
17665
17666         PR tree-optimization/47426
17667         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
17668         visible functions results escape.
17669
17670 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
17671
17672         PR target/45701
17673         * config/arm/arm.c (any_sibcall_uses_r3): New function.
17674         (arm_get_frame_offsets): Use it.
17675
17676 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17677             Jakub Jelinek  <jakub@redhat.com>
17678
17679         PR tree-optimization/47271
17680         * tree-if-conv.c (bb_postdominates_preds): New.
17681         (if_convertible_bb_p): Call bb_postdominates_preds.
17682         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
17683         (predicate_scalar_phi): Call bb_postdominates_preds.
17684
17685 2011-01-25  Nick Clifton  <nickc@redhat.com>
17686
17687         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
17688         * config/rx/rx.c (rx_function_value): Likewise.
17689         (rx_promote_function_mode): Likewise.
17690         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
17691         in order to make it legitimate.
17692         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
17693         make sure that the first operand is the same as the result register.
17694         (addsi3_unspec): Delete.
17695         (subdi3): Do not accept immediate operands.
17696         (subdi3_internal): Likewise.
17697
17698 2011-01-25  Jeff Law  <law@redhat.com>
17699
17700         PR rtl-optimization/37273
17701         * ira-costs.c (scan_one_insn): Detect constants living in memory and
17702         handle them like argument loads from stack slots.  Do not double
17703         count memory for memory constants and argument loads from stack slots.
17704
17705 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
17706
17707         PR tree-optimization/47427
17708         PR tree-optimization/47428
17709         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
17710         coalesce if the new root var would be TREE_READONLY.
17711
17712 2011-01-25  Richard Guenther  <rguenther@suse.de>
17713
17714         PR middle-end/47414
17715         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
17716         correct type for TBAA.
17717
17718 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17719
17720         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
17721         (close_phi_written_to_memory): Call for_each_index with
17722         dr_indices_valid_in_loop.
17723
17724 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17725
17726         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
17727         when it is initialized.
17728
17729 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17730
17731         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
17732         call to graphite_find_data_references_in_stmt.
17733         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
17734         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
17735         call to graphite_find_data_references_in_stmt.
17736         (analyze_drs_in_stmts): Same.
17737         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
17738         in which the scalar analysis of indices is performed.
17739         (create_data_ref): Same.  Update call to dr_analyze_indices.
17740         (find_data_references_in_stmt): Update call to create_data_ref.
17741         (graphite_find_data_references_in_stmt): Same.
17742         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
17743         declaration.
17744         (create_data_ref): Same.
17745         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
17746         call to create_data_ref.
17747
17748 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17749
17750         * graphite-sese-to-poly.c (build_poly_scop): Move
17751         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
17752
17753 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17754
17755         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
17756         VAR_DECL, PARM_DECL, and RESULT_DECL.
17757
17758 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17759
17760         * graphite-dependences.c (reduction_dr_1): Allow several reductions
17761         in a reduction PBB.
17762         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
17763         that have already been marked as PBB_IS_REDUCTION.
17764
17765 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17766
17767         * graphite-scop-detection.c (same_close_phi_node): New.
17768         (remove_duplicate_close_phi): New.
17769         (make_close_phi_nodes_unique): New.
17770         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
17771
17772 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17773
17774         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
17775         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
17776         of both data references to be the same.
17777
17778 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17779
17780         * graphite-dependences.c (build_lexicographical_constraint): Remove
17781         the gdim parameter.
17782         (build_lexicographical_constraint): Adjust call to
17783         ppl_powerset_is_empty.
17784         (dependence_polyhedron): Same.
17785         (graphite_legal_transform_dr): Same.
17786         (graphite_carried_dependence_level_k): Same.
17787         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
17788         parameter.
17789         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
17790
17791 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17792
17793         * graphite-sese-to-poly.c
17794         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
17795         (close_phi_written_to_memory): New.
17796         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
17797         and unshare_expr.
17798
17799 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17800
17801         * doc/install.texi: Update the expected version number of PPL to 0.11.
17802         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
17803         #if PPL_VERSION_MINOR < 11.
17804
17805 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17806
17807         * graphite-dependences.c: Include graphite-cloog-util.h.
17808         (new_poly_ddr): Inlined into dependence_polyhedron.
17809         (free_poly_ddr): Moved close by new_poly_ddr.
17810         (dependence_polyhedron_1): Renamed dependence_polyhedron.
17811         Early return NULL when ppl_powerset_is_empty returns true.
17812         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
17813         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
17814         (graphite_legal_transform_dr): Call new_poly_ddr.
17815         (graphite_carried_dependence_level_k): Same.
17816         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
17817         (dot_transformed_deps_stmt_1): Removed.
17818         (dot_deps_stmt_1): Call dot_deps_stmt_2.
17819         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
17820         (dot_deps_1): Call dot_deps_2.
17821         * Makefile.in (graphite-dependences.o): Add missing dependence on
17822         graphite-cloog-util.h.
17823
17824 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17825
17826         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
17827         (build_lexicographical_constraint): Same.
17828         (dependence_polyhedron_1): Same.
17829         (graphite_legal_transform_dr): Same.
17830         (graphite_carried_dependence_level_k): Same.
17831         * graphite-ppl.c (ppl_powerset_is_empty): New.
17832         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
17833         * tree-data-ref.c (dump_data_reference): Print the basic block index.
17834
17835 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17836
17837         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
17838         the "a followed by b" relation and document it.
17839
17840 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17841
17842         * graphite-dependences.c (build_lexicographical_constraint): Stop the
17843         iteration when the bag of constraints is empty.
17844
17845 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17846
17847         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
17848
17849 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17850
17851         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
17852         nest and two loop depths as parameters.
17853         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
17854         lst_perfect_nestify.
17855
17856 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17857
17858         * graphite-dependences.c (print_pddr): Call
17859         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
17860
17861 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17862
17863         * graphite-ppl.c (debug_gmp_value): New.
17864         * graphite-ppl.h (debug_gmp_value): Declared.
17865
17866 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
17867
17868         * doc/install.texi: Document availability of cloog-0.16.
17869
17870 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
17871
17872         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
17873         invalid postdominance info.
17874
17875 2011-01-24  Jan Hubicka  <jh@suse.cz>
17876
17877         PR c/21659
17878         * doc/extend.texi (weak pragma): Drop claim that it must
17879         appear before definition.
17880         * varasm.c (merge_weak, declare_weak): Only sanity check
17881         that DECL is not output at a time it is declared weak.
17882
17883 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
17884
17885         * machmode.def: Fixed comments.
17886
17887 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
17888
17889         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
17890
17891 2011-01-24  Paul Koning  <ni1d@arrl.net>
17892
17893         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
17894         WORDS_BIG_ENDIAN.
17895
17896 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
17897
17898         PR target/46519
17899         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
17900         (block_info): Add scanned and prev.
17901         (move_or_delete_vzeroupper_2): Return if the basic block
17902         has been scanned and the upper 128bit state is unchanged
17903         from the last scan.
17904         (move_or_delete_vzeroupper_1): Return true if the exit
17905         state is changed.
17906         (move_or_delete_vzeroupper): Visit basic blocks using the
17907         work-list based algorithm based on vt_find_locations in
17908         var-tracking.c.
17909
17910         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
17911
17912 2011-01-24  Nick Clifton  <nickc@redhat.com>
17913
17914         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
17915         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
17916         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
17917         then define __v850e1__.
17918         * doc/invoke.texi: Document -mv850es.
17919
17920 2011-01-24  Richard Henderson  <rth@redhat.com>
17921
17922         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
17923         compound unordered comparisons.
17924         * config/rx/rx.c (rx_split_fp_compare): Remove.
17925         * config/rx/rx-protos.h: Update.
17926         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
17927         (cbranchsf4): Don't call rx_split_fp_compare.
17928         (*cbranchsf4): Use rx_split_cbranch.
17929         (*cmpsf): Don't accept "i" constraint.
17930         (*conditional_branch): Only valid after reload.
17931         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
17932
17933 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
17934
17935         PR target/47385
17936         * config/rs6000/altivec.md (vector constant splitters): Add
17937         support for creating vector single precision constants if -mvsx is
17938         used and we would create the constant using Altivec primitives.
17939
17940 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
17941             Richard Sandiford  <rdsandiford@googlemail.com>
17942
17943         PR rtl-optimization/47166
17944         * reload1.c (emit_reload_insns): Disable the spill_reg_store
17945         mechanism for PRE_MODIFY and POST_MODIFY.
17946         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
17947         reloadreg.
17948
17949 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
17950
17951         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
17952
17953 2011-01-22  Jan Hubicka  <jh@suse.cz>
17954
17955         PR lto/47333
17956         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
17957
17958 2011-01-22  Jan Hubicka  <jh@suse.cz>
17959
17960         PR tree-optimization/43884
17961         PR lto/44334
17962         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
17963         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
17964
17965 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
17966
17967         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
17968         * config/s390/s390.c (s390_register_move_cost,
17969         s390_memory_move_cost): New.
17970         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
17971
17972 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17973
17974         PR middle-end/47401
17975         * except.c (sjlj_assign_call_site_values): Move setting the
17976         crtl->uses_eh_lsda flag to ...
17977         (sjlj_mark_call_sites): ... here.
17978         (sjlj_emit_function_enter): Support NULL dispatch label.
17979         (sjlj_build_landing_pads): In a function with no landing pads
17980         that still has must-not-throw regions, generate code to register
17981         a personality function with empty LSDA.
17982
17983 2011-01-21  Richard Henderson  <rth@redhat.com>
17984
17985         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
17986
17987         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
17988
17989         * compare-elim.c: New file.
17990         * Makefile.in (OBJS-common): Add it.
17991         (compare-elim.o): New.
17992         * common.opt (fcompare-elim): New.
17993         * opts.c (default_options_table): Add OPT_fcompare_elim.
17994         * tree-pass.h (pass_compare_elim_after_reload): New.
17995         * passes.c (init_optimization_passes): Add it.
17996         * recog.h: Protect against re-inclusion.
17997         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
17998         * doc/invoke.texi (-fcompare-elim): Document it.
17999         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
18000         * doc/tm.texi: Rebuild.
18001
18002 2011-01-22  Nick Clifton  <nickc@redhat.com>
18003
18004         * config/rx/rx.md (cstoresf4): Pass comparison operator to
18005         rx_split_fp_compare.
18006
18007 2011-01-22  Nick Clifton  <nickc@redhat.com>
18008
18009         * config/rx/rx.md (UNSPEC_CONST): New.
18010         (deallocate_and_return): Wrap the amount popped off the stack in
18011         an UNSPEC_CONST in order to stop it being rejected by
18012         -mmax-constant-size.
18013         (pop_and_return): Add a "(return)" rtx.
18014         (call): Drop the immediate operand.
18015         (call_internal): Likewise.
18016         (call_value): Likewise.
18017         (call_value_internal): Likewise.
18018         (sibcall_internal): Likewise.
18019         (sibcall_value_internal): Likewise.
18020         (sibcall): Likewise.  Generate an explicit call using
18021         sibcall_internal.
18022         (sibcall_value): Likewise.
18023         (mov<>): FAIL if a constant operand is not legitimate.
18024         (addsi3_unpsec): New pattern.
18025
18026         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
18027         (ok_for_max_constant): New function.
18028         (gen_safe_add): New function.
18029         (rx_expand_prologue): Use gen_safe_add.
18030         (rx_expand_epilogue): Likewise.
18031         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
18032         UNSPEC CONSTs.
18033
18034 2011-01-21  Jeff Law  <law@redhat.com>
18035
18036         PR tree-optimization/47053
18037         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
18038         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
18039         statements are deleted.
18040         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
18041         is nonempty, then purge dead edges and cleanup the CFG.
18042
18043 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
18044
18045         PR debug/47402
18046         Temporarily revert:
18047         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
18048         PR debug/47106
18049         * tree-dfa.c (create_var_ann): Mark variable as used.
18050
18051 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
18052
18053         PR middle-end/45566
18054         * except.c (convert_to_eh_region_ranges): Emit queued no-region
18055         notes from other section in hot/cold partitioning even if
18056         last_action is -3.  Increment call_site_base.
18057
18058         PR rtl-optimization/47366
18059         * fwprop.c (forward_propagate_into): Return bool.  If
18060         any changes are made, -fnon-call-exceptions is used and
18061         REG_EH_REGION note is present, call purge_dead_edges
18062         and return true if it purged anything.
18063         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
18064         any EH edges were purged.
18065
18066 2011-01-21  Jeff Law  <law@redhat.com>
18067
18068         PR rtl-optimization/41619
18069         * caller-save.c (setup_save_areas): Break out code to determine
18070         which hard regs are live across calls by examining the reload chains
18071         so that it is always used.
18072         Eliminate code which checked REG_N_CALLS_CROSSED.
18073
18074 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
18075
18076         PR tree-optimization/47355
18077         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
18078         NOP has non-debug uses beyond PHIs in new_bb.
18079
18080 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
18081
18082         PR debug/47106
18083         * cfgexpand.c (account_used_vars_for_block): Only account vars
18084         that are annotated as used.
18085         (estimated_stack_frame_size): Don't set TREE_USED.
18086         * tree-dfa.c (create_var_ann): Mark variable as used.
18087
18088 2011-01-21  Richard Guenther  <rguenther@suse.de>
18089
18090         PR middle-end/47395
18091         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
18092
18093 2011-01-21  Richard Guenther  <rguenther@suse.de>
18094
18095         PR tree-optimization/47365
18096         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
18097         (vn_reference_lookup_pieces): Adjust.
18098         (vn_reference_lookup): Likewise.
18099         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
18100         (vn_reference_lookup_3): Only look through kills if in
18101         VN_WALKREWRITE mode.
18102         (vn_reference_lookup_pieces): Adjust.
18103         (vn_reference_lookup): Likewise.
18104         (visit_reference_op_load): Likewise.
18105         (visit_reference_op_store): Likewise.
18106         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
18107         (compute_avail): Likewise.
18108         (eliminate): Likewise.
18109
18110 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
18111
18112         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
18113         DECL_IGNORED_P non-reg vars if they are used.
18114
18115         PR tree-optimization/47391
18116         * varpool.c (const_value_known_p): Return false if
18117         decl is volatile.
18118
18119 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
18120
18121         PR bootstrap/47215
18122         * config/i386/i386.c (ix86_local_alignment): Handle
18123         case for va_list_type_node is nil.
18124         (ix86_canonical_va_list_type): Likewise.
18125
18126 2011-01-21  Alan Modra  <amodra@gmail.com>
18127
18128         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
18129         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
18130
18131 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18132
18133         * config/arm/arm.md (define_attr type): Rename f_load
18134         and f_store to f_fpa_load and f_fpa_store. Update.
18135         (write_conflict): Deal with rename fallout.
18136         (*push_fp_multi): Likewise.
18137         * config/arm/fpa.md (f_load): Use f_fpa_load.
18138         (f_store): Use f_fpa_store.
18139         (*movsf_fpa): Likewise.
18140         (*movdf_fpa): Likewise.
18141         (*movxf_fpa): Likewise.
18142         (*thumb2_movsf_fpa): Likewise.
18143         (*thumb2_movdf_fpa): Likewise.
18144         (*thumb2_movxf_fpa): Likewise.
18145         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
18146         f_loadd and f_stored.
18147         (*thumb2_movdi_vfp): Likewise.
18148         (*thumb2_movsf_vfp): Fix attribute to f_loads.
18149         (*thumb2_movsi_vfp): Likewise.
18150         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
18151         Use f_loads instead of f_load.
18152         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
18153
18154 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
18155
18156         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18157         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
18158         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18159         (xtensa_mode_dependent_address_p): New function.
18160         (constantpool_address_p): Make static. Change return type to bool.
18161         Change argument type to const_rtx. Use CONST_INT_P predicate.
18162
18163 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
18164
18165         PR debug/46583
18166         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
18167
18168 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
18169
18170         PR debug/47283
18171         * cfgexpand.c (expand_debug_expr): Instead of generating
18172         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
18173         etc. handling.
18174
18175 2011-01-20  Richard Guenther  <rguenther@suse.de>
18176
18177         PR middle-end/47370
18178         * tree-inline.c (remap_gimple_op_r): Recurse manually for
18179         the pointer operand of MEM_REFs.
18180
18181 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
18182
18183         PR tree-optimization/46130
18184         * ipa-split.c (consider_split): If return_bb contains non-virtual
18185         PHIs other than for retval or if split_function would not adjust it,
18186         refuse to split.
18187
18188 2011-01-20  Richard Guenther  <rguenther@suse.de>
18189
18190         PR tree-optimization/47167
18191         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
18192         Revert previous change, only avoid enumeral type changes.
18193
18194 2011-01-19  Mike Stump  <mikestump@comcast.net>
18195
18196         * doc/tm.texi.in (BRANCH_COST): Englishify.
18197         * doc/tm.texi (BRANCH_COST): Likewise.
18198
18199 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
18200
18201         PR c++/47291
18202         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
18203         (gen_scheduled_generic_parms_dies): New functions.
18204         (gen_struct_or_union_type_die): Schedule template parameters DIEs
18205         generation for the end of CU compilation.
18206         (dwarf2out_finish): Generate template parameters DIEs here.
18207
18208 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
18209
18210         PR debug/46240
18211         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
18212         debug bind stmt on merge edges.
18213
18214 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
18215
18216         PR debug/47079
18217         PR debug/46724
18218         * function.c (instantiate_expr): Instantiate incoming rtl of
18219         implicit arguments, and recurse on VALUE_EXPRs.
18220         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
18221         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
18222
18223 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
18224
18225         * c-parser.c (c_parser_for_statement): Initialize
18226         collection_expression.
18227
18228 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
18229
18230         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
18231
18232 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
18233
18234         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
18235         (LINK_SHLIB_SPEC): Don't use %(link_path).
18236         (SUBTARGET_EXTRA_SPECS): Remove link_path.
18237
18238 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
18239
18240         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
18241         (NO_SHARED_LIB_SUPPORT): Remove.
18242         (LINK_SHLIB_SPEC): Remove one conditional definition.
18243
18244 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
18245
18246         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
18247         %{call_shared}.
18248         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
18249         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
18250         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
18251         %{call_shared} and conditionals on these options not being passed.
18252         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
18253         %{call_shared}.
18254
18255 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
18256
18257         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
18258         simplify.
18259
18260         * ipa-split.c: Spelling fixes.
18261
18262 2011-01-19  Richard Henderson  <rth@redhat.com>
18263
18264         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
18265         (*mulsi3): Likewise.
18266
18267         * longlong.h [__mn10300__] (count_leading_zeros): New.
18268         [__mn10300__] (umul_ppmm, smul_ppmm): New.
18269         [__mn10300__] (add_ssaaaa, subddmmss): New.
18270         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
18271         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
18272
18273 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18274
18275         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
18276
18277 2011-01-19  Richard Henderson  <rth@redhat.com>
18278
18279         * config/mn10300/mn10300.md (addsi3_flags): New.
18280         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
18281         (subsi3_flags, subc_internal, subdi3): New.
18282         (subdi3_internal, *subdi3_degenerate): New.
18283         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
18284
18285         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
18286         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
18287         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
18288         * config/mn10300/mn10300-protos.h: Update.
18289         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
18290         (return_ret): Likewise.  Rename from return_internal_regs.
18291         (return_internal): Remove.
18292
18293         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
18294         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
18295         (mn10300_legitimate_constant_p): Likewise.
18296         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
18297         (mn10300_frame_size): New.
18298         (mn10300_expand_prologue): Use it.
18299         (mn10300_expand_epilogue): Likewise.
18300         (mn10300_initial_offset): Likewise.
18301         * config/mn10300/mn10300-protos.h: Update.
18302         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
18303         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
18304         (prologue, epilogue, return_internal): Tidy output code.
18305         (mn10300_store_multiple_operation, return): Likewise.
18306         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
18307         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
18308         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
18309         (load_pic, am33_load_pic): New.
18310         (mn10300_load_pic0, mn10300_load_pic1): New.
18311
18312         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
18313         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
18314         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
18315         (cc_flags_for_mode, cc_flags_for_code): New.
18316         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
18317         overflow flag is not valid.  Validate that the flags we need
18318         for the comparison are valid.
18319         (mn10300_output_cmp): Remove.
18320         (mn10300_output_add): New.
18321         (mn10300_select_cc_mode): Use cc_flags_for_code.
18322         (mn10300_split_cbranch): New.
18323         (mn10300_match_ccmode): New.
18324         (mn10300_split_and_operand_count): New.
18325         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
18326         to the function.
18327         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
18328         (addsi3): ... here.  Use mn10300_output_add.
18329         (*addsi3_flags): New.
18330         (*am33_subsi3, *mn10300_subsi3): Merge...
18331         (subsi3): ... here.  Use attribute isa.
18332         (*subsi3_flags): New.
18333         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
18334         when possible.
18335         (*am33_andsi3, *mn10300_andsi3): Merge...
18336         (andsi3): ... here.
18337         (*andsi3_flags): New.
18338         (andsi3 splitters): New.
18339         (*am33_iorsi3, *mn10300_iorsi3): Merge...
18340         (iorsi3): ... here.
18341         (*iorsi3_flags): New.
18342         (*am33_xorsi3, *mn10300_xorsi3): Merge...
18343         (xorsi3): ... here.
18344         (*xorsi3_flags): New.
18345         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
18346         (one_cmplsi2): ... here.
18347         (*one_cmplsi2_flags): New.
18348         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
18349         instead of "dax" in constraints.  Use mn10300_split_cbranch.
18350         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
18351         use matching constraints to eliminate a self-comparison.
18352         (*integer_conditional_branch): Rename from integer_conditional_branch.
18353         Use int_mode_flags to match CC_REG.
18354         (*cbranchsi4_btst, *btstsi): New.
18355         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
18356         mn10300_split_cbranch.
18357         (*am33_cmpsf): Rename from am33_cmpsf.
18358         (*float_conditional_branch): Rename from float_conditional_branch.
18359         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
18360         (zero_extendqisi2): ... here.
18361         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
18362         (zero_extendhisi2): ... here.
18363         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
18364         (extendqisi2): ... here.
18365         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
18366         (extendhisi2): ... here.
18367         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
18368         (ashlsi3): ... here.
18369         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
18370         (lshrsi3): ... here.
18371         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
18372         (ashrsi3): ... here.
18373         (consecutive add peephole): Remove.
18374         * config/mn10300/predicates.md (label_ref_operand): New.
18375         (int_mode_flags): New.
18376         (CCZN_comparison_operator): New.
18377
18378         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
18379         (throughput_42_latency_43): New reservation.
18380         (mulsidi3, umulsidi3): New expanders.
18381         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
18382         the MDR register to allocation; separately allocate the low and
18383         high parts of the DImode result.
18384         (umulsidi3_internal): Similarly.
18385         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
18386         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
18387         (udivsi3, umodsi3): Remove.
18388         (udivmodsi4, divmodsi4): New expanders.
18389         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
18390         (*divmodsi4): Simiarly.
18391         (ext_internal): New.
18392
18393         * config/mn10300/constraints.md ("z"): New constraint.
18394         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
18395         (FIXED_REGISTERS): Don't fix MDR.
18396         (CALL_USED_REGSITERS): Reformat nicely.
18397         (REG_ALLOC_ORDER): Add MDR.
18398         (enum regclass): Add MDR_REGS.
18399         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
18400         (IRA_COVER_CLASSES): Add MDR_REGS.
18401         (REGNO_REG_CLASS): Handle MDR_REG.
18402         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
18403         (mn10300_register_move_cost): Likewise.
18404         * config/mn10300/mn10300.md (MDR_REG): New.
18405         (*movsi_internal): Handle moves to/from MDR_REGS.
18406
18407         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
18408         POST_MODIFY.
18409         (mn10300_secondary_reload): Tidy combination reload classes.
18410         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
18411         addresses for AM33.  Allow symbolic offsets for reg+imm.
18412         (mn10300_regno_in_class_p): New.
18413         (mn10300_legitimize_reload_address): New.
18414         * config/mn10300/mn10300.h (enum reg_class): Remove
18415         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
18416         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
18417         SP_OR_GENERAL_REGS.
18418         (REG_CLASS_NAMES): Update to match.
18419         (REG_CLASS_CONTENTS): Likewise.
18420         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
18421         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
18422         (REGNO_IN_RANGE_P): Remove.
18423         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
18424         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
18425         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
18426         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
18427         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
18428         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
18429         (REGNO_GENERAL_P): New.
18430         (HAVE_POST_MODIFY_DISP): New.
18431         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
18432         (LEGITIMIZE_RELOAD_ADDRESS): New.
18433         * config/mn10300/mn10300-protos.h: Update.
18434
18435         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
18436         DATA_REGS for AM33 stack-pointer destination.
18437         (mn10300_preferred_output_reload_class): Likewise.
18438         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
18439         into a form appropriate for ...
18440         (TARGET_SECONDARY_RELOAD): New.
18441         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
18442         * config/mn10300/mn10300-protos.h: Update.
18443         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
18444         reload_insi; use the "A" constraint for the scratch; handle AM33
18445         moves of sp to non-address registers.
18446
18447         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
18448         (*movqi_internal): ... here.
18449         (*am33_movhi, *mn10300_movhi): Merge into...
18450         (*movhi_internal): ... here.
18451         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
18452         as the source/destination of moves from/to SP.
18453         (movsf): Only allow for AM33-2.
18454         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
18455         any integer constant constraint.  Only allow for AM33-2.  Tidy
18456         all of the alternative outputs.
18457         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
18458         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
18459         for MN103.
18460         (udivsi3, umodsi3): New patterns for MN103 only.
18461
18462 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
18463
18464         * doc/tm.texi.in: Spell out that a lack of register class unions
18465         can lead to ICEs.
18466         * doc/tm.texi: Regenerate.
18467
18468 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
18469
18470         PR rtl-optimization/47337
18471         * dce.c (check_argument_store): New function.
18472         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
18473
18474         PR tree-optimization/47290
18475         * tree-eh.c (infinite_empty_loop_p): New function.
18476         (cleanup_empty_eh): Use it.
18477
18478 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
18479
18480         PR target/46997
18481         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
18482         (a64_expand_widen_sum): Ditto.
18483         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
18484         (vec_extract_evenodd_help): Ditto.
18485         (vec_extract_evenv4hi): Ditto.
18486         (vec_extract_oddv4hi): Ditto.
18487         (vec_extract_evenv2si): Ditto.
18488         (vec_extract_oddv2si): Ditto.
18489         (vec_extract_evenv2sf): Ditto.
18490         (vec_extract_oddv2sf): Ditto.
18491         (vec_pack_trunc_v4hi: Ditto.
18492         (vec_pack_trunc_v2si): Ditto.
18493         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
18494         (vec_interleave_highv8qi): Ditto.
18495         (mix1_r): Ditto.
18496         (vec_extract_oddv8qi): Ditto.
18497         (vec_interleave_lowv4hi): Ditto.
18498         (vec_interleave_highv4hi): Ditto.
18499         (vec_interleave_lowv2si): Ditto.
18500         (vec_interleave_highv2si): Ditto.
18501
18502 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18503
18504         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
18505         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
18506         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
18507         (pa_c_mode_for_suffix): New.
18508         (TARGET_EXPAND_BUILTIN): Define.
18509         (TARGET_C_MODE_FOR_SUFFIX): Define.
18510         (pa_builtins): Define.
18511         (pa_init_builtins): Register __float128 type and init new support
18512         builtins.
18513         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
18514         * config/pa/quadlib.c (_U_Qfcopysign): New.
18515
18516 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
18517
18518         PR middle-end/46894
18519         * explow.c (allocate_dynamic_stack_space): Do not assume more than
18520         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
18521         are defined.
18522
18523 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18524
18525         PR tree-optimization/47179
18526         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
18527         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
18528
18529 2011-01-18  Richard Guenther  <rguenther@suse.de>
18530
18531         PR rtl-optimization/47216
18532         * emit-rtl.c: Include tree-flow.h.
18533         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
18534         of replicating it with different semantics.
18535         * Makefile.in (emit-rtl.o): Adjust.
18536
18537 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18538
18539         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
18540         (cortex_a9_dp): Handle neon types correctly.
18541
18542 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
18543
18544         PR rtl-optimization/47299
18545         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
18546         subtarget.  Use normal multiplication if both operands are constants.
18547         * expmed.c (expand_widening_mult): Don't try to optimize constant
18548         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
18549         before using it.
18550
18551 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18552
18553         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
18554         spacing after 'e.g.', typos, comma, hyphenation.
18555
18556 2011-01-17  Richard Henderson  <rth@redhat.com>
18557
18558         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
18559         (rx_restricted_mem_operand): New.
18560         (rx_shift_operand): Use register_operand.
18561         (rx_source_operand, rx_compare_operand): Likewise.
18562         * config/rx/rx.md (addsi3_flags): New expander.
18563         (adddi3): Rewrite as expander.
18564         (adc_internal, *adc_flags, adddi3_internal): New patterns.
18565         (subsi3_flags): New expander.
18566         (subdi3): Rewrite as expander.
18567         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
18568
18569         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
18570         (rx_init_builtins): Remove sat builtin.
18571         (rx_expand_builtin): Likewise.
18572         * config/rx/rx.md (ssaddsi3): New.
18573         (*sat): Rename from sat.  Represent the CC_REG input.
18574
18575         * config/rx/predicates.md (rshift_operator): New.
18576         * config/rx/rx.c (rx_expand_insv): Remove.
18577         * config/rx/rx-protos.h: Update.
18578         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
18579         operand to the canonical position.
18580         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
18581         (*bitclr, *bitclr_in_memory): Similarly.
18582         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
18583         (insv): Retain the zero_extract in the expansion.
18584
18585         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
18586         (bswaphi2, bitinvert, revw): Likewise.
18587
18588         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
18589         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
18590         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
18591         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
18592         (bitset, bitset_in_memory): Likewise.
18593         (bitinvert, bitinvert_in_memory): Likewise.
18594         (bitclr, bitclr_in_memory): Likewise.
18595         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
18596         (rx_strend, rx_cmpstrn): Likewise.
18597         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
18598         (bitop peep2 patterns): Remove.
18599
18600         * config/rx/rx.c (rx_match_ccmode): New.
18601         * config/rx/rx-protos.h: Update.
18602         * config/rx/rx.md (abssi2): Clobber, don't set flags.
18603         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
18604         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
18605         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
18606         (fix_truncsfsi2, floatsisf2): Likewise.
18607         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
18608         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
18609         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
18610         (*subsi3_flags, *xorsi3_flags): New.
18611
18612         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
18613
18614         * config/rx/rx.c (rx_print_operand): Remove workaround for
18615         unsplit comparison operations.
18616
18617         * config/rx/rx.md (movsicc): Split after reload.
18618         (*movsicc): Merge *movsieq and *movsine via match_operator.
18619         (*stcc): New pattern.
18620
18621         * config/rx/rx.c (rx_float_compare_mode): Remove.
18622         * config/rx/rx.h (rx_float_compare_mode): Remove.
18623         * config/rx/rx.md (cstoresi4): Split after reload.
18624         (*sccc): New pattern.
18625
18626         * config/rx/predicates.md (label_ref_operand): New.
18627         (rx_z_comparison_operator): New.
18628         (rx_zs_comparison_operator): New.
18629         (rx_fp_comparison_operator): New.
18630         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
18631         Validate that the flags are set properly for the comparison.
18632         (rx_gen_cond_branch_template): Remove.
18633         (rx_cc_modes_compatible): Remove.
18634         (mode_from_flags): New.
18635         (flags_from_code): Rename from flags_needed_for_conditional.
18636         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
18637         (rx_select_cc_mode): Likewise.
18638         (rx_split_fp_compare): New.
18639         (rx_split_cbranch): New.
18640         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
18641         (*cbranchsi4): Use match_operator and rx_split_cbranch.
18642         (*cbranchsf4): Similarly.
18643         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
18644         match_operator and rx_split_cbranch.
18645         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
18646         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
18647         (*cmpsi): Rename from cmpsi.
18648         (*tstsi): Rename from tstsi.
18649         (*cmpsf): Rename from cmpsf; use CC_Fmode.
18650         (*conditional_branch): Rename from conditional_branch.
18651         (*reveresed_conditional_branch): Remove.
18652         (b<code>): Remove expander.
18653         * config/rx/rx-protos.h: Update.
18654
18655         * config/rx/rx.c (rx_compare_redundant): Remove.
18656         * config/rx/rx.md (cmpsi): Don't use it.
18657         * config/rx/rx-protos.h: Update.
18658
18659         * config/rx/rx-modes.def (CC_F): New mode.
18660         * config/rx/rx.c (rx_select_cc_mode): New.
18661         * config/rx/rx.h (SELECT_CC_MODE): Use it.
18662         * config/rx/rx-protos.h: Update.
18663
18664 2011-01-17  Richard Henderson  <rth@redhat.com>
18665
18666         * except.c (dump_eh_tree): Fix stray ; after for statement.
18667
18668 2011-01-17  Richard Guenther  <rguenther@suse.de>
18669
18670         PR tree-optimization/47313
18671         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
18672         handling before copying the body.  Properly deal with
18673         by-reference result in SSA form.
18674
18675 2011-01-17  Ian Lance Taylor  <iant@google.com>
18676
18677         PR target/47219
18678         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
18679         (struct_value_alias_set): Don't define.
18680         (sparc_option_override): Don't set sparc_sr_alias_set and
18681         struct_value_alias_set.
18682         (save_or_restore_regs): Use gen_frame_mem rather than calling
18683         set_mem_alias_set.
18684         (sparc_struct_value_rtx): Likewise.
18685
18686 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
18687
18688         PR target/47318
18689         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
18690         (_mm_maskstore_pd): Likewise.
18691         (_mm_maskload_ps): Likewise.
18692         (_mm_maskstore_ps): Likewise.
18693         (_mm256_maskload_pd): Change mask to __m256i.
18694         (_mm256_maskstore_pd): Likewise.
18695         (_mm256_maskload_ps): Likewise.
18696         (_mm256_maskstore_ps): Likewise.
18697
18698         * config/i386/i386-builtin-types.def: Updated.
18699         (ix86_expand_special_args_builtin): Likewise.
18700
18701         * config/i386/i386.c (bdesc_special_args): Update
18702         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
18703         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
18704         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
18705         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
18706
18707         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
18708         Use <avxpermvecmode> on mask register.
18709         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
18710
18711 2011-01-17  Olivier Hainque  <hainque@adacore.com>
18712             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
18713             Eric Botcazou  <ebotcazou@adacore.com>
18714
18715         PR target/46655
18716         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
18717         if <= USHRT_MAX in 32-bit mode.
18718
18719 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18720
18721         * doc/install.texi (Configuration, Specific): Wrap long
18722         lines in examples.  Allow line wrapping in long options
18723         and URLs where beneficial for PDF output.
18724
18725 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
18726
18727         * config/mips/mips.c (mips_classify_symbol): Don't return
18728         SYMBOL_PC_RELATIVE for nonlocal labels.
18729
18730 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
18731
18732         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
18733
18734 2011-01-15  Jan Hubicka  <jh@suse.cz>
18735
18736         PR tree-optimization/47276
18737         * ipa.c (function_and_variable_visibility): Do not try to mark alias
18738         declarations as needed.
18739
18740 2011-01-15  Martin Jambor  <mjambor@suse.cz>
18741
18742         * common.opt (fdevirtualize): New flag.
18743         * doc/invoke.texi (Option Summary): Document it.
18744         * opts.c (default_options_table): Add devirtualize flag.
18745         * ipa-prop.c (detect_type_change): Return immediately if
18746         devirtualize flag is not set.
18747         (detect_type_change_ssa): Likewise.
18748         (compute_known_type_jump_func): Likewise.
18749         (ipa_analyze_virtual_call_uses): Likewise.
18750
18751 2011-01-14  Martin Jambor  <mjambor@suse.cz>
18752
18753         PR tree-optimization/45934
18754         PR tree-optimization/46302
18755         * ipa-prop.c (type_change_info): New type.
18756         (stmt_may_be_vtbl_ptr_store): New function.
18757         (check_stmt_for_type_change): Likewise.
18758         (detect_type_change): Likewise.
18759         (detect_type_change_ssa): Likewise.
18760         (compute_complex_assign_jump_func): Check for dynamic type change.
18761         (compute_complex_ancestor_jump_func): Likewise.
18762         (compute_known_type_jump_func): Likewise.
18763         (compute_scalar_jump_functions): Likewise.
18764         (ipa_analyze_virtual_call_uses): Likewise.
18765         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
18766
18767 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18768
18769         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
18770         * config/i386/i386.opt (msse5): New Alias.
18771
18772 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18773
18774         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
18775         * config/sparc/linux64.h (CC1_SPEC): Likewise.
18776         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
18777         * config/sparc/sparc.h (CC1_SPEC): Likewise.
18778
18779 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18780
18781         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
18782         -mcpu options.
18783         * config/sparc/linux64.h (CC1_SPEC): Likewise.
18784         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
18785         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
18786         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
18787         Likewise.
18788         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
18789
18790 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18791
18792         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
18793
18794 2011-01-14  Mike Stump  <mikestump@comcast.net>
18795
18796         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
18797         * config/fr30/fr30.md: Likweise
18798         (movsi_push): Likewise.
18799         (movsi_pop): Likewise.
18800         (enter_func): Likewise.
18801         * config/moxie/moxie.md (movsi_push): Likewise.
18802         (movsi_pop): Likewise.
18803
18804 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18805
18806         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
18807         %{no_archive} %{exact_version}.
18808         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
18809         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
18810         %{no_archive} %{exact_version}.
18811         * config/mips/openbsd.h (LINK_SPEC): Likewise.
18812         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
18813         * config/mips/vxworks.h: Likewise.
18814
18815 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18816
18817         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
18818
18819 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18820
18821         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
18822         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
18823
18824 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18825
18826         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
18827         -nodefaultlib.
18828
18829 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18830
18831         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
18832         for mcpu not cpu.
18833         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
18834         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
18835         not cpu.
18836         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
18837         Don't handle -shlib.
18838
18839 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18840
18841         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
18842         (CC1_SPEC): Don't handle -profile.
18843
18844 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18845
18846         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
18847         * config/mips/mips.h (CC1_SPEC): Likewise.
18848
18849 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18850
18851         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
18852         * config/mips/mips.h (CC1_SPEC): Likewise.
18853
18854 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18855
18856         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
18857         * config/m32r/linux.h (LINK_SPEC): Likewise.
18858         * config/mips/linux.h (LINK_SPEC): Likewise.
18859         * config/mips/linux64.h (LINK_SPEC): Likewise.
18860         * config/sparc/linux.h (LINK_SPEC): Likewise.
18861         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
18862         LINK_SPEC): Likewise.
18863         * config/xtensa/linux.h (LINK_SPEC): Likewise.
18864
18865 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18866
18867         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
18868         %{version:-v}.
18869         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
18870
18871 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18872
18873         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
18874         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
18875
18876 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18877
18878         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
18879
18880 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18881
18882         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
18883         supports -Bstatic/-Bdynamic.
18884         * configure: Regenerate.
18885
18886 2011-01-14  Jan Hubicka  <jh@suse.cz>
18887             Jack Howarth  <howarth@bromo.med.uc.edu>
18888
18889         PR target/46037
18890         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
18891         when checking debug_info_level. Test write_symbols instead of
18892         debug_hooks->var_location when setting flag_var_tracking_uninit.
18893
18894 2011-01-14  Richard Guenther  <rguenther@suse.de>
18895
18896         PR tree-optimization/47179
18897         * target.def (ref_may_alias_errno): New target hook.
18898         * targhooks.h (default_ref_may_alias_errno): Declare.
18899         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
18900         (default_ref_may_alias_errno): New function.
18901         * target.h (struct ao_ref_s): Declare.
18902         * tree-ssa-alias.c: Include target.h.
18903         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
18904         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
18905         (targhooks.o): Likewise.
18906         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
18907         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
18908
18909 2011-01-14  Richard Guenther  <rguenther@suse.de>
18910
18911         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
18912
18913 2011-01-14  Richard Guenther  <rguenther@suse.de>
18914
18915         PR tree-optimization/47280
18916         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
18917         return CFG changes.
18918         (tree_ssa_forward_propagate_single_use_vars): Deal with
18919         CFG changes from associate_plusminus.
18920
18921 2011-01-14  Richard Guenther  <rguenther@suse.de>
18922
18923         PR middle-end/47281
18924         Revert
18925         2011-01-11  Richard Guenther  <rguenther@suse.de>
18926
18927         PR tree-optimization/46076
18928         * tree-ssa.c (useless_type_conversion_p): Conversions from
18929         unprototyped to empty argument list function types are useless.
18930
18931 2011-01-14  Richard Guenther  <rguenther@suse.de>
18932
18933         PR tree-optimization/47286
18934         * tree-ssa-structalias.c (new_var_info): Register variables are global.
18935
18936 2011-01-14  Martin Jambor  <mjambor@suse.cz>
18937
18938         PR middle-end/46823
18939         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
18940
18941 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
18942
18943         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
18944         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18945         * config/xtensa/xtensa.c (xtensa_libcall_value,
18946         xtensa_function_value_regno_p): New functions.
18947         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18948
18949 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
18950
18951         PR c++/47213
18952         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
18953         PE specific hook.
18954         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
18955         New function prototype.
18956         * config/i386/winnt.c (i386_pe_assemble_visibility):
18957         Warn only if attribute was specified by user.
18958
18959 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
18960
18961         PR target/47251
18962         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
18963         floating point.
18964         (floatunsdidf2_fcfidu): Ditto.
18965
18966 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18967
18968         * config/s390/s390.c (print_operand_address): Replace 'error' with
18969         'output_operand_lossage'.
18970         (print_operand): Likewise.
18971
18972 2011-01-13  Jeff Law  <law@redhat.com>
18973
18974         PR rtl-optimization/39077
18975         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
18976         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
18977         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
18978         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
18979         * gcse.c (prune_insertions_deletions): New function.
18980         (compute_pre_data): Use it.
18981
18982 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
18983
18984         PR debug/PR46973
18985         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
18986         static function.
18987         (prune_unused_types_mark): Use it.
18988
18989 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
18990
18991         PR rtl-optimization/45352
18992         * sel-sched.c: Update copyright years.
18993         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
18994         in the advancing loop when we have issued issue_rate insns.
18995
18996 2011-01-12  Richard Henderson  <rth@redhat.com>
18997
18998         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
18999         (TARGET_MD_ASM_CLOBBERS): New.
19000
19001         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
19002         (TARGET_DELEGITIMIZE_ADDRESS): New.
19003
19004         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
19005         (clzsi2, *bsch): New patterns.
19006
19007         * config/mn10300/mn10300.md (INT): New mode iterator.
19008         (*mov<INT>_clr): New pattern, and peep2 to generate it.
19009
19010         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
19011         flag_split_wide_types.
19012
19013         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
19014         (mn10300_trampoline_init): Rewrite without a template, an immediate
19015         load and a direct branch.
19016         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
19017
19018 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
19019
19020         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
19021         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
19022         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
19023         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
19024
19025 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
19026
19027         PR debug/47209
19028         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
19029         of type.
19030
19031 2011-01-12  Jan Hubicka  <jh@suse.cz>
19032
19033         PR driver/47244
19034         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
19035         (PLUGIN_COND_CLOSE): New macro.
19036         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
19037
19038 2011-01-12  Richard Guenther  <rguenther@suse.de>
19039
19040         PR lto/47259
19041         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
19042         register variables in a MEM_REF.
19043
19044 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
19045
19046         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
19047         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
19048         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
19049         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
19050         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
19051         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
19052         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
19053         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
19054         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
19055         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
19056         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
19057         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
19058         * config/gnu-user.h: New.  Copied from linux.h.
19059         (LINUX_TARGET_STARTFILE_SPEC): Rename to
19060         GNU_USER_TARGET_STARTFILE_SPEC.
19061         (LINUX_TARGET_ENDFILE_SPEC): Rename to
19062         GNU_USER_TARGET_ENDFILE_SPEC.
19063         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
19064         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
19065         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
19066         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
19067         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
19068         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
19069         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
19070         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
19071         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
19072         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
19073         * config/arm/linux-eabi.h (CC1_SPEC): Use
19074         GNU_USER_TARGET_CC1_SPEC.
19075         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
19076         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
19077         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
19078         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
19079         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
19080         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
19081         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
19082         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
19083
19084 2011-01-12  Richard Guenther  <rguenther@suse.de>
19085
19086         PR other/46946
19087         * doc/invoke.texi (ffast-math): Document it is turned on
19088         with -Ofast.
19089
19090 2011-01-12  Jan Hubicka  <jh@suse.cz>
19091
19092         PR tree-optimization/47233
19093         * opts.c (common_handle_option): Disable ipa-reference with profile
19094         feedback.
19095
19096 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
19097
19098         * c-parser.c (c_parser_objc_at_property_declaration): Improved
19099         error message.
19100
19101 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
19102
19103         * c-parser.c (c_lex_one_token): Updated and reindented some
19104         comments.  No changes in code.
19105
19106 2011-01-11  Ian Lance Taylor  <iant@google.com>
19107
19108         * godump.c (go_output_var): Don't output the variable if there is
19109         already a type with the same name.
19110
19111 2011-01-11  Ian Lance Taylor  <iant@google.com>
19112
19113         * godump.c (go_format_type): Don't generate float80.
19114
19115 2011-01-11  Richard Henderson  <rth@redhat.com>
19116
19117         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
19118         declaration.  Rewrite for both speed and size.
19119         (mn10300_address_cost_1): Remove.
19120         (mn10300_register_move_cost): New.
19121         (mn10300_memory_move_cost): New.
19122         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
19123         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
19124         extensions, shifts, BSWAP, CLZ.
19125         (mn10300_wide_const_load_uses_clr): Remove.
19126         (TARGET_REGISTER_MOVE_COST): New.
19127         (TARGET_MEMORY_MOVE_COST): New.
19128         * config/mn10300/mn10300-protos.h: Update.
19129         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
19130
19131         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
19132         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
19133         * config/mn10300/mn10300-protos.h: Update.
19134         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
19135         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
19136         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
19137         (*test_int_bitfield, *test_byte_bitfield): Remove.
19138         (*bit_test, *subreg_bit_test): Remove.
19139         * config/mn10300/predicates.md (const_8bit_operand): Remove.
19140
19141         * config/mn10300/constraints.md ("c"): Rename from "A".
19142         ("A", "D"): New constraint letters.
19143         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
19144         (fmssf4, fnmasf4, fnmssf4): Likewise.
19145
19146         * config/mn10300/mn10300.md (isa): New attribute.
19147         (enabled): New attribute.
19148
19149         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
19150         (abssf2, negsf2): Define only for hardware fp.
19151         (sqrtsf2): Reformat.
19152         (addsf3, subsf3, mulsf3): Merge expander and insn.
19153
19154         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
19155         (DEBUGGER_AUTO_OFFSET): Remove.
19156         (DEBUGGER_ARG_OFFSET): Remove.
19157
19158         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
19159         Emit register stores with the same offsets as the hardware.
19160         (mn10300_store_multiple_operation): Don't check that the register
19161         save offsets are monotonic.
19162         * config/mn10300/mn10300-protos.h: Update.
19163
19164         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
19165
19166         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
19167         in terms of the value on the stack, not the MDR register.
19168
19169 2011-01-11  Jan Hubicka  <jh@suse.cz>
19170
19171         PR lto/45721
19172         PR lto/45375
19173         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
19174         (symbol_alias_set_destroy, symbol_alias_set_contains,
19175         propagate_aliases_backward): Declare.
19176         * lto-streamer-out.c (struct sets): New sturcture.
19177         (trivally_defined_alias): New function.
19178         (output_alias_pair_p): Rewrite.
19179         (output_unreferenced_globals): Fix output of alias pairs.
19180         (produce_symtab): Likewise.
19181         * ipa.c (function_and_variable_visibility): Set weak alias destination
19182         as needed in lto.
19183         * varasm.c (symbol_alias_set_t): Remove.
19184         (symbol_alias_set_destroy): Export.
19185         (propagate_aliases_forward, propagate_aliases_backward): New functions
19186         based on ...
19187         (compute_visible_aliases): ... this one; remove.
19188         (trivially_visible_alias): New
19189         (trivially_defined_alias): New.
19190         (remove_unreachable_alias_pairs): Rewrite.
19191         (finish_aliases_1): Reorganize code checking if alias is defined.
19192         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
19193         in LTO mode.
19194
19195 2011-01-11  Richard Guenther  <rguenther@suse.de>
19196
19197         PR tree-optimization/46076
19198         * tree-ssa.c (useless_type_conversion_p): Conversions from
19199         unprototyped to empty argument list function types are useless.
19200
19201 2011-01-11  Richard Guenther  <rguenther@suse.de>
19202
19203         PR middle-end/45235
19204         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
19205         volatile MEMs as MEM_READONLY_P.
19206
19207 2011-01-11  Richard Guenther  <rguenther@suse.de>
19208
19209         PR tree-optimization/47239
19210         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
19211
19212 2011-01-11  Jeff Law  <law@redhat.com>
19213
19214         PR tree-optimization/47086
19215         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
19216         IVs from statements that might throw.
19217
19218 2011-01-10  Jan Hubicka  <jh@suse.cz>
19219
19220         PR lto/45375
19221         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
19222
19223 2011-01-10  Jan Hubicka  <jh@suse.cz>
19224
19225         PR lto/45375
19226         * profile.c (read_profile_edge_counts): Ignore profile inconistency
19227         when correcting profile.
19228
19229 2011-01-10  Jan Hubicka  <jh@suse.cz>
19230
19231         PR lto/46083
19232         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
19233         DECL_FINI_PRIORITY.
19234         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
19235         Restore DECL_FINI_PRIORITY.
19236
19237 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19238
19239         * doc/gimple.texi: Fix quoting of multi-word return values in
19240         @deftypefn statements.  Ensure presence of return value.  Wrap
19241         overlong @deftypefn lines.
19242         (is_gimple_operand, is_gimple_min_invariant_address): Remove
19243         descriptions of removed functions.
19244         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
19245         of multi-word return value in @deftypefn statement.
19246
19247 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19248
19249         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
19250         (Conditional Expressions, Logical Operators)
19251         (Statement and operand traversals): Do not indent smallexample
19252         code.  Fix duplicate function argument in example.
19253
19254 2011-01-10  Jeff Law  <law@redhat.com>
19255
19256         PR tree-optimization/47141
19257         * ipa-split.c (split_function): Handle case where we are
19258         returning a value and the return block has a virtual operand phi.
19259
19260 2011-01-10  Jan Hubicka  <jh@suse.cz>
19261
19262         PR tree-optimization/47234
19263         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
19264         (pass_feedback_split_functions): Declare.
19265         * passes.c (init_optimization_passes): Add ipa-split as subpass of
19266         tree-profile.
19267         * ipa-split.c (gate_split_functions): Update comments; disable
19268         split-functions for profile_arc_flag and branch_probabilities.
19269         (gate_feedback_split_functions): New function.
19270         (execute_feedback_split_functions): New function.
19271         (pass_feedback_split_functions): New global var.
19272
19273 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
19274
19275         PR lto/46760
19276         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
19277         calling gimple_call_set_cannot_inline.
19278
19279 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
19280
19281         * config/darwin-sections.def: Remove unused section.
19282
19283 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
19284
19285         PR c++/47218
19286         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
19287
19288 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
19289
19290         PR objc/47232
19291         * c-parser.c (c_parser_declaration_or_fndef): Improved
19292         error message.
19293
19294 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
19295
19296         * config/i386/winnt.c (i386_pe_start_function): Make sure
19297         to switch back to function's section.
19298
19299 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
19300
19301         PR gcc/46902
19302         PR testsuite/46912
19303         * plugin.c: Move include of dlfcn.h from here...
19304         * system.h: ... to here.
19305
19306 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19307
19308         * doc/cpp.texi (C++ Named Operators): Fix markup for header
19309         file name.
19310         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
19311         two extra empty pages in PDF output.
19312
19313 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
19314
19315         PR objc/47078
19316         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
19317         for error recovery purposes behave as if it was not specified so
19318         that the default type is usd.
19319
19320 2011-01-07  Jan Hubicka  <jh@suse.cz>
19321
19322         PR tree-optmization/46469
19323         * ipa.c (function_and_variable_visibility): Clear needed flags on
19324         nodes with external decls; handle weakrefs merging correctly.
19325
19326 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
19327
19328         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
19329         not false.
19330
19331 2011-01-07  Jan Hubicka  <jh@suse.cz>
19332
19333         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
19334         and no longer claim that gold is required for linker plugin.
19335         * configure: Regenerate.
19336         * gcc.c (PLUGIN_COND): New macro.
19337         (LINK_COMMAND_SPEC): Use it.
19338         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
19339         * config.in (HAVE_LTO_PLUGIN): New.
19340         * configure.ac (--with-lto-plugin): New parameter; autodetect
19341         HAVE_LTO_PLUGIN.
19342
19343 2011-01-07  Jan Hubicka  <jh@suse.cz>
19344
19345         PR tree-optimization/46367
19346         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
19347         when we can update original.
19348         (cgraph_mark_inline_edge): Sanity check.
19349         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
19350
19351 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19352
19353         * config/spu/spu.h (ASM_COMMENT_START): Define.
19354
19355 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
19356
19357         PR driver/42445
19358         * gcc.c (%>S): New.
19359         (SWITCH_KEEP_FOR_GCC): Likewise.
19360         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
19361         (do_spec_1): Handle "%>".
19362
19363         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
19364
19365 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
19366
19367         PR target/47201
19368         * config/i386/i386.c (ix86_delegitimize_address): If
19369         simplify_gen_subreg fails, return orig_x.
19370
19371         PR bootstrap/47187
19372         * value-prof.c (gimple_stringop_fixed_value): Handle
19373         lhs of the call properly.
19374
19375 2011-01-07  Jan Hubicka  <jh@suse.cz>
19376
19377         PR lto/45375
19378         * lto-opt.c (lto_reissue_options): Set flag_shlib.
19379
19380 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
19381
19382         * target.def (function_switched_text_sections): New hook.
19383         * doc/tm.texi: Regenerated.
19384         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
19385         * final.c (default_function_switched_text_sections): New.
19386         (final_scan_insn): Call function_switched_text_sections when a
19387         mid-function section change occurs.
19388         * output.h (default_function_switched_text_sections): Declare.
19389         * config/darwin-protos.h (darwin_function_switched_text_sections):
19390         Likewise.
19391         * config/darwin.c (darwin_function_switched_text_sections): New.
19392         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
19393
19394 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
19395
19396         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
19397         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
19398         the secondary code fragment when outputting for DWARF == 2.
19399
19400 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
19401
19402         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
19403         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
19404         Remove.
19405         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
19406         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
19407
19408 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
19409
19410         PR debug/46704
19411         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
19412         when it is not empty.
19413
19414 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
19415
19416         Bobcat Enablement
19417         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
19418         (case ${target}): Add btver1.
19419         * config/i386/driver-i386.c (host_detect_local_cpu): Let
19420         -march=native recognize btver1 processors.
19421         * config/i386/i386-c.c (ix86_target_macros_internal): Add
19422         btver1 def_and_undef
19423         * config/i386/i386.c (struct processor_costs btver1_cost): New
19424         btver1 cost table.
19425         (m_BTVER1): New definition.
19426         (m_AMD_MULTIPLE): Includes m_BTVER1.
19427         (initial_ix86_tune_features): Add btver1 tune.
19428         (processor_target_table): Add btver1 entry.
19429         (static const char *const cpu_names): Add btver1 entry.
19430         (software_prefetching_beneficial_p): Add btver1.
19431         (ix86_option_override_internal): Add btver1 instruction sets.
19432         (ix86_issue_rate): Add btver1.
19433         (ix86_adjust_cost): Add btver1.
19434         * config/i386/i386.h (TARGET_BTVER1): New definition.
19435         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
19436         (enum processor_type): Add PROCESSOR_BTVER1.
19437         * config/i386/i386.md (define_attr "cpu"): Add btver1.
19438
19439 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19440
19441         PR target/43309
19442         * config/i386/i386.c (legitimize_tls_address)
19443         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
19444         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
19445         (tls_initial_exec_64_sun): New pattern.
19446
19447 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
19448
19449         * doc/invoke.texi (Overall Options): Improve wording and markup
19450         of the description of -wrapper.
19451
19452 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
19453
19454         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
19455         rdynamic, threads): New Driver options.
19456
19457 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19458
19459         PR target/38118
19460         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
19461         if coming from .tdata.
19462         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
19463
19464 2011-01-06  Jan Hubicka  <jh@suse.cz>
19465
19466         PR lto/47188
19467         * collect2.c (main): Do not enable LTOmode when plugin is active.
19468
19469 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19470
19471         PR other/45915
19472         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
19473         --version output if supported.
19474         * configure: Regenerate.
19475
19476 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
19477
19478         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
19479         Driver options.
19480
19481 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
19482
19483         PR c/47150
19484         * c-convert.c (convert): When converting a complex expression
19485         other than COMPLEX_EXPR to a different complex type, ensure
19486         c_save_expr is called instead of save_expr, unless in_late_binary_op.
19487         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
19488         when converting COMPLEX_TYPE.
19489
19490 2011-01-06  Ira Rosen  <irar@il.ibm.com>
19491
19492         PR tree-optimization/47139
19493         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
19494         only the last reduction value is used outside the loop.  Update
19495         documentation.
19496
19497 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
19498
19499         * config/rtems.opt: New.
19500         * config.gcc (*-*-rtems*): Use rtems.opt.
19501
19502 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
19503
19504         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
19505         processors do not support 3DNow instructions.
19506
19507 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19508
19509         * config/spu/spu.c (spu_option_override): Set parameter
19510         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
19511
19512 2011-01-05  Jan Hubicka  <jh@suse.cz>
19513
19514         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
19515         at the command line.
19516
19517 2011-01-05  Martin Jambor  <mjambor@suse.cz>
19518
19519         PR lto/47162
19520         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
19521         deltas on streamed outgoing edges.
19522         (output_node_opt_summary): Output info for outgoing edges only when
19523         the node is in new parameter set.
19524         (output_cgraph_opt_summary): New parameter set, passed to the two
19525         aforementioned functions.  Update its forward declaration and its
19526         callee too.
19527
19528 2011-01-05  Tom Tromey  <tromey@redhat.com>
19529
19530         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
19531         operator to c_finish_omp_atomic.
19532         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
19533         (build_unary_op): Update.
19534         (build_modify_expr): Update.
19535         (build_asm_expr): Update.
19536
19537 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19538
19539         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
19540         newly inserted insns.
19541         (pad_bb): Likewise.
19542         (spu_emit_branch_hint): Likewise.
19543         (insert_hbrp_for_ilb_runout): Likewise.
19544         (spu_machine_dependent_reorg): Call df_finish_pass after
19545         schedule_insns returns.
19546
19547 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19548
19549         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
19550
19551 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
19552
19553         PR tree-optimization/47005
19554         * tree-sra.c (struct access): Add 'non_addressable' bit.
19555         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
19556         (decide_one_param_reduction): Return 0 if the parameter is passed by
19557         reference and one of the accesses in the group is non_addressable.
19558
19559 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
19560
19561         PR tree-optimization/47056
19562         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
19563         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
19564         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
19565
19566 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
19567
19568         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
19569         initializer.  Skip view conversions from aggregate types.
19570
19571 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
19572
19573         PR bootstrap/47055
19574         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
19575
19576 2011-01-04  Philipp Thomas  <pth@suse.de>
19577
19578         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
19579         obvious typo.
19580
19581 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19582
19583         * function.c (thread_prologue_and_epilogue_insns): Do not crash
19584         on empty epilogue sequences.
19585
19586 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
19587
19588         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
19589         non-static): New Driver options.
19590
19591 2011-01-04  Jie Zhang  <jie@codesourcery.com>
19592
19593         PR driver/47137
19594         * gcc.c (default_compilers[]): Set combinable field to 0
19595         for all assembly languages.
19596
19597 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
19598
19599         * config/mips/loongson3a.md: New file.
19600         * config/mips/mips.md: Include loongson3a.md.
19601         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
19602         TUNE_LOONGSON_3A.
19603
19604 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
19605
19606         PR middle-end/47017
19607         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
19608         instead of convert_memory_address_addr_space on the base expression.
19609
19610 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19611
19612         * config/spu/spu.c (spu_option_override): Update error text
19613         for bad -march= / -mtune= values.
19614
19615 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19616
19617         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
19618         if branch-hint optimization will be performed.
19619
19620 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
19621
19622         PR tree-optimization/47148
19623         * ipa-split.c (split_function): Convert arguments to
19624         DECL_ARG_TYPE if possible.
19625
19626         PR tree-optimization/47155
19627         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
19628         when computing uns.
19629
19630         PR rtl-optimization/47157
19631         * combine.c (try_combine): If undobuf.other_insn becomes
19632         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
19633         and set *new_direct_jump_p too.
19634
19635 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
19636
19637         PR tree-optimization/47021
19638         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
19639
19640 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
19641
19642         * gcc.c (process_command): Update copyright notice dates.
19643         * gcov.c (print_version): Likewise.
19644         * gcov-dump.c (print_version): Likewise.
19645         * mips-tfile.c (main): Likewise.
19646         * mips-tdump.c (main): Likewise.
19647
19648 2011-01-03  Martin Jambor  <mjambor@suse.cz>
19649
19650         PR tree-optimization/46801
19651         * tree-sra.c (type_internals_preclude_sra_p): Check whether
19652         aggregate fields start at byte boundary instead of the bit-field flag.
19653
19654 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
19655
19656         PR driver/47137
19657         * gcc.c (main): Revert revision 168407.
19658
19659 2011-01-03  Martin Jambor  <mjambor@suse.cz>
19660
19661         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
19662
19663 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19664
19665         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
19666         vector optab to expand vector/scalar shift, update gimple to vector.
19667
19668 2011-01-03  Martin Jambor  <mjambor@suse.cz>
19669
19670         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
19671         a thunk.
19672
19673 2011-01-03  Martin Jambor  <mjambor@suse.cz>
19674
19675         PR tree-optimization/46984
19676         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
19677         HOST_WIDE_INT.
19678         (cgraph_create_indirect_edge): Fixed line length.
19679         (cgraph_indirect_call_info): Declare.
19680         (cgraph_make_edge_direct) Update declaration.
19681         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
19682         (cgraph_create_indirect_edge): Use it.
19683         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
19684         callees.
19685         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
19686         the new thunk_delta representation.
19687         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
19688         HOST_WIDE_INT.
19689         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
19690         (ipa_read_indirect_edge_info): Likewise.
19691         * lto-cgraph.c (output_edge_opt_summary): New function.
19692         (output_node_opt_summary): Call it on all outgoing edges.
19693         (input_edge_opt_summary): New function.
19694         (input_node_opt_summary): Call it on all outgoing edges.
19695
19696 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
19697
19698         PR driver/47137
19699         * gcc.c (main): Don't check have_o when settting combine_inputs.
19700
19701 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
19702
19703         * regrename.c: Add general comment describing the pass.
19704         (struct du_head): Remove 'length' field.
19705         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
19706         (regrename_optimize): Do not sort chains.  Rework comments, add others.
19707         Force renaming to the preferred class (if any) in the first pass and do
19708         not consider registers that belong to it in the second pass.
19709         (create_new_chain): Do not set 'length' field.
19710         (scan_rtx_reg): Likewise.
19711
19712 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
19713
19714         PR tree-optimization/47140
19715         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
19716         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
19717         to bit_value_binop.
19718
19719         PR rtl-optimization/47028
19720         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
19721         parm_birth_insn instead of at the beginning of first bb.
19722
19723 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
19724
19725         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
19726         Remove the word "see" before "@pxref".
19727         * doc/rtl.texi: Remove the word "see" before "@pxref".
19728
19729 2011-01-01  Jan Hubicka  <jh@suse.cz>
19730
19731         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
19732         memory.
19733
19734 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
19735
19736         PR target/38662
19737         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
19738
19739 \f
19740 Copyright (C) 2011 Free Software Foundation, Inc.
19741
19742 Copying and distribution of this file, with or without modification,
19743 are permitted in any medium without royalty provided the copyright
19744 notice and this notice are preserved.