OSDN Git Service

* tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
2
3         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4         handling of BUILT_IN_ASSUME_ALIGNED.
5
6         PR debug/49364
7         * dwarf2out.c (output_abbrev_section): Don't return early
8         if abbrev_die_table_in_use is 1.
9         (dwarf2out_finish): Instead don't call output_abbrev_section
10         nor emit abbrev_section_label in that case.
11
12 2011-06-30  Nick Clifton  <nickc@redhat.com>
13
14         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
15         for the V850E.
16
17 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
18
19         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
20         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
21
22 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
23
24         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
25         both pattern and original statements if necessary.
26         (vect_transform_loop): Likewise.
27         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
28         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
29         Mark the pattern statement only if the original statement doesn't
30         have its own uses.
31         (process_use): Call vect_mark_relevant with additional parameter.
32         (vect_mark_stmts_to_be_vectorized): Likewise.
33         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
34         (vect_analyze_stmt): Handle both pattern and original statements
35         if necessary.
36         (vect_transform_stmt): Don't store vectorized pattern statement
37         in the original statement.
38         (vect_is_simple_use_1): Use related pattern statement only if the
39         original statement is irrelevant.
40         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
41
42 2011-06-29  Changpeng Fang <changpeng.fang@amd.com>
43
44         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask option.
45         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL entry.
46         (TARGET_AVX128_OPTIMAL): New definition.
47         * config/i386/i386.c (initial_ix86_tune_features): Initialize
48         X86_TUNE_AVX128_OPTIMAL entry.
49         (ix86_option_override_internal): Enable the generation
50         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
51         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
52         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
53
54 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
55
56         PR tree-optimization/49539
57         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
58         names by means of stmt_references_abnormal_ssa_name.
59         (associate_plusminus): Call can_propagate_from before propagating
60         from definition statements.
61         (ssa_forward_propagate_and_combine): Remove superfluous newline.
62
63 2011-06-29  Richard Guenther  <rguenther@suse.de>
64
65         * doc/invoke.texi: Document -scev dump modifier.
66         * tree-pass.h (TDF_SCEV): New dump flag.
67         * tree-dump.c (dump_option_value_in): Add scev.
68         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
69         * tree-scalar-evolution.c: Likewise.
70
71 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
72
73         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
74         (cxa_type_match): Correct declaration.
75         (__gnu_unwind_pr_common): Reconstruct
76         additional indirection when __cxa_type_match returns
77         succeeded_with_ptr_to_base.
78
79 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
80
81         PR rtl-optimization/49114
82         * reload.c (struct replacement): Remove SUBREG_LOC member.
83         (push_reload): Do not set it.
84         (push_replacement): Likewise.
85         (subst_reload): Remove dead code.
86         (copy_replacements): Remove assertion.
87         (copy_replacements_1): Do not handle SUBREG_LOC.
88         (move_replacements): Likewise.
89         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
90         Detect subregs via recursive descent instead of via SUBREG_LOC.
91
92 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
93         
94         * config/avr/avr.c (avr_encode_section_info): Dispatch to
95         default_encode_section_info.
96
97 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
98
99         PR tree-optimization/49545
100         * builtins.c (get_object_alignment_1): Update function comment.
101         Do not use DECL_ALIGN for functions, but test
102         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
103         * fold-const.c (get_pointer_modulus_and_residue): Don't check
104         for functions here.
105         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
106
107 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
108
109         PR debug/49567
110         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up
111         for non-MODE_INT modes instead of asserting the mode has MODE_INT
112         class.
113
114 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
115         
116         PR target/34734
117         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning 
118         about uninitialized data attributed 'progmem' from here...
119         (avr_encode_section_info): ...to this new function.
120         (TARGET_ENCODE_SECTION_INFO): New define.
121         (avr_section_type_flags): For data in ".progmem.data", remove
122         section flag SECTION_WRITE.
123
124 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
125         
126         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
127         _xmulhisi3_exit.
128         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
129         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
130         (__umulhisi3): Ditto.
131         * config/avr/avr.md (mulhisi3): New insn expender.
132         (umulhisi3): New insn expender.
133         (*mulhisi3_call): New insn.
134         (*umulhisi3_call): New insn.
135
136 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
137
138         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
139
140 2011-06-28  Richard Henderson  <rth@redhat.com>
141
142         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
143         all code and arguments that handled pushes.  Update all callers.
144
145 2011-06-28  Richard Henderson  <rth@redhat.com>
146
147         * config/arm/arm.c (arm_output_function_prologue): Don't call
148         thumb1_output_function_prologue.
149         (arm_expand_prologue): Avoid dead store.
150         (number_of_first_bit_set): Use ctz_hwi.
151         (thumb1_emit_multi_reg_push): New.
152         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
153         to emit the entire prologue as rtl.
154         (thumb1_output_interwork): Split out from
155         thumb1_output_function_prologue.
156         (thumb1_output_function_prologue): Remove.
157         (arm_attr_length_push_multi): Handle thumb1.
158         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
159         (prologue_thumb1_interwork): New.
160         (*push_multi): Allow thumb1; use push_mult_memory_operand.
161         * config/arm/predicates.md (push_mult_memory_operand): New.
162
163 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
164
165         * config/sparc/sync.md (*stbar): Delete.
166         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
167
168 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
169
170         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
171
172 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
173
174         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
175         (TARGET_64BIT_DEFAULT): Define.
176         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
177         of tm_file.
178         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
179
180 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
181
182         * common.opt (in_lto_p): New Variable entry.
183         * flags.h (in_lto_p): Move to common.opt.
184         * gcc.c: Include params.h.
185         (set_option_handlers): Also use common_handle_option and
186         target_handle_option.
187         (main): Call global_init_params, finish_params and
188         init_options_struct.
189         * opts.c (debug_type_names): Move from toplev.c.
190         (print_filtered_help): Access quiet_flag through opts pointer.
191         (common_handle_option): Return early in the driver for some
192         options.  Access in_lto_p, dwarf_version and
193         warn_maybe_uninitialized through opts pointer.
194         * toplev.c (in_lto_p): Move to common.opt.
195         (debug_type_names): Move to opts.c.
196         * Makefile.in (OBJS): Remove opts.o.
197         (OBJS-libcommon-target): Add opts.o.
198         (gcc.o): Update dependencies.
199
200 2011-06-28  Kai Tietz  <ktietz@redhat.com>
201
202         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve
203         type sinking.
204
205 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
206
207         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
208         with '=' constraint modifier.
209         (*divdf3_vfp): Likewise.
210         ("*mulsf3_vfp"): Likewise.
211         ("*muldf3_vfp"): Likewise.
212         ("*mulsf3negsf_vfp"): Likewise.
213         ("*muldf3negdf_vfp"): Likewise.
214
215 2011-06-28  Nick Clifton  <nickc@redhat.com>
216
217         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
218         relaxation when performing an incremental link.
219
220 2011-06-28  Kai Tietz  <ktietz@redhat.com>
221
222         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
223         within BB from last to first.
224
225 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
226
227         * genattr-common.c: New.  Based on genattr.c.
228         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
229         (MOSTLYCLEANFILES): Add insn-attr-common.h.
230         (opts.o): Update dependencies.
231         (.PRECIOUS): Add insn-attr-common.h.
232         (simple_rtl_generated_h): Add insn-attr-common.h.
233         (build/genattr-common.o): New.
234         (genprogrtl): Add attr-common.
235         * genattr.c (main): Include insn-attr-common.h.  Don't generate
236         definitions of DELAY_SLOTS or INSN_SCHEDULING.
237         * opts.c: Include insn-attr-common.h instead of rtl.h and
238         insn-attr.h.
239
240 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
241
242         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
243         avr-*-* and avr-*-rtems* targets.
244
245         * config/avr/elf.h: New file.
246         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
247         (TARGET_ASM_SELECT_SECTION): Define.
248         (INIT_SECTION_ASM_OP): Undefine.
249         (FINI_SECTION_ASM_OP): Undefine.
250         (READONLY_DATA_SECTION_ASM_OP): Undefine.
251         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
252         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
253         * config/avr/avr.h:
254         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
255         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
256         (MAX_OFILE_ALIGNMENT): Move to elf.h.
257         (STRING_LIMIT): Move to elf.h.
258         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
259         (ASM_DECLARE_OBJECT_NAME): Remove.
260         (ESCAPES): Remove.
261         (ASM_OUTPUT_SKIP): Remove.
262         (DWARF2_DEBUGGING_INFO): Remove.
263         (OBJECT_FORMAT_ELF): Remove.
264         (USER_LABEL_PREFIX): Remove.
265         (ASM_OUTPUT_EXTERNAL): Remove.
266         (ASM_OUTPUT_ASCII): Remove.
267         (TYPE_ASM_OP): Remove.
268         (SIZE_ASM_OP): Remove.
269         (WEAK_ASM_OP): Remove.
270         (STRING_ASM_OP): Remove.
271         (SET_ASM_OP): Remove.
272         (ASM_WEAKEN_LABEL): Remove.
273         (TYPE_OPERAND_FMT): Remove.
274         (ASM_DECLARE_FUNCTION_SIZE): Remove.
275         (ASM_FINISH_DECLARE_OBJECT): Remove.
276         (NO_DOLLAR_IN_LABEL): Remove.
277         (ASM_GENERATE_INTERNAL_LABEL): Remove.
278         (ASM_OUTPUT_CASE_LABEL): Remove.
279         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
280         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
281         (gas_output_ascii): Remove.
282         (gas_output_limited_string): Remove.
283         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
284         * config/avr/avr-protos.h
285         (gas_output_ascii): Remove prototye.
286         (gas_output_limited_string): Remove prototype.
287
288 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
289
290         PR target/48637
291         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
292         asm operands.
293
294 2011-06-27  Jan Hubicka  <jh@suse.cz>
295
296         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
297         node instead of references in node.
298
299 2011-06-27  Richard Henderson  <rth@redhat.com>
300
301         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
302         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
303         inside ifdef.
304
305 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
306
307         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
308
309         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
310         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
311         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
312         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
313         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
314         (evaluate_stmt, execute_fold_all_builtins): Handle
315         BUILT_IN_ASSUME_ALIGNED.
316         * tree-ssa-dce.c (propagate_necessity): Likewise.
317         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
318         call_may_clobber_ref_p_1): Likewise.
319         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
320         (expand_builtin_assume_aligned): New function.
321         * doc/extend.texi (__builtin_assume_aligned): Document.
322
323         PR debug/49544
324         * cselib.c (promote_debug_loc): If cselib_preserve_constants
325         and l has two DEBUG_INSN owned locs instead of just one, adjust
326         the second location's setting_insn too.
327
328 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
329
330         PR libmudflap/38738
331         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
332
333 2011-06-27  Nick Clifton  <nickc@redhat.com>
334
335         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to
336         convert bit position of highest bit set into a count of the high
337         zero bits.
338
339 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
340
341         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
342
343 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
344
345         PR lto/48492
346         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
347         to a NULL parent.
348
349 2011-06-27  Richard Guenther  <rguenther@suse.de>
350
351         PR tree-optimization/49394
352         * passes.c (execute_one_pass): Restore current_pass after
353         applying IPA transforms.
354
355 2011-06-27  Kai Tietz  <ktietz@redhat.com>
356
357         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
358         out of type precision after operation.
359         (find_bswap): Take for limit value the integer auto-
360         promotion into account.
361
362 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
363
364         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
365         forward scan as well.
366
367 2011-06-27  Tristan Gingold  <gingold@adacore.com>
368
369         PR target/44241
370         * config/vms/vms-protos.h: New file.
371         * config/vms/vms-crtlmap.map: New file.
372         * config/vms/vms.c: New file.
373         * config/vms/make-crtlmap.awk: New file.
374         * config/vms/vms-crtl.h: File removed.
375         * config/vms/vms-crtl-64.h: File removed.
376         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
377         * config/alpha/vms64.h: Do not include vms-crtl-64.h
378         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
379         clear some builtins on VMS.  Calls vms_patch_builtins.
380         (avms_asm_output_external): Remove.
381         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
382         (struct crtl_name_spec): Remove
383         (DO_CTRL_NAMES): Remove.
384         * config/ia64/vms.h (struct crtl_name_spec): Remove
385         (DO_CTRL_NAMES): Remove.
386         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
387         clear some builtins on VMS.  Calls vms_patch_builtins.
388         (ia64_asm_output_external): Remove DO_CRTL_NAME.
389         * config/ia64/vms64.h: Do not include vms-crtl-64.h
390         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles,
391         tm_p_file.
392
393 2011-06-27  Tristan Gingold  <gingold@adacore.com>
394
395         * config/alpha/alpha.c (alpha_end_function): Always generate .end
396         directive on VMS.
397
398 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
399
400         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
401         the function receives nonlocal gotos.
402
403 2011-06-27  Richard Guenther  <rguenther@suse.de>
404
405         PR tree-optimization/49536
406         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
407         For non-scalar inner types use a scalar type according to
408         the scalar inner mode.
409
410 2011-06-27  Richard Guenther  <rguenther@suse.de>
411
412         PR tree-optimization/49365
413         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
414
415 2011-06-27  Richard Guenther  <rguenther@suse.de>
416
417         PR tree-optimization/49169
418         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
419         the alignment of function decls.
420
421 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
422
423         PR target/47997
424         * config/darwin.c (darwin_mergeable_string_section): Place string
425         constants in '.cstring' rather than '.const' when CF/NSStrings are
426         active.
427
428 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
429
430         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
431         (emit_save_register_window): Likewise.
432         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
433         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
434         Swap back %o7/%i7 in register naming.
435
436 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
437
438         PR driver/49371
439         * config/darwin.c (darwin_override_options): Improve warning when
440         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
441         is given with fpie/fPIE.
442         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
443         * config/darwin9.h (PIE_SPEC): New.
444
445 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
446
447         * timevar.c (timevar_print): Increase width for display of timevar
448         name.
449
450 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
451
452         PR c++/46400
453         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
454         instead of TYPE_CHAIN for chain_next for types.
455
456 2011-06-24  Richard Henderson  <rth@redhat.com>
457
458         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
459         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
460         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
461         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
462         (sparc_flat_expand_prologue): Emit individual instructions
463         instead of one of the above.
464
465 2011-06-24  Easwaran Raman  <eraman@google.com>
466
467         PR rtl-optimization/49429
468         PR target/49454
469         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
470         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
471         used to copy y into x.
472         * calls.c (initialize_argument_information): Mark
473         an argument addressable if it is passed by invisible reference.
474         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
475         if it is passed by reference.
476
477 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
478
479         PR rtl-optimization/49504
480         * rtlanal.c (nonzero_bits1): Properly handle addition or
481         subtraction of a pointer in Pmode if pointers extend unsigned.
482         (num_sign_bit_copies1): Likewise.
483
484 2011-06-24  Martin Jambor  <mjambor@suse.cz>
485
486         PR tree-optimizations/49516
487         * tree-sra.c (sra_modify_assign): Choose the safe path for
488         aggregate copies if we also did scalar replacements.
489
490 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
491
492         PR target/49335
493         * config/arm/predicates.md (add_operator): New.
494         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage
495         in Thumb2.
496
497 2011-06-24  Andi Kleen  <ak@linux.intel.com>
498
499         * tree-sra.c (type_internals_preclude_sra_p): Add msg
500         parameter. Split up ifs and report reason in *msg.
501         (reject): Add.
502         (find_var_candiate): Add msg variable.
503         Split up ifs and report reason to reject.
504         (find_param_candidates): Add msg variable.
505         Pass msg to type_internals_preclude_sra_p.
506
507 2011-06-23  Jeff Law  <law@redhat.com>
508
509         PR middle-end/48770
510         * reload.h (reload): Change to return a bool.
511         * ira.c (ira): If requested by reload, run a fast DCE pass after
512         reload has completed.  Fix comment typo.
513         * reload1.c (need_dce): New file scoped static.
514         (reload): Set reload_completed here.  Return whether or not a DCE
515         pass after reload is needed.
516         (delete_dead_insn): Set need_dce as needed.
517
518         PR middle-end/49465
519         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
520         to detect threading through joiner block.  If there was already
521         an edge to the new target, then do not change the PHI nodes.
522
523 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
524
525         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
526         get_pointer_alignment to see if base isn't sufficiently aligned.
527
528 2011-06-23  Jan Hubicka  <jh@suse.cz>
529
530         PR tree-optimize/49373
531         * tree-pass.h (all_late_ipa_passes): Declare.
532         * cgraphunit.c (init_lowered_empty_function): Fix properties.
533         (cgraph_optimize): Execute late passes; remove unreachable funcions
534         after materialization.
535         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
536         LTOing.
537         * passes.c (all_late_ipa_passes): Declare.
538         (dump_passes, register_pass): Handle late ipa passes.
539         (init_optimization_passes): Move ipa_pta to late passes; schedule
540         fixup_cfg at beggining of all_passes.
541         (apply_ipa_transforms): New function.
542         (execute_one_pass): When doing simple ipa pass, apply all transforms.
543
544 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
545
546         * params.c: Include common/common-target.h.  Don't include tm.h.
547         (lang_independent_params): Move from toplev.c.
548         (global_init_params): New.
549         * params.h (global_init_params): Declare.
550         * target.def (default_params): Move to common-target.def.
551         * toplev.c (lang_independent_options): Remove.
552         (lang_independent_params): Move to params.c.
553         (general_init): Use global_init_params.
554         * common/common-target.def (option_default_params): Move from
555         target.def.
556         * common/config/ia64/ia64-common.c: Include params.h.
557         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
558         from ia64.c.
559         * common/config/rs6000/rs6000-common.c: Include params.h.
560         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
561         from rs6000.c.
562         * common/config/sh/sh-common.c: Include params.h.
563         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
564         from sh.c.
565         * common/config/spu/spu-common.c: Include params.h.
566         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
567         from spu.c.
568         * config/ia64/ia64.c (ia64_option_default_params,
569         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
570         * config/rs6000/rs6000.c (rs6000_option_default_params,
571         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
572         * config/sh/sh.c (sh_option_default_params,
573         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
574         * config/spu/spu.c (spu_option_default_params,
575         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
576         * Makefile.in (OBJS): Remove params.o.
577         (OBJS-libcommon-target): Add params.o.
578         (params.o, $(common_out_object_file)): Update dependencies.
579         * doc/tm.texi: Regenerate.
580
581 2011-06-23  Alan Modra  <amodra@gmail.com>
582
583         PR bootstrap/49383
584         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
585         invocation for 2011-06-09 changes.
586
587 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
588
589         PR libgomp/49490
590         * omp-low.c (expand_omp_for_static_nochunk): Only
591         use n ceil/ nthreads size for the first
592         n % nthreads threads in the team instead of
593         all threads except for the last few ones which
594         get less work or none at all.
595
596         PR debug/49496
597         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
598         uses.
599
600 2011-06-22  Richard Guenther  <rguenther@suse.de>
601
602         PR tree-optimization/49493
603         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
604         Refer to the alias target of variables.
605         (associate_varinfo_to_alias_1): Remove.
606         (ipa_pta_execute): Do not associate aliases with anything.
607         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
608         (cgraph_function_node): Likewise.
609         (cgraph_function_or_thunk_node): Likewise.
610         (varpool_variable_node): Likewise.
611
612 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
613
614         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect
615         typo.
616         * config.gcc (arm*-*-linux*): Default to gnu tls.
617         (arm*-*-*): Add --with-tls option.
618         (all_defaults): Add 'tls'.
619
620 2011-06-22  Richard Henderson  <rth@redhat.com>
621
622         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
623         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
624         (dwarf2out_frame_debug_cfa_window_save): Rename from
625         dwarf2out_window_save; make static.
626         * tree.h (dwarf2out_window_save): Don't declare.
627
628         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
629         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
630         (emit_save_register_window): Rename from gen_save_register_window;
631         emit the insn and add REG_CFA_* notes.
632         (sparc_expand_prologue): Update to match.
633         * config/sparc/sparc.md (save_register_window_1): Simplify from
634         save_register_window<P:mode>.
635
636 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
637
638         PR target/49497
639         * config/i386/i386.md (*lea_general_2): Always allow SImode.
640         (*lea_general_2_zext): Likewise.
641         (imul to lea peepholes): Use const359_operand and check
642         TARGET_PARTIAL_REG_STALL.
643
644         * config/i386/predicates.md (const359_operand): New.
645
646 2011-06-22  Michael Matz  <matz@suse.de>
647
648         * cgraphunit.c (assemble_thunk): Use correct return type.
649
650 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
651         Dmitry Melnik  <dm@ispras.ru>
652
653         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
654         (neon_output_shift_immediate): Ditto.
655         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
656         prototype.
657         (neon_output_shift_immediate): Ditto.
658         * config/arm/neon.md (vashl<mode>3): Modified constraint.
659         (vashr<mode>3_imm): New insn pattern.
660         (vlshr<mode>3_imm): Ditto.
661         (vashr<mode>3): Modified constraint.
662         (vlshr<mode>3): Ditto.
663         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
664         predicate.
665         (imm_for_neon_rshift_operand): Ditto.
666         (imm_lshift_or_reg_neon): Ditto.
667         (imm_rshift_or_reg_neon): Ditto.
668
669         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
670
671 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
672
673         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
674         builtin calls even if likelyvalue is not CONSTANT.
675         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
676         Return get_value_for_expr of first operand
677         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
678         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
679         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
680         their non-checking counterparts.
681         (call_may_clobber_ref_p_1): Likewise.
682         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
683         like their non-checking counterparts.
684         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
685         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
686         like their non-checking counterparts.
687         (find_func_clobbers): Likewise.
688         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
689         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
690
691         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
692         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
693         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
694         of base type reference as argument.
695         (resolve_addr_in_expr): Likewise.  Fix keep computation.
696         (convert_descriptor_to_signed): Renamed to...
697         (convert_descriptor_to_mode): ... this.  For wider types convert
698         to unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to
699         untyped.
700         (typed_binop): New function.
701         (scompare_loc_descriptor, ucompare_loc_descriptor,
702         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
703         default to unsigned type instead of signed.
704
705         PR debug/47858
706         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
707         (gimple_build_debug_source_bind_stat): New prototype.
708         (gimple_build_debug_source_bind): Define.
709         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
710         gimple_debug_source_bind_get_value,
711         gimple_debug_source_bind_get_value_ptr,
712         gimple_debug_source_bind_set_var,
713         gimple_debug_source_bind_set_value): New inlines.
714         * gimple.c (gimple_build_debug_source_bind_stat): New function.
715         * gimple-pretty-print.c (dump_gimple_debug): Handle
716         GIMPLE_DEBUG_SOURCE_BIND.
717         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
718         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
719         * tree-parloops.c (eliminate_local_variables,
720         separate_decls_in_region): Likewise.
721         (separate_decls_in_region_debug): Renamed from
722         separate_decls_in_region_debug_bind.  Handle
723         gimple_debug_source_bind_p.
724         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
725         prototypes.
726         (DECL_HAS_DEBUG_ARGS_P): Define.
727         (struct tree_function_decl): Add has_debug_args_flag field.
728         * tree.c (debug_args_for_decl): New variable.
729         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
730         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
731         (rewrite_debug_stmt_uses): New function.
732         (rewrite_stmt): Use it to rewrite debug stmt uses.
733         * rtl.def (DEBUG_PARAMETER_REF): New.
734         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
735         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
736         DEBUG_PARAMETER_REF.
737         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
738         * print-rtl.c (print_rtx): Likewise.
739         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
740         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
741         debug stmts in the first bb.
742         * tree-inline.c (remap_ssa_name): If remapping default def
743         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
744         a source bind debug stmt.
745         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
746         (maybe_move_debug_stmts_to_successors): Likewise.
747         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
748         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
749         debug args vector from old_decl to new_decl.
750         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
751         or modified parameters, add debug bind stmts before call
752         setting DEBUG_EXPR_DECL which is remembered in debug args
753         vector.
754         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
755         on DECL_DEBUG_EXPRs from debug args vector.
756         (expand_debug_source_expr): New function.
757         (expand_debug_locations): Use it for source bind insns.
758         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
759         * var-tracking.c (prepare_call_arguments): Add debug args
760         to call_arguments if any.
761         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
762         output_loc_operands, output_loc_operands_raw,
763         resolve_addr_in_expr, compare_loc_operands): Handle
764         DW_OP_GNU_parameter_ref.
765         (get_ref_die_offset, parameter_ref_descriptor): New functions.
766         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
767         (gen_subprogram_die): Handle parameters identified by
768         DEBUG_PARAMETER_REF.
769
770 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
771
772         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
773         * doc/install.texi (Configuration): Document --with-tls.
774         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
775         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
776         (arm_tls_descseq_addr): New.
777         (legitimize_tls_address): Add tlsdesc support.
778         (arm_cannot_copy_insn_p): Check for tlscall.
779         (arm_emit_tls_decoration): Likewise.
780         * config/arm/arm.h (TARGET_GNU2_TLS): New.
781         (OPTION_DEFAULT_SPECS): Add with-tls support.
782         * config/arm/arm.md (R1_REGNUM): Define.
783         (tlscall): New.
784         * config/arm/arm.opt (tls_type): New enumeration type and values.
785         (mtls-dialect): New switch.
786         * config/arm/arm-opts.h (enum tls_type): New.
787
788 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
789
790         * attribs.c (register_attribute): Added assert to check that all
791         attribute specs are registered with a name that is not empty and
792         does not start with '_'.
793         (decl_attributes): Avoid the lookup of the "naked" attribute spec
794         if the function has no attributes.
795         * tree.c (is_attribute_with_length_p): Removed.
796         (is_attribute_p): Removed.
797         (private_is_attribute_p): New.  
798         (private_lookup_attribute): New.
799         (lookup_attribute): Removed.
800         (lookup_ident_attribute): New.
801         (remove_attribute): Require the first argument to be in the form
802         'text', not '__text__'.  Updated asserts.
803         (merge_attributes): Use lookup_ident_attributes instead of
804         lookup_attribute.
805         (merge_dllimport_decl_attributes): Use remove_attribute.
806         (attribute_list_contained): Likewise.
807         (attribute_list_equal): Immediately return 1 if the arguments are
808         identical pointers.
809         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
810         'int'.  Require the first argument to be in the form 'text', not
811         '__text__'.  Require the second argument to be an identifier.
812         (lookup_attribute): Made inline.  Require the first argument to be
813         in the form 'text', not '__text__'.
814         (private_is_attribute_p, private_lookup_attribute): New.
815         Updated comments.
816         
817 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
818
819         * builtins.c: Add sync_ or SYNC__ to builtin names.
820         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
821         * omp-low.c: Add sync_ or SYNC__ to builtin names.
822
823 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
824
825         PR target/33049
826         * config/avr/avr.md (extzv): New expander.
827         (*extzv): New insn.
828         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
829         * config/avr/constraints.md (C04): New constraint.
830         * doc/md.texi (Machine Constraints): Document it.
831
832 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
833
834         PR middle-end/49489
835         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
836         unsignedp argument instead of 1 for clrsb_optab.
837         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
838         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
839         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
840         * optabs.c (widen_leading): Call widen_operand and expand_unop
841         with 0 as unsignedp argument instead of 1 for clrsb_optab.
842         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
843
844 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
845
846         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
847
848 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
849
850         * gensupport.c (add_define_attr): New static function.
851         (is_predicable): Allow multi-alternative lists for the "predicable"
852         attribute.
853         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
854         (process_one_cond_exec): Call alter_attrs_for_insn.
855         * doc/md.texi (Defining Attributes): Mention some standard names.
856         (Conditional Execution): Update documentation for "predicable".
857
858         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
859         __builtin_clrsbll): Document.
860         * doc/rtl.texi (clrsb): New entry.
861         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
862         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
863         (expand_unop): Handle clrsb_optab.
864         (init_optabs): Initialize it.
865         * optabs.h (enum optab_index): New entry OTI_clrsb.
866         (clrsb_optab): Define.
867         * genopinit.c (optabs): Add an entry for it.
868         * builtins.c (expand_builtin): Handle clrsb builtin functions.
869         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
870         BUILT_IN_CLRSBLL): New.
871         * rtl.def (CLRSB): New code.
872         * dwarf2out.c (mem_loc_descriptor): Handle it.
873         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
874         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
875         and popcount.
876         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
877         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
878         (__ctzDI2): Move declaration.
879         * config/bfin/bfin.md (clrsbsi2): New expander.
880         (signbitssi2): Use the CLRSB rtx.
881         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
882         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
883
884 2011-06-21  Richard Guenther  <rguenther@suse.de>
885
886         * ipa-inline-transform.c (inline_transform): Fix previous change.
887
888 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
889
890         PR tree-optimization/49478
891         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
892         with constant operand.
893
894 2011-06-21  Richard Guenther  <rguenther@suse.de>
895
896         * ipa-inline-transform.c (inline_transform): Fix typo.
897
898 2011-06-21  Richard Guenther  <rguenther@suse.de>
899
900         PR tree-optimization/49483
901         * tree-vect-stmts.c (vectorizable_assignment): Also handle
902         VIEW_CONVERT_EXPR conversions.
903
904 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
905
906         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
907         * config/avr/avr-tables.opt: New file (generated).
908         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
909         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
910         avr-mcus.def.
911         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
912         (avr_option_override): Don't process -mmcu= argument here.  Set
913         avr_current_device using avr_mcu_index.
914         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
915         * config/avr/avr.opt (mmcu=): Use Enum.
916         * config/avr/t-avr (avr-devices.o): Update dependencies.
917         ($(srcdir)/config/avr/avr-tables.opt): New.
918         * target.def (help): Remove.
919         * doc/tm.texi.in (TARGET_HELP): Remove.
920         * doc/tm.texi: Regenerate.
921         * opts.c: Don't include target.h.
922         (common_handle_option): Don't call targetm.help.
923         * system.h (TARGET_HELP): Poison.
924         * Makefile.in (opts.o): Update dependencies.
925
926 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
927
928         * config/usegld.h: New file.
929         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
930         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
931         (LIB_SPEC): Likewise.  Search /lib.
932         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
933         (RDYNAMIC_SPEC): Handle GNU ld.
934         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
935         Define.
936         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
937         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
938         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
939         (STACK_CHECK_STATIC_BUILTIN): Define.
940         * config/sol2.opt (compat-bsd): Remove.
941         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
942         * config/sol2-bi.h: New file.
943         * config/sol2-gld.h: Remove.
944         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
945         (NO_DBX_BNSYM_ENSYM): Remove.
946         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
947         (STACK_CHECK_STATIC_BUILTIN): Remove.
948         Test USE_GLD instead of TARGET_GNU_LD.
949         * config/i386/sol2-10.h: Rename to ...
950         * config/i386/sol2-bi.h .. this.
951         (SUBTARGET_EXTRA_SPECS): Redefine.
952         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
953         (MULTILIB_DEFAULTS): Remove.
954         (DEFAULT_ARCH32_P): Define.
955         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
956         (ARCH64_SUBDIR): Define.
957         Test USE_GLD instead of TARGET_GNU_LD.
958         (I386_EMULATION): Rename to ...
959         (ARCH32_EMULATION): ... this.
960         (X86_64_EMULATION): Rename to ...
961         (ARCH64_EMULATION): ... this.
962         (TARGET_LD_EMULATION): Remove.
963         (LINK_ARCH_SPEC): Remove.
964         * config/i386/sol2-gas.h: Remove.
965         * config/i386/t-sol2-10: Rename to ...
966         * config/i386/t-sol2-64: ... this.
967         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
968         (AS_SPARC64_FLAG): Define.
969         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
970         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
971         depending on TARGET_CPU_DEFAULT.
972         (CPP_CPU_SPEC): Redefine.
973         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
974         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
975         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
976         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
977         ASM_ARCH_DEFAULT_SPEC): Redefine.
978         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
979         LINK_ARCH_DEFAULT_SPEC.
980         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
981         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
982         (ARCH64_SUBDIR): Define.
983         (LINK_ARCH64_SPEC): Redefine.
984         (CC1_SPEC): Redefine.
985         (OPTION_DEFAULT_SPECS): Redefine.
986         (MULTILIB_DEFAULTS): Define.
987         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
988         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
989         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
990         (NO_DBX_BNSYM_ENSYM): Remove.
991         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
992         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
993         (TARGET_ASM_NAMED_SECTION): Likewise.
994         (STACK_CHECK_STATIC_BUILTIN): Remove.
995         * config/sparc/sol2-bi.h: Remove.
996         * config/sparc/sol2-gas-bi.h: Remove.
997         * config/sparc/sol2-gas.h: Remove.
998         * config/sparc/sol2-gld-bi.h: Remove.
999         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
1000         common parts ...
1001         (*-*-solaris2*): ... here.
1002
1003 2011-06-21  Christian Bruel  <christian.bruel@st.com>
1004
1005         PR other/43564
1006         * ipa-inline.c (can_inline_edge_p): Check
1007         !DECL_DISREGARD_INLINE_LIMITS.
1008
1009 2011-06-21  Christian Bruel  <christian.bruel@st.com>
1010
1011         PR middle-end/49139
1012         * cgraphunit.c (process_function_and_variable_attributes): warn when
1013         always_inline functions that are not inline.
1014         * ipa-inline-transform.c (inline_transform): Always call
1015         optimize_inline.
1016         * tree-inline.c (tree_inlinable_function_p): Use error instead
1017         of sorry.
1018         (expand_call_inline): Likewise.
1019
1020 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
1021
1022         * Makefile.in (dg_target_exps): Set.
1023         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
1024         instead of 7, try to divide it more evenly.
1025
1026 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
1027
1028         PR target/49089
1029         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
1030         (avx256_split_unaligned_store): New definition.
1031         (ix86_option_override_internal): Enable avx256 unaligned load/store
1032         splitting only when avx256_split_unaligned_load/store is set.
1033
1034 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
1035
1036         * regrename.c (scan_rtx_reg): Handle the case where we write to an
1037         open chain in a smaller mode without failing the entire block.
1038
1039 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
1040
1041         PR middle-end/47725
1042         * combine.c (cant_combine_insn_p): Don't check zero/sign
1043         extended hard registers.
1044
1045 2011-06-21  Alan Modra  <amodra@gmail.com>
1046
1047         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
1048         CONST high part large-toc address.
1049         (rs6000_tls_referenced_p): Make static.
1050         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
1051
1052 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
1053
1054         PR middle-end/47725
1055         * combine.c (cant_combine_insn_p): Check zero/sign extended
1056         hard registers.
1057
1058 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1059
1060         PR target/49385
1061         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
1062         one of the operands is a register.
1063
1064 2011-06-20  Kai Tietz  <ktietz@redhat.com>
1065
1066         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
1067         operations in combination with binary and.
1068
1069 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
1070
1071         * regrename.c (do_replace): Don't update notes.
1072
1073 2011-06-20  Alan Modra  <amodra@gmail.com>
1074
1075         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
1076         of toc-relative address in CONST.
1077         (rs6000_delegitimize_address): Recognize changed address.
1078         (rs6000_legitimize_reload_address): Likewise.
1079         (rs6000_emit_move): Don't force these constants to memory.
1080         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
1081         toc-relative address in CONST.
1082         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
1083         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
1084
1085 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1086
1087         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
1088         (count_trailing_zeros): Likewise.
1089
1090 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1091
1092         PR other/49325
1093         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
1094         .init_array can be used with .ctors on targets.
1095         * configure: Regenerated.
1096
1097 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
1098
1099         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
1100         if the element type is volatile.
1101
1102 2011-06-18  Jan Hubicka  <jh@suse.cz>
1103
1104         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
1105         extra name aliases.
1106         (lto_symtab_resolve_can_prevail_p): Likewise.
1107         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
1108         * cgraphbuild.c (record_reference): Remove extra body alias code.
1109         (mark_load): Likewise.
1110         (mark_store): Likewise.
1111         * cgraph.h (varpool_node): Remove extra_name filed;
1112         add alias_of and extraname_alias.
1113         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
1114         (varpool_alias_aliased_node): New inline function.
1115         (varpool_variable_node): New function.
1116         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
1117         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
1118         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
1119         (input_varpool_node): Likewise.
1120         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
1121         (varpool_externally_visible_p): Remove extra body alias code.
1122         (function_and_variable_visibility): Likewise.
1123         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
1124         (ipa_pta_execute): Use it.
1125         * varpool.c (varpool_remove_node): Remove extra name alias code.
1126         (varpool_mark_needed_node): Likewise.
1127         (varpool_analyze_pending_decls): Analyze aliases.
1128         (assemble_aliases): New functoin.
1129         (varpool_assemble_decl): Use it.
1130         (varpool_create_variable_alias): New function.
1131         (varpool_extra_name_alias): Rewrite.
1132         (varpool_for_node_and_aliases): New function.
1133
1134 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
1135
1136         PR target/49411
1137         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
1138         last_arg_constant and last argument doesn't match its predicate,
1139         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
1140         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
1141         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
1142         spelling of error message.
1143         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
1144         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
1145         const_0_to_255_operand instead of const_int_operand.
1146
1147         Revert:
1148         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1149
1150         * config/i386/sse.md (blendbits): Remove mode attribute.
1151         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1152         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1153         Check integer value of operand 3 in insn constraint.
1154
1155 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
1156
1157         PR rtl-optimization/48542
1158         * reload.c (find_equiv_reg): Stop looking when finding a
1159         setjmp-type call.
1160         * reload1.c (reload_as_needed): Invalidate all reload
1161         registers when crossing a setjmp-type call.
1162
1163 2011-06-16  Jeff Law  <law@redhat.com>
1164
1165         * tree-ssa-threadupdate.c (struct redirection_data): New field
1166         intermediate_edge.
1167         (THREAD_TARGET2): Define.
1168         (redirection_data_eq): Also check that the intermediate edge is equal.
1169         (lookup_redirection_data): Drop useless argument.  Extract the
1170         outgoing_edge and intermediate edge from E.  Callers updated.
1171         (copy_phi_args, update_destination_phis): New functions.
1172         (fix_duplicate_block_edges): Likewise.
1173         (create_edge_and_update_destination_phis): Duplicate all the edges
1174         hung off e->aux.  Use copy_phi_args.
1175         (create_duplicates): Use fix_duplicate_block_edges.
1176         (fixup_template_block): Likewise.
1177         (redirect_edges): If necessary, redirect the joiner block's incoming
1178         edge to the duplicate of the joiner block.
1179         (thread_block): Don't muck up loops when threading through a joiner
1180         block.
1181         (thread_through_loop_header): Handle threading through a joiner block.
1182         (mark_threaded_blocks, register_jump_thread): Likewise.
1183         * tree-flow.h (register_jump_thread): Add new argument.  Callers
1184         updated.
1185         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
1186         (thread_across_edge): Handle threading through a joiner block.
1187
1188 2011-06-16  Martin Jambor  <mjambor@suse.cz>
1189
1190         PR tree-optimization/49343
1191         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
1192         calculate offset, provide 2nd operand for the new COMPONENT_REF.
1193
1194 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
1195
1196         * config/darwin-protos.h (machopic_select_rtx_section): Move to
1197         inside RTX_CODE ifdef.
1198
1199 2011-06-16  Tom de Vries  <tom@codesourcery.com>
1200
1201         PR target/45098
1202         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
1203         Disallow NULL pointer for pointer arithmetic.
1204
1205 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1206
1207         PR target/49398
1208         Revert.
1209         2011-06-10  Wei Guozhi  <carrot@google.com>
1210
1211         PR target/45335
1212         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
1213         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
1214         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
1215         related peephole2.
1216         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
1217         related peephole2.
1218         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
1219         (arm_legitimate_ldrd_p): New prototype.
1220         (arm_output_ldrd): New prototype.
1221         * config/arm/arm.c (arm_check_ldrd_operands): New function.
1222         (arm_legitimate_ldrd_p): New function.
1223         (arm_output_ldrd): New function.
1224
1225 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
1226
1227         PR middle-end/46500
1228         * doc/tm.texi.in: Update Copyright date.
1229         * doc/tm.texi: Regenerate.
1230         * targhooks.c (default_setup_incoming_varargs): Replace
1231         CUMULATIVE_ARGS* argument type with cumulative_args_t.
1232         (default_pretend_outgoing_varargs_named): Likewise.
1233         (hook_pass_by_reference_must_pass_in_stack): Likewise.
1234         (hook_callee_copies_named): Likewise.
1235         (default_function_arg_advance): Likewise.
1236         (default_function_arg): Likewise.
1237         (default_function_incoming_arg): Likewise.
1238         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
1239         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
1240         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
1241         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
1242         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
1243         * targhooks.h (default_setup_incoming_varargs): Likewise.
1244         (default_pretend_outgoing_varargs_named): Likewise.
1245         (hook_pass_by_reference_must_pass_in_stack): Likewise.
1246         (hook_callee_copies_named): Likewise.
1247         (default_function_arg_advance): Likewise.
1248         (default_function_arg): Likewise.
1249         (default_function_incoming_arg): Likewise.
1250         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
1251         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
1252         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
1253         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
1254         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
1255         * target.def (pass_by_reference): Likewise.
1256         (setup_incoming_varargs, strict_argument_naming): Likewise.
1257         (pretend_outgoing_varargs_named, callee_copies): Likewise.
1258         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
1259         (function_incoming_arg): Likewise.
1260         * target.h: Don't include "tm.h" .
1261         (cumulative_args_t): New typedef.
1262         [GCC_TM_H] (get_cumulative_args): New static inline function.
1263         [GCC_TM_H] (pack_cumulative_args): Likewise.
1264         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
1265         argument type with cumulative_args_t.
1266         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
1267         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
1268         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
1269         (frv_arg_partial_bytes, frv_function_arg): Likewise.
1270         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
1271         (frv_function_arg_1): Likewise.
1272         * config/s390/s390.c (s390_pass_by_reference): Likewise.
1273         (s390_function_arg_advance, s390_function_arg): Likewise.
1274         * config/m32c/m32c.c (m32c_function_arg): Likewise.
1275         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
1276         (m32c_strict_argument_naming): Likewise.
1277         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
1278         (spu_function_arg_advance): Likewise.
1279         (spu_setup_incoming_varargs): Likewise.  Make static.
1280         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
1281         Remove prototype.
1282         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
1283         CUMULATIVE_ARGS* argument type with cumulative_args_t.
1284         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
1285         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
1286         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
1287         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
1288         (mep_pass_by_reference, mep_function_arg): Likewise.
1289         (mep_function_arg_advance): Likewise.
1290         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
1291         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
1292         (m32r_function_arg, m32r_function_arg_advance): Likewise.
1293         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
1294         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
1295         (ix86_function_arg, ix86_pass_by_reference): Likewise.
1296         (ix86_setup_incoming_varargs): Likewise.
1297         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
1298         (sh_strict_argument_naming): Likewise.
1299         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
1300         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
1301         (sh_function_arg_advance, sh_function_arg): Likewise.
1302         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
1303         (pdp11_function_arg_advance): Likewise.
1304         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
1305         Likewise.
1306         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
1307         * config/avr/avr.c (avr_function_arg): Likewise.
1308         (avr_function_arg_advance): Likewise.
1309         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
1310         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
1311         (xtensa_function_arg_1): Likewise.
1312         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
1313         Likewise.
1314         (xstormy16_function_arg): Likewise.
1315         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
1316         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
1317         (fr30_function_arg_advance): Likewise.
1318         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
1319         (lm32_function_arg, lm32_function_arg_advance): Likewise.
1320         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
1321         (moxie_function_arg, moxie_function_arg_advance): Likewise.
1322         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
1323         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
1324         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
1325         (cris_function_arg, cris_function_incoming_arg): Likewise.
1326         (cris_function_arg_advance, cris_function_arg_1): Likewise.
1327         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
1328         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
1329         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
1330         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
1331         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
1332         (mn10300_arg_partial_bytes): Likewise.
1333         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
1334         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
1335         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
1336         (ia64_function_arg_1): Likewise.
1337         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
1338         (m68k_function_arg): Likewise.
1339         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
1340         (rs6000_function_arg, setup_incoming_varargs): Likewise.
1341         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
1342         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
1343         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
1344         (picochip_arg_advance): Likewise.
1345         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
1346         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
1347         (mcore_function_arg_advance): Likewise.
1348         * config/score/score.c (score_pass_by_reference): Likewise.
1349         (score_function_arg_advance): Likewise.
1350         (score_arg_partial_bytes): Likewise.  Make static.
1351         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
1352         * config/arm/arm.c (arm_arg_partial_bytes): Replace
1353         CUMULATIVE_ARGS* argument type with cumulative_args_t.
1354         (arm_function_arg, arm_function_arg_advance): Likewise.
1355         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
1356         * config/pa/pa.c (pa_pass_by_reference): Likewise.
1357         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
1358         (pa_function_arg): Likewise.
1359         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
1360         (mips_function_arg, mips_function_arg_advance): Likewise.
1361         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
1362         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
1363         * config/vax/vax.c (vax_function_arg): Likewise.
1364         (vax_function_arg_advance): Likewise.
1365         * config/h8300/h8300.c (h8300_function_arg): Likewise.
1366         (h8300_function_arg_advance): Likewise.
1367         * config/v850/v850.c (v850_pass_by_reference): Likewise.
1368         (v850_strict_argument_naming, v850_function_arg): Likewise.
1369         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
1370         (v850_setup_incoming_varargs): Likewise.
1371         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
1372         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
1373         (mmix_function_arg, mmix_pass_by_reference): Likewise.
1374         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
1375         with const void *.
1376         * config/bfin/bfin.c (setup_incoming_varargs): Replace
1377         CUMULATIVE_ARGS* argument type with cumulative_args_t.
1378         (bfin_function_arg_advance, bfin_function_arg): Likewise.
1379         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
1380         * calls.c (emit_call_1): Change type of args_so_far to
1381         cumulative_args_t.  Changed all callers.
1382         (initialize_argument_information): Likewise.
1383         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
1384         * dse.c (get_call_args): Likewise.
1385         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
1386         * function.c (pass_by_reference, reference_callee_copied): Likewise.
1387         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
1388         New member args_so_far_v.  Changed all users.
1389         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
1390         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
1391         * config/mips/mips.c (mips_output_args_xfer): Likewise.
1392         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
1393         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1394         * config/microblaze/microblaze.c (microblaze_expand_prologue):
1395         Likewise.
1396         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
1397         m32r_pass_by_reference.
1398
1399 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
1400
1401         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
1402         argument to be a VEC of statements.
1403         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
1404         assert that pattern statements have to have their vector type set.
1405         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
1406         Change the first argument to be a VEC of statements.  Update
1407         documentation.
1408         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
1409         (vect_handle_widen_mult_by_const): New function.
1410         (vect_recog_widen_mult_pattern):  Change the first argument to be a
1411         VEC of statements.  Update documentation.  Check that the constant is
1412         INTEGER_CST.  Support multiplication by a constant that fits an
1413         intermediate type - call vect_handle_widen_mult_by_const.
1414         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
1415         call.  Handle additional pattern statements if necessary.
1416
1417 2011-06-16  Nick Clifton  <nickc@redhat.com>
1418
1419         PR target/49427
1420         * config.gcc: Set cpu_type to v850 for any V850 architecture.
1421         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
1422         md_file, extra_modes, out_file and extra_options are these are all
1423         deduced from cpu_type.
1424
1425 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
1426
1427         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
1428         truncation mask to 63.
1429
1430 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
1431
1432         PR target/49313
1433         PR target/29524
1434         * longlong.h: Add AVR support:
1435         (count_leading_zeros): New macro.
1436         (count_trailing_zeros): New macro.
1437         (COUNT_LEADING_ZEROS_0): New macro.
1438         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
1439         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
1440         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
1441         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
1442         (LIB2FUNCS_EXCLUDE): Add _clz.
1443         * config/avr/libgcc.S (XCALL): Move up in file.
1444         (XJMP): New C Macro.
1445         (DEFUN): New asm macro.
1446         (ENDF): New asm macro.
1447         (__ffssi2): New function.
1448         (__ffshi2): New function.
1449         (__loop_ffsqi2): New function.
1450         (__ctzsi2): New function.
1451         (__ctzhi2): New function.
1452         (__clzdi2): New function.
1453         (__clzsi2): New function.
1454         (__clzhi2): New function.
1455         (__paritydi2): New function.
1456         (__paritysi2): New function.
1457         (__parityhi2): New function.
1458         (__parityqi2): New function.
1459         (__popcounthi2): New function.
1460         (__popcountsi2): New function.
1461         (__popcountdi2): New function.
1462         (__popcountqi2): New function.
1463         (__bswapsi2): New function.
1464         (__bswapdi2): New function.
1465         (__ashldi3): New function.
1466         (__ashrdi3): New function.
1467         (__lshrdi3): New function.
1468         Fix suspicous lines.
1469
1470 2011-06-16  Richard Guenther  <rguenther@suse.de>
1471
1472         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
1473         the same as x != 0.
1474         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
1475         to (bool) X & 1.
1476         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
1477         equality compares against zero for the lower bit.
1478
1479 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
1480
1481         PR tree-optimization/49419
1482         * tree-vrp.c (execute_vrp): Call init_range_assertions
1483         before estimate_numbers_of_iterations, call
1484         free_number_of_iterations_estimates before calling
1485         remove_range_assertions.
1486
1487 2011-06-16  Revital Eres  <revital.eres@linaro.org>
1488
1489         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
1490         (struct partial_schedule): Add rows_length field.
1491         (verify_partial_schedule): Check rows_length.
1492         (ps_insert_empty_row): Handle rows_length.
1493         (create_partial_schedule): Likewise.
1494         (free_partial_schedule): Likewise.
1495         (reset_partial_schedule): Likewise.
1496         (create_ps_insn): Remove rest_count argument.
1497         (remove_node_from_ps): Update rows_length.
1498         (add_node_to_ps): Update rows_length and call create_ps_insn
1499         without passing row_rest_count.
1500         (rotate_partial_schedule): Update rows_length.
1501
1502 2011-06-16  Revital Eres  <revital.eres@linaro.org>
1503
1504         * ddg.c (add_intra_loop_mem_dep): New function.
1505         (build_intra_loop_deps): Call it.
1506
1507 2011-06-13  Jeff Law  <law@redhat.com>
1508
1509         * df-problems.c (df_lr_local_compute): Manually CSE
1510         PIC_OFFSET_TABLE_REGNUM.
1511         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
1512         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
1513
1514 2011-06-13  Jan Hubicka  <jh@suse.cz>
1515
1516         * cgraphunit.c (handle_alias_pairs): New function.
1517         (cgraph_finalize_compilation_unit): Use it.
1518         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
1519         as externally visible.
1520
1521 2011-06-15  Richard Guenther  <rguenther@suse.de>
1522
1523         * expr.c (expand_expr_real_2): Reduce all integral types to
1524         bitfield precision.
1525         (expand_expr_real_1): Likewise.
1526
1527 2011-06-15  Martin Jambor  <mjambor@suse.cz>
1528
1529         PR tree-optimization/48613
1530         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
1531         ipa_node_params_vector is NULL.
1532
1533 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
1534
1535         PR debug/49382
1536         * dwarf2out.c (dw_loc_list_node): Add force field.
1537         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
1538         location in the list, even if it is modified before first real insn.
1539         (output_loc_list): Emit empty ranges with force flag set.
1540         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
1541
1542 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
1543
1544         PR target/49349
1545         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
1546         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
1547         above a fence.  Update comments.
1548         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
1549         placed just above it.  Do not allow NULL place_to_insert.
1550
1551 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
1552
1553         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
1554         (slpeel_tree_peel_loop_to_edge): Don't call
1555         remove_dead_stmts_from_loop.
1556         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1557         remove irrelevant pattern statements.  For irrelevant statements
1558         check if it is the last statement of a detected pattern, use
1559         corresponding pattern statement instead.
1560         (destroy_loop_vec_info): No need to remove pattern statements,
1561         only free stmt_vec_info.
1562         (vect_transform_loop): For irrelevant statements check if it is
1563         the last statement of a detected pattern, use corresponding
1564         pattern statement instead.
1565         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
1566         pattern statements.  Set basic block for the new statement.
1567         (vect_pattern_recog): Update documentation.
1568         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
1569         operands of pattern statements.
1570         (vectorizable_call): Fix printing.  In case of a pattern statement
1571         use the lhs of the original statement when creating a dummy
1572         statement to replace the original call.
1573         (vect_analyze_stmt): For irrelevant statements check if it is
1574         the last statement of a detected pattern, use corresponding
1575         pattern statement instead.
1576         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
1577         statements use gsi of the original statement.
1578
1579 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
1580
1581         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
1582         common/common-target-def.h.
1583         * target.def (default_target_flags, handle_option,
1584         supports_split_stack, optimization_table, init_struct,
1585         except_unwind_info, unwind_tables_default, have_named_sections):
1586         Move to common/common-target.def.
1587         * target.h (enum opt_levels, struct default_options): Move to
1588         common/common-target.h.
1589         * targhooks.c (default_except_unwind_info,
1590         dwarf2_except_unwind_info, sjlj_except_unwind_info,
1591         default_target_handle_option, empty_optimization_table): Move to
1592         common/common-targhooks.c.
1593         * targhooks.h (default_except_unwind_info,
1594         dwarf2_except_unwind_info, sjlj_except_unwind_info,
1595         default_target_handle_option, empty_optimization_table): Move to
1596         common/common-targhooks.h.
1597         * common/common-target-def.h: Include common/common-targhooks.h.
1598         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
1599         defined.
1600         * common/common-target.def (handle_option, option_init_struct,
1601         option_optimization_table, default_target_flags,
1602         except_unwind_info, supports_split_stack, unwind_tables_default,
1603         have_named_sections): Move from target.def.
1604         (HOOK_PREFIX): Undefine at end of file.
1605         * common/common-target.h: Include input.h.
1606         (enum opt_levels, struct default_options): Move from target.h.
1607         * common/common-targhooks.c, common/common-targhooks.h: New.
1608         * config.gcc (target_has_targetm_common): Default to yes.
1609         (moxie*): Set target_has_targetm_common=no.
1610         (hppa*-*-*): Don't set target_has_targetm_common=yes.
1611         * doc/tm.texi: Regenerate.
1612         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
1613         (C_TARGET_DEF_H): Add common/common-targhooks.h.
1614         (GCC_OBJS): Remove vec.o.
1615         (OBJS): Remove hooks.o and vec.o.
1616         (OBJS-libcommon-target): Add vec.o, hooks.o and
1617         common/common-targhooks.o.
1618         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
1619         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
1620         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
1621         cfglayout.o, $(out_object_file), $(common_out_object_file)):
1622         Update dependencies.
1623         (common/common-targhooks.o): New.
1624         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
1625         * common/config/pa/pa-common.c: Include more headers.  Take
1626         copyright dates from pa.c.
1627         (pa_option_optimization_table, pa_handle_option,
1628         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
1629         TARGET_HANDLE_OPTION): Move from pa.c.
1630         * common/config/alpha/alpha-common.c,
1631         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
1632         common/config/bfin/bfin-common.c,
1633         common/config/cris/cris-common.c,
1634         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
1635         common/config/h8300/h8300-common.c,
1636         common/config/i386/i386-common.c,
1637         common/config/ia64/ia64-common.c,
1638         common/config/iq2000/iq2000-common.c,
1639         common/config/lm32/lm32-common.c,
1640         common/config/m32c/m32c-common.c,
1641         common/config/m32r/m32r-common.c,
1642         common/config/m68k/m68k-common.c,
1643         common/config/mcore/mcore-common.c,
1644         common/config/mep/mep-common.c,
1645         common/config/microblaze/microblaze-common.c,
1646         common/config/mips/mips-common.c,
1647         common/config/mmix/mmix-common.c,
1648         common/config/mn10300/mn10300-common.c,
1649         common/config/pdp11/pdp11-common.c,
1650         common/config/picochip/picochip-common.c,
1651         common/config/rs6000/rs6000-common.c,
1652         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
1653         common/config/score/score-common.c, common/config/sh/sh-common.c,
1654         common/config/sparc/sparc-common.c,
1655         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
1656         common/config/vax/vax-common.c,
1657         common/config/xstormy16/xstormy16-common.c,
1658         common/config/xtensa/xtensa-common.c: New.
1659         * config/alpha/alpha.c: Include common/common-target.h.
1660         (alpha_option_optimization_table, alpha_handle_option,
1661         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1662         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
1663         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
1664         * config/arm/arm.c (arm_option_optimization_table,
1665         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1666         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
1667         arm-common.c.
1668         * config/avr/avr.c (avr_option_optimization_table,
1669         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
1670         to avr-common.c.
1671         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
1672         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
1673         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
1674         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
1675         * config/cris/cris.c (cris_option_optimization_table,
1676         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1677         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
1678         cris-common.c.
1679         * config/fr30/fr30.c (fr30_option_optimization_table,
1680         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
1681         to fr30-common.c.
1682         * config/frv/frv.c (frv_option_optimization_table,
1683         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
1684         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
1685         * config/h8300/h8300.c (h8300_option_optimization_table,
1686         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1687         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
1688         * config/i386/i386-protos.h (ix86_handle_option): Declare.
1689         * config/i386/i386.c: Include common/common-target.h.
1690         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
1691         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
1692         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
1693         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
1694         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
1695         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
1696         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
1697         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
1698         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
1699         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
1700         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
1701         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
1702         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
1703         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
1704         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
1705         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
1706         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
1707         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
1708         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
1709         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
1710         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
1711         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
1712         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
1713         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
1714         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
1715         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
1716         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
1717         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
1718         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
1719         ix86_option_optimization_table, ix86_option_init_struct,
1720         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
1721         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1722         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
1723         i386-common.c.
1724         * config/i386/t-i386 (i386.o): Update dependencies.
1725         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
1726         * config/ia64/ia64.c (ia64_option_optimization_table,
1727         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
1728         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1729         ia64_handle_option): Move to ia64-common.c.
1730         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
1731         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
1732         * config/lm32/lm32.c (lm32_option_optimization_table,
1733         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
1734         to lm32-common.c.
1735         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
1736         m32c-common.c.
1737         * config/m32r/m32r.c (m32r_option_optimization_table,
1738         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1739         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
1740         m32r_handle_option): Move to m32r-common.c.
1741         (m32r_memory_move_cost): Remove comment referring to
1742         TARGET_HANDLE_OPTION.
1743         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
1744         Move to m68k-common.c.
1745         * config/mcore/mcore.c (mcore_option_optimization_table,
1746         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1747         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
1748         * config/mep/mep.c (mep_option_optimization_table,
1749         mep_handle_option, TARGET_HANDLE_OPTION,
1750         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
1751         Move to mep-common.c.
1752         * config/microblaze/microblaze.c
1753         (microblaze_option_optimization_table,
1754         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1755         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
1756         * config/mips/mips.c (mips_handle_option,
1757         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
1758         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
1759         mips-common.c.
1760         * config/mmix/mmix.c (mmix_option_optimization_table,
1761         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
1762         Move to mmix-common.c.
1763         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
1764         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
1765         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1766         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
1767         * config/pa/pa.c: Include common/common-target.h.
1768         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
1769         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1770         pa_handle_option): Move to pa-common.c.
1771         (pa_option_override): Use targetm_common.except_unwind_info.
1772         (pa_asm_output_mi_thunk, pa_function_section): Use
1773         targetm_common.have_named_sections.
1774         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
1775         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1776         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
1777         pdp11_handle_option, pdp11_option_init_struct): Move to
1778         pdp11-common.c.
1779         * config/picochip/picochip.c (picochip_option_optimization_table,
1780         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
1781         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
1782         * config/rs6000/rs6000.c: Include common/common-target.h.
1783         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
1784         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
1785         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
1786         rs6000_handle_option): Move to rs6000-common.c.
1787         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
1788         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
1789         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1790         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
1791         * config/s390/s390.c (processor_flags_table,
1792         s390_option_optimization_table, s390_option_init_struct,
1793         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
1794         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1795         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
1796         * config/s390/s390.h (processor_flags_table): Declare.
1797         * config/score/score.c (score_option_optimization_table,
1798         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1799         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
1800         score_handle_option): Move to score-common.c.
1801         * config/sh/sh.c (sh_option_optimization_table,
1802         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
1803         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1804         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
1805         * config/sparc/sparc.c: Include common/common-target.h.
1806         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
1807         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
1808         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
1809         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
1810         spu_option_init_struct): Move to spu-common.c.
1811         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
1812         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
1813         * config/v850/v850.c (small_memory_physical_max,
1814         v850_handle_memory_optionn v850_handle_option,
1815         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
1816         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
1817         v850-common.c.
1818         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
1819         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
1820         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
1821         Move to xtensa-common.c.
1822         * cfglayout.c: Include common/common-target.h.
1823         (fixup_reorder_chain): Use targetm_common.have_named_sections.
1824         * cfgrtl.c: Include common/common-target.h.
1825         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
1826         targetm_common.have_named_sections.
1827         * dbxout.c: Include common/common-target.h.
1828         (dbxout_function_end): Use targetm_common.have_named_sections.
1829         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
1830         targetm_common.except_unwind_info.
1831         * dwarf2out.c: Include common/common-target.h.
1832         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
1833         dwarf2out_begin_prologue, dwarf2out_frame_init,
1834         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
1835         targetm_common.except_unwind_info.
1836         * except.c: Include common/common-target.h.
1837         (init_eh, finish_eh_generation,
1838         output_one_function_exception_table): Use
1839         targetm_common.except_unwind_info.
1840         (switch_to_exception_section): Use targetm_common.have_named_sections.
1841         * explow.c: Include common/common-target.h.
1842         * expr.c: Include common/common-target.h.
1843         (build_personality_function): Use targetm_common.except_unwind_info.
1844         * function.c: Include common/common-target.h.
1845         (expand_function_end): Use targetm_common.except_unwind_info.
1846         * haifa-sched.c: Include common/common-target.h.
1847         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
1848         * lto-opts.c: Include common/common-target.h instead of target.h.
1849         (lto_reissue_options): Use targetm_common.handle_option.
1850         * opts.c: Include common/common-target.h.
1851         (target_handle_option): Use targetm_common.handle_option.
1852         (init_options_struct): Update comment referring to
1853         targetm.target_option.optimization.  Use
1854         targetm_common.default_target_flags,
1855         targetm_common.unwind_tables_default and
1856         targetm_common.option_init_struct.
1857         (default_options_optimization): Use
1858         targetm_common.option_optimization_table.
1859         (finish_options): Use targetm_common.except_unwind_info,
1860         targetm_common.unwind_tables_default,
1861         targetm_common.have_named_sections and
1862         targetm_common.supports_split_stack.
1863         * toplev.c: Include common/common-target.h.
1864         (process_options): Use targetm_common.have_named_sections.
1865         * tree-tailcall.c: Include common/common-target.h.
1866         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
1867         * tree.c: Include common/common-target.h.
1868         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
1869         * varasm.c: Include common/common-target.h.
1870         (resolve_unique_section, hot_function_section,
1871         default_function_section): Use targetm_common.have_named_sections.
1872
1873 2011-06-14  Easwaran Raman  <eraman@google.com>
1874
1875         PR rtl-optimization/44194
1876         * dse.c: Include tree-flow.h
1877         (insn_info): Add new field non_frame_wild_read.
1878         (group_info): Add new fields escaped_n and escaped_p.
1879         (kill_on_calls): New variable.
1880         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
1881         (dse_step0): Initialize kill_on_calls.
1882         (can_escape): New function.
1883         (set_usage_bits): Add additional parameter; record information
1884         about escaped locations.
1885         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
1886         (dse_step2_nospill): Set kill_on_calls based on
1887         group->escaped_n and group->escaped_n.
1888         (add_wild_read): Refactor into...
1889         (reset_active_stores): ... New function, and
1890         (free_read_records): ... New function.
1891         (add_non_frame_wild_read): New function.
1892         (scan_insn): Call add_non_frame_wild_read on non-const calls.
1893         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
1894         (dse_step5_nospill): Call scan_reads_nospill for instructions
1895         marked as non_frame_wild_read.
1896         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
1897
1898 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
1899
1900         * common/common-target-def.h, common/common-target.def,
1901         common/common-target.h, common/config/default-common.c,
1902         common/config/pa/pa-common.c: New files.
1903         * Makefile.in (common_out_file, common_out_object_file,
1904         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
1905         (OBJS-libcommon-target): Include $(common_out_object_file).
1906         (prefix.o): Update dependencies.
1907         ($(common_out_object_file), common/common-target-hooks-def.h,
1908         s-common-target-hooks-def-h): New.
1909         (s-tm-texi): Also check timestamp on common-target.def.
1910         (build/genhooks.o): Update dependencies.
1911         * config.gcc (common_out_file, target_has_targetm_common): Define.
1912         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
1913         TARGET_ALWAYS_STRIP_DOTDOT.
1914         * configure.ac (common_out_object_file): Define.
1915         (common_out_file, common_out_object_file): Substitute.
1916         (common): Create directory.
1917         * configure: Regenerate.
1918         * doc/tm.texi.in (targetm_common): Document.
1919         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
1920         * doc/tm.texi: Regenerate.
1921         * genhooks.c (hook_array): Also include common/common-target.def.
1922         * prefix.c (tm.h): Don't include.
1923         (common/common-target.h): Include.
1924         (ALWAYS_STRIP_DOTDOT): Don't define.
1925         (update_path): Use targetm_common.always_strip_dotdot instead of
1926         ALWAYS_STRIP_DOTDOT.
1927         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
1928
1929 2011-06-14  David Li  <davidxl@google.com>
1930
1931         * passes.c (execute_function_todo): Remove TODO_dump_func.
1932         (execute_one_pass): Remove TODO_dump_func.
1933         (execute_function_dump): New function.
1934         * tree-vrp.c: Remove TODO_dump_func.
1935         * regrename.c: Remove TODO_dump_func.
1936         * fwprop.c: Remove TODO_dump_func.
1937         * tree-into-ssa.c: Remove TODO_dump_func.
1938         * tree-complex.c: Remove TODO_dump_func.
1939         * tracer.c: Remove TODO_dump_func.
1940         * tree-loop-distribution.c: Remove TODO_dump_func.
1941         * postreload-gcse.c: Remove TODO_dump_func.
1942         * postreload.c: Remove TODO_dump_func.
1943         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
1944         * tree-tailcall.c: Remove TODO_dump_func.
1945         * ipa-cp.c: Remove TODO_dump_func.
1946         * final.c: Remove TODO_dump_func.
1947         * tree-emutls.c: Remove TODO_dump_func.
1948         * omp-low.c: Remove TODO_dump_func.
1949         * tree-ssa-dse.c: Remove TODO_dump_func.
1950         * tree-ssa-uncprop.c: Remove TODO_dump_func.
1951         * auto-inc-dec.c: Remove TODO_dump_func.
1952         * reorg.c: Remove TODO_dump_func.
1953         * tree-ssa-copyrename.c: Remove TODO_dump_func.
1954         * tree-ssa-ccp.c: Remove TODO_dump_func.
1955         * compare-elim.c: Remove TODO_dump_func.
1956         * mode-switching.c: Remove TODO_dump_func.
1957         * modulo-sched.c: Remove TODO_dump_func.
1958         * tree-call-cdce.c: Remove TODO_dump_func.
1959         * cse.c: Remove TODO_dump_func.
1960         * web.c: Remove TODO_dump_func.
1961         * tree-stdarg.c: Remove TODO_dump_func.
1962         * lto-streamer-out.c: Remove TODO_dump_func.
1963         * tree-ssa-math-opts.c: Remove TODO_dump_func.
1964         * tree-ssa-dom.c: Remove TODO_dump_func.
1965         * tree-nrv.c: Remove TODO_dump_func.
1966         * loop-init.c: Remove TODO_dump_func.
1967         * gimple-low.c: Remove TODO_dump_func.
1968         * ipa-inline.c: Remove TODO_dump_func.
1969         * tree-ssa-sink.c: Remove TODO_dump_func.
1970         * jump.c: Remove TODO_dump_func.
1971         * ifcvt.c: Remove TODO_dump_func.
1972         * tree-ssa-loop.c: Remove TODO_dump_func.
1973         * recog.c: Remove TODO_dump_func.
1974         * dse.c: Remove TODO_dump_func.
1975         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
1976         * matrix-reorg.c: Remove TODO_dump_func.
1977         * tree-eh.c: Remove TODO_dump_func.
1978         * regmove.c: Remove TODO_dump_func.
1979         * function.c: Remove TODO_dump_func.
1980         * tree-vectorizer.c: Remove TODO_dump_func.
1981         * ipa-split.c: Remove TODO_dump_func.
1982         * gcse.c: Remove TODO_dump_func.
1983         * tree-if-conv.c: Remove TODO_dump_func.
1984         * init-regs.c: Remove TODO_dump_func.
1985         * tree-ssa-phiopt.c: Remove TODO_dump_func.
1986         * implicit-zee.c: Remove TODO_dump_func.
1987         * lower-subreg.c: Remove TODO_dump_func.
1988         * bt-load.c: Remove TODO_dump_func.
1989         * tree-dfa.c: Remove TODO_dump_func.
1990         * except.c: Remove TODO_dump_func.
1991         * emit-rtl.c: Remove TODO_dump_func.
1992         * store-motion.c: Remove TODO_dump_func.
1993         * cfgexpand.c: Remove TODO_dump_func.
1994         * tree-cfgcleanup.c: Remove TODO_dump_func.
1995         * cfgcleanup.c: Remove TODO_dump_func.
1996         * tree-ssa-pre.c: Remove TODO_dump_func.
1997         * tree-sra.c: Remove TODO_dump_func.
1998         * tree-mudflap.c: Remove TODO_dump_func.
1999         * tree-ssa-copy.c: Remove TODO_dump_func.
2000         * cfglayout.c: Remove TODO_dump_func.
2001         * tree-ssa-forwprop.c: Remove TODO_dump_func.
2002         * tree-ssa-dce.c: Remove TODO_dump_func.
2003         * ira.c: Remove TODO_dump_func.
2004         * tree-ssa.c: Remove TODO_dump_func.
2005         * integrate.c: Remove TODO_dump_func.
2006         * tree-optimize.c: Remove TODO_dump_func.
2007         * tree-ssa-phiprop.c: Remove TODO_dump_func.
2008         * tree-object-size.c: Remove TODO_dump_func.
2009         * combine.c: Remove TODO_dump_func.
2010         * bb-reorder.c: Remove TODO_dump_func.
2011         * cprop.c: Remove TODO_dump_func.
2012         * var-tracking.c: Remove TODO_dump_func.
2013         * tree-profile.c: Remove TODO_dump_func.
2014         * tree-vect-generic.c: Remove TODO_dump_func.
2015         * reg-stack.c: Remove TODO_dump_func.
2016         * sched-rgn.c: Remove TODO_dump_func.
2017         * tree-ssa-structalias.c: Remove TODO_dump_func.
2018         * tree-switch-conversion.c: Remove TODO_dump_func.
2019         * tree-cfg.c: Remove TODO_dump_func.
2020         * tree-ssa-reassoc.c: Remove TODO_dump_func.
2021         * combine-stack-adj.c: Remove TODO_dump_func.
2022         * dce.c: Remove TODO_dump_func.
2023         * tree-ssanames.c: Remove TODO_dump_func.
2024         * regcprop.c: Remove TODO_dump_func.
2025
2026 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
2027
2028         PR middle-end/47364
2029         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
2030         and properly handle result not in Pmode.
2031
2032 2011-06-14  Robert Millan  <rmh@gnu.org>
2033
2034         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
2035         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
2036         `config/linux.h'.
2037
2038         * config/i386/kfreebsd-gnu64.h: New file.
2039         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
2040         with `i386/kfreebsd-gnu64.h'.
2041
2042         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
2043         (GNU_USER_LINK_EMULATION64): New macros.
2044         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
2045         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
2046         of hardcoding `elf_i386' and `elf_x86_64'.
2047
2048 2011-06-14  Nick Clifton  <nickc@redhat.com>
2049
2050         PR target/49403
2051         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
2052
2053         PR target/49402
2054         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
2055
2056 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
2057
2058         PR fortran/49103
2059         * tree.h (DECL_NONSHAREABLE): Define.
2060         (struct tree_decl_common): Change decl_common_unused to
2061         decl_nonshareable_flag.
2062         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
2063         Ignore vars with DECL_NONSHAREABLE bit set.
2064         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
2065         on stores to automatic aggregate vars.
2066
2067         PR rtl-optimization/49390
2068         Revert:
2069         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
2070
2071         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
2072         MEM_ALIAS_SET.
2073
2074 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
2075             Tom de Vries  <tom@codesourcery.com>
2076
2077         PR target/45098
2078         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
2079         Document changed semantics.
2080         (max_stmt_executions, max_stmt_executions_int): Declare.
2081         * tree-data-ref.c (estimated_loop_iterations)
2082         (estimated_loop_iterations_int): Move functions...
2083         * tree-ssa-loop-niter.c (estimated_loop_iterations)
2084         (estimated_loop_iterations_int): here.
2085         (record_estimate): Change nb_iterations_upper_bound and
2086         nb_iterations_estimate semantics.
2087         (max_stmt_executions, max_stmt_executions_int): New function.
2088         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
2089         (max_stmt_executions_tree): this.
2090         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
2091         estimated_loop_iterations_tree.
2092         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
2093         max_stmt_executions_int instead of estimated_loop_iterations_int.
2094         * predict.c (predict_loops): Idem.
2095         * tree-parloops.c (parallelize_loops): Idem.
2096         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
2097         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
2098         (init_omega_for_ddr_1): Idem.
2099         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
2100         (loop_prefetch_arrays): Idem
2101         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
2102         max_stmt_executions instead of estimated_loop_iterations.
2103         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
2104         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
2105         instead of nb_iterations_upper_bound.
2106
2107 2011-06-13  Jan Hubicka  <jh@suse.cz>
2108
2109         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
2110
2111 2011-06-14  Richard Henderson  <rth@redhat.com>
2112
2113         PR debug/48459
2114         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
2115         (based_loc_descr): Assert it's true.
2116         (compute_frame_pointer_to_fb_displacement): Set it, rather than
2117         aborting immediately.
2118
2119 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
2120             Mingfeng Wu  <mingfeng@faraday-tech.com>
2121
2122         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
2123
2124 2011-06-13  Jan Hubicka  <jh@suse.cz>
2125
2126         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
2127
2128 2011-06-13  Jan Hubicka  <jh@suse.cz>
2129
2130         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
2131         similarly to DECL_COMDAT.
2132         * cgraphunit.c (cgraph_analyze_function): Likewise.
2133         * ipa.c (function_and_variable_visibility): Likewise.
2134
2135 2011-06-13  Jan Hubicka  <jh@suse.cz>
2136
2137         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
2138         BINFO_VIRTUALS when streaming for ltrans unit.
2139
2140 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
2141
2142         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
2143         (movdi_internal64): Same.
2144
2145 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
2146
2147         PR target/44618
2148         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
2149         a set of similar patterns, where the MATCH_OPERAND for the function
2150         argument is replaced with individual references to hardware registers.
2151         (save_fpregs_<mode>): Ditto
2152         (restore_gpregs_<mode>): Ditto
2153         (return_and_restore_gpregs_<mode>): Ditto
2154         (return_and_restore_fpregs_<mode>): Ditto
2155         (return_and_restore_fpregs_aix_<mode>): Ditto
2156
2157 2011-06-13  Jan Hubicka  <jh@suse.cz>
2158
2159         * ipa-utils.c (postorder_stack): New structure.
2160         (ipa_reverse_postorder): Handle aliases.
2161
2162 2011-06-13  Jan Hubicka  <jh@suse.cz>
2163
2164         * ipa-inline.c (reset_edge_caches): Walk aliases.
2165         (update_caller_keys): Do not test inlinability of aliases.
2166         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
2167         (do_estimate_growth): Fix typo.
2168
2169 2011-06-13  Jan Hubicka  <jh@suse.cz>
2170
2171         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
2172         (can_remove_node_now_p): ... here; handle same comdat groups.
2173         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
2174         (inline_call): Update use of can_remove_node_now_p.
2175
2176 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2177
2178         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
2179         condition to disallow non-identical memory locations.
2180         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
2181         preference to bit manipulation instructions.
2182
2183 2011-06-13  Jan Hubicka  <jh@suse.cz>
2184
2185         * cgraph.c (cgraph_for_node_thunks_and_aliases,
2186         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
2187         (nonremovable_p): New function.
2188         (cgraph_can_remove_if_no_direct_calls_p): New function.
2189         (used_from_object_file_p): New functoin.
2190         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
2191         references from aliases.
2192         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
2193         * ipa-inline.c (check_caller_edge): New function.
2194         (want_inline_function_called_once_p): Use it; accept aliases called
2195         once, too.
2196         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
2197
2198 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2199
2200         PR target/48454
2201         * config/arm/neon.md (vec_pack_trunc): Set the lengths
2202         correctly for the case with Quad vectors.
2203
2204 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
2205            Ira Rosen  <ira.rosen@linaro.org>
2206
2207         PR tree-optimization/49352
2208         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
2209         all, make sure loop_use_stmt after the loop is a def stmt of a used
2210         SSA_NAME that is the only one defined inside of the loop.  Don't
2211         check for COND_EXPR and GIMPLE_BINARY_RHS.
2212         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
2213         check_reduction is true.
2214
2215 2011-06-11  Jan Hubicka  <jh@suse.cz>
2216
2217         PR middle-end/49373
2218         * ipa.c (cgraph_externally_visible_p): Check resolution info.
2219
2220 2011-06-11  Jan Hubicka  <jh@suse.cz>
2221
2222         PR middle-end/48836
2223         * ipa-inline-transform.c: Include tree-pass.h
2224         (inline_transform): Set TODO_update_ssa_only_virtuals.
2225         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
2226
2227 2011-06-11  Jan Hubicka  <jh@suse.cz>
2228
2229         PR middle-end/49378
2230         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
2231         aliases and thunks.
2232
2233 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
2234
2235         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
2236         Take number of iterations to peel into account for equally frequent
2237         misalignment values.
2238
2239 2011-06-11  Jan Hubicka  <jh@suse.cz>
2240
2241         * lto-streamer-out.c (produce_symtab): Stream out the newly
2242         represented aliases.
2243
2244 2011-06-11  Jan Hubicka  <jh@suse.cz>
2245
2246         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
2247         varying args.
2248         (ipa_update_after_lto_read): Likewise.
2249         (ipa_write_node_info): Do not sream call_with_var_arguments.
2250         (ipa_read_node_info): Likewise.
2251
2252 2011-06-11  Jan Hubicka  <jh@suse.cz>
2253
2254         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
2255
2256 2011-06-11  Jan Hubicka  <jh@suse.cz>
2257
2258         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
2259         (lto_symtab_resolve_can_prevail_p): Likewise.
2260         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
2261         * cgraph.c (same_body_aliases_done): New global var.
2262         (cgraph_same_body_alias_1): Rename to ...
2263         (cgraph_create_function_alias): ... this one; reorg to new
2264         representation.
2265         (cgraph_same_body_alias): Use cgraph_create_function_alias;
2266         record references when asked to.
2267         (cgraph_add_thunk): Fix formating.
2268         (cgraph_get_node): Kill same body alias code.
2269         (cgraph_node_for_asm): Likewise.
2270         (cgraph_remove_same_body_alias): Remove.
2271         (cgraph_remove_node): Kill same body alias code.
2272         (cgraph_mark_address_taken_node): Mark also the aliased function
2273         as having address taken.
2274         (dump_cgraph_node): Dump same body aliases.
2275         (cgraph_for_node_thunks_and_aliases): Update for new alias
2276         representation.
2277         (cgraph_for_node_and_aliases): Likewise.
2278         * cgraph.h (same_body): Kll pointer.
2279         (same_body_alias): Update comment.
2280         (same_body_aliases_done): Declare.
2281         (cgraph_remove_same_body_alias): Remove declaration.
2282         (cgraph_create_function_alias): Declare.
2283         (cgraph_process_same_body_aliases): Declare.
2284         (cgraph_function_with_gimple_body_p): Check for alias.
2285         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
2286         (cgraph_alias_aliased_node): New function.
2287         (cgraph_function_node): Update for new aliases.
2288         (cgraph_function_or_thunk_node): Likewise.
2289         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
2290         (inline_call): Remove dead aliases.
2291         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
2292         name hack for same body aliases.
2293         (clone_of_p): Look through aliases.
2294         (verify_cgraph_node): Verify aliases.
2295         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
2296         (cgraph_process_same_body_aliases): New function.
2297         (process_function_and_variable_attributes): Disable weakref warning on
2298         alias.
2299         (cgraph_analyze_functions): Handle aliases.
2300         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
2301         (assemble_thunks): Rename to ...
2302         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
2303         (cgraph_expand_function): Remove alias output code.
2304         (cgraph_output_in_order): Skip aliases.
2305         (cgraph_preserve_function_body_p): Aliases don't need preserving.
2306         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
2307         (ipa_record_reference): Do not assert on alias references.
2308         (ipa_ref_has_aliases_p): New function.
2309         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
2310         (ipa_ref_has_aliases_p): Declare.
2311         * lto-cgraph.c (lto_output_node): Handle aliases.
2312         (input_node): Likewise.
2313         * lto-streamer-out.c (lto_output): Skip aliases.
2314         (produce_symtab): Kill same_body_alias code.
2315         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
2316         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
2317         * ipa-inline.c (update_caller_keys): Walk aliases.
2318         (inline_small_functions): Fix thinko in previous patch.
2319         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
2320         (function_and_variable_visibility): Do not walk same body aliases.
2321         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
2322         (ipa_pta_execute): Use it.
2323
2324 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
2325
2326         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
2327         (*vec_dupv2df): Rename from vec_dupv2df.
2328         (vec_dupv2df): New expander.
2329
2330 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
2331
2332         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
2333
2334 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
2335
2336         * config/i386/i386.md: Use default value in "isa" attribute.
2337         * config/i386/sse.md: Ditto.
2338         * config/i386/mmx.md: Ditto.
2339
2340 2011-06-10  Wei Guozhi  <carrot@google.com>
2341
2342         PR target/45335
2343         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
2344         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
2345         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
2346         related peephole2.
2347         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
2348         related peephole2.
2349         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
2350         (arm_legitimate_ldrd_p): New prototype.
2351         (arm_output_ldrd): New prototype.
2352         * config/arm/arm.c (arm_check_ldrd_operands): New function.
2353         (arm_legitimate_ldrd_p): New function.
2354         (arm_output_ldrd): New function.
2355
2356 2011-06-10  David Li  <davidxl@google.com>
2357
2358         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
2359         * passes.c (passr_eq): New function.
2360         (create_pass_tab): New function.
2361         (pass_traverse): New function.
2362         (dump_one_pass): New function.
2363         (dump_pass_list): New function.
2364         (dump_passes): New function.
2365
2366 2011-06-10  Jan Hubicka  <jh@suse.cz>
2367
2368         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
2369         setting the nothrow flag.
2370         * ipa-reference.c (propagate): Skip aliases.
2371         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
2372         (propagate_nothrow): Skip aliases; do not update cgraph.
2373         (local_pure_const): Do not update cgraph.
2374         * tree-profile.c (tree_profiling): Do fixup_cfg.
2375
2376 2011-06-10  Jan Hubicka  <jh@suse.cz>
2377
2378         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
2379         (cgraph_local_node_p): ... here; handle aliases.
2380         (has_addr_references_p): Break out from ...;
2381         (cgraph_remove_unreachable_nodes) ... here.
2382
2383 2011-06-10  Jan Hubicka  <jh@suse.cz>
2384
2385         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
2386         * common.opt (flag_inline_functions_called_once): Do not
2387         initialize to 1.
2388
2389 2011-06-10  Jan Hubicka  <jh@suse.cz>
2390
2391         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
2392         (ipcp_initialize_node_lattices): Do not deal with aliases;
2393         Do not try to propagate through thunks.
2394         (ipcp_change_tops_to_bottom): Do not deal with aliases.
2395
2396 2011-06-10  Jan Hubicka  <jh@suse.cz>
2397
2398         * ipa-prop.c (ipa_write_node_info): Stream jump functions
2399         for indirect calls.
2400         (ipa_read_node_info): Likewise.
2401
2402 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2403
2404         PR lto/49302
2405         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
2406         (build_and_insert_call): Likewise.
2407         (build_and_insert_ref): New.
2408         (gimple_expand_builtin_pow): Minor cleanup.
2409         (gimple_expand_builtin_cabs): New.
2410         (execute_cse_sincos): Add case for BUILT_IN_CABS.
2411
2412 2011-06-10  Jan Hubicka  <jh@suse.cz>
2413
2414         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
2415         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
2416         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
2417         (ipcp_propagate_stage): Skip aliases when propagating.
2418         (ipcp_need_redirect_p): Skip aliases.
2419         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
2420         collect_callers_of_node.
2421         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
2422         for aliases.
2423         (ipa_compute_jump_functions): Look through aliases.
2424
2425 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2426
2427         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
2428
2429 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
2430
2431         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
2432         Adjust comments.
2433         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
2434
2435 2011-06-10  Jan Hubicka  <jh@suse.cz>
2436
2437         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
2438         Update call of gimple_get_virt_method_for_binfo.
2439         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
2440         refuse_thunks parameter.
2441         (gimple_fold_call): Update.
2442         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
2443
2444 2011-06-10  Jan Hubicka  <jh@suse.cz>
2445
2446         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
2447         (not_all_callers_have_enough_arguments_p): ... this one; turn into
2448         worker for cgraph_for_node_and_aliases.
2449         (convert_callers_for_node): Break out from ...
2450         (convert_callers): ... here.
2451         (modify_function): Use collect_callers_of_node.
2452         (ipa_early_sra): Use cgraph_for_node_and_aliases.
2453
2454 2011-06-10  Richard Guenther  <rguenther@suse.de>
2455
2456         PR tree-optimization/49361
2457         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
2458         when not already in gimple form.
2459
2460 2011-06-10  Richard Guenther  <rguenther@suse.de>
2461
2462         PR bootstrap/49344
2463         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
2464         FOR_EACH_PHI_OR_STMT_USE.
2465
2466 2011-06-10  Jan Hubicka  <jh@suse.cz>
2467
2468         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
2469         (clone_inlined_nodes): ... here.
2470         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
2471         to real destination prior inlining.
2472         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
2473         can_early_inline_edge_p, want_early_inline_function_p,
2474         want_early_inline_function_p, want_inline_small_function_p,
2475         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
2476         edge_badness, update_all_callee_keys, lookup_recursive_calls,
2477         add_new_edges_to_heap, inline_small_functions, flatten_function,
2478         inline_always_inline_functions, early_inline_small_functions): Use
2479         cgraph_function_or_thunk_node.
2480         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
2481         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
2482         (do_estimate_edge_growth_1): Break out from ...
2483         (do_estimate_growth) ... here; walk aliases.
2484         (inline_generate_summary): Skip aliases.
2485
2486 2011-06-10  Richard Guenther  <rguenther@suse.de>
2487
2488         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
2489         forward when combining, visit inserted stmts when a stmt was changed.
2490
2491 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
2492
2493         * tree.h (error_operand_p): Add.
2494         * dbxout.c (dbxout_type_fields): Use the latter.
2495         * c-decl.c (add_stmt): Likewise.
2496         * gimplify.c (omp_add_variable, omp_notice_variable,
2497         gimplify_scan_omp_clauses): Likewise.
2498
2499 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
2500
2501         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
2502         when a value is actually passed in regs.
2503
2504 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
2505             Laurent Rougé  <laurent.rouge@menta.fr>
2506
2507         * doc/invoke.texi (SPARC options): Add -mflat.
2508         * config/sparc/sparc.opt: Likewise.
2509         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
2510         (sparc_flat_expand_prologue): Declare.
2511         (sparc_flat_expand_epilogue): Likewise.
2512         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
2513         (CPP_ENDIAN_SPEC): Replace with...
2514         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
2515         (CPP_SPEC): Adjust to above change.
2516         (EXTRA_SPECS): Likewise.
2517         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
2518         (INCOMING_REGNO): Likewise.
2519         (OUTGOING_REGNO): Likewise.
2520         (LOCAL_REGNO): Likewise.
2521         (SETUP_FRAME_ADDRESSES): Likewise.
2522         (FIXED_REGISTERS): Set 0 for %fp.
2523         (CALL_USED_REGISTERS): Likewise.
2524         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
2525         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
2526         (RETURN_ADDR_REGNUM): Define.
2527         (RETURN_ADDR_RTX): Use it.
2528         (INCOMING_RETURN_ADDR_REGNUM): Define.
2529         (INCOMING_RETURN_ADDR_RTX): Use it.
2530         (DWARF_FRAME_RETURN_COLUMN): Likewise.
2531         (EH_RETURN_REGNUM): Define.
2532         (EH_RETURN_STACKADJ_RTX): Use it.
2533         (EH_RETURN_HANDLER_RTX): Delete.
2534         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
2535         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
2536         Delete.
2537         (struct machine_function): Add frame_size, apparent_frame_size,
2538         frame_base_reg, frame_base_offset, n_global_fp_regs and
2539         save_local_in_regs_p fields.
2540         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
2541         sparc_frame_base_offset, sparc_n_global_fp_regs,
2542         sparc_save_local_in_regs_p): New macros.
2543         (sparc_option_override): Error out if -fcall-saved-REG is specified
2544         for Out registers.
2545         (eligible_for_restore_insn): Fix formatting.
2546         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
2547         (eligible_for_sibcall_delay): Likewise.
2548         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
2549         (sparc_legitimate_address_p): Adjust to above change.
2550         (save_global_or_fp_reg_p): New predicate.
2551         (return_addr_reg_needed_p): Likewise.
2552         (save_local_or_in_reg_p): Likewise.
2553         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
2554         (SORR_SAVE, SORR_RESTORE): Delete.
2555         (sorr_pred_t): New typedef.
2556         (sorr_act_t): New enum.
2557         (save_or_restore_regs): Rename to...
2558         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
2559         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
2560         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
2561         mechanism.  Add CFI information for double-word saves in 32-bit mode.
2562         (emit_adjust_base_to_offset): New function extracted from...
2563         (emit_save_or_restore_regs): ...this.  Rename the rest to...
2564         (emit_save_or_restore_regs_global_fp_regs): ...this.
2565         (emit_save_or_restore_regs_local_in_regs): New function.
2566         (gen_create_flat_frame_[123]): New functions.
2567         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
2568         (sparc_flat_expand_prologue): New function.
2569         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
2570         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
2571         (sparc_flat_expand_epilogue): New function.
2572         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
2573         (output_return): Likewise.
2574         (output_sibcall): Likewise.
2575         (sparc_output_mi_thunk): Likewise.
2576         (sparc_frame_pointer_required): Likewise.
2577         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
2578         function optimization.
2579         * config/sparc/sparc.md (flat): New attribute.
2580         (prologue): Add TARGET_FLAT handling.
2581         (save_register_window): Disable if TARGET_FLAT.
2582         (create_flat_frame_[123]): New patterns.
2583         (epilogue): Add TARGET_FLAT handling.
2584         (sibcall_epilogue): Likewise.
2585         (eh_return): New expander.
2586         (eh_return_internal): New insn and splitter.
2587         (return_internal): Add TARGET_FLAT handling.
2588         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
2589         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
2590         (nonlocal_goto): Add TARGET_FLAT handling.
2591         * config/sparc/t-elf: Add -mflat multilib.
2592         * config/sparc/t-leon: Likewise.
2593
2594 2011-06-10  Jan Hubicka  <jh@suse.cz>
2595
2596         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
2597         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
2598         (self_recursive_p): Use cgraph_function_node.
2599         (propagate_pure_const): Likewise.
2600         (propagate_nothrow): Likewise.
2601         * ipa-reference.c (ipa_reference_get_not_read_global): Use
2602         cgraph_function_node.
2603         (propagate_bits): Likewise.
2604         (propagate): Likewise.
2605
2606 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2607             Richard Earnshaw  <rearnsha@arm.com>
2608
2609         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
2610         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
2611         (*thumb2_movdi_vfp): Delete.
2612         (*arm_movdi_vfp_cortexa8): Delete.
2613         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
2614         (*movdi_vfp_cortexa8): Likewise.
2615
2616 2011-06-10  Richard Guenther  <rguenther@suse.de>
2617
2618         * stor-layout.c (initialize_sizetypes): Give names to all
2619         sizetype kinds.
2620
2621 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
2622
2623         PR tree-optimization/49318
2624         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
2625         irrelevant pattern statements.
2626
2627 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
2628
2629         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
2630
2631         PR bootstrap/49354
2632         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
2633         to last assignment.
2634
2635 2011-06-09  Jan Hubicka  <jh@suse.cz>
2636
2637         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
2638         do not recompute reachable flag.
2639         (cgraph_finalize_function, cgraph_analyze_functions): Set
2640         redefined_extern_inline here.
2641
2642 2011-06-09  Jan Hubicka  <jh@suse.cz>
2643
2644         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
2645         (cgraph_only_called_directly_p): ... this one; bring offline.
2646         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
2647         varpool_used_from_object_file_p): Drop names from the declaratoin.
2648         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
2649         collect_callers_of_node): New.
2650         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
2651         (cgraph_edge_recursive_p): Use cgraph_function_node.
2652         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
2653         (cgraph_node_cannot_be_local_p_1): Break out from ...
2654         (cgraph_node_can_be_local_p): ... here; walk aliases.
2655         (cgraph_for_node_thunks_and_aliases): New function.
2656         (cgraph_for_node_and_aliases): New function.
2657         (cgraph_make_node_local_1): Break out from ...
2658         (cgraph_make_node_local) ... here; use
2659         cgraph_for_node_thunks_and_aliases.
2660         (cgraph_set_nothrow_flag_1): Break out from ...
2661         (cgraph_set_nothrow_flag) ... here;
2662         use cgraph_for_node_thunks_and_aliases.
2663         (cgraph_set_const_flag_1): Break out from ...
2664         (cgraph_set_const_flag) ... here;
2665         use cgraph_for_node_thunks_and_aliases.
2666         (cgraph_set_pure_flag_1): Break out from ...
2667         (cgraph_set_pure_flag) ... here;
2668         use cgraph_for_node_thunks_and_aliases.
2669         (cgraph_propagate_frequency_1): Break out from ...
2670         (cgraph_propagate_frequency) ... here; use
2671         cgraph_for_node_thunks_and_aliases.
2672         (cgraph_used_from_object_file_p): Do not care about aliases.
2673         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
2674         New functions.
2675         (collect_callers_of_node_1, collect_callers_of_node): New functions.
2676
2677 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
2678
2679         PR rtl-optimization/49154
2680         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
2681         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
2682         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
2683         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
2684         * config/cris/cris.h (cris_register_move_cost): Remove
2685         !TARGET_V32 code.  Tweak comments.
2686
2687 2011-06-09  Jan Hubicka  <jh@suse.cz>
2688
2689         * cgraphbuild.c (record_eh_tables): Mark personality function as having
2690         address taken.
2691
2692 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
2693
2694         PR rtl-optimization/49154
2695         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
2696         is a matching slot in the hashtable, assign it to classes_ptr.
2697
2698         PR rtl-optimization/49154
2699         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
2700         register classes.
2701         * doc/tm.texi: Regenerate.
2702
2703 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
2704
2705         PR target/49307
2706         * config/sh/sh.md (UNSPEC_CHKADD): New.
2707         (chk_guard_add): New define_insn_and_split.
2708         (symGOT_load): Use chk_guard_add instead of blockage.
2709
2710 2011-06-09  Kai Tietz  <ktietz@redhat.com>
2711
2712         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
2713
2714 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2715
2716         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
2717
2718 2011-06-09  Wei Guozhi  <carrot@google.com>
2719
2720         PR target/46975
2721         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
2722         (peephole2 for conditional move): Generate 16 bit instructions.
2723
2724 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
2725
2726         * config/i386/i386.md (*movdi_internal_rex64): Merge
2727         alternatives 6 and 8.
2728
2729 2011-06-09  David Li  <davidxl@google.com>
2730
2731         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
2732         * passes.c (passr_eq): New function.
2733         (create_pass_tab): New function.
2734         (pass_traverse): New function.
2735         (dump_one_pass): New function.
2736         (dump_pass_list): New function.
2737         (dump_passes): New function.
2738
2739 2011-06-09  David Li  <davidxl@google.com>
2740
2741         * tree-complex.c (tree_lower_complex): Gate cleanup.
2742         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
2743         (execute_optimize_stdarg): Ditto.
2744         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
2745         (execute_cleanup_eh_1): Ditto.
2746         (execute_cleanup_eh): Ditto.
2747         * gcse.c (gate_rtl_pre): Ditto.
2748         (execute_rtl_pre): Ditto.
2749         * except.c (finish_eh_generation): Ditto.
2750         (convert_to_eh_region_ranges): Ditto.
2751         * cprop.c (one_cprop_pass): Ditto.
2752
2753 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
2754
2755         PR target/48673
2756         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
2757         in all basic blocks.
2758
2759 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2760
2761         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
2762         (HAVE_ENABLE_EXECUTE_STACK): Define.
2763         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
2764         (HAVE_ENABLE_EXECUTE_STACK): Define.
2765         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2766         (HAVE_ENABLE_EXECUTE_STACK): Define.
2767         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
2768         (ENABLE_EXECUTE_STACK): Remove.
2769         (HAVE_ENABLE_EXECUTE_STACK): Define.
2770         [IN_LIBGCC2]: Don't include <windows.h>.
2771         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
2772         (HAVE_ENABLE_EXECUTE_STACK): Define.
2773         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
2774         (HAVE_ENABLE_EXECUTE_STACK): Define.
2775         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
2776         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
2777         (HAVE_ENABLE_EXECUTE_STACK): Define.
2778         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
2779         (HAVE_ENABLE_EXECUTE_STACK): Define.
2780         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
2781         (HAVE_ENABLE_EXECUTE_STACK): Define.
2782         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
2783         (HAVE_ENABLE_EXECUTE_STACK): Define.
2784         * config/alpha/alpha.c (alpha_trampoline_init): Test
2785         HAVE_ENABLE_EXECUTE_STACK.
2786         * config/i386/i386.c (ix86_trampoline_init): Likewise.
2787         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2788         (sparc64_initialize_trampoline): Likewise.
2789         * libgcc2.c [L_enable_execute_stack]: Remove.
2790         * system.h (ENABLE_EXECUTE_STACK): Poison.
2791         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
2792         * doc/tm.texi: Regenerate.
2793         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
2794
2795 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
2796
2797         PR middle-end/49308
2798         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
2799         variable.  After resetting and rescanning insn continue with previous
2800         statement.
2801
2802 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2803
2804         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
2805         (gcc_cv_ld_hidden): Likewise.
2806         * configure: Regenerate.
2807         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
2808         (ix86_stack_protect_fail): Mark unused.
2809         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
2810         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
2811         [TARGET_MACHO]: Don't define.
2812         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
2813         (TARGET_STACK_PROTECT_FAIL): Likewise.
2814         (rs6000_stack_protect_fail): Mark unused.
2815         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
2816         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
2817
2818 2011-06-08  Andi Kleen  <ak@linux.intel.com>
2819
2820         * varasm.c (get_section): Print location of other conflict
2821         for section conflicts.
2822
2823 2011-06-08  Andi Kleen  <ak@linux.intel.com>
2824
2825         * config/i386/driver-i386.c (host_detect_local_cpu):
2826         Add model 0x2d Intel CPU.
2827
2828 2011-06-08  Andi Kleen  <ak@linux.intel.com>
2829
2830         * reginfo.c (global_regs_decl): Add.
2831         (globalize_reg): Add decl parameter. Compute location.  Pass location
2832         to warnings and add inform. Store decl in global_regs_decl.
2833         * rtl.h (globalize_reg): Update prototype.
2834         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
2835
2836 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
2837
2838         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
2839
2840 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2841
2842         PR target/49305
2843         * config/sh/predicates.md (general_movsrc_operand): Check
2844         mode for memory with indexed address for QI and HImode.
2845         (general_movdst_operand): Likewise.
2846
2847 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
2848
2849         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
2850
2851 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
2852
2853         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
2854         (num_ssa_operands): Likewise.
2855         (op_iter_init_phiuse): Forward-declare.
2856         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
2857
2858 2011-06-08  Nick Clifton  <nickc@redhat.com>
2859
2860         * doc/invoke.texi (ARM Options): Update description of
2861         -mthumb-interwork.
2862
2863 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
2864
2865         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2866         unknown Intel family 0x6 CPUs.
2867
2868 2011-06-08  Martin Jambor  <mjambor@suse.cz>
2869
2870         * tree-sra.c (mark_rw_status): Removed.
2871         (analyze_access_subtree): New parameter parent instead of
2872         mark_read and mark_write, propagate from that.
2873
2874 2011-06-08  Julian Brown  <julian@codesourcery.com>
2875
2876         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
2877         for double-precision helper functions in hard-float mode if only
2878         single-precision arithmetic is supported in hardware.
2879
2880 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
2881
2882         PR rtl-optimization/49303
2883         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
2884         code_motion_path_driver returned 0 or 1.
2885         (sel_region_finish): Clear h_d_i_d.
2886
2887 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2888
2889         * config/sh/sh.c (prepare_move_operands): Set pic register
2890         appropriately for global and local dynamic tls models even
2891         if flag_pic is unset.
2892
2893 2011-06-07  Jason Merrill  <jason@redhat.com>
2894
2895         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
2896
2897 2011-06-07  Xinliang David Li  <davidxl@google.com>
2898         * passes.c (enable_disable_pass): Handle assembler name.
2899         (is_pass_explicitly_enabled_or_disabled): Ditto.
2900
2901 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2902
2903         PR tree-optimization/48497
2904         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
2905
2906 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2907
2908         PR tree-optimization/46728
2909         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
2910         to use gimple_val_nonnegative_real_p.
2911         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
2912         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
2913
2914 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
2915
2916         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
2917
2918 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
2919
2920         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
2921         constant vectors.
2922
2923 2011-06-07  Richard Guenther  <rguenther@suse.de>
2924
2925         * stor-layout.c (initialize_sizetypes): Initialize all
2926         sizetypes based on target definitions.
2927         (set_sizetype): Remove.
2928         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
2929         * tree.h (set_sizetype): Remove.
2930
2931 2011-06-07  Nick Clifton  <nickc@redhat.com>
2932
2933         * config.gcc: Unify V850 architecture options and add support for
2934         newer V850 architectures.
2935         * config/v850/t-v850e: Delete.
2936
2937 2011-06-07  Richard Guenther  <rguenther@suse.de>
2938
2939         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
2940         Call set_sizetype from here.
2941
2942 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
2943
2944         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
2945         (*maddhisi4tb, *maddhisi4tt): New define_insns.
2946
2947 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
2948             Andrew Stubbs  <ams@codesourcery.com>
2949
2950         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
2951         multiplies.
2952         * doc/md.texi (Canonicalization of Instructions): Document widening
2953         multiply canonicalization.
2954
2955 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
2956
2957         PR gcov-profile/49299
2958         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
2959
2960 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
2961
2962         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
2963         a pointer.
2964         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
2965         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
2966         vect_recog_pow_pattern): Likewise.
2967         (vect_pattern_recog_1): Remove declaration.
2968         (widened_name_p): Remove declaration.  Add new argument to specify
2969         whether to check that both types are either signed or unsigned.
2970         (vect_recog_widen_mult_pattern): Update documentation.  Handle
2971         unsigned patterns and multiplication by constants.
2972         (vect_pattern_recog_1): Update vect_recog_func references.  Use
2973         statement information from the statement returned from pattern
2974         detection functions.
2975         (vect_pattern_recog): Update vect_recog_func reference.
2976         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
2977         multiplication by a constant use the type of the other operand.
2978
2979 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
2980
2981         PR rtl-optimization/49145
2982         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
2983
2984 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
2985
2986         PR debug/49262
2987         * dwarf2out.c (native_encode_initializer): Decrement count in each
2988         iteration.
2989
2990         PR debug/49294
2991         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
2992         non-MODE_INT modes.
2993
2994         PR c++/49264
2995         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
2996         if stmt folded into nothing.
2997         * tree-inline.c (fold_marked_statements): If a builtin at the end of
2998         a bb folded into nothing, just update cgraph edges and move to next bb.
2999         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
3000         to be NULL.  Don't compute count and frequency if new_call is NULL.
3001
3002 2011-06-04  Diego Novillo  <dnovillo@google.com>
3003
3004         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
3005         (cgraph.o): Likewise.
3006         (cgraphunit.o): Likewise.
3007         * cgraphunit.c: Include lto-streamer.h
3008         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
3009         if LTO is enabled.
3010         * lto-streamer-in.c (unpack_value_fields): Call
3011         streamer_hooks.unpack_value_fields if set.
3012         (lto_materialize_tree): For unhandled nodes, first try to
3013         call lto_streamer_hooks.alloc_tree, if it exists.
3014         (lto_input_ts_decl_common_tree_pointers): Move reading of
3015         DECL_INITIAL to lto_streamer_read_tree.
3016         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
3017         (lto_streamer_read_tree): New.
3018         (lto_reader_init): Rename from lto_init_reader.
3019         Move initialization code to lto/lto.c.
3020         * lto-streamer-out.c (pack_value_fields): Call
3021         streamer_hooks.pack_value_fields if set.
3022         (lto_output_tree_ref): For tree nodes that are not normally indexable,
3023         call streamer_hooks.indexable_with_decls_p before giving up.
3024         (lto_output_ts_decl_common_tree_pointers): Move handling
3025         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
3026         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
3027         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
3028         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
3029         (lto_streamer_write_tree): New.
3030         (lto_output): Call lto_streamer_init directly.
3031         (lto_writer_init): Remove.
3032         * lto-streamer.c (streamer_hooks): New.
3033         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
3034         instead of lto_preload_common_nodes.
3035         (lto_is_streamable): Move from lto-streamer.h
3036         (lto_streamer_hooks_init): New.
3037         (streamer_hooks): New.
3038         (streamer_hooks_init): New.
3039         * lto-streamer.h (struct output_block): Forward declare.
3040         (struct lto_input_block): Likewise.
3041         (struct data_in): Likewise.
3042         (struct bitpack_d): Likewise.
3043         (struct streamer_hooks): Declare.
3044         (streamer_hooks): Declare.
3045         (lto_streamer_hooks_init): Declare.
3046         (lto_streamer_write_tree): Declare.
3047         (lto_streamer_read_tree): Declare.
3048         (streamer_hooks_init): Declare.
3049         (lto_is_streamable): Move to lto-streamer.c
3050
3051 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3052
3053         * longlong.h (smul_ppmm): The resulting register pair contains the
3054         higher order word first.
3055
3056 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3057
3058         PR tree-optimization/46728
3059         * builtins.c (powi_table): Remove.
3060         (powi_lookup_cost): Remove.
3061         (powi_cost): Remove.
3062         (expand_powi_1): Remove.
3063         (expand_powi): Remove.
3064         (expand_builtin_pow_root): Remove.
3065         (expand_builtin_pow): Remove.
3066         (expand_builtin_powi): Eliminate handling of constant exponent.
3067         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
3068
3069 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
3070
3071         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
3072
3073 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
3074
3075         * dce.c (reset_unmarked_insns_debug_uses): New.
3076         (delete_unmarked_insns): Skip debug insns.
3077         (prescan_insns_for_dce): Likewise.
3078         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
3079         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
3080         active reg can be found.
3081         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
3082         (convert_regs_1): Use it.
3083
3084 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
3085
3086         * tree-pretty-print.c (dump_function_header): Add flags.
3087         Don't dump decl_uid with nouid.
3088         * tree-pretty-print.h (dump_function_header): Adjust.
3089         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
3090         * passes.c (pass_init_dump_file): Pass dump_flags on.
3091         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
3092
3093 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
3094
3095         PR bootstrap/49270
3096         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
3097
3098 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
3099
3100         PR tree-optimization/49243
3101         * calls.c (setjmp_call_p): Also check if fndecl has the
3102         returns_twice attribute.
3103
3104 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3105
3106         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
3107         -ffast-math etc.
3108
3109 2011-06-06  Richard Henderson  <rth@redhat.com>
3110             Georg-Johann Lay  <avr@gjlay.de>
3111
3112         PR target/42210
3113         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
3114         New predicates.
3115         * config/avr/avr.md ("insv"): New insn expander.
3116         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
3117         "*insv.not.io", "*insv.reg"): New insns.
3118
3119 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
3120
3121         PR target/49285
3122         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
3123         to nonimmediate_operand from memory_operand for the operand that is to
3124         be forced to memory by the expander.  Lose the constraints.
3125
3126 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
3127
3128         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
3129         EH return when delayed branches are disabled.
3130
3131 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
3132
3133         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
3134         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
3135         calculation.
3136         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
3137         Simplify MODE_V1DF and MODE_V2SF handling.
3138         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
3139         Simplify MODE_SF handling.
3140
3141 2011-06-04  Jan Hubicka  <jh@suse.cz>
3142
3143         PR tree-optimization/48893
3144         PR tree-optimization/49091
3145         PR tree-optimization/49179
3146         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
3147         Bounds check.
3148
3149 2011-06-04  Jan Hubicka  <jh@suse.cz>
3150
3151         PR lto/48954
3152         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
3153         bitmaps.
3154
3155 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
3156
3157         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
3158
3159 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
3160
3161         PR target/49281
3162         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
3163         to be strictly smaller than 1 << shiftcount.
3164
3165 2011-06-04  Jan Hubicka  <jh@suse.cz>
3166
3167         PR tree-optimize/48929
3168         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
3169         of empty predicate.
3170
3171 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
3172
3173         PR debug/48333
3174         * calls.c (emit_call_1): Prefer the __builtin declaration of
3175         builtin functions.
3176
3177 2011-06-03   Diego Novillo  <dnovillo@google.com>
3178
3179         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
3180         (lto_input_tree_pointers): Likewise.
3181         * lto-streamer-out.c (pack_value_fields): Likewise.
3182         (lto_output_tree_pointers): Likewise.
3183         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
3184         and OPTIMIZATION_NODE.
3185
3186 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3187
3188         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
3189         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
3190         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
3191         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
3192         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
3193         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
3194         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
3195         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
3196         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
3197         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
3198         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
3199         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
3200         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
3201         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
3202         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
3203         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
3204         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
3205         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
3206         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
3207         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
3208         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
3209         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
3210         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
3211         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
3212         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
3213         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
3214         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
3215         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
3216         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
3217         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
3218         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
3219         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
3220         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
3221         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
3222         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
3223         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
3224         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
3225         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
3226         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
3227         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
3228         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
3229         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
3230         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
3231         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
3232         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
3233         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
3234         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
3235         * system.h (MD_UNWIND_SUPPORT): Poison.
3236         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
3237         * doc/tm.texi: Regenerate.
3238         * unwind-dw2.c: Include md-unwind-support.h instead of
3239         MD_UNWIND_SUPPORT.
3240         * config/ia64/unwind-ia64.c: Likewise.
3241         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
3242
3243 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
3244
3245         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
3246
3247 2011-06-03  Richard Henderson  <rth@redhat.com>
3248             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3249
3250         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
3251         (sigill_hdlr): Correct insn, insn size.
3252         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
3253
3254 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3255
3256         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
3257         t-slibgcc-dummy.
3258         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
3259         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
3260         * config/mips/t-iris: Remove.
3261         * config/mips/t-irix6: New file.
3262         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
3263
3264 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3265
3266         * Makefile.in (LIB2ADDEHDEP): Remove.
3267         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
3268         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
3269         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
3270         * config/t-darwin (LIB2ADDEHDEP): Remove.
3271         * config/t-freebsd (LIB2ADDEHDEP): Remove.
3272         * config/t-linux (LIB2ADDEHDEP): Remove.
3273
3274 2011-06-03  Diego Novillo  <dnovillo@google.com>
3275
3276         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
3277         (lto_register_var_decl_in_symtab): Likewise.
3278         (lto_register_function_decl_in_symtab): Likewise.
3279         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
3280         logic to uniquify_nodes.
3281
3282 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3283
3284         * config/alpha/t-osf5: Remove.
3285         * config/alpha/t-osf-pthread: Remove.
3286         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
3287         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
3288
3289 2011-06-03  Julian Brown  <julian@codesourcery.com>
3290
3291         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
3292         (strongarm1110): Use strongarm tuning.
3293         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
3294         * config/arm/arm.c (arm_strongarm_tune): New.
3295         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
3296         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
3297         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
3298         setting, using previous defaults or 1 for Cortex-A5.
3299         (arm_option_override): Set max_insns_skipped from current tuning.
3300
3301 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
3302
3303         * doc/install.texi (Options specification): Document --with-specs.
3304
3305 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3306
3307         * config/arm/neon.md (orndi3_neon): Actually split it.
3308
3309 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
3310
3311         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
3312         * var-tracking.c (reverse_op): Limite recurse depth to 5.
3313
3314 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
3315
3316         PR debug/47590
3317         * target.def (delay_sched2, delay_vartrack): New.
3318         * doc/tm.texi.in: Update.
3319         * doc/tm.texi: Rebuild.
3320         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
3321         * var-tracking.c (gate_handle_var_tracking): Likewise.
3322         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
3323         (bfin_flag_var_tracking): Drop.
3324         (output_file_start): Don't save and override flag_var_tracking.
3325         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
3326         (bfin_reorg): Test original variables.
3327         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
3328         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
3329         (ia64_flag_var_tracking): Drop.
3330         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
3331         (ia64_file_start): Don't save and override flag_var_tracking.
3332         (ia64_override_options_after_change): Ditto
3333         flag_schedule_insns_after_reload.
3334         (ia64_reorg): Test original variables.
3335         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
3336         (picochip_flag_var_tracking): Drop.
3337         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
3338         (picochip_option_override): Don't save and override
3339         flag_schedule_insns_after_reload.
3340         (picochip_asm_file_start): Ditto flag_var_tracking.
3341         (picochip_reorg): Test original variables.
3342         * config/spu/spu.c (spu_flag_var_tracking): Drop.
3343         (TARGET_DELAY_VARTRACK): Define.
3344         (spu_var_tracking): New.
3345         (spu_machine_dependent_reorg): Call it.
3346         (asm_file_start): Don't save and override flag_var_tracking.
3347
3348 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3349
3350         PR target/49163
3351         * config/sh/predicates.md (general_movsrc_operand): Return 0
3352         for memory and memory subreg of which address is an invalid
3353         indexed address for QI and HImode.
3354         (general_movdst_operand): Likewise.
3355
3356 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3357
3358         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
3359         edges only, when there is a non-local label in the function.
3360         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
3361
3362 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
3363
3364         * config/i386/constraints.md (Y3): New register constraint.
3365         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
3366         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
3367         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
3368         *sse2_interleave_lowv2df.
3369
3370 2011-06-02  Julian Brown  <julian@codesourcery.com>
3371
3372         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
3373         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
3374         (arm_cortex_a5_tune): New.
3375
3376 2011-06-02  Julian Brown  <julian@codesourcery.com>
3377
3378         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
3379         * config/arm/arm.c (arm_default_branch_cost): New.
3380         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
3381         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
3382         (arm_fa726_tune): Set branch_cost field using
3383         arm_default_branch_cost.
3384         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
3385         current_tune structure.
3386         * dojump.c (tm_p.h): Include file.
3387
3388 2011-06-02  Julian Brown  <julian@codesourcery.com>
3389
3390         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
3391         tuning.
3392         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
3393         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
3394         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
3395         field.
3396         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
3397         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
3398         (arm_fa726te_tune): Add prefer_constant_pool setting.
3399         (arm_v6t2_tune, arm_cortex_tune): New.
3400         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
3401         prefer_constant_pool setting.
3402
3403 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
3404
3405         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
3406         switch statement.
3407         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
3408         (*movdf_internal) <case 6,7,8>: Ditto.
3409
3410         * config/i386/constraints.md (Y4): New register constraint.
3411         * config/i386/sse.md (vec_set<mode>_0): Merge with
3412         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
3413         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
3414         *vec_extractv2di_1_sse.
3415         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
3416         and *vec_concatv2di_rex64_sse.
3417
3418 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
3419
3420         PR target/48807
3421         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
3422         of cgraph_local_info for null before attempting to use it.
3423
3424 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3425
3426         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
3427         (current_function_dynamic_alloc_count): Delete.
3428         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
3429         (expand_builtin_nonlocal_goto): Remove obsolete comment.
3430         (expand_builtin_update_setjmp_buf): Remove dead code.
3431         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
3432         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
3433         support.
3434         * function.c (instantiate_virtual_regs): Likewise.
3435         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
3436         for a block with a single abnormal incoming edge.
3437         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
3438         (SETJMP_VIA_SAVE_AREA): Delete.
3439         * config/sparc/sparc-protos.h (load_got_register): Declare.
3440         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
3441         (load_got_register): Make global.
3442         (sparc_frame_pointer_required): Add 'static'.
3443         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
3444         (sparc_builtin_setjmp_frame_value): New function.
3445         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
3446         (save_stack_nonlocal): New expander.
3447         (restore_stack_nonlocal): Likewise.
3448         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
3449         (nonlocal_goto_internal): New insn.
3450         (goto_handler_and_restore): Delete.
3451         (builtin_setjmp_setup): Likewise.
3452         (do_builtin_setjmp_setup): Likewise.
3453         (setjmp): Likewise.
3454         (builtin_setjmp_receiver): New expander.
3455
3456 2011-06-01  David Li  <davidxl@google.com>
3457
3458         PR middle-end/49261
3459         * tree-pretty-print.c (dump_function_header): Format cleanup.
3460
3461 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3462
3463         PR target/49238
3464         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
3465         needed when original operands are used for msw_skip comparison.
3466
3467 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
3468
3469         PR debug/49250
3470         * var-tracking.c (add_uses, add_stores): Don't call
3471         cselib_subst_to_values on ENTRY_VALUE.
3472
3473 2011-06-01  Diego Novillo  <dnovillo@google.com>
3474
3475         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
3476         output_record_start with LTO_null instead of output_zero.
3477         (lto_output_ts_binfo_tree_pointers): Likewise.
3478         (lto_output_tree): Likewise.
3479         (output_eh_try_list): Likewise.
3480         (output_eh_region): Likewise.
3481         (output_eh_lp): Likewise.
3482         (output_eh_regions): Likewise.
3483         (output_bb): Likewise.
3484         (output_function): Likewise.
3485         (output_unreferenced_globals): Likewise.
3486         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
3487         instead of NUM_TREE_CODES.
3488         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
3489         (lto_output_int_in_range): Change << to >> when shifting VAL.
3490
3491 2011-06-01  Diego Novillo  <dnovillo@google.com>
3492
3493         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
3494         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
3495
3496 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
3497
3498         PR target/45074
3499         * optabs.h (valid_multiword_target_p): Declare.
3500         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
3501         doing multi-word operations.
3502         * optabs.c (expand_binop): Likewise.
3503         (expand_doubleword_bswap): Likewise.
3504         (expand_absneg_bit): Likewise.
3505         (expand_unop): Likewise.
3506         (expand_copysign_bit): Likewise.
3507         (multiword_target_p): New function.
3508
3509 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
3510
3511         PR rtl-optimization/48830
3512         PR rtl-optimization/48808
3513         PR rtl-optimization/48792
3514         * reload.c (push_reload): Check contains_reg_of_mode.
3515         * reload1.c (strip_paradoxical_subreg): New function.
3516         (gen_reload_chain_without_interm_reg_p): Use it to handle
3517         paradoxical subregs.
3518         (emit_output_reload_insns, gen_reload): Likewise.
3519
3520 2011-06-01  David Li  <davidxl@google.com>
3521
3522         * predict.c : Change pass name
3523         * ipa.c: Ditto.
3524         * dce.c: Ditto.
3525         * tree-profile.c: Ditto.
3526         * except.c: Ditto.
3527
3528 2011-06-01  David Li  <davidxl@google.com>
3529
3530         * tree-pretty-print.c (dump_function_header): New function.
3531         * final.c (rest_of_clean_state): Use header dumper.
3532         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
3533         * passes.c (pass_init_dump_file): Use header dumper.
3534
3535 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
3536
3537         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
3538         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
3539         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
3540         New functions.
3541         (mem_loc_descriptor): Use them.
3542
3543         * var-tracking.c (create_entry_value): New function.
3544         (vt_add_function_parameter): Use it.
3545
3546 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3547
3548         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
3549         Include <signal.h>, <ucontext.h>.
3550         (sigill_caught): Define.
3551         (sigill_hdlr): New function.
3552         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
3553         insns can be executed.
3554         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
3555         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
3556
3557 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3558
3559         * config/t-slibgcc-darwin: Move to ...
3560         * config/t-slibgcc-dummy: ... this.  Clarify comments.
3561         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
3562         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
3563         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
3564         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
3565         Remove i386/t-crtstuff from tmake_file.
3566         (i[34567]86-*-solaris2*): Remove t-svr4,
3567         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
3568         t-slibgcc-dummy.
3569         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
3570         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
3571         sparc/t-crtfm from tmake_file.
3572         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
3573         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
3574         Remove extra_parts.
3575         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
3576         * config/i386/t-nwld (SHLIB_LINK): Remove.
3577         * config/i386/t-rtems-i386: Rename to ...
3578         * config/i386/t-rtems: ... this.
3579         ($(T)crti.o, $(T)crtn.o): Remove.
3580         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
3581         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
3582         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
3583         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
3584         EXTRA_MULTILIB_PARTS): Remove.
3585         * config/sparc/t-sol2-64: Likewise.
3586         * config/sparc/t-sol2: Remove.
3587         * config/sparc/t-crtin: Remove.
3588         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
3589         * config/i386/gmon-sol2.c: Remove.
3590         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
3591         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
3592         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
3593         * config/i386/sol2-gc1.asm: Remove.
3594         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
3595         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
3596         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
3597         * config/t-slibgcc-sld: Remove.
3598
3599 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
3600
3601         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
3602         base_type_for_mode with op_mode instead of mode.
3603
3604 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
3605
3606         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
3607         Cortex-A15.
3608         * config/arm/arm-tune.md: Regenerate.
3609         * config/arm/arm-tables.opt: Regenerate.
3610         * config/arm/arm.c (FL_DIV): Rename...
3611         (FL_THUMB_DIV): ... to this.
3612         (FL_ARM_DIV): Define.
3613         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
3614         (arm_arch_hwdiv): Remove.
3615         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
3616         (arm_issue_rate): Add cortexr5.
3617         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
3618         __ARM_ARCH_EXT_IDIV__.
3619         (TARGET_IDIV): Define.
3620         (arm_arch_hwdiv): Remove.
3621         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
3622         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
3623         (divsi3, udivsi3): New patterns.
3624         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
3625         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
3626
3627 2011-06-01  Martin Jambor  <mjambor@suse.cz>
3628
3629         * ipa-utils.c (ipa_dfs_info): New field scc_no.
3630         * ipa-utils.c (searchc): Set scc_no.
3631
3632 2011-06-01  Martin Jambor  <mjambor@suse.cz>
3633
3634         * ipa-utils.c (searchc_env): New field allow_overwritable.
3635         (searchc): do not ignore edges to overwritable nodes if indicated
3636         by env->allow_overwritable.
3637         (ipa_reduced_postorder): Set env.allow_overwritable.
3638
3639 2011-06-01  Richard Guenther  <rguenther@suse.de>
3640
3641         * tree.c (free_lang_data): Do not reset boolean_type_node nor
3642         char_type_node.
3643         * lto-streamer.c (lto_record_common_node): Take node pointer,
3644         do not register types.
3645         (lto_preload_common_nodes): Explicitly skip preloading nodes
3646         that differ between frontends.
3647
3648 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
3649
3650         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
3651         NON_FLOAT_REGS.
3652
3653 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
3654
3655         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
3656         parameter value for dump. Dump cost on outermost call only.
3657         (rs6000_memory_move_cost): Dump cost on outermost call only.
3658
3659 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
3660
3661         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
3662         DW_OP_GNU_convert ops.
3663
3664         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
3665         cselib_preserve_constants.
3666         (cselib_lookup_1): If cselib_preserve_constants,
3667         a new VALUE is being created for REG and there is a VALUE for the
3668         same register in wider mode, add another loc with lowpart SUBREG of
3669         the wider VALUE.
3670         (cselib_subst_to_values): Handle ENTRY_VALUE.
3671         * var-tracking.c  (replace_expr_with_values): Return NULL for
3672         ENTRY_VALUE too.
3673         * dwarf2out.c (convert_descriptor_to_signed): New function.
3674         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
3675         instead of two shifts.
3676         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
3677         the right mode if needed.
3678         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
3679         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
3680         convert_descriptor_to_signed.
3681         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
3682         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
3683
3684         PR target/48688
3685         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
3686
3687 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
3688
3689         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
3690         of X87MODEI12 and SWI48x instead of SSEMODEI24.
3691         (SWI248x): New mode iterator, rename from X87MODEI.
3692         (X87MODEI): Remove mode iterator.
3693         (X87MODEI12): Ditto.
3694         (SSEMODEI24): Ditto.
3695
3696 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
3697
3698         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
3699         * doc/invoke.texi: Document max-vartrack-expr-depth.
3700         * var-tracking.c (EXPR_DEPTH): New.
3701         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
3702
3703 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
3704
3705         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
3706         * config/i386/sse.md: Add n to negated FMA pattern names.
3707
3708 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
3709
3710         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
3711
3712 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
3713
3714         * gengtype-state.c (read_state_params_structs): Initialize previous.
3715
3716 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
3717
3718         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
3719         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
3720
3721 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
3722
3723         * config/i386/i386.md (*movtf_internal): Avoid allocating general
3724         registers.  Penalize F*r->o alternative to prevent partial memory
3725         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
3726         CONST_DOUBLE immediates when optimizing function for size.  Do not move
3727         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
3728         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
3729         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
3730         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
3731         alternatives.
3732         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
3733
3734         (fp_register_operand splitters): Use fp_register_operand
3735         constraint.  Do not use FP_REG_P in insn condition.
3736         (any_fp_register_operand splitters): Use any_fp_register_operand
3737         constraint.  Do not use ANY_FP_REG_P in insn condition.
3738
3739 2011-05-31  Jan Hubicka  <jh@suse.cz>
3740
3741         * cgraph.h (cgraph_inline_failed_t): Give enum a name
3742         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
3743         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
3744         (lto_output_edge): Use output_enum and var_len_unsigned.
3745         (lto_output_varpool_node): Likewise.
3746         (input_overwrite_node): Do not take resolution parameter;
3747         extract it from a bitpack.
3748         (input_node): Do not read resolution; use input_enum and
3749         var_len_unsigned.
3750         (input_varpool_node): Likewise.
3751         (input_edge): Likewise.
3752         (input_cgraph_1): Likewise.
3753
3754 2011-05-31  Richard Guenther  <rguenther@suse.de>
3755
3756         * gimple.c (gimple_register_canonical_type): Do not register
3757         any types via gimple_register_type.
3758
3759 2011-05-31  Jan Hubicka  <jh@suse.cz>
3760
3761         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
3762         of thunks.
3763
3764 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
3765
3766         PR rtl-optimization/49235
3767         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
3768         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
3769
3770 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
3771
3772         PR tree-optimization/49093
3773         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
3774         data references.
3775
3776 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
3777
3778         PR debug/49047
3779         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
3780         for concrete functions containing the code of cloned functions.
3781
3782 2011-05-31  Richard Guenther  <rguenther@suse.de>
3783
3784         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
3785         to ...
3786         (forward_propagate_into_comparison_1): ... this.
3787         (forward_propagate_comparison): Rename to ...
3788         (forward_propagate_into_comparison): ... this.  Split out
3789         real forward propagation code to ...
3790         (forward_propagate_comparison): ... this.
3791         (forward_propagate_into_gimple_cond): Remove looping.
3792         (forward_propagate_into_cond): Likewise.
3793         (simplify_not_neg_expr): Return whether we have done something.
3794         (simplify_gimple_switch): Likewise.
3795         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
3796         (ssa_forward_propagate_and_combine): ... this.  Re-structure
3797         to do a forward forward-propagation walk on BBs and a backward
3798         stmt combining walk on BBs.  Consistently re-scan changed statements.
3799         (pass_forwprop): Adjust.
3800
3801 2011-05-30  Ian Lance Taylor  <iant@google.com>
3802
3803         * godump.c (go_format_type): Correct length of name added to
3804         obstack for anonymous field.
3805
3806 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3807
3808         PR target/49186
3809         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
3810         part of the second operand is 0.
3811
3812 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
3813
3814         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
3815         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
3816         to memory for !TARGET_MEMORY_MISMATCH_STALL.
3817         (*movdf_internal_rex64): Do not penalize F->r alternative.
3818         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
3819         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
3820         when optimizing function for size.  Do not move CONST_DOUBLEs
3821         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
3822         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
3823         SUBREGs.  Do not check for MEM_P operands in the insn condition,
3824         check for ANY_FP_REGNO_P instead.
3825         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
3826         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
3827         function for speed.
3828         * config/i386/i386.c (ix86_option_override_internal): Do not
3829         set TARGET_INTEGER_DFMODE_MOVES here.
3830
3831 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
3832
3833         PR target/49168
3834         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
3835
3836 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
3837
3838         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
3839         DW_TAG_rvalue_reference_type even for
3840         -gdwarf-4 -fno-debug-types-section.
3841
3842 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3843
3844         PR tree-optimization/46728
3845         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
3846         (build_and_insert_binop): New.
3847         (gimple_expand_builtin_pow): Reorder args for
3848         build_and_insert_call; use build_and_insert_binop; add more
3849         optimizations for fractional exponents.
3850
3851 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
3852
3853         PR bootstrap/49190
3854
3855         Revert:
3856         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
3857
3858         * tree.h (struct tree_identifier): Inherit from tree_typed, not
3859         tree_common.
3860         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
3861         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
3862         TS_BASE instead of TS_COMMON.
3863         * varasm.c (assemble_name): Remove assert.
3864
3865 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
3866
3867         * config.gcc: Keep obselete list sorted.
3868
3869 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
3870             Eric Botcazou  <ebotcazou@adacore.com>
3871
3872         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
3873         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
3874         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
3875         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
3876         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
3877
3878 2011-05-30  Richard Guenther  <rguenther@suse.de>
3879
3880         * gimple.c (gimple_types_compatible_p_1): Compare record
3881         and union type members properly.
3882
3883 2011-05-30  Richard Guenther  <rguenther@suse.de>
3884
3885         PR tree-optimization/49210
3886         * ipa-split.c (split_function): Care for the case where the call
3887         result is not trivially convertible to the result holding variable.
3888
3889 2011-05-30  Richard Guenther  <rguenther@suse.de>
3890
3891         PR tree-optimization/49218
3892         * tree-vrp.c (adjust_range_with_scev): Properly check whether
3893         overflow occured.
3894
3895 2011-05-30  Richard Guenther  <rguenther@suse.de>
3896
3897         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
3898         New function split out from ...
3899         (forward_propagate_into_gimple_cond): ... here.  Adjust.
3900         (forward_propagate_into_cond): Likewise.
3901         (forward_propagate_comparison): Also propagate into
3902         comparisons on assignment RHS.  Change return value to
3903         behave similar to forward_propagate_into_cond.
3904         (tree_ssa_forward_propagate_single_use_vars): Handle
3905         strict-overflow warnings properly for forward_propagate_comparison.
3906
3907 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3908
3909         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
3910         from plugin linker.
3911         * configure: Regenerate.
3912
3913 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
3914
3915         PR tree-optimization/49199
3916         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
3917         non-reduction operands are either defined in the loop or by induction.
3918
3919 2011-05-29  Xinliang David Li  <davidxl@google.com>
3920
3921         * opts-global.c (handle_common_deferred_options): Handle new options.
3922         * passes.c (register_one_dump_file): Call register_pass_name.
3923         (execute_one_pass): Check explicit enable/disable flag.
3924         (passr_hash): New function.
3925         (passr_eq): Ditto.
3926         (register_pass_name): Ditto.
3927         (get_pass_by_name): Ditto.
3928         (pass_hash): Ditto.
3929         (pass_eq): Ditto.
3930         (enable_pass): Ditto.
3931         (disable_pass): Ditto.
3932         (is_pass_explicitly_enabled_or_disabled): Ditto.
3933
3934 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
3935
3936         * config/i386/i386.md (*movoi_internal_avx): Use
3937         standard_sse_constant_opcode for alternative 0.
3938         (*movti_internal_sse): Ditto.
3939         (*movti_internal_rex64): Use standard_sse_constant_opcode for
3940         alternative 2.
3941         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
3942         sselog1 type moves.
3943         (*movsi_internal): Ditto.
3944         (*movdi_internal): Ditto.  Add ssecvt type moves.
3945
3946 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
3947
3948         PR target/48830
3949         * rtlanal.c (simplify_subreg_regno): Adjust comment.
3950
3951 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
3952
3953         PR rtl-optimization/49095
3954         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
3955         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
3956
3957 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
3958
3959         PR target/43995
3960         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
3961         recurse_p argument.  Only follow register copies if it is set,
3962         and prevent mips_find_pic_call_symbol from recursing.
3963         (mips_find_pic_call_symbol): Add a recurse_p argument.
3964         Pass it to mips_pic_call_symbol_from_set.
3965         (mips_annotate_pic_calls): Update accordingly.
3966
3967 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
3968
3969         * emit-rtl.c (try_split): Use a loop to search for
3970         NOTE_INSN_CALL_ARG_LOCATIONs.
3971
3972 2011-05-29  Richard Guenther  <rguenther@suse.de>
3973
3974         PR tree-optimization/49217
3975         * ipa-pure-const.c (propagate_pure_const): Fix typos.
3976
3977 2011-05-28  Jan Hubicka  <jh@suse.cz>
3978
3979         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
3980         length.
3981         (string_slot_free): Remove
3982         (create_output_block): Initialize obstack.
3983         (destroy_output_block): Free obstack.
3984         (lto_string_index): Add PERSISTENT parameter; do not duplicate
3985         the string unless it needs to be added into the hash.
3986         (lto_output_string_with_length): Add persistent attribute;
3987         handle NULL strings.
3988         (lto_output_string): Add PERSISTENT parameter.
3989         (output_string_cst, output_identifier): Simplify.
3990         (lto_output_location_bitpack): Update.
3991         (lto_output_builtin_tree): Update.
3992         * lto-streamer.h (struct output_block): Add obstack.
3993         (lto_output_string, lto_output_string_with_length): Remove
3994         declarations; functions are static now.
3995
3996 2011-05-28  Jan Hubicka  <jh@suse.cz>
3997
3998         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
3999         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
4000         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
4001         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
4002         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
4003         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
4004         unpack_ts_decl_with_vis_value_fields,
4005         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
4006         lto_get_builtin_tree): Use enum and variable length i/o.
4007         * basic-block.h (profile_status_d): Add PROFILE_LAST.
4008         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
4009         New functions.
4010         (bp_pack_enum, bp_unpack_enum): New macros.
4011
4012 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
4013
4014         * genrecog.c: Remove redundant forward declarations.
4015
4016 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
4017
4018         * config.gcc: Deprecate mips*-*-openbsd*.
4019
4020 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
4021
4022         PR bootstrap/49195
4023         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
4024         for match_op_dup.
4025
4026 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
4027
4028         PR middle-end/48981
4029         * gengtype.c (vec_prefix_type): New function.
4030         (note_def_vec): Use vec_prefix_type and change the length
4031         attribute to be based on the prefix.
4032         * vec.c: Include coretypes.h before vec.h.
4033         (struct vec_prefix): Remove.
4034         (vec_gc_p_reserve): Change the offsetof to sizeof.
4035         (vec_gc_p_reserve_exact): Likewise.
4036         (vec_heap_p_reserve): Likewise.
4037         (vec_heap_p_reserve_exact): Likewise.
4038         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
4039         (vec_stack_p_reserve): Change the offsetof to sizeof.
4040         (vec_stack_p_reserve_exact): Likewise.
4041         * vec.h (struct vec_prefix): New struct definition.
4042         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
4043         (VEC_T_GTY(T,B)): Likewise.
4044         (DEF_VEC_FUNC_P(T)): Use prefix field.
4045         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
4046         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
4047
4048 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4049
4050         PR tree-optimization/46728
4051         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
4052         (powi_as_mults): Add gimple_set_location.
4053         (build_and_insert_call): New.
4054         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
4055         0.5, 0.25, 0.75, 1./3., or 1./6.
4056
4057 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
4058
4059         * doc/contrib.texi: Update copyright years.
4060         (Contributors): Add Zdenek Sojka.
4061
4062 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
4063
4064         * c-decl.c (c_push_function_context): Copy the current statement
4065         list stack.
4066         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
4067         (finish_struct): Call building_stmt_list_p instead of checking
4068         cur_stmt_list.
4069         * c-parser.c (c_parser_postfix_expression): Likewise.
4070         * c-typeck.c (c_end_compound_stmt): Likewise.
4071         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
4072         * tree-iterator.c (stmt_list_cache): Change to a VEC.
4073         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
4074         (free_stmt_list): Likewise.
4075         * tree.h (struct tree_statement_list): Include typed_tree instead
4076         of tree_common.
4077         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
4078         as TS_TYPED instead of TS_COMMON.
4079
4080 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4081             Uros Bizjak  <ubizjak@gmail.com>
4082
4083         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
4084         (HAVE_AS_IX86_TLSGDPTL): Define.
4085         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
4086         (HAVE_AS_IX86_TLSLDMPLT): Define.
4087         * configure: Regenerate.
4088         * config.in: Regenerate.
4089         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
4090         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
4091         TARGET_SUN_TLS, use @tlsgdplt or @plt.
4092         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
4093         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
4094         @tlsldmplt or @plt.
4095         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
4096
4097 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
4098
4099         * sched-int.h (struct _haifa_deps_insn_data): New members cond
4100         and reverse_cond.
4101         (INSN_COND, INSN_REVERSE_COND): New macros.
4102         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
4103         once.
4104         (sched_get_condition_with_rev): Cache the results, and look them up
4105         if possible.
4106         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
4107         are clobbered by the current insn.
4108         * target.def (exposed_pipline): New sched data hook.
4109         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
4110         * doc/tm.texi: Regenerate.
4111
4112 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4113
4114         PR tree-optimization/49170
4115         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
4116         sincos or cexp.
4117
4118 2011-05-27  Richard Guenther  <rguenther@suse.de>
4119
4120         PR middle-end/49189
4121         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
4122         of comparisons.
4123
4124 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
4125
4126         * haifa-sched.c (sched_scan_info): Remove.
4127         (schedule_block): Call sched_extend_luids rather than sched_init_luids
4128         with NULL args.
4129         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
4130         Remove functions.
4131         (sched_scan): Remove.
4132         (sched_extend_luids): Renamed from luids_extend_insn and no longer
4133         static.  All callers changed.
4134         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
4135         static.  All callers changed.
4136         (sched_init_luids): Remove all arguments except the first.  All
4137         callers changed.  Don't use sched_scan.
4138         (haifa_init_h_i_d): Likewise.
4139         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
4140         manually rather than using sched_init_luids.  Likewise with
4141         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
4142         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
4143         rather than sched_init_luids with NULL args.
4144         * sel-sched-ir.c (new_insns): Remove variable.
4145         (sched_scan): New static function, previously in haifa-sched.c.  Remove
4146         all arguments but the first two; all callers changed.
4147         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
4148         rather than sched_init_luids.
4149         (sel_init_bbs): Remove second argument.  All callers changed.
4150         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
4151         with NULL arguments.
4152         (create_insn_rtx_from_pattern): Likewise.
4153         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
4154         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
4155         (sched_init_insn_luid, sched_extend_luids): Declare.
4156         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
4157         declarations.
4158
4159 2011-05-27  Richard Guenther  <rguenther@suse.de>
4160
4161         PR middle-end/49177
4162         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
4163         A CMP B ? (T) true : (T) false for non-integral types T again.
4164
4165 2011-05-27  Jan Hubicka  <jh@suse.cz>
4166
4167         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
4168         so 0 means NULL string.
4169         (lto_output_string_with_length): ... here.
4170         (lto_output_string, output_string_cst, output_identifier): Update
4171         handling of NULL strings.
4172         (lto_output_location_bitpack): New function.
4173         (lto_output_location): Use it.
4174         (lto_output_tree_ref): Use output_record_start.
4175         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
4176         len values.
4177         * lto-streamer-in.c (string_for_index): Break out from ...; offset
4178         values by 1.
4179         (input_string_internal): ... here;
4180         (input_string_cst, input_identifier, lto_input_string): Update handling
4181         of NULL strings.
4182         (lto_input_location_bitpack): New function
4183         (lto_input_location): Use it.
4184         (unpack_ts_type_common_value_fields): Pack align & alias in var len
4185         values.
4186         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
4187         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
4188         (bp_pack_value): Sanity check the value range.
4189         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
4190         New functions.
4191         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
4192         New functions.
4193
4194 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
4195
4196         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
4197         call_arg_location instructions down the floor.
4198
4199 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
4200
4201         PR rtl-optimization/49154
4202         * ira.c (setup_pressure_classes): Process class without sublcasses
4203         as a candidate for pressure classes.
4204
4205 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
4206
4207         PR rtl-optimization/48575
4208         * genrecog.c (position_type): New enum.
4209         (position): New structure.
4210         (decision): Use position structure instead of a string.
4211         (root_pos, peep2_insn_pos_list): New variables.
4212         (next_position, compare_positions): New functions.
4213         (new_decision): Use position structures instead of strings.
4214         (maybe_both_true): Likewise.
4215         (change_state): Likewise.
4216         (write_tree): Likewise.
4217         (make_insn_sequence): Likewise.
4218
4219 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
4220
4221         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
4222         TS_BASE instead of TS_COMMON.
4223         (find_decls_types_r): Check for TS_TYPED structure before looking at
4224         TREE_TYPE.
4225         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
4226         Add chain field.
4227         (BLOCK_CHAIN): Use new chain field.
4228
4229 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
4230
4231         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
4232         moves expensive on Power7 also.
4233
4234 2011-05-26  Richard Guenther  <rguenther@suse.de>
4235
4236         * fold-const.c (fold_unary_loc): Remove bogus code.
4237
4238 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
4239
4240         * tree.h (struct tree_identifier): Inherit from tree_typed, not
4241         tree_common.
4242         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
4243         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
4244         TS_BASE instead of TS_COMMON.
4245         * varasm.c (assemble_name): Remove assert.
4246
4247 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
4248
4249         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
4250         substituted first.
4251         * libgcc-std.ver: Delete file.
4252
4253 2011-05-26  Richard Guenther  <rguenther@suse.de>
4254
4255         PR tree-optimization/48702
4256         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
4257         only when we know the base address is within bounds.
4258         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
4259         assume the base address of TARGET_MEM_REFs is in bounds.
4260
4261 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4262
4263         PR target/49099
4264         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
4265         declaration in TARGET_SOLARIS.
4266
4267 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
4268
4269         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
4270         The instruction is then expanded explicitly.
4271         (supported_compare): Callable instruction.
4272         (compare): Likewise.
4273
4274 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
4275
4276         PR c++/49165
4277         * gimplify.c (shortcut_cond_r): Don't special case
4278         COND_EXPRs if they have void type on one of their arms.
4279
4280 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
4281
4282         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
4283         to reduce duplication, and to achieve a slightly more logical order
4284         of operations.
4285
4286 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
4287
4288         PR tree-optimization/49161
4289         * tree-vrp.c (struct case_info): New type.
4290         (compare_case_labels): Sort case_info structs instead of
4291         trees, and not primarily by CASE_LABEL uids but by
4292         label_for_block indexes.
4293         (find_switch_asserts): Put case labels into struct case_info
4294         array instead of TREE_VEC, adjust sorting, compare label_for_block
4295         values instead of CASE_LABELs.
4296
4297 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4298
4299         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
4300         ("orndi3_neon"): Likewise.
4301         ("bic<mode>3_neon"): Likewise.
4302
4303 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
4304
4305         PR tree-optimization/49038
4306         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
4307         Ensure at least one epilogue iteration if required by data
4308         accesses with gaps.
4309         * tree-vectorizer.h (struct _loop_vec_info): Add new field
4310         to mark loops that require peeling for gaps.
4311         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
4312         (vect_get_known_peeling_cost): Take peeling for gaps into
4313         account.
4314         (vect_transform_loop): Generate epilogue if required by data
4315         access with gaps.
4316         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
4317         loop as requiring an epilogue if there are gaps in the end of
4318         the strided group.
4319
4320 2011-05-25  Ian Lance Taylor  <iant@google.com>
4321
4322         * godump.c (go_format_type): Output the first field with a usable
4323         Go type, if any.
4324
4325 2011-05-25  Ian Lance Taylor  <iant@google.com>
4326
4327         * godump.c (go_format_type): Check for invalid type names, pointer
4328         target types, and struct field types.
4329
4330 2011-05-25  Jason Merrill  <jason@redhat.com>
4331
4332         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
4333
4334 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
4335
4336         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
4337
4338 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
4339
4340         * config/i386/i386.md (*movqi_extv_1)): Put back
4341         "register_operand" check in "type" calculation.
4342         (*movqi_extzv_2): Likewise.
4343
4344 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
4345
4346         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
4347
4348 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
4349
4350         PR bootstrap/49160
4351         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
4352         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
4353         __divxc3, __divtc3): Wrap definitions in #ifndef.
4354
4355 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
4356
4357         PR target/49142
4358         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
4359         "register_operand" check and replace q_regs_operand with
4360         QIreg_operand in "type" calculation.
4361         (*movqi_extv_1): Likewise.
4362         (*movqi_extzv_2_rex64): Likewise.
4363         (*movqi_extzv_2): Likewise.
4364
4365         * config/i386/predicates.md (QIreg_operand): New.
4366
4367 2011-05-25  Richard Guenther  <rguenther@suse.de>
4368
4369         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
4370         type-based offset disambiguation, streamline MEM_REF and
4371         TARGET_MEM_REF handling.
4372
4373 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
4374
4375         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
4376         (bdesc_special_args): Add pause intrinsic.
4377
4378         * config/i386/i386.md (UNSPEC_PAUSE): New.
4379         (pause): Likewise.
4380         (*pause): Likewise.
4381         * config/i386/ia32intrin.h (__pause): Likewise.
4382
4383         * doc/extend.texi (X86 Built-in Functions): Add documentation for
4384         pause intrinsic.
4385
4386 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4387
4388         PR tree-optimization/46728
4389         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
4390         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
4391
4392 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
4393
4394         * tree.h (struct tree_exp): Inherit from struct tree_typed.
4395         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
4396         instead of TS_COMMON.
4397
4398 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
4399
4400         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
4401         LIBGCC2_GNU_PREFIX is defined.
4402         (__N): New macro.
4403         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
4404         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
4405         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
4406         __clz_tab): Define using __N.
4407         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
4408         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
4409         * target.def (libfunc_gnu_prefix): New hook.
4410         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
4411         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
4412         * doc/tm.texi: Regenerate.
4413         * system.h (LIBGCC2_GNU_PREFIX): Poison.
4414         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
4415         account.
4416         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
4417         (init_optabs): Likewise for the bswap libfuncs.
4418         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
4419         and divide.
4420         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
4421         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
4422         * libgcc-std.ver: Remove.
4423         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
4424         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
4425         libgcc-std.ver.
4426         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4427         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
4428         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
4429         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
4430         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
4431         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4432         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4433         * config/fixed-bit.h (FIXED_OP): Define differently depending on
4434         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
4435         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
4436
4437 2011-05-25  Jan Hubicka  <jh@suse.cz>
4438
4439         * lto-streamer-out.c (output_record_start): Use lto_output_enum
4440         (lto_output_tree): Use output_record_start.
4441         * lto-streamer-in.c (input_record_start): Use lto_input_enum
4442         (lto_get_pickled_tree): Use input_record_start.
4443         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
4444         (lto_value_range_error): New function.
4445         * lto-streamer.h (lto_value_range_error): Declare.
4446         (lto_output_int_in_range, lto_input_int_in_range): New functions.
4447         (lto_output_enum, lto_input_enum): New macros.
4448
4449 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4450
4451         * common.opt (flag_stack_usage_info): New variable.
4452         (-Wstack-usage): New option.
4453         * doc/invoke.texi (Warning options): Document -Wstack-usage.
4454         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
4455         <OPT_fstack_usage>: Likewise.
4456         * toplev.c (output_stack_usage): Handle -Wstack-usage.
4457         * calls.c (expand_call): Test flag_stack_usage_info variable instead
4458         of flag_stack_usage.
4459         (emit_library_call_value_1): Likewise.
4460         * explow.c (allocate_dynamic_stack_space): Likewise.
4461         * function.c (instantiate_virtual_regs ): Likewise.
4462         (prepare_function_start): Likewise.
4463         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
4464         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
4465         * config/arm/arm.c (arm_expand_prologue): Likewise.
4466         (thumb1_expand_prologue): Likewise.
4467         * config/avr/avr.c (expand_prologue): Likewise.
4468         * config/i386/i386.c (ix86_expand_prologue): Likewise.
4469         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4470         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
4471         * config/mips/mips.c (mips_expand_prologue): Likewise.
4472         * config/pa/pa.c (hppa_expand_prologue): Likewise.
4473         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4474         * config/s390/s390.c (s390_emit_prologue): Likewise.
4475         * config/sh/sh.c (sh_expand_prologue): Likewise.
4476         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4477         * config/spu/spu.c (spu_expand_prologue): Likewise.
4478
4479 2011-05-25  Richard Guenther  <rguenther@suse.de>
4480
4481         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
4482         (gimple_canonical_types_compatible_p): Likewise.
4483
4484 2011-05-25  Jan Hubicka  <jh@suse.cz>
4485
4486         PR middle-end/49062
4487         * ipa.c (function_and_variable_visibility): Only add to same
4488         comdat group list if DECL_ONE_ONLY.
4489
4490 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
4491
4492         PR rtl-optimization/49014
4493         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
4494
4495 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
4496
4497         PR target/49128
4498         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
4499
4500 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
4501
4502         PR rtl-optimization/48757
4503         * ira-build.c (loop_with_eh_edge_p): Rename to
4504         loop_with_complex_edge_p, check edges on complexity, make function
4505         conditional.
4506         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
4507         conditional.
4508
4509 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
4510
4511         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
4512         force flag_ira_share_save_slots to 0.
4513
4514 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
4515
4516         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
4517         (vt_initialize): Set PROLOGUE_BB unconditionally.
4518         Add block comment about CFA_BASE_RTX machinery.
4519         Reset FP_CFA_OFFSET to -1 on all invalid paths.
4520         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
4521
4522 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
4523
4524         PR objc/48187
4525         * c-parser.c (c_parser_objc_class_instance_variables): More robust
4526         parsing of syntax error in ObjC instance variable lists.  In
4527         particular, avoid an infinite loop if there is a stray ']'.
4528         Updated error message.
4529
4530 2011-05-24  Ian Lance Taylor  <iant@google.com>
4531
4532         * godump.c (go_define): Don't accept a string immediately after
4533         another operand.
4534
4535 2011-05-24  Ian Lance Taylor  <iant@google.com>
4536
4537         * godump.c (struct godump_container): Add invalid_hash field.
4538         (go_format_type): Return false if type is found in invalid_hash.
4539         (go_output_typedef): Add invalid type to invalid_hash.
4540         (go_finish): Create and delete invalid_hash.
4541
4542 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4543
4544         PR tree-optimization/46728
4545         * tree-ssa-math-opts.c (powi_table): New.
4546         (powi_lookup_cost): New.
4547         (powi_cost): New.
4548         (powi_as_mults_1): New.
4549         (powi_as_mults): New.
4550         (gimple_expand_builtin_powi): New.
4551         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
4552         (gate_cse_sincos): Remove sincos/cexp restriction.
4553
4554 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4555
4556         PR target/3746
4557         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
4558         mips-tdump native.
4559         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
4560         * mips-tdump.c: Likewise.
4561
4562 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
4563
4564         PR target/49128
4565         * config/i386/driver-i386.c (host_detect_local_cpu): Always
4566         add -mno-XXX.  Handle FMA.
4567
4568 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
4569
4570         PR rtl-optimization/48633
4571         * ira-build.c (loop_with_eh_edge_p): New function.
4572         (mark_loops_for_removal): Use it.
4573
4574 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
4575
4576         PR rtl-optimization/48971
4577         * ira.c (setup_pressure_classes): Don't check register move cost
4578         for classes with one registers.  Don't add pressure class if there
4579         is a pressure class with the same available hard registers.
4580         Check contains_reg_of_mode.  Fix a typo in collecting
4581         temp_hard_regset.  Ignore hard registers not belonging to a class.
4582
4583 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
4584
4585         PR target/49133
4586         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
4587
4588 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
4589             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4590
4591         PR gcov-profile/48845
4592         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
4593
4594 2011-05-24  Richard Guenther  <rguenther@suse.de>
4595
4596         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
4597         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
4598         (gimple_types_compatible_p_1): Adjust.
4599         (iterative_hash_canonical_type): Do not bother about complete vs.
4600         incomplete types.
4601         (gimple_canonical_types_compatible_p): Likewise.
4602
4603 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4604
4605         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
4606
4607 2011-05-24  Richard Guenther  <rguenther@suse.de>
4608
4609         PR bootstrap/49078
4610         * gimple.c (gimple_register_canonical_type): Revert
4611         previous change.
4612         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
4613         does not for a tree for the case where it matters.  Cache
4614         pointer-type alias-sets.
4615
4616 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
4617
4618         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
4619         (OBJS): Remove options.o, opts-common.o and prefix.o.
4620         (OBJS-libcommon-target): New.
4621         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
4622         (BACKEND): Include libcommon-target.a.
4623         (MOSTLYCLEANFILES): Include libcommon-target.a.
4624         (libcommon-target.a): New.
4625         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
4626         prefix.o.
4627
4628 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
4629
4630         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
4631         parts of output shared with the driver.
4632         * optc-gen.awk: Don't generate parts of output not shared with the
4633         driver.
4634         * opth-gen.awk: Remove GCC_DRIVER conditionals.
4635         * doc/options.texi (SourcerInclude): Mention options-save.c.
4636         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
4637         (OBJS): Add options-save.o.
4638         (options-save.c, options-save.o): New.
4639         (options.o): Update dependencies.
4640         (gcc-options.o): Remove.
4641         (mostlyclean): Remove options-save.c.
4642
4643 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
4644
4645         PR debug/49032
4646         * dbxout.c: Include cgraph.h.
4647         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
4648         and without value expr, return NULL if no varpool node exists for
4649         it or if it is not needed.
4650         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
4651
4652         PR c/49120
4653         * c-decl.c (start_decl): Convert expr to void_type_node.
4654
4655 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
4656
4657         PR rtl-optimization/48826
4658         * emit-rtl.c (try_split): When splitting a call that is followed
4659         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
4660
4661 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
4662
4663         * cfgexpand.c (expand_debug_expr): For unused non-addressable
4664         parameters passed in memory prefer using DECL_INCOMING_RTL over
4665         the pseudos it will be copied into.
4666
4667 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
4668
4669         PR target/47315
4670         * config/i386/i386.c (ix86_option_override_internal): Save the
4671         initial options after checking vzeroupper.
4672
4673 2011-05-23  David Li  <davidxl@google.com>
4674
4675         PR tree-optimization/48988
4676         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
4677         Initialize has_valid_pred for each pred chain.
4678
4679 2011-05-23  Richard Guenther  <rguenther@suse.de>
4680
4681         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
4682         (iterative_hash_gimple_type): Always hash type names.
4683
4684 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
4685
4686         * c-typeck.c (build_function_call_vec): Tweak call to
4687         check_function_arguments.
4688
4689 2011-05-23  Richard Guenther  <rguenther@suse.de>
4690
4691         PR tree-optimization/49115
4692         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
4693         is not necessarily carried out, do not claim it kills the ref.
4694         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
4695
4696 2011-05-23  Richard Guenther  <rguenther@suse.de>
4697
4698         PR middle-end/15419
4699         * builtins.c (fold_builtin_memory_op): Be less restrictive about
4700         what pointer types we accept for folding.
4701
4702 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4703
4704         * gthr-gnat.c: Remove.
4705         * gthr-gnat.h: Remove.
4706         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
4707         * config/t-freebsd (LIB2ADDEH): Likewise.
4708         * config/t-linux (LIB2ADDEH): Likewise.
4709         * config/t-sol2 (LIB2ADDEH): Likewise.
4710         * config/ia64/t-vms (LIB2ADDEH): Likewise.
4711         * configure.ac (target_thread_file): Remove gnat handling.
4712         * configure: Regenerate.
4713         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
4714
4715 2011-05-23  Tristan Gingold  <gingold@adacore.com>
4716             Eric Botcazou  <ebotcazou@adacore.com>
4717
4718         * gcov.c (create_file_names): If no object directory is specified,
4719         keep the directory of the file.
4720
4721 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4722
4723         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
4724         * configure: Regenerate.
4725
4726 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
4727
4728         PR middle-end/48973
4729         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
4730         failed and the comparison has a single bit signed type, use
4731         constm1_rtx instead of const1_rtx for true value.
4732         (do_store_flag): If ops->type is single bit signed type, disable
4733         signel bit test optimization and pass -1 instead of 1 as last
4734         parameter to emit_store_flag_force.
4735
4736 2011-05-23  Tom de Vries  <tom@codesourcery.com>
4737
4738         PR target/45098
4739         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
4740         function.
4741         (infer_loop_bounds_from_undefined): Use new function.
4742
4743 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
4744
4745         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
4746         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
4747         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
4748         and -O0 otherwise.
4749         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
4750
4751 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
4752
4753         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
4754         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
4755         returns true.
4756
4757 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
4758
4759         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
4760
4761 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
4762
4763         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
4764         UNSPEC_MOVE_PIC pattern.
4765
4766 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
4767
4768         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
4769         (sparc-*-rtems*): Likewise.
4770         (sparc64-*-elf*): Likewise.
4771         (sparc64-*-rtems*): Likewise.
4772         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
4773         * config/sparc/t-crtin: New file.
4774         * config/sparc/t-sol2 (crti.o): Delete rule.
4775         (crtn.o): Likewise.
4776         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
4777         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
4778         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
4779         (ENDFILE_SPEC): Add crtn.o.
4780
4781 2011-05-22  Tom de Vries  <tom@codesourcery.com>
4782
4783         PR middle-end/48689
4784         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
4785         CODE_CONTAINS_STRUCT (TS_COMMON).
4786
4787 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
4788
4789         PR middle-end/49029
4790         * expmed.c (extract_fixed_bit_field): Test whether target can be used
4791         only after deciding which mode to use.
4792
4793 2011-05-22  Tom de Vries  <tom@codesourcery.com>
4794
4795         PR target/45098
4796         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
4797         for call to get_shiftadd_cost.
4798
4799 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
4800
4801         PR target/49104
4802         * config/i386/cpuid.h (bit_MMXEXT): New define.
4803
4804 2011-05-22  Nick Clifton  <nickc@redhat.com>
4805
4806         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
4807         initialisation of non-existant args[2] element.  Use args[] array
4808         not arg[] array to pass arguments to build_function_type_list.
4809
4810 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
4811
4812         PR tree-optimization/49087
4813         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
4814
4815 2011-05-21  Jason Merrill  <jason@redhat.com>
4816
4817         PR c++/49092
4818         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
4819         static storage duration.
4820
4821 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
4822
4823         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
4824         frame pointer.
4825
4826 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
4827
4828         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
4829         false if there are call-saved registers here...
4830         (sparc_can_use_return_insn_p): ...but here instead.
4831         (save_or_restore_regs): Fix thinko.
4832         (sparc_expand_prologue): Use current_function_is_leaf.
4833         (sparc_frame_pointer_required): Likewise.
4834
4835 2011-05-21  Nick Clifton  <nickc@redhat.com>
4836
4837         PR target/49098
4838         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
4839
4840 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
4841
4842         * gengtype.c (walk_type): Implemented "atomic" GTY option.
4843         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
4844
4845 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
4846
4847         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
4848         * optc-gen.awk: Move common code to opt-read.awk.
4849         * opth-gen.awk: Likewise.
4850         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
4851
4852 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
4853
4854         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
4855
4856 2011-05-20  Tom de Vries  <tom@codesourcery.com>
4857
4858         PR target/45098
4859         * tree-ssa-loop-ivopts.c: Include expmed.h.
4860         (get_shiftadd_cost): New function.
4861         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
4862
4863 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
4864
4865         PR bootstrap/49086
4866         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
4867         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
4868
4869 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
4870
4871         * Makefile.in: Update comment referring to $(OBJS-common).
4872
4873 2011-05-20  Ian Lance Taylor  <iant@google.com>
4874
4875         * godump.c (go_output_typedef): Put enum constants in the macro
4876         hash table to avoid duplicate Go const definitions.
4877
4878 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
4879
4880         * Makefile.in (LIBDEPS): Add libcommon.a.
4881         (LIBS): Likewise.
4882         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
4883         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
4884         pretty-print.o and version.o.
4885         (OBJS-libcommon): New.
4886         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
4887         (BACKEND): Add libcommon.a.
4888         (MOSTLYCLEANFILES): Likewise.
4889         (libcommon.a): New.
4890         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
4891         (cpp$(exeext)): Likewise.
4892         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
4893         pretty-print.o and input.o.
4894         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
4895         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
4896         (errors.o): Remove.
4897         (mips-tfile): Don't explicitly use version.o.
4898         (mips-tdump): Likewise.
4899         (gcov.o): Depend on $(DIAGNOSTIC_H).
4900         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
4901         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
4902         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
4903         * gcov-dump.c: Include intl.h and diagnostic.h.
4904         (main): Initialize diagnostics.
4905         * gcov.c: Include diagnostic.h.
4906         (fnotice): Remove.
4907         (main): Initialize diagnostics.
4908         * lto-wrapper.c: Include diagnostic.h.
4909         (main): Initialize diagnostics.
4910
4911 2011-05-20  Michael Matz  <matz@suse.de>
4912
4913         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
4914
4915 2011-05-20  Michael Matz  <matz@suse.de>
4916             Richard Guenther  <rguenther@suse.de>
4917
4918         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
4919         use lto_streamer_cache_append directly instead of returning a VEC.
4920         (preload_common_node): Remove.
4921         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
4922         track seen nodes.
4923         (lto_streamer_cache_create): Call lto_preload_common_nodes.
4924
4925 2011-05-20  Richard Guenther  <rguenther@suse.de>
4926
4927         PR tree-optimization/49079
4928         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
4929         MEM_REFs correctly for the trailing array access detection.
4930         Special case constants the same way as decls for overall size
4931         constraining.
4932
4933 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
4934
4935         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
4936         argument expansion.
4937
4938 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
4939
4940         PR tree-optimization/49073
4941         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
4942         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
4943         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
4944
4945 2011-05-20  Richard Guenther  <rguenther@suse.de>
4946
4947         PR middle-end/48849
4948         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
4949         of pointer types the same way the middle-end does.
4950
4951 2011-05-20  Richard Guenther  <rguenther@suse.de>
4952
4953         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
4954         or pointer-to chains.  Delay all fixup to uniquify_nodes.
4955
4956 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
4957
4958         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
4959         (fma4_fmaddsub): Likewise
4960
4961 2011-05-19  Jan Hubicka  <jh@suse.cz>
4962
4963         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
4964         (GIMPLE_TYPE_PAIR_SIZE): New macro.
4965         (type_pair_cache): New static var.
4966         (lookup_type_pair): Use fixed sized custom hash; make inline.
4967         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
4968         calls of lookup_type_pair.
4969         (print_gimple_types_stats): Remove cache stats.
4970         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
4971         and gtc_ob.
4972
4973 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
4974
4975         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
4976         when TARGET_RDRND is active.
4977         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
4978         Generate dummy SImode target register when target is NULL.
4979
4980 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
4981
4982         * config/arm/arm-fpus.def: New.
4983         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
4984         arm-fpus.def.
4985         * config/arm/arm-tables.opt: Regenerate.
4986         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
4987         (arm_option_override): Don't decode FPU name to string here.
4988         * config/arm/arm.opt (mfpu=): Use Enum.
4989         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
4990         Update dependencies.
4991
4992 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
4993
4994         * collect2.c: Include diagnostic.h.
4995         (fatal_perror, fatal, error, fancy_abort): Remove.
4996         (main): Set progname.  Call xmalloc_set_program_name and
4997         diagnostic_initialize.
4998         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
4999         scan_libraries, resolve_lib_name): Call fatal_error instead of
5000         fatal and fatal_perror.
5001         * collect2.h (error, fatal, fatal_perror): Don't declare.
5002         * tlink.c: Include diagnostic-core.h.
5003         (recompile_files): Call fatal_error instead of fatal_perror.
5004         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
5005         pretty-print.o and input.o.
5006         (collect2.o, tlink.o): Update dependencies.
5007
5008 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5009
5010         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
5011
5012 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5013
5014         PR target/40483
5015         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
5016         COMDAT group syntax, both SPARC and x86 variants.
5017         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
5018         * configure: Regenerate.
5019         * config/sol2.h (TARGET_SOLARIS): Define.
5020         (PUSHSECTION_FORMAT): Remove.
5021         (SECTION_NAME_FORMAT): Define.
5022         * config/sol2.c: Include hashtab.h.
5023         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
5024         expansion, using SECTION_NAME_FORMAT.
5025         (solaris_comdat_htab): New variable.
5026         (struct comdat_entry): Define.
5027         (comdat_hash): New function.
5028         (comdat_eq): New function.
5029         (solaris_elf_asm_comdat_section): New function.
5030         (solaris_define_comdat_signature): New function.
5031         (solaris_code_end): New function.
5032         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
5033         (solaris_code_end): Declare.
5034         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
5035         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
5036         solaris_code_end.
5037         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
5038         Remove ATTRIBUTE_UNUSED.
5039         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
5040         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
5041         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
5042         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
5043         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
5044         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
5045         (PUSHSECTION_FORMAT): Remove.
5046         (SECTION_NAME_FORMAT): Redefine.
5047
5048 2011-05-19  Kai Tietz  <ktietz@redhat.com>
5049
5050         * tree-cfg.c (verify_gimple_assign_binary): Barf on
5051         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
5052         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
5053
5054 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
5055             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5056
5057         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
5058
5059 2011-05-19  Richard Guenther  <rguenther@suse.de>
5060
5061         PR middle-end/48985
5062         * tree-object-size.c (addr_object_size): If the pointed-to
5063         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
5064
5065 2011-05-19  Richard Guenther  <rguenther@suse.de>
5066
5067         * gimple.c (gimple_types_compatible_p_1): Compare names of
5068         the types themselves.
5069         (iterative_hash_gimple_type): And hash them that way.
5070         (gimple_register_type_1): If we register a main variant properly
5071         initialize the leader to ourselves.
5072
5073 2011-05-19  Tom de Vries  <tom@codesourcery.com>
5074
5075         PR target/45098
5076         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
5077         get_loop_invariant_expr_id.
5078         (get_loop_invariant_expr_id): Use get_expr_id.
5079         (parm_decl_cost): New function.
5080         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
5081         Improve bound cost estimation.  Use different inv_expr_id for elim and
5082         express cases.
5083
5084 2011-05-19  Tom de Vries  <tom@codesourcery.com>
5085
5086         PR target/45098
5087         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
5088         cost_base.cost == 0.
5089
5090 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
5091
5092         PR target/49002
5093         * config/i386/sse.md
5094         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
5095         load cast.
5096
5097 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
5098
5099         PR tree-optimization/49039
5100         * tree-vrp.c (extract_range_from_binary_expr): For
5101         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
5102         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
5103
5104 2011-05-18  Tom de Vries  <tom@codesourcery.com>
5105
5106         PR target/45098
5107         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
5108
5109 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
5110
5111         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
5112         (*tls_global_dynamic_64): Ditto.
5113         (*tls_local_dynamic_base_32_gnu): Ditto.
5114         (*tls_local_dynamic_base_64): Ditto.
5115         (tls_initial_exec_64_sun): Ditto.
5116
5117 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
5118
5119         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
5120         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
5121         bf592-none.
5122         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
5123         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
5124         * config/bfin/bfin.c (bfin_cpus): Add bf592.
5125         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
5126         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
5127         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
5128         * config/bfin/elf.h (LIB_SPEC): Add bf592.
5129
5130 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
5131
5132         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
5133         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
5134         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
5135         target_thread_pointer, arm_structure_size_boundary, struct
5136         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
5137         struct abi_name, arm_all_abis): Remove.
5138         (arm_option_override) Don't process most enumerated option values here.
5139         Don't process target_fpe_name here.  Work with integer not string for
5140         structure size boundary; use separate diagnostics for each case.
5141         * config/arm/arm.h (enum float_abi_type, enum
5142         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
5143         to arm-opts.h.
5144         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
5145         arm_structure_size_boundary): Remove.
5146         * config/arm/arm.opt (mabi=): Use Enum and Init.
5147         (arm_abi_type): New Enum and EnumValue entries.
5148         (mfloat-abi=): Use Enum and Init.
5149         (float_abi_type): New Enum and EnumValue entries.
5150         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
5151         (mfp16-format=): Use Enum and Init.
5152         (arm_fp16_format_type): New Enum and EnumValue entries.
5153         (mstructure-size-boundary=): Use UInteger and Init.
5154         (mtp=): Use Enum and Init.
5155         (arm_tp_type): New Enum and EnumValue entries.
5156
5157 2011-05-18  Richard Guenther  <rguenther@suse.de>
5158
5159         PR tree-optimization/49018
5160         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
5161         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
5162         gimple_has_side_effects.
5163
5164 2011-05-18  Richard Guenther  <rguenther@suse.de>
5165
5166         * gimple.c (gimple_register_type_1): New function, split out from ...
5167         (gimple_register_type): ... here.  Avoid infinite recursion.
5168
5169 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
5170
5171         PR tree-optimization/41881
5172         * tree-vectorizer.h (struct _loop_vec_info): Add new field
5173         reduction_chains along with a macro for its access.
5174         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
5175         (destroy_loop_vec_info): Free reduction chains.
5176         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
5177         (vect_is_slp_reduction): New function.
5178         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
5179         (vect_create_epilog_for_reduction): Support SLP reduction chains.
5180         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
5181         definition types for reduction chains.
5182         (vect_supported_load_permutation_p): Don't allow permutations for
5183         reduction chains.
5184         (vect_analyze_slp_instance): Support reduction chains.
5185         (vect_analyze_slp): Try to build SLP instance from reduction chains.
5186         (vect_get_constant_vectors):  Handle reduction chains.
5187         (vect_schedule_slp_instance): Mark the first statement of the
5188         reduction chain as reduction.
5189
5190 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
5191
5192         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
5193         names for group elements access.
5194         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
5195         reduction chains as well.  Remove data reference and interleaving
5196         related words from the fields names.
5197         * tree-vect-loop.c (vect_transform_loop): Use new names for group
5198         elements access.
5199         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
5200         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
5201         vect_update_interleaving_chain, vect_same_range_drs,
5202         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
5203         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
5204         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
5205         vect_analyze_group_access, vect_analyze_data_ref_access,
5206         vect_create_data_ref_ptr, vect_transform_strided_load,
5207         vect_record_strided_load_vectors): Likewise.
5208         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
5209         vect_model_load_cost, vectorizable_store, vectorizable_load,
5210         vect_remove_stores, new_stmt_vec_info): Likewise.
5211         * tree-vect-slp.c (vect_build_slp_tree,
5212         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
5213
5214 2011-05-18  Richard Guenther  <rguenther@suse.de>
5215
5216         PR middle-end/48989
5217         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
5218         operand verification.
5219         (verify_gimple_assign_binary): Likewise.
5220         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
5221         to non-1-precision BOOLEAN_TYPEs.
5222
5223 2011-05-18  Tom de Vries  <tom@codesourcery.com>
5224
5225         PR target/45098
5226         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
5227
5228 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
5229
5230         PR tree-optimization/49000
5231         * tree-ssa.c (execute_update_addresses_taken): Call
5232         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
5233         be rewritten and decl has been marked for renaming, reset
5234         the debug stmt.
5235
5236 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
5237
5238         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
5239         enum_opts_set when testing if attributes have set -mfpmath=.
5240
5241 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
5242
5243         * config/mips/mips.c (mips_handle_option): Remove unused variable.
5244
5245 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
5246
5247         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
5248         info->entry with 0
5249         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
5250         id.transform_lang_insert_block with NULL.
5251
5252 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
5253
5254         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
5255         (output_fp_compare): Change args 3 and 4 to bool.
5256         (ix86_expand_call): Change arg 6 to bool.
5257         (ix86_attr_length_immediate_default): Change arg 2 to bool.
5258         (ix86_attr_length_vex_default): Change arg 3 to bool.
5259         * config/i386/i386.md: Update all uses.
5260         * config/i386/i386.c: Ditto.
5261         (ix86_flags_dependent): Change return type to bool.
5262
5263 2011-05-17  Richard Guenther  <rguenther@suse.de>
5264
5265         * gimple.c (type_hash_pair_compare): Fix comparison.
5266
5267 2011-05-17  Richard Guenther  <rguenther@suse.de>
5268
5269         * gimple.c (iterative_hash_gimple_type): Simplify singleton
5270         case some more, fix final hash value of the non-singleton case.
5271
5272 2011-05-17  Richard Guenther  <rguenther@suse.de>
5273
5274         PR bootstrap/49013
5275         Revert
5276         2011-05-16  Richard Guenther  <rguenther@suse.de>
5277
5278         * gimple.c (gimple_types_compatible_p_1): Use names of the
5279         type itself, not its main variant.
5280         (iterative_hash_gimple_type): Likewise.
5281
5282 2011-05-17  Richard Guenther  <rguenther@suse.de>
5283
5284         * gimple.c (gimple_register_canonical_type): Use the main-variant
5285         leader for computing the canonical type.
5286
5287 2011-05-17  Nick Clifton  <nickc@redhat.com>
5288
5289         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
5290         moves.
5291
5292         * config/rx/rx.md: Add peephole to remove redundant extensions
5293         after loads.
5294         (bitset_in_memory): Use rx_restricted_mem_operand.
5295         (bitinvert_in_memory): Likewise.
5296         (bitclr_in_memory): Likewise.
5297
5298 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
5299             Nick Clifton  <nickc@redhat.com>
5300
5301         * config/rx/rx.md: Add peepholes to match a register move followed
5302         by a comparison of the moved register.  Replace these with an
5303         addition of zero that does both actions in one instruction.
5304
5305 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
5306
5307         PR target/48986
5308         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
5309         predicate to allow CONST_INT.
5310         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
5311
5312 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
5313
5314         * opts-common.c (opt_enum_arg_to_value): New.
5315         * opts.h (opt_enum_arg_to_value): Declare.
5316         * config/i386/i386.opt (fpmath): Remove.
5317         (mfpmath=): Use Enum, Init and Save.
5318         (fpmath_unit): New Enum and EnumValue entries.
5319         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
5320         name for function fpmath state.
5321         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
5322         * config/i386/i386.c: Include diagnostic.h.
5323         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
5324         (ix86_target_string): Take enum fpmath_unit value instead of string.
5325         (ix86_debug_options): Update call to ix86_target_string.
5326         (ix86_option_override_internal): Don't process fpmath strings here.
5327         (x86_function_specific_save, ix86_function_specific_restore):
5328         Don't handle fpmath state specially.
5329         (ix86_function_specific_print): Pass fpmath state to
5330         ix86_target_string instead of printing in this function.
5331         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
5332         Handle enum attributes.
5333         (IX86_ATTR_ENUM, ix86_opt_enum): New.
5334         (ix86_valid_target_attribute_tree): Update option_strings
5335         handling.  Handle fpmath as enum option.
5336         (ix86_can_inline_p): Update field names for function fpmath state.
5337         (ix86_expand_builtin): Update call to ix86_target_string.
5338         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
5339         (ix86_fpmath): Remove.
5340         * config/i386/t-i386 (i386.o): Update dependencies.
5341
5342 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
5343
5344         PR preprocessor/48677
5345         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
5346         from decoded_options[0], not from itself.
5347
5348 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
5349
5350         * config/i386/constraints.md (z): New constraint.
5351         * config/i386/i386.c (c): New mode attribute.
5352         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
5353         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
5354         constraint for operand 0.
5355         (*call_vzeroupper): Ditto.
5356         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
5357         (*call_rex64_ms_sysv_vzeroupper): Ditto.
5358         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
5359         Use "lzm" constraint for operand 0.
5360         (*call_pop_vzeroupper): Ditto.
5361         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
5362         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
5363         constraint for operand 0.
5364         (*sibcall_vzeroupper): Ditto.
5365         (*sibcall_rex64_ms_sysv): Ditto.
5366         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
5367         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
5368         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
5369         (*sibcall_pop_vzeroupper): Ditto.
5370         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
5371         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
5372         mode iterator.  Use "<c>zm" constraint for operand 1.
5373         (*call_value_vzeroupper): Ditto.
5374         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
5375         for operand 1.
5376         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
5377         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
5378         *call_value_pop_1.  Use "lzm" constraint for operand 1.
5379         (*call_value_pop_vzeroupper): Ditto.
5380         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
5381         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
5382         mode iterator.  Use "Uz" constraint for operand 1.
5383         (*sibcall_value_vzeroupper): Ditto.
5384         (*sibcall_value_rex64_ms_sysv): Ditto.
5385         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
5386         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
5387         constraint for operand 1.
5388         (*sibcall_value_pop_vzeroupper): Ditto.
5389         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
5390         and "z" constraint for operand 2.
5391         (*tls_global_dynamic_32_gnu): Ditto.
5392         (*tls_local_dynamic_base_32_gnu): Ditto.
5393         (*tls_local_dynamic_base_64): Ditto.
5394         (*tls_local_dynamic_32_once): Ditto.
5395         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
5396         Update all callers.
5397         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
5398
5399 2011-05-16  Richard Guenther  <rguenther@suse.de>
5400
5401         * gimple.c (gimple_types_compatible_p_1): Use names of the
5402         type itself, not its main variant.
5403         (iterative_hash_gimple_type): Likewise.
5404
5405 2011-05-16  Richard Guenther  <rguenther@suse.de>
5406
5407         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
5408         always visit pointer target and function result and argument types.
5409
5410 2011-05-16  Jason Merrill  <jason@redhat.com>
5411
5412         PR c++/48999
5413         * tree-inline.c (copy_statement_list): Put back recursion.
5414
5415 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
5416
5417         PR target/27663
5418         PR target/41076
5419         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
5420         * config/avr/avr.md ("*ior<mode>qi.byte0",
5421         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
5422
5423 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
5424
5425         PR target/45099
5426         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
5427         register is needed for a function argument.
5428
5429 2011-05-16  Richard Guenther  <rguenther@suse.de>
5430
5431         * gimple.c (struct type_hash_pair): New type.
5432         (type_hash_pair_compare): New function.
5433         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
5434
5435 2011-05-16  Revital Eres  <revital.eres@linaro.org>
5436
5437         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
5438
5439 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
5440
5441         * config/i386/i386.md (floating point move splitters): Fix
5442         usage of standard_80387_constant_p.
5443         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
5444
5445 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
5446
5447         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
5448
5449 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
5450
5451         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
5452         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
5453         (tree_ssa_lim_finalize): Likewise.
5454
5455 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
5456
5457         * config/i386/constraint.md (Yd, Yx): New register constraints.
5458         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
5459         Yd conditional register constraint.
5460         (*movtf_internal): Use standard_sse_constant_opcode.
5461         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
5462         Yx conditional register constraint.
5463         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
5464         Yd conditional register constraint.  Use standard_sse_constant_p to
5465         check for valid SSE constants and call standard_sse_constant_opcode to
5466         output SSE insn.
5467         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
5468         constants and call standard_sse_constant_opcode to output SSE insn.
5469         * config/i386/i386.c (ix86_option_ovverride_internal): Set
5470         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
5471         optimize_size is set.
5472         (standard_sse_constant_opcode): Output conditional AVX insn templates.
5473
5474 2011-05-14  Tobias Burnus  <burnus@net-b.de>
5475
5476         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
5477
5478 2011-05-13  Martin Jambor  <mjambor@suse.cz>
5479
5480         * ipa-prop.c (ipa_cst_from_jfunc): New function.
5481         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
5482         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
5483         (evaluate_conditions_for_ipcp_clone): Removed.
5484         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
5485         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
5486         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
5487
5488 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
5489
5490         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
5491         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
5492         lieu of MAY_HAVE_DEBUG_STMTS.
5493         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
5494         debug statements if !MAY_HAVE_DEBUG_STMTS.
5495
5496 2011-05-13  Martin Thuresson  <martint@google.com>
5497
5498         PR gcov-profile/47793
5499         * libgcov.c (gcov_exit): Support relative profile paths.
5500         * doc/invoke.texi (-fprofile-dir): Update for above change.
5501
5502 2011-05-13  Richard Guenther  <rguenther@suse.de>
5503
5504         * gimple.c (gimple_canonical_types_compatible_p): Do not use
5505         type-pair caching, do not compare hashes.
5506
5507 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
5508
5509         PR middle-end/48965
5510         * tree-cfg.c (edge_to_cases_cleanup): Return true.
5511         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
5512
5513 2011-05-13  Kai Tietz  <ktietz@redhat.com>
5514
5515         * gimplify.c (gimplify_expr): Make sure operand is boolified.
5516         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
5517         compatible type for TRUTH_NOT_EXPR.
5518
5519 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
5520
5521         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
5522         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
5523         can_create_pseudo_p ().
5524
5525 2011-05-13  Richard Guenther  <rguenther@suse.de>
5526
5527         PR lto/48978
5528         * gimple.c (iterative_hash_gimple_type): Revert change in
5529         pointer target and function result and argument hashing.
5530
5531 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
5532
5533         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
5534         (*movxf_internal_nointeger): Ditto.
5535         (*movdf_internal_rex64): Ditto.
5536         (*movdf_internal): Ditto.
5537         (*movdf_internal_nointeger): Ditto.
5538         (*movsf_internal): Ditto.
5539         (sincos splitters): Use can_create_pseudo ().
5540
5541 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
5542
5543         * config/i386/i386-opts.h: New.
5544         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
5545         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
5546         ix86_section_threshold): Remove.
5547         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
5548         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
5549         OPT_mbranch_cost_.
5550         (ix86_option_override_internal): Don't decode strings for options
5551         other than -march=, -mtune= and -mfpmath=.  Don't allow for
5552         __attribute__ uses in remaining diagnostics for options with
5553         string arguments.  Don't check for integer arguments being negative.
5554         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
5555         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
5556         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
5557         ix86_branch_cost, ix86_section_threshold): Remove.
5558         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
5559         HeaderInclude.
5560         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
5561         but not Var.
5562         (masm=): Use Enum and Init.
5563         (asm_dialect): New Enum and EnumValue entries.
5564         (mbranch-cost=): Use UInteger.
5565         (mlarge-data-threshold=): Use UInteger and Init.
5566         (mcmodel=): Use Enum and Init.
5567         (cmodel): New Enum and EnumValue entries.
5568         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
5569         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
5570         mregparm=): Use UInteger.
5571         (mstringop-strategy=): Use Enum and Init.
5572         (stringop_alg): New Enum and EnumValue entries.
5573         (mtls-dialect=): Use Enum and Init.
5574         (tls_dialect): New Enum and EnumValue entries.
5575         (mabi=): Use Enum and Init.
5576         (calling_abi): New Enum and EnumValue entries.
5577         (mveclibabi=): Use Enum and Init.
5578         (ix86_veclibabi): New Enum and EnumValue entries.
5579
5580 2011-05-13  Nick Clifton  <nickc@redhat.com>
5581
5582         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
5583         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
5584
5585 2011-05-13  Kai Tietz  <ktietz@redhat.com>
5586
5587         PR middle-end/48984
5588         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
5589         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
5590         (gimple_boolify): Check for cast for boolean_type_node instead for
5591         BOOLEAN_TYPE.
5592
5593 2011-05-13  Richard Guenther  <rguenther@suse.de>
5594
5595         PR tree-optimization/48172
5596         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
5597         multiplying by number of iterations for equal step.
5598         (vect_create_cond_for_alias_checks): Likewise.
5599
5600 2011-05-13  Andreas Schwab  <schwab@redhat.com>
5601
5602         * configure.ac: Use AS_HELP_STRING throughout.
5603         * configure: Regenerate.
5604
5605 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
5606
5607         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
5608         (ix86_emit_restore_regs_using_mov): Likewise.
5609         (ix86_emit_restore_sse_regs_using_mov): Likewise.
5610
5611 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
5612
5613         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
5614         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
5615         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
5616         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
5617         RTX_OK_FOR_OLO10_P): ...here.
5618         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
5619         SYMBOLIC_CONST.
5620
5621 2011-05-12  Kai Tietz  <ktietz@redhat.com>
5622
5623         * gimplify.c (gimple_boolify): Re-boolify expression
5624         arguments even if expression type is of kind BOOLEAN_TYPE.
5625         (gimplify_boolean_expr): Removed.
5626         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
5627         and XOR. Additional take care that we keep expression's type.
5628         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
5629         of TRUTH_AND|OR|XOR_EXPR.
5630
5631 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
5632
5633         PR tree-optimization/48975
5634         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
5635         on all bbs here and free and clear ifc_bbs at the end.
5636
5637 2011-05-12  Richard Guenther  <rguenther@suse.de>
5638
5639         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
5640         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
5641         until after simple checks.
5642         (gimple_types_compatible_p): Likewise.
5643         (iterative_hash_gimple_type): Always hash pointer targets
5644         and function return and argument types.
5645         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
5646         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
5647         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
5648         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
5649         completely in the simple compare section.
5650         (gimple_register_canonical_type): Query the cache again after
5651         registering.
5652
5653 2011-05-12  Richard Guenther  <rguenther@suse.de>
5654
5655         PR tree-optimization/48172
5656         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
5657         the number of iterations from the segment size calculation.
5658         (vect_create_cond_for_alias_checks): Adjust.
5659
5660 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
5661
5662         PR debug/48967
5663         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
5664         if validate_subreg fails.
5665
5666 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
5667
5668         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
5669         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
5670         early.
5671
5672 2011-05-12  DJ Delorie  <dj@redhat.com>
5673
5674         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
5675         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
5676         created builtin into rx_builtins array.
5677         (rx_builtin_decl): New function.
5678         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
5679
5680 2011-05-12  DJ Delorie  <dj@redhat.com>
5681             Nick Clifton  <nickc@redhat.com>
5682
5683         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
5684         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
5685         (rx_is_legitimate_address): Add pre-decrement and post-increment
5686         addressing in HImode and QImode.  Fix test for out of range
5687         REG+INT addressing.
5688         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
5689         (rx_align_for_label): Test label before extracting its usage count.
5690         (rx_adjust_insn_lengths): Fix selection of insn codes.
5691         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5692
5693 2011-05-11  Jason Merrill  <jason@redhat.com>
5694
5695         * tree.c (type_hash_canon): Use struct tree_type_non_common.
5696
5697 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
5698
5699         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
5700         reindent the subsequent block.
5701
5702 2011-05-11  Satoru Takabayashi  <satorux@google.com>
5703             Paul Pluzhnikov  <ppluzhnikov@google.com>
5704
5705         * doc/install.texi (Configuration): Document --with-linker-hash-style.
5706         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
5707         * config.in: Add LINKER_HASH_STYLE.
5708         * configure.ac: Add --with-linker-hash-style.
5709         * configure: Regenerate.
5710
5711 2011-05-11  Richard Guenther  <rguenther@suse.de>
5712
5713         PR middle-end/48964
5714         * gimple.c (iterative_hash_canonical_type): Fix typo.
5715
5716 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
5717
5718         * config/i386/i386.c (legitimize_tls_address)
5719         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
5720         expanders directly for TARGET_GNU2_TLS.  Determine pic and
5721         __tls_get_addr symbol reference here.  Update call to
5722         gen_tls_global_dynamic_{32,64} for added arguments.
5723         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
5724         expanders directly for TARGET_GNU2_TLS.  Determine
5725         __tls_get_addr symbol reference here.  Update call to
5726         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
5727         unique UNSPEC REG_EQUIV to libcall block.
5728         (ix86_tls_get_addr): Declare static.
5729         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
5730         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
5731         Do not determine pic and __tls_get_addr symbol reference here. Do not
5732         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
5733         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
5734         (tls_global_dynamic_64): Add operand 2.  Do not determine
5735         __tls_get_addr symbol reference here.  Do not call
5736         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
5737         (tls_local_dynamic_base64): Ditto for operand 1.
5738
5739 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
5740
5741         * function.c (expand_function_start): Initialize stack_check_probe_note
5742         only if the generic stack checking mechanism is used.
5743
5744 2011-05-11  Richard Guenther  <rguenther@suse.de>
5745
5746         PR tree-optimization/15256
5747         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
5748         (A & B) | C, combine (A op CST1) op CST2.
5749         (tree_ssa_forward_propagate_single_use_vars): Only bother to
5750         visit assigns that have uses.
5751
5752 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
5753
5754         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
5755         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
5756         (unpack_ts_type_common_value_fields): ...this.  Update comment.
5757         (unpack_value_fields): Adjust for renaming.
5758         (lto_input_ts_type_tree_pointers): Split into...
5759         (lto_input_ts_type_common_tree_pointer): ...this and...
5760         (lto_input_ts_type_non_common_tree_pointers): ...this.
5761         (lto_input_tree_pointers): Adjust for above split.
5762         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
5763         (pack_ts_type_common_value_fields): ...this.  Update comment.
5764         (lto_output_ts_type_tree_pointers): Split into...
5765         (lto_output_ts_type_common_tree_pointers): ...this and...
5766         (lto_output_ts_type_non_common_tree_pointers): ...this.
5767         (lto_output_tree_pointers): Adjust for above split.
5768         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
5769         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
5770         * stor-layout.c (vector_type_mode): Adjust location of mode field.
5771         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
5772         Define.
5773         (struct tree_type): Split into...
5774         (struct tree_type_common: ...this and...
5775         (struct tree_type_with_lang_specific): ...this and...
5776         (struct tree_type_non_common): ...this.  Adjust accessor macros
5777         accordingly.
5778         (TYPE_VALUES_RAW): Define.
5779         (union tree_node): Update for above changes.
5780         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
5781         TS_TYPE_NON_COMMON.
5782         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
5783         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
5784         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
5785         * treestructu.def (TS_TYPE): Remove.
5786         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
5787         Define.
5788
5789 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
5790
5791         PR debug/48159
5792         * tree-ssa.c (reset_debug_uses): New function.
5793         * tree-flow.h (reset_debug_uses): New prototype.
5794         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
5795         * tree-loop-distribution.c (generate_loops_for_partition): Call
5796         reset_debug_uses on the stmts that will be removed.  Keep around
5797         all debug stmts, don't count them as bits in partition bitmap.
5798         (generate_builtin): Don't count debug stmts or labels as bits in
5799         partition bitmap.
5800
5801 2011-05-11  Richard Guenther  <rguenther@suse.de>
5802
5803         * gimple.c (gimple_type_hash_1): Merge with ...
5804         (gimple_type_hash): ... this.
5805         (gtc_visit): Remove mode parameter and simplify accordingly.
5806         (gimple_types_compatible_p_1): Likewise.
5807         (gimple_types_compatible_p): Likewise.
5808         (iterative_hash_gimple_type): Likewise.
5809         (visit): Likewise.
5810         (gimple_type_eq): Adjust.
5811
5812 2011-05-11  Revital Eres  <revital.eres@linaro.org>
5813
5814         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
5815         enters the branch create an anti edge in the opposite direction
5816         to prevent the creation of reg-moves.
5817         * modulo-sched.c: Adjust comment to reflect the fact we are
5818         scheduling closing branch.
5819         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
5820         (stage_count): New field in struct partial_schedule.
5821         (calculate_stage_count): New function.
5822         (normalize_sched_times): Rename to reset_sched_times and handle
5823         incrementing the sched time of the nodes by a constant value
5824         passed as parameter.
5825         (duplicate_insns_of_cycles): Skip closing branch.
5826         (sms_schedule_by_order): Schedule closing branch.
5827         (ps_insn_find_column): Handle closing branch.
5828         (sms_schedule): Call reset_sched_times and adjust the code to
5829         support scheduling of the closing branch.
5830         (ps_insert_empty_row): Update calls to normalize_sched_times
5831         and rotate_partial_schedule functions.
5832
5833 2011-05-11  Richard Guenther  <rguenther@suse.de>
5834
5835         PR middle-end/48953
5836         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
5837
5838 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
5839
5840         * opts.c (finish_options): Move warning settings from process_options.
5841         * toplev.c (process_options): Move warning settings to finish_options.
5842
5843 2011-05-11  Richard Guenther  <rguenther@suse.de>
5844
5845         PR tree-optimization/18041
5846         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
5847         (simplify_bitwise_binary): ... this.  Handle operand conversions
5848         by applying them to the result instead.
5849         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
5850
5851 2011-05-11  Richard Guenther  <rguenther@suse.de>
5852
5853         * gimple.c (gimple_canonical_types_compatible_p): Split out
5854         from gimple_types_compatible_p and friends.  Do not recurse
5855         to pointed-to types.
5856         (gimple_canonical_type_eq): Use it.
5857         (iterative_hash_canonical_type): Split out from
5858         iterative_hash_gimple_type and friends.  Do not recurse
5859         to pointed-to types.
5860         (gimple_canonical_type_hash): Use it, allocate the hash here.
5861
5862 2011-05-11  Revital Eres  <revital.eres@linaro.org>
5863
5864         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
5865         recognizing doloop.
5866
5867 2011-05-11  Revital Eres  <revital.eres@linaro.org>
5868
5869         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
5870         instead of PREV_INSN.
5871
5872 2011-05-11  Revital Eres  <revital.eres@linaro.org>
5873
5874         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
5875         * loop-doloop.c (doloop_condition_get): Likewise.
5876         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
5877         (doloop_end): New.
5878         * config/arm/arm.md (*addsi3_compare0): Remove "*".
5879
5880 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
5881
5882         * tree.def (CASE_LABEL_EXPR): Add an operand.
5883         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
5884
5885 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
5886
5887         * c-decl.c (c_override_global_bindings_to_false): Remove.
5888         (global_bindings_p): Don't check
5889         c_override_global_bindings_to_false.
5890         * c-tree.h (c_override_global_bindings_to_false): Remove.
5891         * c-typeck.c (composite_type): Don't set
5892         c_override_global_bindings_to_false.
5893
5894 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5895
5896         PR target/48857, 48495
5897         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
5898         (VSX_MODE): Ditto.
5899         (VSX_MOVE_MODE): Ditto.
5900         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
5901         VSX vector types.  Add V2DImode.
5902         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
5903         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
5904         (MODES_TIEABLE_P): Ditto.
5905
5906         * config/rs6000/rs6000.c (rs6000_emit_move): Use
5907         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
5908         VSX_VECTOR_MODE.
5909         (init_cumulative_args): Ditto.
5910         (rs6000_function_arg_boundary): Ditto.
5911         (rs6000_function_arg_advance_1): Ditto.
5912         (rs6000_function_arg): Ditto.
5913         (rs6000_function_ok_for_sibcall): Ditto.
5914         (emit_frame_save): Ditto.
5915         (rs6000_function_value): Ditto.
5916         (rs6000_libcall_value): Ditto.
5917
5918 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
5919
5920         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
5921         i386/darwin-lib.h to $libgcc_tm_file.
5922         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
5923
5924 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
5925
5926         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
5927
5928 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
5929
5930         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
5931         * config/rs6000/rs6000-tables.opt: New file (generated).
5932         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
5933         rs6000/rs6000-tables.opt to extra_options.
5934         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
5935         * config/rs6000/rs6000.c (rs6000_select): Remove.
5936         (processor_target_table): Move contents to rs6000-cpus.def.
5937         (darwin_rs6000_override_options): Check
5938         global_options_set.x_rs6000_cpu_index instead of
5939         rs6000_select[1].string.
5940         (rs6000_option_override_internal): Likewise.
5941         (rs6000_handle_option): Don't assert that global structures are in
5942         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
5943         (rs6000_default_cpu): New variable.
5944         (rs6000_file_start): Set it instead of local default_cpu.  Check
5945         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
5946         global_options_set.x_rs6000_tune_index instead of rs6000_select.
5947         (rs6000_darwin_file_start): Check rs6000_default_cpu and
5948         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
5949         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
5950         rs6000_select): Remove.
5951         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
5952         Remove.
5953         (mcpu=, mtune=): Use Var, Init, Enum and Save.
5954         * config/rs6000/t-rs6000
5955         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
5956         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
5957         global_options_set.x_rs6000_cpu_index instead of
5958         rs6000_select[1].string.
5959         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
5960         global_options_set.x_rs6000_cpu_index instead of
5961         rs6000_select[1].string.
5962
5963 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
5964
5965         * config.gcc (libgcc_tm_file): Define instead of including files
5966         from ../../libgcc/config/ in tm_file.
5967         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
5968         * configure: Regenerate.
5969         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
5970         libgcc_tm.h, cs-libgcc_tm.h): New.
5971         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
5972         (clean): Remove libgcc_tm.h.
5973         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
5974         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
5975         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
5976
5977 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
5978
5979         PR target/48896
5980         * config/avr/avr.c (avr_ret_register): Return unsigned int
5981         instead of int.
5982         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
5983         it to avr_libcall_value.
5984         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
5985         expand_expr.
5986         (avr_expand_binop_builtin): Ditto.
5987         (avr_expand_unop_builtin): Ditto.
5988
5989 2011-05-10  DJ Delorie  <dj@redhat.com>
5990
5991         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
5992         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
5993         * config/rx/rx.c (rx_align_for_label): Add label and
5994         uses_threshold parameters.  Do not align when the label is not
5995         used enough.
5996         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
5997
5998 2011-05-10  Richard Guenther  <rguenther@suse.de>
5999
6000         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
6001         a series of conversions and apply foldings similar to what
6002         fold-const does.
6003         (tree_ssa_forward_propagate_single_use_vars): Call it.
6004
6005 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
6006
6007         PR tree-optimization/48611
6008         PR tree-optimization/48794
6009         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
6010         referenced from RESX or EH_DISPATCH arguments.
6011
6012         PR debug/48928
6013         * dfp.c (decimal_to_decnumber): Handle conversion from
6014         dconst{1,2,m1,half}.
6015
6016 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
6017
6018         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
6019         for !flag_prefer_avx128.
6020         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
6021
6022 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
6023
6024         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
6025         (fold_ternary_loc): Use expr_location_or.
6026
6027 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
6028
6029         PR debug/48853
6030         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
6031         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
6032         Pmode and mem_mode is not VOIDmode.
6033
6034 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
6035
6036         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
6037         TYPE_QUAL_RESTRICT): Convert to enum.
6038
6039 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
6040
6041         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
6042         (const_pow2_1_to_8_operand): Ditto.
6043         (const_pow2_1_to_128_operand): Ditto.
6044         (const_pow2_1_to_32768_operand): Ditto.
6045         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
6046         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
6047         in insn constraint to check integer value of operand 3.
6048         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
6049
6050         (PINSR_MODE): New mode iterator.
6051         (sse2p4_1): New mode attribute.
6052         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
6053         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
6054         iterator.  Use const_int_operand instead of
6055         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
6056         exact_log2 in insn constraint to check integer value of operand 3.
6057
6058 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
6059
6060         * config/i386/sse.md (blendbits): Remove mode attribute.
6061         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
6062         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
6063         Check integer value of operand 3 in insn constraint.
6064
6065 2011-05-09  Richard Guenther  <rguenther@suse.de>
6066
6067         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
6068         for diagnostics.
6069         (lto_symtab_merge): Likewise.  Do not register types here.
6070         (lto_symtab_merge_decls_2): Likewise.
6071         (lto_symtab_merge_decls_1): Likewise.
6072         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
6073         * gimple.c (enum gtc_mode): Declare.
6074         (gimple_types_compatible_p): Make static.
6075
6076 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6077
6078         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
6079         temporary register to match Pmode.
6080
6081 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
6082
6083         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
6084         and *vec_concatv4si_1_avx.
6085
6086 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
6087
6088         PR rtl-optimization/48927
6089         * ira-conflicts.c (commutative_constraint_p): Use
6090         recog_data.alternative_enabled_p to disable alternatives where
6091         "enabled" attribute is false.
6092         (get_dup_num): Ditto.
6093         * ira-lives.c (single_reg_class): Ditto.
6094         (ira_implicitly_set_insn_hard_regs): Ditto.
6095
6096 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
6097
6098         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
6099         (dataflow_set_preserve_mem_locs): Likewise.
6100
6101 2011-05-09  Philipp Thomas  <pth@suse.de>
6102
6103         * config/mep/mep.c (mep_validate_vliw): Syntax description
6104         should not be translated.
6105
6106 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
6107
6108         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
6109         * config/mips/mips-tables.opt: New file (generated).
6110         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
6111         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
6112         MIPS_ARCH_OPTION_NATIVE): Define.
6113         * config/mips/mips.c (mips_cpu_info_table): Move contents to
6114         mips-cpus.def.
6115         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
6116         mips_parse_cpu): Remove.
6117         (mips_cpu_info_from_opt, mips_default_arch): New.
6118         (mips_handle_option): Don't assert that global structures are in
6119         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
6120         (mips_option_override): Use new variables and functions to set
6121         state of these options.  Use strcmp to check for individual CPU names.
6122         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
6123         definition.
6124         * config/mips/mips.opt (march=): Use ToLower and Enum.
6125         (mips): Use ToLower, Enum and Var.
6126         (mtune=): Use ToLower and Enum.
6127         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
6128
6129 2011-05-08  Jan Hubicka  <jh@suse.cz>
6130
6131         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
6132         Arrange type pairs to be UID ordered.
6133         (gimple_lookup_type_leader): Make inline.
6134
6135 2011-05-09  Nick Clifton  <nickc@redhat.com>
6136
6137         PR target/48899
6138         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
6139         PROCESSOR_DEFAULT.
6140
6141         PR target/48897
6142         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
6143         variable 's'.
6144
6145 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
6146
6147         * combine.c (simplify_comparison): Abstract out parts into...
6148         (simplify_compare_const): ... new function.
6149         (try_combine): Generalize parallel arithmetic/compare combining
6150         to call simplify_compare_const() and CANONICALIZE_COMPARE().
6151
6152 2011-05-08  Jan Hubicka  <jh@suse.cz>
6153
6154         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
6155         (cgraph_create_virtual_clone): Call hooks once virtual clone
6156         is finished.
6157         * cgraph.h (cgraph_clone_node): Update prototype.
6158         * ipa-cp.c (ipcp_estimate_growth): Use
6159         estimate_ipcp_clone_size_and_time.
6160         * ipa-inline-transform.c (clone_inlined_nodes): Update.
6161         * lto-cgraph.c (input_node): Update.
6162         * ipa-inline.c (recursive_inlining): Update.
6163         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
6164         (evaluate_conditions_for_known_args): Break out from ...
6165         (evaluate_conditions_for_edge): ... here.
6166         (evaluate_conditions_for_ipcp_clone): New function.
6167         (inline_node_duplication_hook): Update clone summary based
6168         on parameter map.
6169         (estimate_callee_size_and_time): Rename to ...
6170         (estimate_node_size_and_time): take NODE instead of EDGE;
6171         take POSSIBLE_TRUTHS as argument.
6172         (estimate_callee_size_and_time): Update.
6173         (estimate_ipcp_clone_size_and_time): New function.
6174         (do_estimate_edge_time): Update.
6175
6176 2011-05-08  Richard Guenther  <rguenther@suse.de>
6177
6178         PR middle-end/48908
6179         PR middle-end/48905
6180         * expmed.c (expand_shift_1): Compute adjusted constant shift
6181         amount manually.
6182
6183 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
6184
6185         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
6186
6187 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
6188
6189         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
6190
6191 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
6192
6193         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
6194
6195 2011-05-07  Jan Hubicka  <jh@suse.cz>
6196
6197         * ipa-inline-transform.c (inline_call): Account when program size
6198         decreases.
6199         * ipa-inline.c (relative_time_benefit): New function.
6200         (edge_badness): Reorganize to be power 2 based; fix thinko when
6201         computing badness for negative growth; update comments to match
6202         reality; better dumps.
6203
6204 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6205
6206         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
6207         type to bool and adjust comment.
6208         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
6209         (fold_mathfn_compare): Remove calls to global_bindings_p.
6210         (fold_inf_compare): Likewise.
6211         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
6212         * c-tree.h (global_bindings_p): Adjust prototype.
6213         * c-decl.c (global_bindings_p): Return bool and simplify.
6214
6215 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
6216
6217         PR tree-optimization/48837
6218         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
6219         when accumulator transformation is performed.
6220
6221 2011-05-06  Jan Hubicka  <jh@suse.cz>
6222
6223         * i386.h (ix86_tune_indices): Add
6224         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
6225         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
6226         * i386.c (initial_ix86_tune_features): Add
6227         X86_SOFTARE_PREFETCHING_BENEFICIAL.
6228         (software_prefetching_beneficial_p): Remove predicate.
6229         (ix86_option_override_internal): Use new macro.
6230
6231 2011-05-06  Jan Hubicka  <jh@suse.cz>
6232
6233         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
6234
6235 2011-05-06  Jan Hubicka  <jh@suse.cz>
6236
6237         * cgraph.c (cgraph_add_thunk): Create real function node instead
6238         of alias node; finalize it and mark needed/reachale; arrange visibility
6239         to be right and add it into the corresponding same comdat group list.
6240         (dump_cgraph_node): Dump thunks.
6241         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
6242         cgraph_function_with_gimple_body_p,
6243         cgraph_first_function_with_gimple_body,
6244         cgraph_next_function_with_gimple_body): New functions.
6245         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
6246         New macros.
6247         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
6248         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
6249         * cgraphunit.c (cgraph_finalize_function): Only look into possible
6250         devirtualization when optimizing.
6251         (verify_cgraph_node): Verify thunks.
6252         (cgraph_analyze_function): Analyze thunks.
6253         (cgraph_mark_functions_to_output): Output thunks only in combination
6254         with function they are assigned to.
6255         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
6256         alias into normal node.
6257         (assemble_thunks): New functoin.
6258         (cgraph_expand_function): Use it.
6259         * lto-cgraph.c (lto_output_node): Stream thunks.
6260         (input_overwrite_node): Stream in thunks.
6261         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
6262         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
6263         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
6264         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
6265         (inline_analyze_function): Do not care about thunk jump functions.
6266         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
6267         * ipa-prop.c (ipa_prop_write_jump_functions): Use
6268         cgraph_function_with_gimple_body_p.
6269         * passes.c (do_per_function_toporder): Use
6270         cgraph_function_with_gimple_body_p.
6271         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
6272         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
6273         (function_called_by_processed_nodes_p): Likewise.
6274
6275 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
6276
6277         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
6278         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
6279         entries.
6280         (mabi=): Replace with separate entries for mabi=altivec,
6281         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
6282         mabi=ieeelongdouble and mabi=ibmlongdouble.
6283         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
6284         check for -mabi=spe without SPE ABI support here.
6285         (rs6000_handle_option): Replace OPT_mabi_ handling with
6286         OPT_mabi_altivec and OPT_mabi_spe handling.
6287
6288 2011-05-06  Cary Coutant  <ccoutant@google.com>
6289
6290         * dwarf2out.c (contains_subprogram_definition): New function.
6291         (should_move_die_to_comdat): Call it.
6292
6293 2011-05-06  Jeff Law  <law@redhat.com>
6294
6295         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
6296         remove_ctrl_stmt_and_useless_edges.
6297         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
6298         (fixup_template_block, thread_single_edge): Likewise.
6299         (mark_threaded_blocks): Use THREAD_TARGET.
6300
6301 2011-05-06  Alan Modra  <amodra@gmail.com>
6302
6303         PR target/48900
6304         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
6305         const0_rtx as the arg to the dummy __tls_get_addr libcall.
6306
6307 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
6308
6309         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
6310         constraint modifier to "r".
6311
6312 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
6313
6314         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
6315         fall through for OPT_mcmodel_.
6316
6317 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6318
6319         * config/s390/s390.c (s390_asm_trampoline_template): Comment
6320         instruction sizes.
6321         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
6322
6323 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6324
6325         PR target/47930
6326         * config/arm/arm.opt (marm): Document it.
6327         (mthumb): Reject negative variant.
6328
6329 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
6330
6331         PR target/48898
6332         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6333         Fix typo in "ccvt" variable name.
6334
6335 2011-05-06  Tristan Gingold  <gingold@adacore.com>
6336
6337         PR target/48895
6338         * config/vms/vms-ar.c (main): Remove cwd variable.
6339
6340 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
6341
6342         PR debug/48902
6343         * var-tracking.c (prepare_call_arguments): Move else before #endif.
6344
6345 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
6346
6347         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
6348         * gimplify.c (gimplify_switch_expr): Likewise.
6349         * omp-low.c (expand_omp_sections): Likewise.
6350         * tree-eh.c (lower_try_finally_switch): Likewise.
6351         (lower_eh_dispatch): Likewise.
6352         * tree.h (build_case_label): Declare.
6353         * tree.c (build_case_label): Define.
6354
6355 2011-05-05  Jason Merrill  <jason@redhat.com>
6356
6357         PR c++/40975
6358         * tree-inline.c (copy_tree_r): Use copy_statement_list.
6359         (copy_statement_list): Don't recurse.
6360         * stor-layout.c (copy_self_referential_tree_r): Don't allow
6361         STATEMENT_LIST.
6362
6363 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
6364
6365         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
6366         through from -mfpu= handling.
6367         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
6368
6369 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
6370
6371         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
6372         POST_MODIFY.
6373
6374 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
6375
6376         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
6377         for 11.31.
6378         (hppa[12]*-*-hpux11*): Ditto.
6379         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
6380         * config/ia64/hpux-unix2003.h: New.
6381         * config/pa/pa-hpux1131.opt: New.
6382         * config/pa/pa-hpux1131.h: New.
6383         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
6384         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
6385         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
6386
6387 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
6388
6389         PR debug/48853
6390         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
6391         instead of mode as 3rd argument to recursive call.
6392         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
6393         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
6394         VOIDmode.
6395         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
6396         don't give up if mode is Pmode and mem_mode is not VOIDmode.
6397         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
6398         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
6399
6400 2011-05-05  Julian Brown  <julian@codesourcery.com>
6401
6402         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
6403         parenthesis in D-register case.
6404
6405 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
6406
6407         * opt-functions.awk (var_type_struct): Handle Enum options.
6408         * optc-gen.awk: Don't check range of variables of character type.
6409         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
6410         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
6411         rs6000_sdata_name, rs6000_explicit_options): Remove.
6412         (rs6000_option_override_internal): Check for -malign-power here.
6413         Use global_options_set instead of rs6000_explicit_options.
6414         (rs6000_parse_fpu_option): Remove.
6415         (rs6000_handle_option): Access variables via opts and opts_set
6416         pointers.  Use error_at and warning_at.  Add fall-through
6417         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
6418         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
6419         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
6420         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
6421         here.  Don't use rs6000_parse_fpu_option.
6422         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
6423         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
6424         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
6425         (mrecip=): Use Var.
6426         (mspe): Use Var and Save.
6427         (mtraceback=): Use Enum and Var.
6428         (rs6000_traceback_type): New Enum and EnumValue entries.
6429         (mfloat-gprs=): Use Enum, Var and Save.
6430         (rs6000_float_gprs): New Enum and EnumValue entries.
6431         (mlong-double-): use Var and Save.
6432         (msched-costly-dep=, minsert-sched-nops=): Use Var.
6433         (malign-): Use Enum and Var.
6434         (rs6000_alignment_flags): New Enum and EnumValue entries.
6435         (mfpu=): Use Enum.
6436         (fpu_type_t): New Enum and EnumValue entries.
6437         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6438         global_options_set instead of rs6000_explicit_options.
6439         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6440         global_options_set instead of rs6000_explicit_options.
6441         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6442         global_options_set instead of rs6000_explicit_options.
6443         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6444         global_options_set instead of rs6000_explicit_options.
6445         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
6446         global_options_set instead of rs6000_explicit_options.
6447         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6448         global_options_set instead of rs6000_explicit_options.
6449         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
6450         definition.
6451         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6452         global_options_set instead of rs6000_explicit_options.
6453         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
6454         (rs6000_cmodel): New Enum and EnumValue entries.
6455         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6456         global_options_set instead of rs6000_explicit_options.
6457         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
6458         (mtls-size=): Use Enum and Var.
6459         (rs6000_tls_size): New Enum and EnumValue entries.
6460
6461 2011-05-05  Michael Matz  <matz@suse.de>
6462
6463         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
6464         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
6465         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
6466         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
6467         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
6468         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
6469         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
6470         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
6471         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
6472         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
6473         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
6474         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
6475         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
6476         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
6477         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
6478         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
6479
6480 2011-05-05  Richard Guenther  <rguenther@suse.de>
6481
6482         * expmed.c (expand_variable_shift): Rename to ...
6483         (expand_shift_1): ... this.  Take an expanded shift amount.
6484         For rotates recurse directly not building trees for the shift amount.
6485         (expand_variable_shift): Wrap around expand_shift_1.
6486         (expand_shift): Adjust.
6487
6488 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
6489
6490         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
6491
6492 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6493
6494         * tree.h (get_pending_sizes): Remove prototype.
6495         (put_pending_size): Likewise.
6496         (put_pending_sizes): Likewise.
6497         * stor-layout.c (pending_sizes): Delete.
6498         (get_pending_sizes): Likewise.
6499         (put_pending_size): Likewise.
6500         (put_pending_sizes): Likewise.
6501         (variable_size): Do not call put_pending_size and tidy up.
6502         * function.h (struct function): Remove dont_save_pending_sizes_p.
6503         * lto-streamer-in.c (input_function): Do not stream it.
6504         * lto-streamer-out.c (output_function): Likewise.
6505         * tree-inline.c (initialize_cfun): Do not copy it.
6506         * c-decl.c (store_parm_decls): Do not set it.
6507         * omp-low.c (create_task_copyfn): Likewise.
6508         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6509
6510 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
6511
6512         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
6513         conditions.
6514         (*movdf_internal): Ditto.
6515         (*movdf_internal_nointeger): Ditto.
6516         (*movsf_internal): Ditto.
6517
6518 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
6519
6520         * c-decl.c (finish_decl): Don't call get_pending_sizes.
6521         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
6522         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
6523         (c_variable_size): Remove.
6524         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
6525         call put_pending_sizes.
6526         (get_parm_info): Add parameter expr.  Use it to set
6527         arg_info->pending_sizes.
6528         (store_parm_decls): Use arg_info->pending_sizes instead or calling
6529         get_pending_sizes.
6530         * c-parser.c (c_parser_parms_declarator): Update call to
6531         c_parser_parms_list_declarator.
6532         (c_parser_parms_list_declarator): Take parameter expr.  Update
6533         call to push_parm_decl.  Update recursive call.  Don't call
6534         get_pending_sizes.  Update calls to get_parm_info.
6535         (c_parser_objc_method_definition): Update calls to
6536         c_parser_objc_method_decl and objc_start_method_definition.
6537         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
6538         (c_parser_objc_method_decl): Add parameter expr.  Update call to
6539         grokparm.
6540         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
6541         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
6542         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
6543
6544 2011-05-05  Michael Hope  <michael.hope@linaro.org>
6545
6546         PR pch/45979
6547         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
6548         __ARM_EABI__ hosts.
6549
6550 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6551
6552         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
6553         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
6554         (spu_output_mi_thunk): New function.
6555
6556 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6557
6558         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
6559         targetm.asm_out.print_operand.
6560         * config/sol2.c: Include target.h.
6561
6562 2011-05-04  Jan Hubicka  <jh@suse.cz>
6563
6564         * ipa-inline.c (reset_edge_caches): New function.
6565         (update_caller_keys): Add check_inlinablity_for; do not
6566         reset edge caches; remove now unnecesary loop.
6567         (update_callee_keys): Add comments; reset node_growth_cache of callee.
6568         (update_all_callee_keys): Likewise.
6569         (inline_small_functions): Sanity check cache; update code
6570         recomputing it.
6571
6572 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
6573
6574         PR rtl-optimization/47612
6575         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
6576         as the last insn of the sequence to be moved.
6577
6578 2011-05-04  Tobias Burnus  <burnus@net-b.de>
6579
6580         PR fortran/48864
6581         * doc/invoke.texi (Ofast): Document that it
6582         enables Fortran's -fno-protect-parens.
6583
6584 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
6585
6586         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
6587
6588 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
6589
6590         * stor-layout.c (variable_size): Do not issue errors.
6591
6592 2011-05-04  Richard Guenther  <rguenther@suse.de>
6593
6594         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
6595         for array-ref indices.
6596         (tree_coverage_counter_addr): Likewise.
6597         (build_fn_info_type): Use size_int for index types.
6598         (build_gcov_info): Likewise.
6599
6600 2011-05-04  Richard Guenther  <rguenther@suse.de>
6601
6602         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
6603         to build_int_cst.
6604         * c-typeck.c (really_start_incremental_init): Use bitsize_int
6605         for constructor indices.
6606         (push_init_level): Likewise.
6607
6608 2011-05-04  Richard Guenther  <rguenther@suse.de>
6609
6610         * explow.c (promote_mode): Move variable declarations before code.
6611
6612 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
6613
6614         * tree.h (build_function_type_array): Declare.
6615         (build_varargs_function_type_array): Declare.
6616         (build_function_type_vec, build_varargs_function_type_vec): Define.
6617         * tree.c (build_function_type_array_1): New function.
6618         (build_function_type_array): New function.
6619         (build_varargs_function_type_array): New function.
6620
6621 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
6622
6623         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
6624         before setting STMT_VINFO_TYPE.
6625
6626 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6627
6628         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
6629         instead of spu_pass_by_reference.
6630
6631 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6632
6633         * calls.c (emit_library_call_value_1): Invoke
6634         promote_function_mode hook on libcall arguments.
6635         * explow.c (promote_function_mode, promote_mode): Handle TYPE
6636         argument being NULL.
6637         * targhooks.c (default_promote_function_mode): Lisewise.
6638         * config/s390/s390.c (s390_promote_function_mode): Likewise.
6639         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
6640
6641         * doc/tm.texi: Document that TYPE argument might be NULL.
6642
6643 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
6644
6645         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
6646
6647 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
6648
6649         From Bernd Schmidt
6650         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
6651
6652 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6653
6654         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
6655         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
6656         Move ...
6657         * mips-tfile.c: ... here.
6658         Don't include coretypes.h, tm.h, filenames.h.
6659         (saber_stop): Remove definition and all calls.
6660         [__SABER__]: Remove.
6661         (__LINE__): Remove default.
6662         (Size_t, Ptrdiff_t): Remove definitions.
6663         Replace by size_t, ptrdiff_t.
6664         [!MIPS_DEBUGGING_INFO]: Remove.
6665         (SHASH_SIZE, THASH_SIZE): Remove defaults.
6666         (progname): Add const.
6667         (STATIC): Remove.
6668         Replace all uses by static.
6669         (ALIGN_SYMTABLE_OFFSET): Remove default.
6670         * mips-tdump.c: Don't include coretypes.h, tm.h.
6671         Remove !MIPS_IS_STAB guard.
6672         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
6673         $(TM_H), filenames.h dependencies.
6674         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
6675
6676 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
6677
6678         From Jie Zhang
6679         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
6680         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
6681
6682 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
6683
6684         From Bernd Schmidt
6685         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
6686         account and save/restore RETS.
6687         (PROFILE_BEFORE_PROLOGUE): Define.
6688         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
6689         the push insn to use predecrement.
6690
6691 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
6692
6693         From Jie Zhang
6694         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
6695
6696 2011-05-04  Nick Clifton  <nickc@redhat.com>
6697
6698         * config/mn10300/mn10300.c: Include cfgloop.h.
6699         (DUMP): New macro.
6700         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
6701         Lcc or a FLcc insn into the instruction stream.
6702         (mn10300_block_contains_call): New function.  Returns true if the
6703         given basic block contains a CALL insn.
6704         (mn10300_loop_contains_call_insn): New function.  Returns true if
6705         the given loop contains a CALL insn.
6706         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
6707         to use the SETLB and Lcc or FLcc insns.
6708         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
6709         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
6710         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
6711         disable the SETLB optimization.
6712         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
6713         __SETLB__ or __NO_SETLB__.
6714         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
6715         (movsf_internal): Handle MDR register.
6716         (cmpsi): Make visible.
6717         (setlb): New pattern.
6718         (Lcc): New pattern.
6719         (FLcc): New pattern.
6720
6721 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
6722
6723         PR target/48860
6724         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
6725         for reg<->xmm moves.
6726         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
6727         (vec_concatv2di_rex64_sse): Ditto.
6728         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
6729         (*vec_extractv2di_1_rex64): Ditto.
6730
6731         Revert:
6732         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
6733
6734         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
6735         reg<->xmm moves.
6736         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
6737
6738 2011-05-04  Richard Guenther  <rguenther@suse.de>
6739
6740         * tree.h (int_const_binop): Remove notrunc argument.
6741         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
6742         create integer constants that are properly truncated.
6743         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
6744         (const_binop): Remove zero notrunc argument to int_const_binop.
6745         (size_binop_loc): Likewise.
6746         (fold_div_compare): Likewise.
6747         (maybe_canonicalize_comparison_1): Likewise.
6748         (fold_comparison): Likewise.
6749         (fold_binary_loc): Likewise.
6750         (multiple_of_p): Likewise.
6751         * expr.c (store_constructor): Likewise.
6752         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
6753         (maybe_fold_stmt_addition): Likewise.
6754         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
6755         * stor-layout.c (layout_type): Likewise.
6756         * tree-data-ref.c (tree_fold_divides_p): Likewise.
6757         * tree-sra.c (build_ref_for_offset): Likewise.
6758         (build_user_friendly_ref_for_offset): Likewise.
6759         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
6760         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
6761         * tree-ssa-loop-niter.c (inverse): Likewise.
6762         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
6763         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
6764         * tree-switch-conversion.c (check_range): Likewise.
6765         (build_constructors): Likewise.
6766         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
6767         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
6768         (extract_range_from_assert): Likewise.
6769         (vrp_int_const_binop): Likewise.
6770         (extract_range_from_binary_expr): Likewise.
6771         (extract_range_from_unary_expr): Likewise.
6772         (check_array_ref): Likewise.
6773         (find_case_label_range): Likewise.
6774         (simplify_div_or_mod_using_ranges): Likewise.
6775         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
6776         comparing case labels for merging.
6777
6778 2011-05-03  Mark Wielaard  <mjw@redhat.com>
6779
6780         * dwarf2out.c (debug_str_hash_forced): Removed.
6781         (gen_label_for_indirect_string): Removed.
6782         (get_debug_string_label): Removed.
6783         (AT_string_form): Generate label directly.
6784         (output_indirect_string): Test indirect_string_node for
6785         DW_FORM_strp instead of checking label and refcount.
6786         (prune_indirect_string): Removed.
6787         (prune_unused_types): Don't check debug_str_hash_forced or
6788         call prune_indirect_string.
6789
6790 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
6791
6792         PR other/48093
6793         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
6794
6795 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
6796
6797         PR debug/47994
6798         PR debug/47919
6799         * combine.c (try_combine): Skip debug insns at m_split tests.
6800
6801 2011-04-26  Mark Wielaard  <mjw@redhat.com>
6802
6803         PR42288
6804         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
6805         when info_section_emitted.
6806
6807 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
6808
6809         * config/mips/mips-opts.h: New.
6810         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
6811         to mips-opts.h.
6812         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
6813         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
6814         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
6815         via opts pointer.
6816         * config/mips/mips.h (enum mips_code_readable_setting): Move to
6817         mips-opts.h.
6818         (mips_abi, mips_code_readable): Don't declare.
6819         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
6820         (mabi=): Use Enum and Var.
6821         (mips_abi): New Enum and EnumValue entries.
6822         (mcode-readable=): Use Enum and Var.
6823         (mips_code_readable_setting): New Enum and EnumValue entries.
6824         (mr10k-cache-barrier=): Use Enum and Var.
6825         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
6826
6827 2011-05-03  Jan Hubicka  <jh@suse.cz>
6828
6829         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
6830         replace hash by pointer map.
6831         (cgraph_node_set_element_def, cgraph_node_set_element,
6832         const_cgraph_node_set_element, varpool_node_set_element_def,
6833         varpool_node_set_element, const_varpool_node_set_element): Remove.
6834         (free_cgraph_node_set, free_varpool_node_set): New function.
6835         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
6836         * tree-emutls.c: Free varpool node set.
6837         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
6838         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
6839         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
6840         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
6841         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
6842         Move here from ipa.c; implement using pointer_map
6843         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
6844         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
6845         debug_cgraph_node_set, varpool_node_set_new,
6846         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
6847         dump_varpool_node_set, debug_varpool_node_set):
6848         Move to ipa-uitls.c.
6849         * passes.c (ipa_write_summaries): Update.
6850
6851 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6852
6853         From Mike Frysinger:
6854         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
6855         bf542/bf544/bf547/bf548/bf549.
6856
6857 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
6858
6859         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
6860
6861 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6862
6863         From Bernd Schmidt:
6864         * config/bfin/bfin.md (MOVCC): New mode_macro.
6865         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
6866         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
6867         comments from generated assembly.
6868
6869 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6870
6871         From Bernd Schmidt
6872         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
6873         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
6874         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
6875         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
6876         * config/bfin/lib1funcs.asm (___muldi3): New function.
6877
6878 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6879
6880         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
6881         build_function_type_list instead of build_function_type.
6882         Rearrange initialization of `args' to do so.
6883
6884 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6885
6886         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
6887         instead of build_function_type.
6888
6889 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6890
6891         * config/rs6000/rs6000.c (spe_init_builtins): Call
6892         build_function_type_list instead of build_function_type.
6893         (paired_init_builtins, altivec_init_builtins): Likewise.
6894         (builtin_function_type): Likewise.
6895
6896 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6897
6898         * config/sh/sh.c (sh_media_init_builtins): Call
6899         build_function_type_list instead of build_function_type.
6900
6901 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6902
6903         * config/sparc/sparc.c (sparc_file_end): Call
6904         build_function_type_list instead of build_function_type.
6905
6906 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6907
6908         * config/alpha/alpha.c (alpha_init_builtins): Call
6909         build_function_type_list instead of build_function_type.
6910
6911 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6912
6913         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
6914         build_function_type_list instead of build_function_type.
6915
6916 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6917
6918         * config/iq2000/i2000.c (iq2000_init_builtins): Call
6919         build_function_type_list instead of build_function_type.
6920         Delete `endlink' variable.
6921
6922 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6923
6924         * config/avr/avr.c (avr_init_builtins): Call
6925         build_function_type_list instead of build_function_type.
6926
6927 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6928
6929         * config/picochip/picochip.c (picochip_init_builtins): Call
6930         build_function_type_list instead of build_function_type.
6931         Delete `endlink' variable.
6932
6933 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
6934
6935         * config/bfin/bfin.c (bfin_init_builtins): Call
6936         build_function_type_list instead of build_function_type.
6937
6938 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6939
6940         From Bernd Schmidt
6941         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
6942         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
6943
6944 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6945
6946         From Jie Zhang:
6947         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
6948         libbffastfp overrides libgcc when -mfast-fp.
6949
6950 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6951
6952         Originally from Bernd Schmidt
6953         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
6954         * config/bfin/bfin.c (override_options): Test it and error if
6955         TARGET_FDPIC.
6956
6957 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
6958
6959         Originally From Bernd Schmidt
6960         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
6961         FD-PIC.
6962
6963 2011-05-03  Jeff Law  <law@redhat.com>
6964
6965         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
6966         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
6967         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
6968         than accessing AUX field directly.  Free the AUX field before
6969         clearing it.
6970         (thread_block, thread_through_loop_header): Likewise.
6971         (thread_single_edge, mark_threaded_blocks): Likewise.
6972         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
6973         (register_jump_thread): Do not attempt to thread to a NULL edge.
6974
6975 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
6976
6977         * function.c (init_function_start): Call decide_function_section.
6978         * varasm.c (decide_function_section): New function.
6979         (assemble_start_function): When not using
6980         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
6981         or first_function_block_is_cold.
6982         * rtl.h (decide_function_section): Declare.
6983
6984 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
6985             Jakub Jelinek  <jakub@redhat.com>
6986
6987         PR target/48774
6988         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
6989         only succeed if req_mode is the same as set_mode.
6990
6991 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
6992
6993         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
6994         * genemit.c (gen_exp): Handle RETURN.
6995         * emit-rtl.c (verify_rtx_sharing): Likewise.
6996         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
6997         * rtl.c (copy_rtx): RETURN is shared.
6998         * rtl.h (enum global_rtl_index): Add GR_RETURN.
6999         (ret_rtx): New.
7000         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
7001         * config/s390/s390.c (s390_emit_epilogue): Likewise.
7002         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
7003         * config/cris/cris.c (cris_expand_return): Likewise.
7004         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
7005         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
7006         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
7007         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
7008         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
7009         Likewise.
7010         * config/v850/v850.c (expand_epilogue): Likewise.
7011         * config/bfin/bfin.c (bfin_expand_call): Likewise.
7012         * config/arm/arm.md (epilogue): Likewise.
7013         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
7014         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
7015         variable to ret_reg.
7016
7017 2011-05-03  Richard Guenther  <rguenther@suse.de>
7018
7019         PR lto/48846
7020         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
7021         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
7022         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
7023
7024 2011-05-03  Richard Guenther  <rguenther@suse.de>
7025
7026         * c-decl.c (grokdeclarator): Instead of looking at
7027         TREE_OVERFLOW check if the constant fits in the index type.
7028
7029 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
7030
7031         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
7032         (vec_store_lanes<mode><mode>): Likewise.
7033
7034 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
7035
7036         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
7037         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
7038         convert_optab_index values.
7039         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
7040         * genopinit.c (optabs): Initialize the new optabs.
7041         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
7042         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
7043         (expand_STORE_LANES): New functions.
7044         * tree.h (build_array_type_nelts): Declare.
7045         * tree.c (build_array_type_nelts): New function.
7046         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
7047         (vect_model_load_cost): Likewise.
7048         (vect_store_lanes_supported, vect_load_lanes_supported)
7049         (vect_record_strided_load_vectors): Declare.
7050         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
7051         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
7052         (vect_transform_strided_load): Split out statement recording into...
7053         (vect_record_strided_load_vectors): ...this new function.
7054         * tree-vect-stmts.c (create_vector_array, read_vector_array)
7055         (write_vector_array, create_array_ref): New functions.
7056         (vect_model_store_cost): Add store_lanes_p argument.
7057         (vect_model_load_cost): Add load_lanes_p argument.
7058         (vectorizable_store): Try to use store-lanes functions for
7059         interleaved stores.
7060         (vectorizable_load): Likewise load-lanes and loads.
7061         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
7062         to vect_model_store_cost.
7063         (vect_build_slp_tree): Likewise vect_model_load_cost.
7064
7065 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
7066
7067         * hooks.h (hook_bool_mode_uhwi_false): Declare.
7068         * hooks.c (hook_bool_mode_uhwi_false): New function.
7069         * target.def (array_mode_supported_p): New hook.
7070         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
7071         * doc/tm.texi: Regenerate.
7072         * stor-layout.c (mode_for_array): New function.
7073         (layout_type): Use it.
7074         * config/arm/arm.c (arm_array_mode_supported_p): New function.
7075         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
7076
7077 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
7078
7079         PR target/48723
7080         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
7081         for -fstack-check if the size to allocate is negative.
7082
7083 2011-05-02  Lawrence Crowl  <crowl@google.com>
7084
7085         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
7086         (timevar_cond_start): New for starting a timer only when it is not
7087         already running.
7088         (timevar_cond_stop): New for stopping a timer when it was not already
7089         running.
7090
7091         * timevar.c (timevar_stop): Enable start/stop timers to start again.
7092         (timevar_cond_start): New as above.
7093         (timevar_cond_stop): New as above.
7094
7095         * timevar.def: Add start/stop timers for compiler phases,
7096         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
7097         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
7098         and TV_PHASE_FINALIZE.
7099         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
7100         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
7101         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
7102         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
7103         Make unused TV_OVERLOAD into a start/stop timer.
7104
7105         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
7106         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
7107         to indicate that they are start/stop timers.
7108
7109         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
7110         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
7111         Move initialization to do_compile.
7112         (do_compile): Add initialization from above.
7113         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
7114
7115         * c-decl.c (c_write_global_declarations): Add start/stop of
7116         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
7117
7118         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
7119         or TV_PARSE_INLINE, as appropriate.
7120         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
7121         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
7122
7123 2011-05-02  Jason Merrill  <jason@redhat.com>
7124
7125         PR c++/40975
7126         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
7127
7128 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
7129
7130         PR c/35445
7131         * c-decl.c (finish_decl): Only create a composite if the types are
7132         compatible.
7133
7134 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
7135
7136         * config/fr30/fr30-protos.h (Mmode): Don't define.
7137         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
7138         definition where used.
7139         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
7140         define.  Expand definitions where used.
7141         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
7142         Expand definitions where used.
7143         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
7144         rx_function_arg, rx_function_arg_advance,
7145         rx_function_arg_boundary): Expand definitions of those macros.
7146         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
7147         definition where used.
7148
7149 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
7150
7151         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
7152         reg<->xmm moves.
7153         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
7154         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
7155         with *movv2sf_internal_rex64_avx.
7156         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
7157         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
7158         Use %v prefix in insn mnemonic to handle TARGET_AVX.
7159         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
7160         "vex" in "prefix" attribute calculation.
7161         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
7162
7163 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
7164
7165         PR target/47951
7166         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
7167         inputs match the output.
7168
7169 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
7170
7171         PR target/47955
7172         * config/m68k/m68k.c (m68k_expand_prologue): Set
7173         current_function_static_stack_size.
7174
7175 2011-05-02   Jan Hubicka  <jh@suse.cz>
7176
7177         * lto-streamer.c (lto_streamer_cache_insert_1,
7178         lto_streamer_cache_lookup, lto_streamer_cache_create,
7179         lto_streamer_cache_delete): Use pointer map instead of hashtable.
7180         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
7181
7182 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
7183
7184         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
7185         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
7186         config/m68k/t-opts: New files.
7187         * config/m68k/m68k-tables.opt: New file (generated).
7188         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
7189         extra_options and m68k/t-opts to tmake_file.
7190         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
7191         (all_isas): Initialize using m68k-isas.def.
7192         (all_microarchs): Initialize using m68k-microarchs.def.
7193         (m68k_find_selection): Remove.
7194         (m68k_handle_option): Don't assert that global structures are in
7195         use.  Use error_at.  Access variables via opts pointer.  Don't
7196         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
7197         directly for -m68020-40 and -m68020-60.
7198         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
7199         m68k_tune_entry here.
7200         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
7201         to m68k-opts.h.
7202         (m68k_library_id_string): Remove declaration.
7203         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
7204         (m68k_library_id_string): New Variable.
7205         (march=, mcpu=, mtune=): Use Enum and Var.
7206
7207 2011-05-02  Richard Guenther  <rguenther@suse.de>
7208
7209         * varasm.c (output_constructor_regular_field): Compute zero-based
7210         index with double-ints.  Make sure to ICE instead of producing
7211         wrong code.
7212         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
7213         in asserts.  Properly use a signed type.
7214
7215 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
7216
7217         * config/i386/sse.md (V): New mode iterator.
7218         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
7219         TARGET_SSE2.
7220         (V_256): Rename from AVX256MODE.
7221         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
7222         condition to all users.
7223         (VF1): Ditto.
7224         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
7225         condition to all users.
7226         (VF_128): Make V4SF mode unconditional.
7227         (VF_256): Rename from AVX256MODEF2P.
7228         (VI4F_128): Rename from SSEMODE4S.
7229         (VI8F_128): Rename from SSEMODE2D.
7230         (VI4F_256): Rename from AVX256MODE8P.
7231         (VI8F_256): Rename from AVX256MODE4P.
7232         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
7233         (ssescalarmodesuffix): Remove SF and DF modes.
7234         (SSEMODE124): Remove.
7235         (SSEMODE1248): Ditto.
7236         (SSEMODEF2P): Ditto.
7237         (AVXMODEF2P): Ditto.
7238         (AVXMODEFDP): Ditto.
7239         (AVXMODEFSP): Ditto.
7240         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
7241         unconditional.
7242         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
7243         unconditional.
7244         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
7245         xop_pcmov_<mode>256.  Use V mode iterator.
7246
7247         Adjust RTX patterns globally for renamed mode attributes.
7248
7249 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7250
7251         * haifa-sched.c (sched_emit_insn): Emit insn before first
7252         non-scheduled insn.  Inform back-end about new insn.  Add
7253         new insn to scheduled_insns list.
7254
7255 2011-05-02  Richard Guenther  <rguenther@suse.de>
7256
7257         PR tree-optimization/48822
7258         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
7259         (process_scc): Indicate which iteration we start.
7260
7261 2011-05-02  Jan Hubicka  <jh@suse.cz>
7262
7263         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
7264         (lto_section_overrun): New.
7265         * lto-section-out.c (append_block): Rename to ...
7266         (lto_append_block): ... this one; export.
7267         (lto_output_1_stream): Move lto lto-streamer.h
7268         (lto_output_data_stream): Update.
7269         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
7270         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
7271         functions.
7272
7273 2011-05-02  Richard Guenther  <rguenther@suse.de>
7274
7275         * tree.c (tree_code_counts): New global array.
7276         (record_node_allocation_statistics): Count individual tree codes.
7277         (dump_tree_statistics): Dump individual code stats.
7278
7279 2011-05-01  Jan Hubicka  <jh@suse.cz>
7280
7281         * ipa-inline.c (caller_growth_limits): Fix thinko when
7282         looking for largest stack frame.
7283         * ipa-inline.h (dump_inline_summary): Declare.
7284         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
7285         on stack usage.
7286         (dump_inline_summary): Export.
7287         (debug_inline_summary): Declare as DEBUG_FUNCTION.
7288
7289 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
7290
7291         * reginfo.c (memory_move_cost): Change rclass argument type form
7292         'enum reg_class' to reg_class_t.
7293         * reload.h (memory_move_cost): Update prototype.
7294         * postreload.c reload_cse_simplify_set): Change type dclass var to
7295         reg_class_t.
7296         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
7297         Update prototype.
7298         (ira_allocate_and_set_costs): Change aclass argument type form
7299         'enum reg_class' to reg_class_t.
7300         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
7301         Change aclass argument type to reg_class_t.
7302         (update_conflict_hard_reg_costs): Change type aclass and pref vars
7303         to reg_class_t.
7304         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
7305         memory_move_cost call.
7306
7307         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
7308         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
7309         Change type tmp var to reg_class_t.
7310
7311 2011-04-30  Jan Hubicka  <jh@suse.cz>
7312
7313         * ipa-inline.c (can_inline_edge_p): Disregard limits when
7314         inlining into function with flatten attribute.
7315         (want_inline_small_function_p): Be more realistic about inlining
7316         cold calls where callee size grows.
7317
7318 2011-04-30  Jan Hubicka  <jh@suse.cz>
7319
7320         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
7321         flags.
7322
7323 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
7324
7325         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
7326         PRINT_OPERAND_PUNCT_VALID_P): Remove.
7327         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
7328         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
7329         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7330         (print_operand): Rename to...
7331         (sparc_print_operand): ...this. Make static. Adjust
7332         sparc_print_operand function call.
7333         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
7334         functions.
7335
7336 2011-04-30  Jan Hubicka  <jh@suse.cz>
7337
7338         PR middle-end/48752
7339         * ipa-inline.c (early_inliner): Disable when doing late
7340         addition of function.
7341
7342 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
7343
7344         * dwarf2out.c (get_address_mode): New inline.
7345         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
7346         if not dwarf_strict emit
7347         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
7348         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
7349         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
7350         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
7351         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
7352         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
7353         mem_loc_descriptor callers.
7354         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
7355         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
7356         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
7357         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
7358         (base_types): New variable.
7359         (get_base_type_offset, calc_base_type_die_sizes,
7360         base_type_for_mode, mark_base_types, base_type_cmp,
7361         move_marked_base_types): New functions.
7362         (calc_die_sizes): Assert that die_offset is 0 or equal to
7363         next_die_offset.
7364         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
7365         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
7366         callers.  If not dwarf_strict, call mem_loc_descriptor even for
7367         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
7368         (gen_subprogram_die): Don't give up on call site parameters
7369         with non-integral or large integral modes.  Adjust
7370         mem_loc_descriptor callers.
7371         (prune_unused_types): Call prune_unused_types_mark on base_types
7372         vector entries.
7373         (resolve_addr): Call mark_base_types.
7374         (dwarf2out_finish): Call move_marked_base_types.
7375
7376         PR tree-optimization/48809
7377         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
7378         type.
7379         (gen_inbound_check): Don't compute index_expr - range_min in utype
7380         again, instead reuse SSA_NAME initialized in build_arrays.
7381         Remove two useless gsi_for_stmt calls.
7382
7383 2011-04-29  Jeff Law  <law@redhat.com>
7384
7385         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
7386
7387 2011-04-29  Martin Jambor  <mjambor@suse.cz>
7388
7389         * cgraph.h (cgraph_postorder): Remove declaration.
7390         * ipa-utils.h (ipa_free_postorder_info): Declare.
7391         (ipa_reverse_postorder): Likewise.
7392         * cgraphunit.c: Include ipa-utils.h.
7393         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
7394         * ipa-inline.c: Include ipa-utils.h.
7395         (ipa_inline): Update call to ipa_reverse_postorder.
7396         * ipa-pure-const.c (propagate_pure_const): Update call to
7397         ipa_reduced_postorder and ipa_print_order.  Call
7398         ipa_free_postorder_info to clean up.
7399         (propagate_nothrow): Likewise.
7400         * ipa-reference.c (propagate): Removed a useless call to
7401         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
7402         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
7403         * ipa.c: Include ipa-utils.h.
7404         (ipa_profile): Update call to ipa_reverse_postorder.
7405         (cgraph_postorder): Moved to...
7406         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
7407         (ipa_utils_print_order): Renamed to ipa_print_order.
7408         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
7409         comments.
7410         (ipa_free_postorder_info): New function.
7411         * passes.c: Include ipa-utils.h.
7412         (do_per_function_toporder): Update call to ipa_reverse_postorder.
7413         (ipa_write_summaries): Likewise.
7414         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
7415         (cgraphunit.o): Likewise.
7416         (ipa.o): Likewise.
7417         (ipa-inline.o): Likewise.
7418
7419 2011-04-29  Jan Hubicka  <jh@suse.cz>
7420
7421         * gcc.dg/tree-ssa/inline-10.c: New testcase.
7422         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
7423         * ipa-inline.h (clause_t): Turn into unsigned int.
7424         * ipa-inline-analysis.c (add_clause): Do more simplification.
7425         (and_predicates): Shortcut more cases.
7426         (predicates_equal_p): Move forward; check that clauses are properly
7427         ordered.
7428         (or_predicates): Shortcut more cases.
7429         (edge_execution_predicate): Rewrite as...
7430         (set_cond_stmt_execution_predicate): ... this function; handle
7431         __builtin_constant_p.
7432         (set_switch_stmt_execution_predicate): New .
7433         (compute_bb_predicates): New.
7434         (will_be_nonconstant_predicate): Update TODO.
7435         (estimate_function_body_sizes): Use compute_bb_predicates
7436         and free them later, always try to estimate if stmt is constant.
7437         (estimate_time_after_inlining, estimate_size_after_inlining):
7438         Gracefully handle optimized out edges.
7439         (read_predicate): Fix off by one error.
7440
7441 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7442
7443         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
7444
7445 2011-04-27  Xinliang David Li  <davidxl@google.com>
7446
7447         * tree-profile.c (init_ic_make_global_vars): Set
7448         tls attribute on ic vars.
7449         * coverage.c (coverage_end_function): Initialize
7450         function_list with zero.
7451
7452 2011-04-29  Richard Guenther  <rguenther@suse.de>
7453
7454         * builtins.c (fold_builtin_classify_type): Use integer_type_node
7455         for the type of the result.
7456         (fold_builtin_isascii): Likewise.
7457         (fold_builtin_toascii): Use integer_type_node where appropriate.
7458         (fold_builtin_logb): Likewise.
7459         (fold_builtin_frexp): Likewise.
7460         (fold_builtin_strstr): Likewise.
7461         (fold_builtin_strpbrk): Likewise.
7462         (fold_builtin_fputs): Likewise.
7463         (fold_builtin_sprintf): Likewise.
7464         (fold_builtin_snprintf): Likewise.
7465         (fold_builtin_printf): Likewise.
7466         (do_mpfr_remquo): Use a proper type for the assigned constant.
7467         (do_mpfr_lgamma_r): Likewise.
7468         * dwarf2out.c (resolve_one_addr): Use size_int.
7469         * except.c (init_eh): Likewise.
7470         (assign_filter_values): Use integer_type_node for filter values.
7471         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
7472         indices.
7473         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
7474         for EH region numbers.
7475         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
7476         for the shift amount.
7477
7478 2011-04-29  Richard Guenther  <rguenther@suse.de>
7479
7480         * expr.h (expand_shift): Rename to ...
7481         (expand_variable_shift): ... this.
7482         (expand_shift): Take a constant shift amount.
7483         * expmed.c (expand_shift): Rename to ...
7484         (expand_variable_shift): ... this.
7485         (expand_shift): New wrapper around expand_variable_shift.
7486         * expr.c (convert_move, emit_group_load_1, emit_group_store,
7487         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
7488         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
7489         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
7490         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
7491         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
7492         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
7493         emit_store_flag_1, emit_store_flag): Likewise.
7494         * builtins.c (expand_builtin_signbit): Likewise.
7495         * calls.c (load_register_parameters): Likewise.
7496         * function.c (assign_parm_setup_block): Likewise.
7497         * lower-subreg.c (resolve_shift_zext): Likewise.
7498         * optabs.c (widen_bswap, expand_abs_nojump,
7499         expand_one_cmpl_abs_nojump, expand_float): Likewise.
7500         * spu/spu.c (spu_expand_extv): Likewise.
7501         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
7502
7503 2011-04-29  Richard Guenther  <rguenther@suse.de>
7504
7505         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
7506         for the remapped region number.
7507         * predict.c (build_predict_expr): Use integer_type_node for the
7508         predict kind.
7509         * fold-const.c (fold_binary_loc): Use integer_type_node for
7510         the shift amount.  Use a proper type for the PLUS_EXPR operand.
7511
7512 2011-04-29  Michael Matz  <matz@suse.de>
7513
7514         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
7515         other trees that just builtins.
7516         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
7517
7518 2011-04-29  Richard Guenther  <rguenther@suse.de>
7519
7520         * tree-nested.c (get_trampoline_type): Use size_int.
7521         (get_nl_goto_field): Likewise.
7522         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
7523         for all indexes.
7524         (lower_eh_constructs_2): Likewise.
7525         (lower_resx): Likewise.
7526         (lower_eh_dispatch): Likewise.
7527         * tree-mudflap.c (mf_build_string): Use size_int.
7528         (mudflap_register_call): Use integer_type_node for the flag.
7529         (mudflap_enqueue_constant): Use size_int.
7530         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
7531         instead of rebuilding it.
7532
7533 2011-04-29  Richard Guenther  <rguenther@suse.de>
7534
7535         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
7536         Handle OBJ_TYPE_REF.
7537         (find_func_aliases_for_call): Use it more consistently.
7538
7539 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
7540
7541         * haifa-sched.c (last_nondebug_scheduled_insn): New.
7542         (rank_for_schedule): Use it.
7543         (schedule_block): Set it.
7544
7545 2011-04-28  David Li  <davidxl@google.com>
7546
7547         * tree.c (crc32_string): Use crc32_byte.
7548         (crc32_byte): New function.
7549         * tree.h (crc32_byte): New function.
7550         * gcov.c (read_graph_file): Handle new cfg_cksum.
7551         (read_count_file): Ditto.
7552         * profile.c (instrument_values): Ditto.
7553         (get_exec_counts): Ditto.
7554         (read_profile_edge_counts): Ditto.
7555         (compute_branch_probabilities): Ditto.
7556         (compute_value_histograms): Ditto.
7557         (branch_prob): Ditto.
7558         (end_branch_prob): Ditto.
7559         * coverage.c (read_counts_file): Ditto.
7560         (get_coverage_counts): Ditto.
7561         (tree_coverage_counter_addr): Ditto.
7562         (coverage_checksum_string): Ditto.
7563         (coverage_begin_output): Ditto.
7564         (coverage_end_function): Ditto.
7565         (build_fn_info_type): Ditto.
7566         (build_fn_info_value): Ditto.
7567         * libgcov.c (gcov_exit): Ditto.
7568         * gcov-dump.c (tag_function): Ditto.
7569         (compute_checksum): Remove.
7570
7571 2011-04-29  Alan Modra  <amodra@gmail.com>
7572
7573         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7574         unspec plus offset.  Tidy macho code.
7575
7576 2011-04-29  Martin Jambor  <mjambor@suse.cz>
7577
7578         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
7579         node instead of a decl.  Update all callers.
7580         * cgraph.h: Update declaration.
7581
7582 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
7583
7584         PR tree-optimization/48765
7585         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
7586         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
7587         to indicate if loop aware SLP is being used.  Scan the statements
7588         and update the vectorization factor according to the type of
7589         vectorization before statement analysis.
7590         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
7591         pass it to vect_analyze_loop_operations.
7592         (vectorizable_reduction): Set number of copies to 1 in case of pure
7593         SLP statement.
7594         * tree-vect-stmts.c (vectorizable_conversion,
7595         vectorizable_assignment, vectorizable_shift,
7596         vectorizable_operation, vectorizable_type_demotion,
7597         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
7598         Likewise.
7599         (vectorizable_condition): Move the check that it is not SLP
7600         vectorization before the number of copies check.
7601         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
7602         to vectorize the loop using SLP.
7603
7604 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
7605
7606         PR middle-end/48597
7607         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
7608         inline asm.
7609
7610 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
7611
7612         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
7613         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
7614         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
7615         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
7616         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
7617         linux*.h headers.
7618         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
7619         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7620         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7621         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7622         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7623         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
7624         REG_NAME.
7625         * config/i386/linux.h (REG_NAME): Don't define.
7626         * config/i386/linux64.h (REG_NAME): Don't define.
7627         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
7628         Undefine before defining.
7629
7630 2011-04-28  Jan Hubicka  <jh@suse.cz>
7631
7632         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
7633         nonconstant_names array.
7634         (estimate_function_body_sizes): Build nonconstant_names array; handle
7635         BUILT_IN_CONSTANT_P.
7636
7637 2011-04-28  Richard Guenther  <rguenther@suse.de>
7638
7639         PR bootstrap/48804
7640         Revert
7641         2011-04-28  Richard Guenther  <rguenther@suse.de>
7642
7643         * tree-ssa-structalias.c (solve_constraints): Build succ graph
7644         as late as possible.
7645
7646 2011-04-28  Richard Guenther  <rguenther@suse.de>
7647
7648         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
7649         (debug_constraint): Do it here.
7650         (dump_constraints): And here.
7651         (rewrite_constraints): And here.
7652         (dump_constraint_edge): Remove.
7653         (dump_constraint_graph): Rewrite to produce DOT output.
7654         (solve_constraints): Build succ graph as late as possible.
7655         Dump constraint graphs before and after solving.
7656
7657 2011-04-28  Richard Guenther  <rguenther@suse.de>
7658
7659         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7660         New function split out from ...
7661         (find_func_aliases): ... here.  Call it.
7662         (find_func_aliases_for_call): Likewise.
7663
7664 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7665
7666         * internal-fn.h (internal_fn_name_array): Declare.
7667         (internal_fn_flags_array): Likewise.
7668
7669 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
7670
7671         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
7672         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
7673         Move from sse.md.
7674         (ssemodefsuffix): Remove.
7675         (ssevecmodesuffix): New mode attribute.
7676         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
7677         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
7678         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
7679         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
7680         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
7681         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
7682         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
7683         ssemodesuffix mode attribute.
7684         (float splitters): Use ssevecmodesuffix mode attribute.
7685         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
7686         (sseinsmode): Rename from avxvecmode.
7687         (avxsizesuffix): Rename from avxmodesuffix.
7688         (sseintvecmode): Rename from avxpermvecmode.
7689         (ssedoublevecmode): Rename from ssedoublesizemode.
7690         (ssehalfvecmode): Rename from avxhalfvecmode.
7691         (ssescalarmode): Rename from avxscalarmode.
7692         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
7693         templates for ssemodesuffix mode attribute.
7694         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
7695         mode attribute.
7696
7697         Adjust RTX patterns globally for renamed mode attributes.
7698
7699 2011-04-27  Jan Hubcika  <jh@suse.cz>
7700
7701         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
7702         * ipa-inline-analysis.c: Include alloc-pool.h.
7703         (edge_predicate_pool): New.
7704         (trye_predicate_p): New function
7705         (false_predicate_p): New function.
7706         (add_clause): Sanity check that false clauses are "optimized";
7707         never add clauses to predicate that is already known to be false.
7708         (and_predicate): Use flase_predicate_p.
7709         (evaulate_predicate): Rename to ...
7710         (evaluate_predicate): ... this one; update all callers; assert
7711         that false is not listed among possible truths.
7712         (dump_predicate): Use true_predicate_p.
7713         (account_size_time): Use false_predicate_p.
7714         (evaulate_conditions_for_edge): Rename to ...
7715         (evaluate_conditions_for_edge) ... this one.
7716         (edge_set_predicate): New function.
7717         (inline_edge_duplication_hook): Duplicate edge predicates.
7718         (inline_edge_removal_hook): Free edge predicates.
7719         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
7720         (dump_inline_summary): Update.
7721         (estimate_function_body_sizes): Set edge predicates.
7722         (estimate_calls_size_and_time): Handle predicates.
7723         (estimate_callee_size_and_time): Update.
7724         (remap_predicate): Add toplev_predicate; update comment.
7725         (remap_edge_predicates): New function.
7726         (inline_merge_summary): Compute toplev predicate; update.
7727         (read_predicate): New function.
7728         (read_inline_edge_summary): Use it.
7729         (inline_read_section): Likewise.
7730         (write_predicate): New function.
7731         (write_inline_edge_summary): Use it.
7732         (inline_write_summary): Likewise.
7733         (inline_free_summary): Free alloc pool and edge summary vec.
7734
7735 2011-04-27  Richard Guenther  <rguenther@suse.de>
7736
7737         * tree-ssa-structalias.c (changed_count): Remove.
7738         (changed): Use a bitmap.
7739         (unify_nodes): Adjust.
7740         (do_sd_constraint): Likewise.
7741         (do_ds_constraint): Likewise.
7742         (do_complex_constraint): Likewise.
7743         (solve_graph): Likewise.
7744
7745 2011-04-27  Jan Hubicka  <jh@suse.cz>
7746
7747         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
7748
7749 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
7750
7751         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
7752         (avx_vperm2f128_*_operand): Ditto.
7753         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
7754         Use avx_vpermilp_parallel in insn condition.
7755         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
7756         Use avx_vperm2f128_parallel in insn condition.
7757
7758 2011-04-27  Richard Guenther  <rguenther@suse.de>
7759
7760         * Makefile.in (tree-ssa-structalias.o): Remove
7761         gt-tree-ssa-structalias.h dependency.
7762         (GTFILES): Remove tree-ssa-structalias.c.
7763         * tree.c (allocate_decl_uid): New function.
7764         (make_node_stat): Use it.
7765         (copy_node_stat): Likewise.
7766         * tree.h (allocate_decl_uid): Declare.
7767         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
7768         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
7769         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
7770         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7771         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
7772         (struct heapvar_map): Likewise.
7773         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
7774         heapvar_insert): Likewise.
7775         (make_heapvar_for): Rename to ...
7776         (make_heapvar): ... this.  Simplify.
7777         (fake_var_decl_obstack): New global var.
7778         (build_fake_var_decl): New function.
7779         (make_constraint_from_heapvar): Adjust.
7780         (handle_lhs_call): Likewise.
7781         (create_function_info_for): Likewise.
7782         (intra_create_variable_infos): Likewise.
7783         (init_alias_vars): Allocate fake_var_decl_obstack.
7784         (init_alias_heapvars, delete_alias_heapvars): Remove.
7785         (compute_points_to_sets): Do not call init_alias_heapvars.
7786         (ipa_pta_execute): Likewise.
7787         (delete_points_to_sets): Free fake_var_decl_obstack.
7788
7789 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7790
7791         * config/spu/divmovti4.c (union qword_UTItype): New data type.
7792         (si_from_UTItype, si_to_UTItype): New functions.
7793         (__udivmodti4): Use them to implement type-punning.
7794         * config/spu/multi3.c (union qword_TItype): New data type.
7795         (si_from_TItype, si_to_TItype): New functions.
7796         (__multi3): Use them to implement type-punning.
7797
7798 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7799
7800         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
7801
7802 2011-04-27  Jan Hubicka  <jh@suse.cz>
7803
7804         * ipa-prop.c (function_insertion_hook_holder): New holder.
7805         (ipa_add_new_function): New function.
7806         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
7807         Register/deregister holder.
7808
7809 2011-04-27  Richard Guenther  <rguenther@suse.de>
7810
7811         PR tree-optimization/48772
7812         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
7813
7814 2011-04-27  Richard Guenther  <rguenther@suse.de>
7815
7816         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
7817         TARGET_MEM_REF handling.
7818
7819 2011-04-27  Nick Clifton  <nickc@redhat.com>
7820
7821         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
7822         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
7823         (REG_CLASS_NAMES): Likewise.
7824         (REG_CLASS_CONTENTS): Likewise.
7825         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
7826         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
7827         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
7828         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
7829         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
7830         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
7831         duplicate register classes.
7832         (frv_class_likely_spilled_p): Likewise.
7833         (frv_register_move_cost): Likewise.
7834
7835         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
7836         end of the regno_reg_class array.
7837
7838 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
7839
7840         PR c/48742
7841         * c-typeck.c (build_binary_op): Don't wrap arguments if
7842         int_operands is true.
7843
7844 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
7845
7846         PR target/48767
7847         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
7848         targetm.calls.must_pass_in_stack for void type.
7849
7850 2011-04-26  Jan Hubicka  <jh@suse.cz>
7851
7852         * cgraphbuild.c (build_cgraph_edges): Update call
7853         of cgraph_create_edge and cgraph_create_indirect_edge.
7854         * cgraph.c (cgraph_create_edge_including_clones,
7855         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
7856         cgraph_update_edges_for_call_stmt_node): Do not take nest
7857         argument; do not initialize call_stmt_size/time.
7858         (dump_cgraph_node): Do not dump nest.
7859         (cgraph_clone_edge): Do not take loop_nest argument;
7860         do not propagate it; do not clone call_stmt_size/time.
7861         (cgraph_clone_node): Likewise.
7862         (cgraph_create_virtual_clone): Update.
7863         * cgraph.h (struct cgraph_edge): Remove
7864         call_stmt_size/call_stmt_time/loop_nest.
7865         (cgraph_create_edge, cgraph_create_indirect_edge,
7866         cgraph_create_edge_including_clones, cgraph_clone_node): Update
7867         prototype.
7868         * tree-emutls.c (gen_emutls_addr): Update.
7869         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
7870         loop_nest; handle indirect calls, too.
7871         (clone_inlined_nodes): Do not care about updating inline summaries.
7872         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
7873         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
7874         stream call_stmt_size/call_stmt_time/loop_nest.
7875         * ipa-inline.c (edge_badness): Update.
7876         (ipa_inline): dump summaries after inlining.
7877         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
7878         New.
7879         (inline_edge_summary): New function.
7880         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
7881         (inline_edge_removal_hook): Handle edge summaries.
7882         (inline_edge_duplication_hook): New hook.
7883         (inline_summary_alloc): Alloc hooks.
7884         (initialize_growth_caches): Do not register removal hooks.
7885         (free_growth_caches); Do not free removal hook.
7886         (dump_inline_edge_summary): New function.
7887         (dump_inline_summary): Use it.
7888         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
7889         (inline_update_callee_summaries): New function.
7890         (inline_merge_summary): Use it.
7891         (do_estimate_edge_time, do_estimate_edge_growth): Update.
7892         (read_inline_edge_summary): New function.
7893         (inline_read_section): Use it.
7894         (write_inline_edge_summary): New function.
7895         (inline_write_summary): Use it.
7896         (inline_free_summary): Free edge new holders.
7897         * tree-inline.c (copy_bb): Update.
7898
7899 2011-04-26  Jason Merrill  <jason@redhat.com>
7900
7901         * tree-eh.c (lower_try_finally_switch): Create the label along with
7902         the CASE_LABEL_EXPR.
7903
7904 2011-04-26  David S. Miller  <davem@davemloft.net>
7905             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7906
7907         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
7908         * configure: Regenerate.
7909
7910 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7911
7912         PR target/48258
7913         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
7914         reduction.
7915         (VEC_reduc): New code iterator and splitters for vector reduction.
7916         (VEC_reduc_name): Ditto.
7917         (VEC_reduc_rtx): Ditto.
7918         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
7919         (reduc_<VEC_reduc_name>_v4sf): Ditto.
7920
7921         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
7922         support for extracting SF on VSX.
7923
7924         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
7925         generating xscvspdp.
7926         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
7927         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
7928         double add, minimum, maximum vector reduction.
7929         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
7930         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
7931         optimize double vector reduction.
7932         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
7933
7934 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
7935
7936         * config/fr30/fr30.h (inhibit_libc): Don't define.
7937         * config/m32r/m32r-protos.h: Correct comment.
7938         * config/v850/v850.h (GHS_default_section_names,
7939         GHS_current_section_names): Use tree, not union tree_node *.
7940
7941 2011-04-26  Xinliang David Li  <davidxl@google.com>
7942
7943         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
7944         * c-family/c-opts.c (c_common_handle_option): Set
7945         warn_maybe_uninitialized.
7946         * opts.c (common_handle_option): Ditto.
7947         * common.opt:  New option.
7948         * tree-ssa.c (warn_uninit): Add one more parameter.
7949         (warn_uninitialized_var): Pass warning code.
7950         * tree-flow.h: Interface change.
7951
7952 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7953
7954         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
7955         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
7956         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
7957
7958 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7959
7960         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
7961         * config/mips/mips.opt (mmips-tfile): Remove.
7962
7963         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
7964         mips-tdump reference to ...
7965         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
7966         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
7967         reference by Tru64 UNIX.
7968
7969 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
7970
7971         PR debug/48768
7972         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
7973         is error_mark_node, set value to NULL.
7974
7975         PR tree-optimization/48734
7976         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
7977         if return value from maybe_fold_*_comparsions isn't something
7978         the code is prepared to handle.
7979
7980 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
7981
7982         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
7983         mode check.
7984         (ext_QIreg_nomode_operands): Remove.
7985         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
7986         (*andsi_1): Ditto.
7987         (*andhi_1): Ditto.
7988
7989 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
7990
7991         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
7992
7993 2011-04-26  Richard Guenther  <rguenther@suse.de>
7994
7995         * c-typeck.c (build_unary_op): Do not expand array-refs via
7996         pointer arithmetic.  Only adjust qualifiers for function types.
7997
7998 2011-04-26  Richard Guenther  <rguenther@suse.de>
7999
8000         PR middle-end/48694
8001         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
8002         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
8003         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
8004         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
8005
8006 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
8007
8008         * doc/extend.texi: Document __underlying_type.
8009
8010 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
8011
8012         * config/rs6000/titan.md (automata_option "progress"): Remove.
8013
8014 2011-04-25  Jeff Law  <law@redhat.com>
8015
8016         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
8017
8018 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
8019
8020         * system.h (ENUM_BITFIELD): Remove.
8021
8022 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
8023             Eric Botcazou  <ebotcazou@adacore.com>
8024
8025         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
8026         for STORE_FLAG_VALUE==-1 case.
8027
8028 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
8029
8030         PR target/43804
8031         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
8032         LEGITIMATE_PIC_OPERAND_P.
8033
8034 2011-04-24  Jan Hubicka  <jh@suse.cz>
8035
8036         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
8037         WPA hack.
8038         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
8039         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
8040         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
8041         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
8042         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
8043         Sanity check predicate length.
8044         (remap_predicate): Likewise; sanity check jump functions.
8045         (inline_read_section, inline_write_summary): Sanity check
8046         predicate length.
8047
8048 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
8049
8050         PR other/48748
8051         * doc/extend.texi (Type Traits): Document __is_standard_layout,
8052         __is_literal_type, and __is_trivial; update throughout about
8053         possibly cv-qualified void types.
8054
8055 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
8056
8057         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
8058         testsuite and make it version agnostic.
8059
8060 2011-04-22  Jan Hubicka  <jh@suse.cz>
8061
8062         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
8063
8064 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
8065
8066         PR c/48685
8067         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
8068         to VOID_TYPE even around MODIFY_EXPR.
8069
8070 2011-04-22  Mike Stump  <mikestump@comcast.net>
8071
8072         * gensupport.c (read_md_rtx): Fix typo in comment.
8073         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
8074         comment.
8075
8076 2011-04-22  Jan Hubicka  <jh@suse.cz>
8077
8078         * gengtype.c (open_base_files): Add ipa-inline.h include.
8079         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
8080         ipa-prop.c; update all uses.
8081         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
8082         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
8083         merge summary of inlined function into former caller.
8084         * ipa-inline.c (max_benefit): Remove.
8085         (edge_badness): Compensate for removal of benefits.
8086         (update_caller_keys): Use
8087         reset_node_growth_cache/reset_edge_growth_cache.
8088         (update_callee_keys): Likewise.
8089         (update_all_callee_keys): Likewise.
8090         (inline_small_functions): Do not collect max_benefit; do not reset
8091         estimated_growth; call free_growth_caches and initialize_growth_caches.
8092         * ipa-inline.h (struct condition, type clause_t, struct predicate,
8093         struct size_time_entry): New structures.
8094         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
8095         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
8096         and estimated_growth.
8097         (edge_growth_cache_entry): New structure.
8098         (node_growth_cache, edge_growth_cache): New global vars.
8099         (estimate_growth): Turn into inline.
8100         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
8101         initialize_growth_caches, free_growth_caches): Declare.
8102         (estimate_edge_growth): Rewrite.
8103         (estimate_edge_time): Implement as inline cache lookup.
8104         (reset_node_growth_cache, reset_edge_growth_cache): New inline
8105         functions.
8106         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
8107         (NUM_CONDITIONS): New constant.
8108         (predicate_conditions): New enum.
8109         (IS_NOT_CONSTANT): New constant.
8110         (edge_removal_hook_holder): New var.
8111         (node_growth_cache, edge_growth_cache): New global vars.
8112         (true_predicate, single_cond_predicate, false_predicate,
8113         not_inlined_predicate, add_condition, add_clause, and_predicates,
8114         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
8115         dump_clause, dump_predicate, account_size_time,
8116         evaulate_conditions_for_edge): New functions.
8117         (inline_summary_alloc): Move to heap.
8118         (inline_node_removal_hook): Clear condition and entry vectors.
8119         (inline_edge_removal_hook): New function.
8120         (initialize_growth_caches, free_growth_caches): New function.
8121         (dump_inline_summary): Update.
8122         (edge_execution_predicate): New function.
8123         (will_be_nonconstant_predicate): New function.
8124         (estimate_function_body_sizes): Compute BB and constantness predicates.
8125         (compute_inline_parameters): Do not clear estimated_growth.
8126         (estimate_edge_size_and_time): New function.
8127         (estimate_calls_size_and_time): New function.
8128         (estimate_callee_size_and_time): New function.
8129         (remap_predicate): New function.
8130         (inline_merge_summary): New function.
8131         (do_estimate_edge_time): New function based on...
8132         (estimate_edge_time): ... this one.
8133         (do_estimate_edge_growth): New function.
8134         (do_estimate_growth): New function based on....
8135         (estimate_growth): ... this one.
8136         (inline_analyze_function): Analyze after deciding on jump functions.
8137         (inline_read_section): New function.
8138         (inline_read_summary): Use it.
8139         (inline_write_summary): Write all the new data.
8140         * ipa-prop.c (ipa_get_param_decl_index): Export.
8141         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
8142         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
8143         Declare.
8144         (ipa_get_lattice): Move here from ipa-cp.c
8145         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
8146         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
8147         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
8148         cgraph_edge_inlinable_p): Remove.
8149         * cgraphunit.c: Include ipainline.h
8150         (cgraph_process_new_functions): Update call of
8151         compute_inline_parameters.
8152
8153 2011-04-22  Richard Guenther  <rguenther@suse.de>
8154
8155         * tree.c (build_int_cst): Properly create canonicalized integer
8156         constants.
8157         (build_int_cst_type): Remove scary comments.
8158
8159 2011-04-22  Xinliang David Li  <davidxl@google.com>
8160
8161         * toplev.c (process_options): Enable -Werror=coverage-mismatch
8162         by default when -Wno-error is not specified.
8163         * opts-global.c (decode_options): Remove call to
8164         control_warning_options.
8165
8166 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
8167
8168         PR tree-optimization/48717
8169         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
8170         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
8171
8172 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
8173
8174         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
8175         definition where used.
8176
8177 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
8178
8179         PR c/48716
8180         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
8181         TREE_STATIC variables declared inside of some OpenMP construct.
8182
8183 2011-04-22  Martin Jambor  <mjambor@suse.cz>
8184
8185         PR middle-end/48585
8186         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
8187
8188 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
8189
8190         PR c/36750
8191         * c-typeck.c (pop_init_level): Do not warn about initializing
8192         with ` = {0}'.
8193
8194 2011-04-22  Alan Modra  <amodra@gmail.com>
8195
8196         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
8197         when returning call_cookie.
8198         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
8199         pointers, to functions with no more vector args than the current
8200         function, and some non-local calls for ABI_V4.
8201         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
8202         sibcall_nonlocal_aix64): Combine to ..
8203         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
8204         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
8205         (sibcall_value_nonlocal_aix<mode>): ..likewise.
8206         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
8207         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
8208         operand.
8209         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
8210         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
8211         sibcall_value_symbolic_64): Delete.
8212
8213 2011-04-21  Xinliang David Li  <davidxl@google.com>
8214
8215         * cgraph.h: Remove pid.
8216         * cgraph.c: Remove pid.
8217         * value-prof.c (init_node_map): New function.
8218         (del_node_map): New function.
8219         (find_func_by_funcdef_no): New function.
8220         (gimple_ic_transform): Call new function.
8221         * cgraphunit.c (cgraph_finalize_function): Remove pid.
8222         * function.c (get_last_funcdef_no): New function.
8223         * function.h (get_last_funcdef_no): New function.
8224         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
8225         to libgcov function.
8226         (tree-profiling): Call node map init and delete function.
8227
8228 2011-04-21  Ian Lance Taylor  <iant@google.com>
8229
8230         * godump.c (go_format_type): Use exported Go name for anonymous
8231         field name.
8232
8233 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
8234
8235         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
8236         Call builtin_function_type_list instead of builtin_function_type.
8237         (UNARY, BINARY, TRINARY, QUAD): Likewise.
8238
8239 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
8240
8241         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
8242         build_function_type_list instead of build_function_type.
8243         Delete variable `endlink'.
8244
8245 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
8246
8247         * config/s390/s390.c (s390_init_builtins): Call
8248         build_function_type_list instead of build_function_type.
8249
8250 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
8251
8252         * config/ia64/ia64.c (ia64_init_builtins): Call
8253         build_function_type_list instead of builtin_function_type.
8254
8255 2011-04-21  Easwaran Raman  <eraman@google.com>
8256
8257         * cfgexpand.c (stack_var): Remove OFFSET...
8258         (add_stack_var): ...and its reference here...
8259         (expand_stack_vars): ...and here.
8260         (stack_var_cmp): Sort by descending order of size.
8261         (partition_stack_vars): Change heuristic.
8262         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
8263         (dump_stack_var_partition): Add newline after each partition.
8264
8265 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
8266             Jeff Law  <law@redhat.com>
8267
8268         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
8269         * gengtype.c (matching_file_name_substitute): Likewise.
8270
8271 2011-04-21  Richard Guenther  <rguenther@suse.de>
8272
8273         PR lto/48703
8274         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
8275
8276 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
8277
8278         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
8279
8280 2011-04-21  Richard Guenther  <rguenther@suse.de>
8281
8282         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
8283         file name.
8284
8285 2011-04-21  Richard Guenther  <rguenther@suse.de>
8286
8287         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
8288         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
8289         Use DECL_P, not SSA_VAR_P.
8290         (ptr_derefs_may_alias_p): Likewise.
8291         (ptr_deref_may_alias_ref_p_1): Likewise.
8292         (decl_refs_may_alias_p): Likewise.
8293         (refs_may_alias_p_1): Likewise.
8294         (ref_maybe_used_by_call_p_1): Likewise.
8295         (call_may_clobber_ref_p_1): Likewise.
8296         (indirect_ref_may_alias_decl_p): Assume indirect refrences
8297         are either MEM_REF or TARGET_MEM_REF.
8298         (indirect_refs_may_alias_p): Likewise.
8299         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
8300         for MEM_EXPR of indirect calls.
8301
8302 2011-04-21  Tristan Gingold  <gingold@adacore.com>
8303
8304         * vmsdbgout.c (write_srccorr): Compute file length from the string.
8305         (dst_file_info_struct): Remove flen field.
8306         (lookup_filename): Remove code that set flen field.
8307
8308 2011-04-21  Tristan Gingold  <gingold@adacore.com>
8309
8310         * config/ia64/ia64.c (ia64_start_function): Add a guard.
8311
8312 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
8313
8314         PR target/48708
8315         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
8316         vec_extract and vec_concat for non-SSE4_1 targets.
8317
8318 2011-04-21  Richard Guenther  <rguenther@suse.de>
8319
8320         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
8321         return statements.
8322
8323 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
8324
8325         * config/i386/cygming.h (union tree_node, TREE): Don't define or
8326         undefine.
8327         (FILE): Don't undefine.
8328
8329 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
8330
8331         * config/alpha/alpha.c (struct machine_function): Use rtx, not
8332         struct rtx_def *.
8333         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
8334         struct rtx_def *.
8335         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
8336         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
8337         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
8338         rtx_def *.
8339         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
8340         definitions where used.
8341         * config/microblaze/microblaze.h (struct microblaze_args): Use
8342         rtx, not struct rtx_def *.
8343         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
8344         rtx_def *.
8345         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
8346         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
8347         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
8348         not struct rtx_def *.
8349         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
8350         struct rtx_def *.
8351         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
8352         rtx_def *.
8353         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
8354
8355 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
8356
8357         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
8358         operand_equal_p to compare DR_BASE_ADDRESSes.
8359         (vect_check_interleaving): Likewise.
8360
8361 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
8362
8363         PR target/46329
8364         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
8365         for all Neon struct constants.
8366
8367 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
8368
8369         * target.def (legitimate_constant_p): New hook.
8370         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
8371         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
8372         * doc/tm.texi: Regenerate.
8373         * hooks.h (hook_bool_mode_rtx_true): Declare.
8374         * hooks.c (hook_bool_mode_rtx_true): Define.
8375         * system.h (LEGITIMATE_CONSTANT_P): Poison.
8376         * calls.c (precompute_register_parameters): Replace uses of
8377         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
8378         (emit_library_call_value_1): Likewise.
8379         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
8380         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
8381         * ira-costs.c (scan_one_insn): Likewise.
8382         * recog.c (general_operand, immediate_operand): Likewise.
8383         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
8384         * reload1.c (init_eliminable_invariants): Likewise.
8385
8386         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
8387         mode argument.
8388         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
8389         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
8390         argument.
8391         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8392         * config/alpha/predicates.md (input_operand): Update call to
8393         alpha_legitimate_constant_p.
8394
8395         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
8396         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
8397         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
8398         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8399         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
8400         (arm_legitimate_constant_p): New functions.
8401         (arm_cannot_force_const_mem): Make static.
8402
8403         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
8404
8405         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
8406         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
8407         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
8408         instead of bfin_legitimate_constant_p.
8409         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
8410         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8411
8412         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
8413
8414         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
8415
8416         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
8417         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
8418         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8419         (frv_legitimate_constant_p): Make static.  Add a mode argument.
8420
8421         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
8422         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
8423         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
8424
8425         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
8426         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
8427         * config/i386/i386.c (legitimate_constant_p): Rename to...
8428         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
8429         argument.
8430         (ix86_cannot_force_const_mem): Update accordingly.
8431         (ix86_legitimate_address_p): Likewise.
8432         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8433         * config/i386/i386.md: Update commentary.
8434
8435         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
8436         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
8437         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8438         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
8439
8440         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
8441
8442         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
8443         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
8444         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8445         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
8446
8447         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
8448         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
8449         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
8450
8451         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
8452         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8453         (m32r_legitimate_constant_p): New function.
8454
8455         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
8456         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
8457         LEGITIMATE_CONSTANT_P.
8458         (LEGITIMATE_CONSTANT_P): Delete.
8459         * config/m68k/m68k.c (m68k_expand_prologue): Call
8460         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
8461         (m68k_legitimate_constant_p): New function.
8462         * config/m68k/m68k.md: Update comments.
8463
8464         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
8465         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8466         (mcore_legitimate_constant_p): New function.
8467
8468         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
8469         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
8470         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
8471         Add a mode argument.
8472         (mep_legitimate_address): Update accordingly.
8473         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8474
8475         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
8476         Delete.
8477         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
8478         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
8479         static.  Check OP's mode for VOIDmode.
8480         (microblaze_legitimate_constant_p): New function.
8481         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8482
8483         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
8484         * config/mips/mips.c (mips_legitimate_constant_p): New function.
8485         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
8486         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8487         * config/mips/predicates.md: Update comments.
8488
8489         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
8490         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
8491         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8492         (mmix_legitimate_constant_p): Make static, return a bool, and take
8493         a mode argument.
8494         (mmix_print_operand_address): Update accordingly.
8495
8496         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
8497         Delete.
8498         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
8499         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
8500         static.  Add a mode argument.
8501         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8502
8503         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
8504
8505         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
8506         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8507         (pa_legitimate_constant_p): New function.
8508
8509         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
8510
8511         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
8512         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8513         (pdp11_legitimate_constant_p): New function.
8514
8515         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
8516         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8517         (rs6000_legitimate_constant_p): New function.
8518
8519         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
8520         (rx_legitimate_constant_p): ...this.
8521         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
8522         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
8523         (rx_legitimate_constant_p): ...this.
8524         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8525         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
8526
8527         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
8528         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
8529         * config/s390/s390.c (legitimate_constant_p): Rename to...
8530         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
8531         and add a mode argument.
8532         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8533
8534         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
8535
8536         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
8537         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8538         (sh_legitimate_constant_p): New function.
8539
8540         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
8541         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
8542         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8543         (legitimate_constant_p): Rename to...
8544         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
8545         argument.
8546         (constant_address_p): Update accordingly.
8547
8548         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
8549         argument and return a bool.
8550         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
8551         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8552         (spu_legitimate_constant_p): Add a mode argument and return a bool.
8553         (spu_rtx_costs): Update accordingly.
8554         * config/spu/predicates.md (vec_imm_operand): Likewise.
8555
8556         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
8557
8558         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
8559         * config/v850/v850.c (v850_legitimate_constant_p): New function.
8560         (TARGET_LEGITIMATE_CONSTANT_P): Define.
8561
8562         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
8563         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
8564         * config/vax/vax.c (legitimate_constant_p): Likewise.
8565
8566         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
8567         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8568         (xtensa_legitimate_constant_p): New function.
8569
8570 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
8571
8572         * target.def (cannot_force_const_mem): Add a mode argument.
8573         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
8574         * doc/tm.texi: Regenerate.
8575         * hooks.h (hook_bool_mode_rtx_false): Declare.
8576         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
8577         (hook_bool_mode_const_rtx_true): Likewise.
8578         (hook_bool_mode_rtx_false): New function.
8579         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
8580         to be non-VOID.  Update call to cannot_force_const_mem.
8581         (find_reloads): Update accordingly.
8582         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
8583         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
8584         argument.
8585         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
8586         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
8587         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
8588         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
8589         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
8590         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
8591         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
8592         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
8593         (m68k_cannot_force_const_mem): ...this new function.
8594         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
8595         argument.
8596         (mips_const_insns, mips_legitimize_const_move): Update calls.
8597         (mips_secondary_reload_class): Likewise.
8598         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
8599         (pa_cannot_force_const_mem): ...this new function.
8600         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
8601         (rs6000_cannot_force_const_mem): ...this new function.
8602         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
8603         argument.
8604         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
8605         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
8606         to...
8607         (xtensa_cannot_force_const_mem): ...this new function.
8608
8609 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
8610
8611         * config/mips/mips.c (mips16_build_function_stub): Call
8612         build_function_type_list instead of build_function_type.
8613         (mips16_build_call_stub): Likewise.
8614
8615 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
8616
8617         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
8618         instead of build_function_type.
8619
8620 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
8621
8622         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
8623         instead of build_function_type.
8624
8625 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
8626
8627         PR target/48678
8628         * config/i386/i386.md (insv): Change operand 0 constraint to
8629         "register_operand".  Change operand 1 and 2 constraint to
8630         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
8631         * config/i386/sse.md (sse4_1_pinsrb): Export.
8632         (sse2_pinsrw): Ditto.
8633         (sse4_1_pinsrd): Ditto.
8634         (sse4_1_pinsrq): Ditto.
8635         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
8636         * config/i386/i386.c (ix86_expand_pinsr): New.
8637
8638 2011-04-20  Easwaran Raman  <eraman@google.com>
8639
8640         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
8641         containing union type only with -fstrict-aliasing.
8642
8643 2011-04-20  Jim Meyering  <meyering@redhat.com>
8644
8645         Remove useless if-before-free tests.
8646         * calls.c (expand_call, save_area): Likewise.
8647         * cfgcleanup.c (try_forward_edges): Likewise.
8648         * collect2.c (collect_execute): Likewise.
8649         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
8650         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
8651         * coverage.c (coverage_checksum_string): Likewise.
8652         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
8653         * cselib.c (cselib_init): Likewise.
8654         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
8655         (df_set_clean_cfg): Likewise.
8656         * function.c (free_after_compilation): Likewise.
8657         * gcc.c (do_spec_1, main): Likewise.
8658         * gcov.c (create_file_names): Likewise.
8659         * gensupport.c (identify_predicable_attribute): Likewise.
8660         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
8661         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
8662         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
8663         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
8664         * ipa-pure-const.c (local_pure_const): Likewise.
8665         * ipa-reference.c (propagate): Likewise.
8666         * ira-costs.c (free_ira_costs): Likewise.
8667         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
8668         * matrix-reorg.c (mat_free): Likewise.
8669         * prefix.c (get_key_value): Likewise.
8670         * profile.c (compute_value_histograms): Likewise.
8671         * reload1.c (free_reg_equiv): Likewise.
8672         * sched-deps.c (free_deps): Likewise.
8673         * sel-sched-ir.c (fence_clear): Likewise.
8674         * sese.c (set_rename, if_region_set_false_region): Likewise.
8675         * tree-data-ref.c (free_rdg): Likewise.
8676         * tree-eh.c (lower_try_finally): Likewise.
8677         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
8678         * tree-ssa-live.c (delete_var_map): Likewise.
8679         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
8680         * tree-ssa-pre.c (phi_trans_add): Likewise.
8681
8682 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
8683
8684         PR tree-optimization/48611
8685         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
8686         beyond ERT_MUST_NOT_THROW region.
8687
8688 2011-04-20  Catherine Moore  <clm@codesourcery.com>
8689
8690         * config/mips/mips.opt (mfix-24k): New.
8691         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
8692         * config/mips/mips.md (length): Increase by 4 for stores if
8693         fixing 24K errata.
8694         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
8695         all noreorder if fixing 24K errata.
8696         * doc/invoke.texi: Document mfix-24k.
8697
8698 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
8699
8700         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
8701         quad-word modes, reduce to 9-bit index range when above 1016 limit.
8702
8703 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
8704
8705         * config/arm/arm.c (arm_gen_constant): Move movw support ....
8706         (const_ok_for_op): ... to here.
8707
8708 2011-04-20  Kai Tietz  <ktietz@redhat.com>
8709
8710         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
8711         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
8712
8713 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
8714
8715         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
8716
8717 2011-04-20  Richard Guenther  <rguenther@suse.de>
8718
8719         PR tree-optimization/47892
8720         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
8721         are if-convertible.
8722
8723 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
8724
8725         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
8726
8727 2011-04-20  Tristan Gingold  <gingold@adacore.com>
8728
8729         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
8730
8731 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
8732
8733         PR target/18145
8734
8735         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
8736         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
8737         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
8738         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
8739         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
8740
8741         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
8742         New prototype.
8743
8744         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
8745         (avr_asm_named_section, avr_asm_output_aligned_common,
8746         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
8747         New functions to update...
8748         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
8749         (avr_asm_init_sections): Overwrite section callbacks for
8750         data_section, bss_section.
8751         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
8752         from here to...
8753         (avr_file_end): ...here.
8754
8755 2011-04-20  Richard Guenther  <rguenther@suse.de>
8756
8757         PR middle-end/48695
8758         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
8759         objects and types here.  Adjust for their offset before comparing.
8760
8761 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
8762
8763         * tree-vect-stmts.c (vectorizable_store): Only chain one related
8764         statement per copy.
8765
8766 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
8767
8768         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
8769         (GIMPLE_H): Include $(INTERNAL_FN_H).
8770         (OBJS-common): Add internal-fn.o.
8771         (internal-fn.o): New rule.
8772         * internal-fn.def: New file.
8773         * internal-fn.h: Likewise.
8774         * internal-fn.c: Likewise.
8775         * gimple.h: Include internal-fn.h.
8776         (GF_CALL_INTERNAL): New gf_mask.
8777         (gimple_statement_call): Put fntype into a union with a new
8778         internal_fn field.
8779         (gimple_build_call_internal): Declare.
8780         (gimple_build_call_internal_vec): Likewise.
8781         (gimple_call_same_target_p): Likewise.
8782         (gimple_call_internal_p): New function.
8783         (gimple_call_internal_fn): Likewise.
8784         (gimple_call_fntype): Return null for internal calls.
8785         (gimple_call_set_fntype): Assert that the function is not internal.
8786         (gimple_call_set_fn): Likewise.
8787         (gimple_call_set_fndecl): Likewise.
8788         (gimple_call_set_internal_fn): New function.
8789         (gimple_call_addr_fndecl): Handle null functions.
8790         (gimple_call_return_type): Likewise null types.
8791         * gimple.c (gimple_build_call_internal_1): New function.
8792         (gimple_build_call_internal): Likewise.
8793         (gimple_build_call_internal_vec): Likewise.
8794         (gimple_call_same_target_p): Likewise.
8795         (gimple_call_flags): Handle calls to internal functions.
8796         (gimple_call_fnspec): New function.
8797         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
8798         (gimple_has_side_effects): Handle null functions.
8799         (gimple_rhs_has_side_effects): Likewise.
8800         (gimple_call_copy_skip_args): Handle calls to internal functions.
8801         * cfgexpand.c (expand_call_stmt): Likewise.
8802         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
8803         * gimple-fold.c (gimple_fold_call): Handle null functions.
8804         (gimple_fold_stmt_to_constant_1): Don't fold
8805         calls to internal functions.
8806         * gimple-low.c (gimple_check_call_args): Handle calls to internal
8807         functions.
8808         * gimple-pretty-print.c (dump_gimple_call): Likewise.
8809         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
8810         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
8811         (do_warn_unused_result): Likewise.
8812         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
8813         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
8814         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
8815         the target of a call.
8816         (initialize_hash_element): Update accordingly.
8817         (hashable_expr_equal_p): Use gimple_call_same_target_p.
8818         (iterative_hash_hashable_expr): Handle calls to internal functions.
8819         (print_expr_hash_elt): Likewise.
8820         * tree-ssa-pre.c (can_value_number_call): Likewise.
8821         (eliminate): Handle null functions.
8822         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
8823         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
8824         (find_func_aliases): Likewise.
8825         * value-prof.c (gimple_ic_transform): Likewise.
8826         (gimple_indirect_call_to_profile): Likewise.
8827         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8828         * lto-streamer-out.c (output_gimple_stmt): Likewise.
8829
8830 2011-04-19  Jan Hubicka  <jh@suse.cz>
8831
8832         * ipa-inline-transform.c (save_inline_function_body): Add comments.
8833         * ipa-inline.c (inline_small_functions): Compute summaries first,
8834         populate heap later.
8835
8836 2011-04-19  Jan Hubicka  <jh@suse.cz>
8837
8838         * cgraph.h (save_inline_function_body): Remove.
8839         * ipa-inline-transform.c: New file, broke out of...
8840         * ipa-inline.c: ... this one; Update toplevel comment.
8841         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
8842         make global.
8843         (update_noncloned_frequencies): Move to ipa-inline-transform.c
8844         (cgraph_mark_inline_edge): Rename to inline_call; move to
8845         ipa-inline-transform.c.
8846         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
8847         move to ipa-inline-transform.c
8848         (recursive_inlining, inline_small_functions, flatten_function,
8849         ipa_inline, inline_always_inline_functions,
8850         early_inline_small_functions): Update.
8851         (inline_transform): Move to ipa-inline-transform.c.
8852         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
8853         Declare.
8854         * Makefile.in (ipa-inline-transform.o): New file.
8855         * cgraphunit.c (save_inline_function_body): Move to
8856         ipa-inline-transform.c
8857
8858 2011-04-19  DJ Delorie  <dj@redhat.com>
8859
8860         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
8861         registers if we already know there aren't any.
8862         (m32c_emit_epilogue): Don't emit a barrier here.
8863         (m32c_emit_eh_epilogue): Likewise.
8864         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
8865         operands at expand time.
8866         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
8867         int" wchar type.
8868         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
8869         duplicates.  Provide aliases instead.
8870         * config/m32c/prologue.md (eh_return): Emit a barrier here.
8871         (eh_epilogue): Add a "(return)" here as a hint to other parts of
8872         the compiler.
8873
8874 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
8875
8876         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
8877         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
8878         (general_or_i64_p, sparc_register_move_cost): New function.
8879
8880 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8881
8882         * doc/install.texi (Configuration, --enable-threads): Remove mach.
8883         Add lynx, mipssde.  Sort table.
8884
8885 2011-04-19  Xinliang David Li  <davidxl@google.com>
8886
8887         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
8888         not negative.
8889
8890 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
8891
8892         PR target/48678
8893         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
8894         is a SUBREG with non-MODE_INT mode inside of it.
8895
8896 2011-04-19  Martin Jambor  <mjambor@suse.cz>
8897
8898         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
8899         also according to actual contants.
8900         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
8901         (gimple_fold_call): Use it.
8902         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
8903
8904 2011-04-19  Martin Jambor  <mjambor@suse.cz>
8905
8906         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
8907         non-pointer assignments.
8908
8909 2011-04-19  Martin Jambor  <mjambor@suse.cz>
8910
8911         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
8912         account anc_offset and otr_type from the indirect edge info.
8913         * ipa-prop.c (get_ancestor_addr_info): New function.
8914         (compute_complex_ancestor_jump_func): Assignment analysis moved to
8915         get_ancestor_addr_info, call it.
8916         (ipa_note_param_call): Do not initialize information about polymorphic
8917         calls, return the indirect call graph edge.  Remove the last
8918         parameter, adjust all callers.
8919         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
8920         parameters.  Initialize polymorphic information in the indirect edge.
8921
8922 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
8923
8924         PR lto/48148
8925         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
8926         the types if they have different enumeration identifiers.
8927
8928 2011-04-19  Jan Hubicka  <jh@suse.cz>
8929
8930         * cgraph.h (cgraph_optimize_for_size_p): Declare.
8931         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
8932         * predict.c (cgraph_optimize_for_size_p): Break out from ...
8933         (optimize_function_for_size_p) ... here.
8934
8935 2011-04-19  Richard Guenther  <rguenther@suse.de>
8936
8937         PR lto/48207
8938         * tree.c (free_lang_data): Do not reset the decl-assembler-name
8939         langhook.
8940
8941 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
8942
8943         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
8944         if DECL_NO_INLINE_WARNING_P is set on the function.
8945
8946 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
8947
8948         PR fortran/47976
8949         * reload1.c (inc_for_reload): Return void. All callers changed.
8950         (emit_input_reload_insns): Don't try to delete previous output
8951         reloads to a register, or record spill_reg_store for autoincs.
8952
8953 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
8954
8955         * gengtype.h: Updated copyright year.
8956         (struct input_file_st): Add inpisplugin field.
8957         (type_fileloc): New function.
8958         * gengtype.c
8959         (write_typed_struct_alloc_def): Add gcc_assert.
8960         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
8961         (write_typed_alloc_defns): Don't output for plugin files.
8962         (input_file_by_name): Clear inpisplugin field.
8963         (main): Set inpisplugin field for plugin files.
8964
8965 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
8966
8967         * gengtype-state.c (string_eq): New.
8968         (read_state): Use string_eq instead of strcmp when creating the
8969         state_ident_tab.
8970
8971 2011-04-19  Wei Guozhi  <carrot@google.com>
8972
8973         PR target/47855
8974         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
8975         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
8976         linkage.
8977         * config/arm/constraints.md (Uu): New constraint.
8978         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
8979
8980 2011-04-19  Tristan Gingold  <gingold@adacore.com>
8981
8982         * config.gcc (-*-*-*vms): Added.
8983         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
8984         definitions moved.
8985         * config/vms/vms-ld.c: New file.
8986         * config/vms/vms-ar.c: New file.
8987         * config/vms/t-vmsnative: New file.
8988
8989 2011-04-18  Xinliang David Li  <davidxl@google.com>
8990
8991         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
8992
8993 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
8994
8995         PR middle-end/48661
8996         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
8997         if TREE_TYPE (v) is non-NULL.
8998
8999         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
9000         gimple_get_virt_mehtod_for_binfo.
9001         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
9002         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
9003         callers.
9004         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
9005
9006 2011-04-18  Michael Matz  <matz@suse.de>
9007             Steve Ellcey  <sje@cup.hp.com>
9008
9009         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
9010         use its mode as source mode if it isn't VOIDmode.
9011
9012 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
9013
9014         * doc/passes.texi: Fill crossref nodes.
9015
9016 2011-04-18  Jim Meyering  <meyering@redhat.com>
9017
9018         Fix doubled-word typos in comments and strings
9019         * config/alpha/vms-unwind.h: s/for for/for/
9020         * config/arm/unwind-arm.h: Likewise.
9021         * config/microblaze/microblaze.c: Likewise.
9022         * config/sh/constraints.md: s/in in/in/
9023         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
9024
9025 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
9026
9027         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
9028         (AVX_FLOAT_MODE_P): Ditto.
9029         (AVX128_VEC_FLOAT_MODE_P): Ditto.
9030         (AVX256_VEC_FLOAT_MODE_P): Ditto.
9031         (AVX_VEC_FLOAT_MODE_P): Ditto.
9032         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
9033         (UNSPEC_MASKSTORE): Ditto.
9034         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
9035         Merge from <sse>_movmsk<ssemodesuffix> and
9036         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
9037         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
9038         iterator.
9039         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
9040         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
9041         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
9042
9043 2011-04-18  Jan Hubicka  <jh@suse.cz>
9044
9045         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
9046
9047         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
9048         (want_inline_function_called_once_p): Break out the logic from
9049         ipa_inline.
9050         (edge_badness): Ensure that profile is not misupdated.
9051         (lookup_recursive_calls): Prioritize by call frequencies.
9052         (inline_small_functions): Move program size estimates here;
9053         actually process whole queue even when unit growth has been
9054         met. (to properly compute inline_failed reasons and for the
9055         case unit size decrease.) Revisit comments on recursive inlining.
9056         (ipa_inline): Remove unit summary code; first inline hot calls
9057         of functions called once, cold calls next.
9058         (order, nnodes): Remove unused variables.
9059         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
9060         (GTFILES): Remove ipa-inline.c
9061         * sel-sched.c (fill_insns): Silence uninitialized var warning.
9062
9063 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9064
9065         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
9066
9067 2011-04-18  Jie Zhang  <jie@codesourcery.com>
9068             Richard Earnshaw  <rearnsha@arm.com>
9069
9070         * arm.c (neon_builtin_type_bits): Remove.
9071         (typedef enum neon_builtin_mode): New.
9072         (T_MAX): Don't define.
9073         (typedef enum neon_builtin_datum): Remove bits, codes[],
9074         num_vars and base_fcode.  Add mode, code and fcode.
9075         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
9076         VAR10): Change accordingly.
9077         (neon_builtin_data[]): Change accordingly
9078         (arm_init_neon_builtins): Change accordingly.
9079         (neon_builtin_compare): Remove.
9080         (locate_neon_builtin_icode): Remove.
9081         (arm_expand_neon_builtin): Change accordingly.
9082
9083         * arm.h (enum arm_builtins): Move to ...
9084         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
9085
9086         * arm.c (arm_builtin_decl): Declare.
9087         (TARGET_BUILTIN_DECL): Define.
9088         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
9089         (arm_builtin_decls[]): New.
9090         (arm_init_neon_builtins): Store builtin declarations in
9091         arm_builtin_decls[].
9092         (arm_init_tls_builtins): Likewise.
9093         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
9094         (arm_builtin_decl): New.
9095
9096 2011-04-18  Richard Guenther  <rguenther@suse.de>
9097
9098         * tree.c (upper_bound_in_type): Build properly canonicalized
9099         INTEGER_CSTs.
9100         (lower_bound_in_type): Likewise.
9101
9102 2011-04-18  Richard Guenther  <rguenther@suse.de>
9103
9104         * gimple.h (gimple_call_addr_fndecl): New function.
9105         (gimple_call_fndecl): Use it.
9106         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
9107         for direct calls.
9108         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
9109         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
9110
9111 2011-04-18  Richard Guenther  <rguenther@suse.de>
9112
9113         PR middle-end/48650
9114         * tree.c (build_string): STRING_CST is now derived from tree_typed.
9115
9116 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9117
9118         PR lto/48492
9119         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
9120         DECL_IN_CONSTANT_POOL without RTL.
9121
9122 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
9123             Ira Rosen  <ira.rosen@linaro.org>
9124
9125         PR target/48252
9126         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
9127         to match neon_vzip/vuzp/vtrn_internal.
9128         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
9129         outputs explicitly dependent on both inputs.
9130         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
9131
9132 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
9133
9134         PR tree-optimization/48616
9135         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
9136         whether the shift is by scalar or vector based on whether all SLP
9137         scalar stmts have the same rhs.
9138
9139 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
9140
9141         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
9142         memory operands.
9143
9144 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
9145
9146         PR target/43700
9147         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
9148         registers.
9149
9150 2011-04-17  Jan Hubicka  <jh@suse.cz>
9151
9152         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
9153         * cgrpahunit.c (cgraph_finalize_function): Do not set
9154         finalized_by_frontend.
9155         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
9156         finalized_by_frontend.
9157
9158 2011-04-17  Jan Hubicka  <jh@suse.cz>
9159
9160         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
9161         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
9162         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
9163         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
9164         method.
9165         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
9166         gimple-fold.c
9167         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
9168
9169 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
9170
9171         PR lto/48538
9172         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
9173         is non-null before accessing it.
9174         (input_cgraph): Remove trailing spaces.
9175
9176 2011-04-17  Revital Eres  <revital.eres@linaro.org>
9177
9178         * params.def (sms-min-sc): New param flag.
9179         * modulo-sched.c (sms_schedule): Use it.
9180         * doc/invoke.texi (sms-min-sc): Document it.
9181
9182 2011-04-17  Jan Hubicka  <jh@suse.cz>
9183
9184         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
9185         present, also set gimple_call_set_cannot_inline.
9186         * ipa-inline.c: Update toplevel comment.
9187         (MAX_TIME): Remove.
9188         (cgraph_clone_inlined_nodes): Fix linebreaks.
9189         (cgraph_check_inline_limits): Restructure to ...
9190         (caller_growth_limits): ... this one; be more tolerant
9191         on growth in nested inline chains; add explanatory comment;
9192         fix stack accounting thinko introduced by previous patch.
9193         (cgraph_default_inline_p): Remove.
9194         (report_inline_failed_reason): New function.
9195         (can_inline_edge_p): New function.
9196         (can_early_inline_edge_p): New function.
9197         (leaf_node_p): Move upwards in file.
9198         (want_early_inline_function_p): New function.
9199         (want_inline_small_function_p): New function.
9200         (want_inline_self_recursive_call_p): New function.
9201         (cgraph_edge_badness): Rename to ...
9202         (edge_badness) ... this one; fix linebreaks.
9203         (update_edge_key): Update call of edge_baddness; add
9204         detailed dump about queue updates.
9205         (update_caller_keys): Use can_inline_edge_p and
9206         want_inline_small_function_p.
9207         (cgraph_decide_recursive_inlining): Rename to...
9208         (recursive_inlining): Use can_inline_edge_p and
9209         want_inline_self_recursive_call_p; simplify and remove no longer
9210         valid FIXME.
9211         (cgraph_set_inline_failed): Remove.
9212         (add_new_edges_to_heap): Use can_inline_edge_p and
9213         want_inline_small_function_p.
9214         (cgraph_decide_inlining_of_small_functions): Rename to ...
9215         (inline_small_functions): ... this one; cleanup; use
9216         can/want predicates; cleanup debug ouput; work edges till fibheap
9217         is exhausted and do not stop once unit growth is reached; remove
9218         later loop processing remaining edges.
9219         (cgraph_flatten): Rename to ...
9220         (flatten_function): ... this one; use can_inline_edge_p
9221         and can_early_inline_edge_p predicates.
9222         (cgraph_decide_inlining): Rename to ...
9223         (ipa_inline): ... this one; remove unreachable nodes before
9224         inlining functions called once; simplify the pass.
9225         (cgraph_perform_always_inlining): Rename to ...
9226         (inline_always_inline_functions): ... this one; use
9227         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
9228         (cgraph_decide_inlining_incrementally): Rename to ...
9229         (early_inline_small_functions): ... this one; simplify
9230         using new predicates; cleanup; make dumps prettier.
9231         (cgraph_early_inlining): Rename to ...
9232         (early_inliner): newer inline regular functions into always-inlines;
9233         fix updating of call stmt summaries.
9234         (pass_early_inline): Update for new names.
9235         (inline_transform): Fix formating.
9236         (gate_cgraph_decide_inlining): Rename to ...
9237         (pass_ipa_inline): ... this one.
9238         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
9239         * ipa-inline-analysis.c (dump_inline_summary): Update.
9240         (compute_inline_parameters): Do not compute disregard_inline_limits;
9241         look for mismatching arguments.
9242         (estimate_growth): Fix handlig of non-trivial self recursion.
9243         (inline_read_summary): Do not read info->disregard_inline_limits.
9244         (inline_write_summary): Do not write info->disregard_inline_limits.
9245         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
9246         and move all checks into can_inline_edge_p predicate; re-enable code
9247         comparing optimization levels.
9248         (expand_call_inline): Do not test inline_forbidden_into_p.
9249         * Makefile.in (ipa-inline.o): Update arguments.
9250
9251 2011-04-17  Revital Eres  <revital.eres@linaro.org>
9252
9253         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
9254
9255 2011-04-17  Revital Eres  <revital.eres@linaro.org>
9256
9257         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
9258
9259 2011-04-17  Michael Matz  <matz@suse.de>
9260
9261         PR tree-optimization/48622
9262         PR lto/48645
9263         * ipa-inline-analysis.c (inline_read_summary): Read size/time
9264         in same order as they're written.
9265
9266 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9267
9268         * config/pa/predicates.md: Reorganize and simplify predicates.
9269         Eliminate duplicate code checks.
9270         (arith_operand): Rename to arith14_operand
9271         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
9272         * config/pa/pa.md: Use renamed operands.
9273         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
9274         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
9275         arith11_operand, adddi3_operand, indexed_memory_operand,
9276         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
9277         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
9278         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
9279         move_dest_operand, move_src_operand, prefetch_cc_operand,
9280         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
9281         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
9282         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
9283         div_operand, int5_operand, movb_comparison_operator,
9284         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
9285         arith_double_operand, ireg_operand, lhs_lshift_operand,
9286         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
9287         integer_store_memory_operand): Likewise.
9288         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
9289         (integer_store_memory_operand, read_only_operand,
9290         function_label_operand, borx_reg_operand,
9291         non_hard_reg_operand): Likewise.
9292         (eq_neq_comparison_operator): Delete unused operator.
9293         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
9294         function_label_operand.
9295         (emit_move_sequence): Likewise.
9296
9297 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
9298
9299         * config/i386/sse.md (sseunpackmode): New mode attribute.
9300         (ssepackmode): Ditto.
9301         (vec_pack_trunc_<mode>): Macroize expander from
9302         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
9303         (vec_unpacks_lo_<mode>): Macroize expander from
9304         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
9305         (vec_unpacks_hi_<mode>): Macroize expander from
9306         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
9307         (vec_unpacku_lo_<mode>): Macroize expander from
9308         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
9309         (vec_unpacku_hi_<mode>): Macroize expander from
9310         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
9311         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
9312         ix86_expand_sse4_unpack.
9313         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
9314
9315 2011-04-16  Jan Hubicka  <jh@suse.cz>
9316
9317         * cgraphbuild.c: Include ipa-inline.h.
9318         (reset_inline_failed): Use initialize_inline_failed.
9319         * cgraph.c: Include ipa-inline.h.
9320         (cgraph_create_node_1): Do not initialize estimated_growth.
9321         (initialize_inline_failed): More to ipa-inline-analysis.c
9322         (dump_cgraph_node): Do not dump inline flags.
9323         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
9324         and disregard_inline_limits flags.
9325         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
9326         time, size, estimated_growth.
9327         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
9328         Update.
9329         * cgraphunit.c (cgraph_decide_is_function_needed): Use
9330         DECL_DISREGARD_INLINE_LIMITS.
9331         (cgraph_analyze_function): Do not initialize
9332         node->local.disregard_inline_limits.
9333         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
9334         inlinable, versionable and disregard_inline_limits.
9335         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
9336         cgraph_check_inline_limits, cgraph_default_inline_p,
9337         cgraph_edge_badness, update_caller_keys, update_callee_keys,
9338         add_new_edges_to_heap): Update.
9339         (cgraph_decide_inlining_of_small_function): Update; set
9340         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
9341         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
9342         cgraph_decide_inlining_incrementally): Update.
9343         * ipa-inline.h (inline_summary): Add inlinable, versionable,
9344         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
9345         time, size and estimated_growth parameters.
9346         (estimate_edge_growth): Update.
9347         (initialize_inline_failed): Declare.
9348         * ipa-split.c: Include ipa-inline.h
9349         (execute_split_functions): Update.
9350         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
9351         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
9352         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
9353         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
9354         estimated_growth to INT_MIN.
9355         (inline_node_duplication_hook): Likewise.
9356         (dump_inline_summary): Dump new fields.
9357         (compute_inline_parameters): Update.
9358         (estimate_edge_time, estimate_time_after_inlining,
9359         estimate_size_after_inlining, estimate_growth, inline_read_summary,
9360         inline_write_summary):
9361         (initialize_inline_failed): Move here from cgraph.c.
9362         * tree-sra.c: Include ipa-inline.h.
9363         (ipa_sra_preliminary_function_checks): Update.
9364         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
9365         ipa-inline.h.
9366
9367 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
9368
9369         * config/i386/sse.md (V16): New mode iterator.
9370         (VI1, VI8): Ditto.
9371         (AVXMODEQI, AVXMODEDI): Remove.
9372         (sse2, sse3): New mode attribute.
9373         (mov<mode>): Use V16 mode iterator.
9374         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
9375         (push<mode>1): Use V16 mode iterator.
9376         (movmisalign<mode>): Ditto.
9377         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
9378         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
9379         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
9380         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
9381         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
9382         avx_movdqu<avxmodesuffix>.
9383         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
9384         *avx_movdqu<avxmodesuffix>.
9385         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
9386         avx_lddqu<avxmodesuffix>.
9387         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
9388         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
9389         avx_movnt<AVXMODEDI:mode>.
9390         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
9391         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
9392
9393 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
9394
9395         PR target/48629
9396         * haifa-sched.c (prune_ready_list, schedule_block): Use
9397         sched_pressure_p rather than flag_sched_pressure.
9398
9399 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
9400
9401         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
9402         cgraph_get_node instead of cgraph_get_create_node.
9403
9404 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
9405
9406         * cfgexpand.c (expand_debug_expr): Use
9407         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
9408
9409 2011-04-15  Michael Matz  <matz@suse.de>
9410
9411         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
9412         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
9413         * function.c (gimplify_parameters): Ditto.
9414         * gimplify.c (gimplify_vla_decl): Ditto.
9415
9416         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
9417         (gimple_call_set_alloca_for_var): New inline function.
9418         (gimple_call_alloca_for_var_p): Ditto.
9419         * gimple.c (gimple_build_call_from_tree): Remember
9420         CALL_ALLOCA_FOR_VAR_P state.
9421         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
9422
9423         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
9424         calls if they were for VLA objects.
9425
9426 2011-04-15  Martin Jambor  <mjambor@suse.cz>
9427
9428         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
9429         of ADR_EXPRs.
9430
9431 2011-04-15  Martin Jambor  <mjambor@suse.cz>
9432
9433         PR middle-end/48601
9434         * tree-emutls.c (lower_emutls_function_body): Call
9435         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
9436         result is non-NULL.
9437
9438 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
9439
9440         * c-decl.c (detect_field_duplicates): Call
9441         objc_detect_field_duplicates instead of objc_get_interface_ivars.
9442
9443 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
9444
9445         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
9446         * gimple.c (gimple_asm_clobbers_memory_p): Define.
9447         * ipa-pure-const.c (check_stmt): Call it.
9448         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
9449
9450 2011-04-15  Richard Guenther  <rguenther@suse.de>
9451
9452         PR tree-optimization/48290
9453         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
9454         Properly decide inhibiting propagation based on the valueized
9455         operand.  Do loop-closed SSA form preserving here ...
9456         (init_copy_prop): ... not here.
9457
9458 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
9459
9460         PR target/48612
9461         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
9462         (*ieee_smax<mode>3): Likewise.
9463
9464 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9465
9466         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
9467         Replace match_operand with match_dup for the third operand in
9468         these expanders.
9469
9470 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
9471
9472         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
9473         to track processing of conditionals.  Update all callers.
9474         (try_combine, simplify_if_then_else): Update.
9475
9476 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
9477
9478         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
9479         -fsched-pressure.
9480
9481 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
9482
9483         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
9484         instead of match_operand for operand 3.
9485
9486 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
9487
9488         * recog.h (insn_operand_data): Add an "allows_mem" field.
9489         * genoutput.c (output_operand_data): Initialize it.
9490         * optabs.c (maybe_legitimize_operand_same_code): New function.
9491         (maybe_legitimize_operand): Use it when matching the original
9492         op->value.
9493
9494 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9495
9496         * gimplify.c: Fix issues in comments throughout.
9497         (voidify_wrapper_expr): Fix long line.
9498         (build_stack_save_restore): Likewise.
9499         (gimplify_loop_expr): Likewise.
9500         (gimplify_compound_lval): Likewise.
9501         (gimplify_init_ctor_eval): Likewise.
9502         (gimplify_modify_expr_rhs): Likewise.
9503         (omp_notice_threadprivate_variable): Likewise.
9504
9505 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9506
9507         * cfgexpand.c (expand_call_stmt): Convert the function type to the
9508         original one if this is not a builtin function.
9509
9510 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
9511
9512         PR target/48605
9513         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
9514         offset it as needed based on top 2 bits in operands[3], change
9515         MEM mode to SFmode and mask those 2 bits away from operands[3].
9516
9517 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
9518
9519         * c-parser.c (c_parser_objc_protocol_definition): Updated for
9520         change from objc_declare_protocols() to objc_declare_protocol().
9521
9522 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
9523
9524         * config/i386/sse.md (sse4_1): New mode attribute.
9525         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
9526         avx_blend<ssemodesuffix><avxmodesuffix> and
9527         sse4_1_blend<ssemodesuffix> using VF mode iterator.
9528         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
9529         avx_blendv<ssemodesuffix><avxmodesuffix> and
9530         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
9531         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
9532         avx_dp<ssemodesuffix><avxmodesuffix> and
9533         sse4_1_dp<ssemodesuffix> using VF mode iterator.
9534         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
9535         (sse4_1_packusdw): Merge with *avx_packusdw.
9536         (sse4_1_pblendvb): Merge with *avx_pblendvb.
9537         (sse4_1_pblendw): Merge with *avx_pblendw.
9538         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
9539         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
9540         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
9541         VF mode iterator.
9542         (sse4_1_round<ssescalarmodesuffix>): Merge with
9543         *avx_round<ssescalarmodesuffix>.
9544         (aesenc): Merge with *avx_aesenc.
9545         (aesenclast): Merge with *avx_aesenclast.
9546         (aesdec): Merge with *avx_aesdec.
9547         (aesdeclast): Merge with *avx_aesdeclast.
9548         (pclmulqdq): Merge with *pclmulqdq.
9549         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
9550         New predicate.
9551         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
9552
9553 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
9554
9555         PR middle-end/48608
9556         * cfgexpand.c (get_decl_align_unit): Renamed to ...
9557         (align_local_variable): This.  Update DECL_ALIGN.
9558         (add_stack_var): Updated.
9559         (expand_one_stack_var): Likewise.
9560
9561 2011-04-14  Richard Guenther  <rguenther@suse.de>
9562
9563         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
9564         Remove.
9565         (dse_initialize_block_local_data, dse_leave_block,
9566         record_voperand_set, get_stmt_uid): Likewise.
9567         (dse_possible_dead_store_p): Allow any kind of killing stmt.
9568         (dse_optimize_stmt): Remove voperand set handling code.
9569         Simplify and improve to handle any kind of killing stmt.
9570         (dse_record_phi): Remove.
9571         (dse_enter_block): Simplify.
9572         (tree_ssa_dse): Likewise.
9573         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
9574
9575 2011-04-14  Jan Hubicka  <jh@suse.cz>
9576
9577         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
9578         * cgraph.h (struct inline_summary): Move to ipa-inline.h
9579         (cgraph_local_info): Remove inline_summary.
9580         * ipa-cp.c: Include ipa-inline.h.
9581         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
9582         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
9583         accesor.
9584         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
9585         (input_overwrite_node): Do not set inline summary.
9586         (input_node): Do not stream inline summary.
9587         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
9588         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
9589         growth; we do not have inline parameters computed for that anyway.
9590         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
9591         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
9592         (inline_summary_t): New type and VECtor.
9593         (debug_inline_summary, dump_inline_summaries): Declare.
9594         (inline_summary): Use VOCtor.
9595         (estimate_edge_growth): Kill hack computing call stmt size directly.
9596         * lto-section-in.c (lto_section_name): Add inline section.
9597         * ipa-inline-analysis.c: Include lto-streamer.h
9598         (node_removal_hook_holder, node_duplication_hook_holder): New holders
9599         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
9600         (inline_summary_vec): Define.
9601         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
9602         dump_inline_summaries): New functions.
9603         (estimate_function_body_sizes): Properly compute size/time of outgoing
9604         calls.
9605         (compute_inline_parameters): Alloc inline_summary; do not compute
9606         size/time of incomming calls.
9607         (estimate_edge_time): Avoid missing time summary hack.
9608         (inline_read_summary): Read inline summary info.
9609         (inline_write_summary): Write inline summary info.
9610         (inline_free_summary): Free all hooks and inline summary vector.
9611         * lto-streamer.h: Add LTO_section_inline_summary section.
9612         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
9613         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
9614
9615 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
9616
9617         * tree-vectorizer.h (vect_strided_store_supported): Add a
9618         HOST_WIDE_INT argument.
9619         (vect_strided_load_supported): Likewise.
9620         (vect_permute_store_chain): Return void.
9621         (vect_transform_strided_load): Likewise.
9622         (vect_permute_load_chain): Delete.
9623         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
9624         count argument.  Check that the count is a power of two.
9625         (vect_strided_load_supported): Likewise.
9626         (vect_permute_store_chain): Return void.  Update after above changes.
9627         Assert that the access is supported.
9628         (vect_permute_load_chain): Likewise.
9629         (vect_transform_strided_load): Return void.
9630         * tree-vect-stmts.c (vectorizable_store): Update calls after
9631         above interface changes.
9632         (vectorizable_load): Likewise.
9633         (vect_analyze_stmt): Don't check for strided powers of two here.
9634
9635 2011-04-14  Richard Guenther  <rguenther@suse.de>
9636
9637         PR tree-optimization/48590
9638         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
9639         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
9640         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
9641         BUILT_IN_STACK_SAVE.
9642         * tree-ssa-dce.c (propagate_necessity): Handle
9643         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
9644
9645 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
9646
9647         * c-parser.c (c_parser_objc_class_declaration): Updated call to
9648         objc_declare_class.
9649
9650 2011-04-14  Richard Guenther  <rguenther@suse.de>
9651
9652         * tree.h (get_object_alignment_1): Declare.
9653         * builtins.c (get_object_alignment_1): Split out worker from ...
9654         (get_object_alignment): ... here.
9655         * fold-const.c (get_pointer_modulus_and_residue): Use
9656         get_object_alignment_1.
9657
9658 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
9659
9660         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
9661         type parameter.
9662         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
9663         parameter.  Generalise code to handle arrays as well as vectors.
9664         (vect_setup_realignment): Update accordingly.
9665         * tree-vect-stmts.c (vectorizable_store): Likewise.
9666         (vectorizable_load): Likewise.
9667
9668 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
9669
9670         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
9671         within the per-copy loop.
9672
9673 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
9674
9675         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
9676         in the dump file.
9677
9678 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
9679
9680         * doc/options.texi (Negative): Explicitly mention that the
9681         Negative chain must be circular.
9682
9683 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
9684
9685         * function.h (block_chainon): Declare.
9686         * function.c (block_chainon): Define.
9687
9688 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
9689             Eric Weddington  <eric.weddington@atmel.com>
9690             Georg-Johann Lay  <avr@gjlay.de>
9691
9692         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
9693         New Includes
9694         (avr_init_builtins, avr_expand_builtin,
9695         avr_expand_delay_cycles, avr_expand_unop_builtin,
9696         avr_expand_binop_builtin ): New functions.
9697         (avr_builtin_id): New enum
9698         (struct avr_builtin_description): New struct
9699         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
9700         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
9701
9702         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
9703         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
9704         UNSPECV_DELAY_CYCLES): new enumeration values
9705         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
9706         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
9707         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
9708         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
9709         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
9710         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
9711         "fmulsu"): New insns
9712
9713         * config/avr/avr-c.c: fix line endings
9714         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
9715         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
9716         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
9717         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
9718         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
9719
9720         * doc/extend.texi (AVR Built-in Functions): New node
9721         (Target Builtins): Add documentation of AVR
9722         built-in functions.
9723
9724 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
9725
9726         PR target/44643
9727         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
9728         alone. Error if non-const data has attribute progmem.
9729
9730 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
9731
9732         * tree.h (struct tree_constructor): Include tree_typed instead of
9733         tree_common.
9734         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
9735         TS_TYPED instead of TS_COMMON.
9736
9737 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
9738
9739         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
9740         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
9741         (sse2_psadbw): Merge with *avx_psadbw.
9742         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
9743         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
9744         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
9745         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
9746         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
9747         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
9748         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
9749         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
9750         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
9751         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
9752         (ssse3_palignrti): Merge with *avx_palignrti.
9753
9754 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
9755
9756         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
9757         * tree-ssanames.c (fini_ssanames): VEC_free it.
9758         (make_ssa_name_fn): Update for VECness of free_ssanames.
9759         (release_ssa_name, release_dead_ssa_names): Likewise.
9760         * tree.h (struct tree_ssa_name): Include tree_typed instead of
9761         tree_common.
9762         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
9763         TS_TYPED instead of TS_COMMON.
9764
9765 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
9766
9767         * postreload-gcse.c (gcse_after_reload_main): Add calls to
9768         statistics_counter_event.
9769         * tree-ssa-copyrename.c (stats): Define.
9770         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
9771         statistics_counter_event.
9772         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
9773         (bswap_stats, widen_mul_stats): Define.
9774         (insert_reciprocals): Increment rdivs_inserted.
9775         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
9776         rfuncs_inserted.  Add calls to statistics_counter_event.
9777         (execute_cse_sincos_1): Increment inserted.
9778         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
9779         statistics_counter_event.
9780         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
9781         of bswap_stats.  Add calls to statistics_counter_event.
9782         (convert_mult_to_widen): Increment widen_mults_inserted.
9783         (convert_plusminus_to_widen): Increment maccs_inserted.
9784         (convert_mult_to_fma): Increment fmas_inserted.
9785         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
9786         calls to statistics_counter_event.
9787
9788 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
9789
9790         PR rtl-optimization/48455
9791         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
9792         `temp_costs->mem_cost'.
9793
9794 2011-04-13  Jan Hubicka  <jh@suse.cz>
9795
9796         * ipa-inline.h: New file.
9797         * ipa-inline-analysis.c: New file. Broken out of ...
9798         * ipa-inline.c: ... this file; update toplevel comment;
9799         include ipa-inline.h
9800         (inline_summary): Move to ipa-inline.h
9801         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
9802         ipa-inline-analysis.c.
9803         (cgraph_estimate_time_after_inlining): Rename to
9804         estiamte_time_after_inlining; move to ipa-inline-analysis.c
9805         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
9806         to estimate_edge_growth.
9807         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
9808         rename to estimate_size_after_inlining.
9809         (cgraph_mark_inline_edge): Update for new naming convention.
9810         (cgraph_check_inline_limits): Likewise.
9811         (cgraph_edge_badness): Likewise.
9812         (cgraph_decide_recursive_inlining): Likewise.
9813         (cgraph_decide_inlining_of_small_functions): Likewise.
9814         (cgraph_decide_inlining_incrementally): Likewise.
9815         (cgraph_estimate_growth): Rename to estimate_growth; move to
9816         ipa-inline-analysis.c.
9817         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
9818         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
9819         (compute_inline_parameters): Likewise.
9820         (compute_inline_parameters_for_current): Likewise.
9821         (pass_inline_parameters): Likewise.
9822         (inline_indirect_intraprocedural_analysis): Likewise.
9823         (analyze_function): Rename to inline_analyze_function; likewise.
9824         (add_new_function): Move to ipa-inline-analysis.c.
9825         (inline_generate_summary): Likewise.
9826         (inline_read_summary): Likewise.
9827         (inline_write_summary): Likewise.
9828         * Makefile.in (ipa-inline-analysis.c): New file.
9829
9830 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9831
9832         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
9833         * configure: Regenerate.
9834
9835 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
9836
9837         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
9838         instead of tree_common.
9839         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
9840         Likewise.
9841         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
9842         TS_TYPED rather than TS_COMMON.
9843         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
9844
9845 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
9846
9847         PR target/45263
9848         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
9849         r20 around calls of __tablejump_elpm__
9850
9851 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
9852
9853         PR middle-end/48591
9854         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
9855         NULL.
9856         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
9857
9858 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
9859
9860         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
9861         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
9862         (cfi_vec): New typedef.
9863         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
9864         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
9865         (cie_cfi_vec): New static variable.
9866         (cie_cfi_head): Delete.
9867         (add_cfi): Accept a cfi_vec * as first argument. All callers and
9868         declaration changed. Use vector rather than list operations.
9869         (new_cfi): Don't initialize the dw_cfi_next field.
9870         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
9871         rather than list operations.
9872         (lookup_cfa): Use vector rather than list operations.
9873         (output_cfis): New argument upto. Accept a cfi_vec rather than
9874         a dw_cfi_ref list head as argument. All callers changed.
9875         Iterate over the vector using upto as a maximum index.
9876         (output_all_cfis): New static function.
9877         (output_fde): Use vector rather than list operations. Use the
9878         new upto argument for output_cfis rather than manipulating a
9879         list.
9880         (dwarf2out_begin_prologue): Change initializations to match
9881         new struct members.
9882         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
9883         from the vector length rather than searching for the end of a list.
9884         Use output_all_cfis.
9885         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
9886
9887 2011-04-13  Nick Clifton  <nickc@redhat.com>
9888
9889         * config/rx/rx.md (movmemsi): Do not use this pattern when
9890         volatile pointers are involved.
9891
9892 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
9893
9894         * config/i386/sse.md (pinsrbits): Remove.
9895         (sse2_packsswb): Merge with *avx_packsswb.
9896         (sse2_packssdw): Merge with *avx_packssdw.
9897         (sse2_packuswb): Merge with *avx_packuswb.
9898         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
9899         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
9900         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
9901         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
9902         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
9903         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
9904         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
9905         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
9906         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
9907         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
9908         (sse2_loadld): Merge with *avx_loadld.
9909         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
9910         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
9911         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
9912         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
9913         (vec_concatv2di): Merge with *vec_concatv2di_avx.
9914
9915 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
9916
9917         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
9918         calling TREE_CHAIN.
9919         * print-tree.c (print_node): Likewise.
9920         * tree-inline.c (copy_tree_r): Likewise.
9921         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
9922         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
9923         instead of TS_COMMON.
9924         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
9925         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
9926         (copy_node_stat): Zero TREE_CHAIN only if necessary.
9927         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
9928         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
9929         ...and these...
9930         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
9931         * tree.h: ...here.
9932         (TREE_CHAIN): Check for a TS_COMMON structure.
9933         (TREE_TYPE): Check for a TS_TYPED structure.
9934
9935 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
9936
9937         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
9938         cgraph_get_create_node instead of cgraph_node.
9939
9940 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
9941
9942         * c-parser.c (c_parser_initelt): Updated call to
9943         objc_build_message_expr.
9944         (c_parser_postfix_expression): Likewise.
9945
9946 2011-04-12  Kai Tietz  <ktietz@redhat.com>
9947
9948         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
9949         MASK_MS_BITFIELD_LAYOUT bit.
9950
9951 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
9952
9953         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
9954         assert it is always true.
9955         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
9956         moves.
9957
9958 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
9959
9960         * c-parser.c (c_lex_one_token): Rewritten conditional used when
9961         compiling Objective-C to be more efficient.
9962
9963 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
9964
9965         * opts-common.c (decode_cmdline_options_to_array): Remove variable
9966         argv_copied.
9967
9968 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
9969
9970         * recog.h, genoutput.c, optabs.c: Revert last patch.
9971
9972 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9973
9974         PR target/48090
9975         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
9976
9977 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
9978
9979         * recog.h (insn_operand_data): Add an "allows_mem" field.
9980         * genoutput.c (output_operand_data): Initialize it.
9981         * optabs.c (maybe_legitimize_operand_same_code): New function.
9982         (maybe_legitimize_operand): Use it when matching the original
9983         op->value.
9984
9985 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
9986
9987         * genpreds.c (process_define_predicate): Move most processing
9988         to gensupport.c.  Continue to validate the expression.
9989         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
9990         (process_define_predicate): Move processing to gensupport.c.
9991         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
9992         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
9993         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
9994         argument.
9995         (valid_predicate_name_p): New function, split out from old
9996         genpreds.c:process_define_predicate.
9997         (process_define_predicate): New function, combining code from
9998         old genpreds.c and genrecog.c functions.
9999         (process_rtx): Call it for DEFINE_PREDICATE and
10000         DEFINE_SPECIAL_PREDICATE.
10001
10002 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
10003
10004         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
10005         size of a '%A' memory reference.
10006         (T_DREG, T_QREG): New neon_builtin_type_bits.
10007         (arm_init_neon_builtins): Assert that the load and store operands
10008         are neon_struct_operands.
10009         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
10010         (NEON_ARG_MEMORY): New builtin_arg.
10011         (neon_dereference_pointer): New function.
10012         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
10013         Handle NEON_ARG_MEMORY.
10014         (arm_expand_neon_builtin): Update after above interface changes.
10015         Use NEON_ARG_MEMORY for loads and stores.
10016         * config/arm/predicates.md (neon_struct_operand): New predicate.
10017         * config/arm/iterators.md (V_two_elem): Tweak formatting.
10018         (V_three_elem): Use BLKmode for accesses that have no associated mode.
10019         (V_four_elem): Tweak formatting.
10020         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
10021         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
10022         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
10023         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
10024         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
10025         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
10026         (neon_vst4<mode>): Replace pointer operand with a memory operand.
10027         Use %A in the output template.
10028         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
10029         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
10030         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
10031         the width of the memory access.  Remove post-increment.
10032         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
10033
10034 2011-04-12  Nick Clifton  <nickc@redhat.com>
10035
10036         * config/v850/v850.c (expand_prologue): Do not use the CALLT
10037         instruction for interrupt handlers if the target is the basic V850
10038         architecture.
10039         (expand_epilogue): Likewise.
10040
10041 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
10042
10043         PR rtl-optimization/48549
10044         * combine.c (propagate_for_debug): Also stop after BB_END of
10045         this_basic_block.  Process LAST and just stop processing after it.
10046         (combine_instructions): If last_combined_insn has been deleted,
10047         set last_combined_insn to its PREV_INSN.
10048
10049 2011-04-12  Richard Guenther  <rguenther@suse.de>
10050
10051         PR tree-optimization/46076
10052         * gimple.h (struct gimple_statement_call): Add fntype field.
10053         (gimple_call_fntype): Adjust.
10054         (gimple_call_set_fntype): New function.
10055         * gimple.c (gimple_build_call_1): Set the call function type.
10056         * gimplify.c (gimplify_call_expr): Preserve the function
10057         type the frontend used for the call.
10058         (gimplify_modify_expr): Likewise.
10059         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
10060         function type.
10061         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
10062         function type.
10063         * tree-ssa.c (useless_type_conversion_p): Function pointer
10064         conversions are useless.
10065
10066 2011-04-12  Martin Jambor  <mjambor@suse.cz>
10067
10068         * cgraph.h (cgraph_node): Remove function declaration.
10069         (cgraph_create_node): Declare.
10070         (cgraph_get_create_node): Likewise.
10071         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
10072         Updated all callers.
10073         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
10074         the decl does not already exist.  Call cgraph_get_create_node instead
10075         of cgraph_node.
10076         (cgraph_get_create_node): New function.
10077         (cgraph_same_body_alias): Update comment.
10078         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
10079         assert it does not return NULL.
10080         (cgraph_update_edges_for_call_stmt): Likewise.
10081         (cgraph_clone_edge): Likewise.
10082         (cgraph_create_virtual_clone): Likewise.
10083         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
10084         instead of cgraph_node.
10085         (cgraph_add_new_function): Call cgraph_create_node or
10086         cgraph_get_create_node instead of cgraph_node.
10087         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
10088         instead of cgraph_node.
10089         (record_eh_tables): Likewise.
10090         (mark_address): Likewise.
10091         (mark_load): Likewise.
10092         (build_cgraph_edges): Call cgraph_get_create_node instead
10093         of cgraph_node.
10094         (rebuild_cgraph_edges): Likewise.
10095         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
10096         instead of cgraph_node.
10097         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
10098         cgraph_node.
10099         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
10100         cgraph_create_node instead of cgraph_node.
10101         * c-decl.c (finish_function): Call cgraph_get_create_node instead
10102         of cgraph_node.
10103         * lto-cgraph.c (input_node): Likewise.
10104         * lto-streamer-in.c (input_function): Likewise.
10105         * varasm.c (mark_decl_referenced): Likewise.
10106         (assemble_alias): Likewise.
10107
10108 2011-04-12  Martin Jambor  <mjambor@suse.cz>
10109
10110         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
10111         instead of cgraph_node and assert it does not return NULL.
10112         * lto-streamer-in.c (lto_read_body): Likewise.
10113         * omp-low.c (new_omp_context): Likewise.
10114         (create_task_copyfn): Likewise.
10115         * tree-emutls.c (lower_emutls_function_body): Likewise.
10116         * matrix-reorg.c (transform_allocation_sites): Likewise.
10117
10118 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
10119
10120         PR c/48552
10121         * c-typeck.c (build_asm_expr): Error out on attempts to use
10122         void type outputs or inputs for constraints that allow reg or
10123         don't allow memory.
10124
10125 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
10126             Richard Earnshaw  <rearnsha@arm.com>
10127
10128         PR target/48250
10129         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
10130         to use sign-magnitude offsets. Reject unsupported unaligned
10131         cases. Add detailed description in comments.
10132         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
10133         condition from TARGET_32BIT to TARGET_ARM.
10134
10135 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
10136
10137         * tree.h (struct typed_tree): New.
10138         (struct tree_common): Include it instead of tree_base.
10139         (TREE_TYPE): Update for new location of type field.
10140         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
10141         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
10142         (union tree_node): Add typed field.
10143         * treestruct.def (TS_TYPED): New.
10144         * lto-streamer.c (check_handled_ts_structures): Handle it.
10145         * tree.c (MARK_TS_TYPED): New macro.
10146         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
10147
10148 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
10149
10150         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
10151         (force_nonfallthru): Do not alter the loop nest if no basic block
10152         was created.
10153
10154 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
10155
10156         * config/i386/sse.md (VI): New mode iterator.
10157         (SSEMODEI): Remove.
10158         (AVX256MODEI): Ditto.
10159         (AVXMODEF4P): Ditto.
10160         (avxvecpsmode): Ditto.
10161         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
10162         (sse2_andnot<mode>3): New expander.
10163         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
10164         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
10165         (<any_logic:code><mode>3): Use VI mode iterator.
10166         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
10167         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
10168         (*andnottf3): Handle AVX three-operand constraints.
10169         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
10170
10171 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
10172             Robert Millan  <rmh@gnu.org>
10173
10174         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
10175         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
10176         GNU_USER_DYNAMIC_LINKER64): Define.
10177         (REG_NAME): Don't undefine.
10178         (MD_UNWIND_SUPPORT): Undefine.
10179         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
10180         (REG_NAME): Don't undefine.
10181         (MD_UNWIND_SUPPORT): Undefine.
10182         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
10183
10184 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
10185
10186         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
10187         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
10188
10189 2011-04-11  Xinliang David Li  <davidxl@google.com>
10190
10191         * value-profile.c (check_ic_target): New function.
10192         (gimple_ic_transform): Sanity check indirect call target.
10193         * gimple-low.c (gimple_check_call_args): Interface change.
10194         (gimple_check_call_matching_types): New function.
10195         * tree-inline.c (tree_can_inline_p): Call new function.
10196
10197 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
10198
10199         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
10200         tree-pretty-print.h & realmpfr.h.
10201
10202 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
10203
10204         PR middle-end/48464
10205         * ira.c (setup_pressure_classes): Fix typo in loop condition.
10206         (setup_allocno_and_important_classes): Ditto.
10207
10208 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
10209
10210         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
10211         GNU_USER_DYNAMIC_LINKER.
10212         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
10213         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10214         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
10215         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
10216         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
10217         GNU_USER_TARGET_OS_CPP_BUILTINS.
10218         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
10219         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10220         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
10221         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10222         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
10223         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
10224         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
10225         GNU_USER_TARGET_OS_CPP_BUILTINS.
10226         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10227         GNU_USER_DYNAMIC_LINKER.
10228         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
10229         GNU_USER_TARGET_OS_CPP_BUILTINS.
10230         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
10231         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10232         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
10233         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10234         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
10235         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
10236         GNU_USER_DYNAMIC_LINKER64): Remove.
10237         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
10238         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10239         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10240         GNU_USER_DYNAMIC_LINKER.
10241         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
10242         GNU_USER_TARGET_OS_CPP_BUILTINS.
10243         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
10244         GNU_USER_TARGET_OS_CPP_BUILTINS.
10245         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
10246         to GNU_USER_TARGET_OS_CPP_BUILTINS.
10247         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
10248         GNU_USER_TARGET_OS_CPP_BUILTINS.
10249         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
10250         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
10251         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
10252         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
10253         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10254         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10255         GNU_USER_DYNAMIC_LINKER.
10256         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
10257         GNU_USER_TARGET_OS_CPP_BUILTINS.
10258         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
10259         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10260         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10261         GNU_USER_DYNAMIC_LINKER.
10262         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
10263         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10264         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
10265         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10266         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10267         GNU_USER_DYNAMIC_LINKER.
10268         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
10269         GNU_USER_DYNAMIC_LINKERN32.
10270         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
10271         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
10272         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
10273         GNU_USER_DYNAMIC_LINKER32.
10274         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
10275         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10276         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10277         GNU_USER_DYNAMIC_LINKER.
10278         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
10279         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10280         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
10281         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10282         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
10283         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
10284         GNU_USER_DYNAMIC_LINKER32.
10285         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
10286         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
10287         GNU_USER_DYNAMIC_LINKER.
10288         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
10289         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10290         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
10291         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
10292         GNU_USER_DYNAMIC_LINKER64.
10293         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
10294         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10295         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10296         GNU_USER_DYNAMIC_LINKER.
10297         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
10298         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10299         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
10300         GNU_USER_DYNAMIC_LINKER.
10301         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
10302         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10303         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
10304         GNU_USER_DYNAMIC_LINKER32.
10305         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
10306         GNU_USER_DYNAMIC_LINKER64.
10307         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
10308         GNU_USER_DYNAMIC_LINKER64.
10309         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
10310         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10311         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
10312         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
10313         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
10314
10315 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
10316
10317         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
10318         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
10319         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
10320         GNU_USER_DYNAMIC_LINKER.
10321         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
10322         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
10323         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
10324         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
10325         GNU_USER_DYNAMIC_LINKER64.
10326         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
10327         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
10328         GNU_USER_LINK_EMULATION.
10329         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
10330         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
10331         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
10332         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
10333         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
10334         CPP_SPEC, CC1_SPEC): Remove.
10335         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
10336         (GNU_USER_DYNAMIC_LINKER): Define.
10337         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
10338         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
10339         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
10340         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
10341         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
10342         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
10343         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
10344         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
10345         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
10346         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
10347         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
10348         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
10349         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
10350         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
10351         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
10352         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
10353         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10354         GNU_USER_DYNAMIC_LINKER.
10355         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10356         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
10357         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10358         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
10359         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10360         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
10361         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
10362         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
10363         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
10364         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
10365
10366 2011-04-11  Kai Tietz  <ktietz@redhat.com>
10367
10368         PR target/9601
10369         PR target/11772
10370         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
10371         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
10372         comment.
10373         (ix86_is_msabi_thiscall): Removed.
10374         (ix86_is_type_thiscall): Likewise.
10375         (ix86_get_callcvt): New function.
10376         (ix86_comp_type_attributes): Simplify check.
10377         (ix86_function_regparm): Use ix86_get_callcvt for calling
10378         convention attribute checks.
10379         (ix86_return_pops_args): Likewise.
10380         (ix86_static_chain): Likewise.
10381         (x86_this_parameter): Likewise.
10382         (x86_output_mi_thunk): Likewise.
10383         (ix86_function_type_abi): Optimize check for types without attributes.
10384         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
10385         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
10386         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
10387         by flag-values.
10388         (IX86_BASE_CALLCVT): Helper macro.
10389         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
10390         Use ix86_get_callcvt for calling convention attribute checks and avoid
10391         symbol-decoration for stdcall in TARGET_RTD case.
10392         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
10393         Likewise.
10394         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
10395         for declaration.
10396
10397 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
10398
10399         * config/i386/sse.md (VI_128): New mode iterator.
10400         (VI12_128): Rename from SSEMODE12.
10401         (VI14_128): Rename from SSEMODE14.
10402         (VI124_128): New mode iterator.
10403         (VI24_128): Rename from SSEMODE248.
10404         (VI248_128): Rename from SSEMODE248.
10405         (SSEMODE124C8): Remove.
10406         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
10407         (*sse2_<plusminus_insn><mode>3): Merge with
10408         *avx_<plusminus_insn><mode>3.
10409         (*mulv8hi3): Merge with *avx_mulv8hi3.
10410         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
10411         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
10412         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
10413         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
10414         (ashr<mode>3): Merge with *avx_ashr<mode>3.
10415         (lshr<mode>3): Merge with *avx_lshr<mode>3.
10416         (ashl<mode>3): Merge with *avx_ashl<mode>3.
10417         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
10418         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
10419         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10420         (*<smaxmin:code>v8hi3): Ditto.
10421         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
10422         (*<smaxmin:code>v16qi3): Ditto.
10423         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
10424         (*sse2_eq<mode>3): Ditto.
10425         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
10426         (*sse2_gt<mode>3): Ditto.
10427         (vcondv2di): Split out of vcond<mode>.
10428         (vconduv2di): Split out of vcondu<mode>.
10429
10430 2011-04-11  Richard Guenther  <rguenther@suse.de>
10431
10432         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
10433         before calling tree_low_cst.
10434
10435 2011-04-11  Richard Guenther  <rguenther@suse.de>
10436
10437         * stor-layout.c (layout_type): Compute all array index size operations
10438         in the original type.
10439         (initialize_sizetypes): Add comment.
10440         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
10441
10442 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
10443
10444         * common.opt (Tbss=, Tdata=, Ttext=): New options.
10445
10446 2011-04-11  Martin Jambor  <mjambor@suse.cz>
10447
10448         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
10449         of cgraph_node, handle NULL return value.
10450         (cgraph_global_info): Likewise.
10451         (cgraph_rtl_info): Likewise.
10452         * tree-inline.c (estimate_num_insns): Likewise.
10453         * gimplify.c (unshare_body): Likewise.
10454         (unvisit_body): Likewise.
10455         (gimplify_body): Likewise.
10456         * predict.c (optimize_function_for_size_p): Likewise.
10457         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
10458         (call_may_clobber_ref_p_1): Likewise.
10459         * varasm.c (function_section_1): Likewise.
10460         (assemble_start_function): Likewise.
10461
10462 2011-04-11  Martin Jambor  <mjambor@suse.cz>
10463
10464         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
10465         of cgraph_node.
10466         * final.c (rest_of_clean_state): Likewise.
10467         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
10468         * passes.c (pass_init_dump_file): Likewise.
10469         (execute_all_ipa_transforms): Likewise.
10470         (function_called_by_processed_nodes_p): Likewise.
10471         * predict.c (maybe_hot_frequency_p): Likewise.
10472         (probably_never_executed_bb_p): Likewise.
10473         (compute_function_frequency): Likewise.
10474         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
10475         (unnest_nesting_tree_1): Likewise.
10476         (lower_nested_functions): Likewise.
10477         * tree-optimize.c (execute_fixup_cfg): Likewise.
10478         (tree_rest_of_compilation): Likewise.
10479         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
10480         * tree-sra.c (ipa_early_sra): Likewise.
10481         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
10482         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
10483         * ipa.c (record_cdtor_fn): Likewise.
10484         * ipa-inline.c (cgraph_early_inlining): Likewise.
10485         (compute_inline_parameters_for_current): Likewise.
10486         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
10487         * ipa-pure-const.c (local_pure_const): Likewise.
10488         * ipa-split.c (split_function): Likewise.
10489         (execute_split_functions): Likewise.
10490         * cgraphbuild.c (build_cgraph_edges): Likewise.
10491         (rebuild_cgraph_edges): Likewise.
10492         (cgraph_rebuild_references): Likewise.
10493         (remove_cgraph_callee_edges): Likewise.
10494         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
10495         (verify_cgraph_node): Likewise.
10496         (cgraph_analyze_functions): Likewise.
10497         (cgraph_preserve_function_body_p): Likewise.
10498         (save_inline_function_body): Likewise.
10499         (save_inline_function_body): Likewise.
10500         * tree-inline.c (copy_bb): Likewise.
10501         (optimize_inline_calls): Likewise.
10502
10503 2011-04-11  Martin Jambor  <mjambor@suse.cz>
10504
10505         PR tree-optimization/48195
10506         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
10507         ipa_check_create_edge_args.
10508         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
10509         ipa_check_create_edge_args.
10510         * ipa-inline.c (inline_generate_summary): Do not call
10511         ipa_check_create_node_params and ipa_check_create_edge_args.
10512         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
10513         ipa_check_create_edge_args.
10514
10515 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
10516
10517         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
10518         instead of loop.
10519         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10520         * function.c (record_hard_reg_sets): Likewise.
10521         * ira.c (compute_regs_asm_clobbered): Likewise.
10522         * sched-deps.c (sched_analyze_1): Likewise.
10523         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
10524
10525 2011-04-09  Xinliang David Li  <davidxl@google.com>
10526
10527         PR tree-optimization/PR48484
10528         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
10529         has_valid_pred lazily
10530
10531 2011-04-09  Duncan Sands  <baldrick@free.fr>
10532
10533         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
10534
10535 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
10536
10537         * combine.c (combine_validate_cost): Adjust comments.  Set registered
10538         cost of I0 to zero at the end, if any.
10539
10540 2011-04-08  Xinliang David Li  <davidxl@google.com>
10541
10542         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
10543         to insane profile data.
10544
10545 2011-04-08  Xinliang David Li  <davidxl@google.com>
10546
10547         * ipa-cp.c (ipcp_update_profiling): Correct
10548          negative scale factor due to insane profile data.
10549
10550 2011-04-08  Xinliang David Li  <davidxl@google.com>
10551
10552         * final.c (dump_basic_block_info): New function.
10553         (final): Dump basic block.
10554         (final_scan_insn): Remove old dump.
10555
10556 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
10557
10558         PR target/47829
10559         * config.gcc (i386-*-freebsd): Disable unwind table generation for
10560         crtbegin/crtend.
10561
10562 2011-04-08  Michael Matz  <matz@suse.de>
10563
10564         PR middle-end/48389
10565         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
10566         functions.
10567         (rebuild_jump_labels): Call rebuild_jump_labels_1.
10568         * rtl.h (rebuild_jump_labels_chain): Declare.
10569         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
10570         insns inserted on edges.
10571
10572 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
10573
10574         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
10575         * config/arm/arm-arches.def: New.
10576         * config/arm/arm-opts.h: New.
10577         * config/arm/genopt.sh: New.
10578         * config/arm/arm-tables.opt: New (generated).
10579         * config/arm/arm.c (arm_handle_option, arm_target_help,
10580         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
10581         (all_architectures): Get most table contents from arm-arches.def.
10582         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
10583         arm_selected_tune here.
10584         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
10585         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
10586         (march=, mcpu=, mtune=): Use Enum and Var.
10587         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
10588         (arm.o): Update dependencies.
10589
10590 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
10591
10592         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
10593         of header_file.
10594         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
10595         (write_typed_alloc_defns): Likewise.
10596         (main): Calls write_typed_alloc_defns with output_header.
10597
10598 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
10599
10600         PR inline-asm/48435
10601         * ira-color.c (setup_profitable_hard_regs): Add comments.
10602         Don't take prohibited hard regs into account.
10603         (setup_conflict_profitable_regs): Rename to
10604         get_conflict_profitable_regs.
10605         (check_hard_reg_p): Check prohibited hard regs.
10606
10607 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
10608
10609         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
10610         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
10611         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
10612
10613 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10614
10615         PR target/48366
10616         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
10617         move from floating point to shift amount register.
10618         (emit_move_sequence): Remove secondary reload support for floating
10619         point to shift amount amount register copies.
10620         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
10621         amount register copies.
10622         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
10623         register, return false if mode isn't a scalar integer mode.
10624         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
10625
10626 2011-04-08  Richard Guenther  <rguenther@suse.de>
10627
10628         * gimple.c (gimple_call_flags): Remove kludge.
10629
10630 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
10631
10632         * sel-sched.c (sel_region_init): Move call to
10633         sel_setup_region_sched_flags after setup_current_loop_nest.
10634
10635 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
10636
10637         PR rtl-optimization/48272
10638         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
10639         init_insn_reg_pressure_info.  Adjust a caller.
10640         * sched-int.h (init_insn_reg_pressure_info): Declare.
10641         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
10642         when sched-pressure is enabled.
10643
10644 2011-04-08  Richard Guenther  <rguenther@suse.de>
10645
10646         * gimple.c (gimple_set_modified): Do not queue calls to
10647         MODIFIED_NORETURN_CALLS here ...
10648         * tree-ssa-operands.c (update_stmt_operands): ... but here.
10649
10650 2011-04-08  Richard Guenther  <rguenther@suse.de>
10651
10652         PR lto/48467
10653         * toplev.c (lang_dependent_init): Do not open asm_out_file
10654         in WPA mode, nor perform debug machinery initialization.
10655         (finalize): Do not unlink asm_out_file in WPA mode.
10656
10657 2011-04-08  Richard Guenther  <rguenther@suse.de>
10658
10659         * gimple.h (gimple_call_fntype): New function.
10660         (gimple_call_return_type): Use it.
10661         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
10662         * gimple-low.c (gimple_check_call_args): Likewise.
10663         * gimple.c (gimple_call_flags): Likewise.
10664         (gimple_call_arg_flags): Likewise.
10665         (gimple_call_return_flags): Likewise.
10666         * tree-cfg.c (verify_gimple_call): Likewise.
10667         (do_warn_unused_result): Likewise.
10668         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
10669         * value-prof.c (gimple_ic_transform): Fix fndecl check.
10670
10671 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
10672
10673         PR rtl-optimization/48235
10674         * sel-sched.c (code_motion_process_successors): Recompute the last
10675         insn in basic block if control flow changed.
10676         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
10677         Update condition for ilist_remove.
10678
10679 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
10680
10681         PR rtl-optimization/48302
10682         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
10683         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
10684         it to record added preheader blocks.
10685         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
10686         on to sel_add_loop_preheaders.
10687         (sel_region_init): Move call to setup_current_loop_nest after
10688         sel_init_bbs.
10689
10690 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
10691
10692         PR target/48273
10693         * cfgloop.h (loop_has_exit_edges): New helper.
10694         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
10695         non-clonable.
10696         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
10697         that have no exit edges.
10698
10699 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
10700
10701         PR rtl-optimization/48442
10702         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
10703         all callers.  Adjust assert.
10704
10705 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
10706
10707         PR tree-optimization/48377
10708         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
10709         is_packed to true even for types with smaller TYPE_ALIGN than
10710         TYPE_SIZE.
10711
10712 2011-04-08  Richard Guenther  <rguenther@suse.de>
10713
10714         PR bootstrap/48513
10715         * doc/tm.texi: Re-generate.
10716
10717 2011-04-08  Wei Guozhi  <carrot@google.com>
10718
10719         PR target/47855
10720         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
10721         * config/arm/arm.c (arm_attr_length_push_multi): New function.
10722         * config/arm/arm.md (*push_multi): Change the length computation to
10723         call a C function.
10724
10725 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
10726
10727         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
10728         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
10729         * doc/tm.texi: Regenerate.
10730         * system.h (ASM_OUTPUT_BSS): Poison.
10731         * varasm.c (asm_output_bss): Remove function.
10732         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
10733
10734         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
10735         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
10736         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
10737         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10738         Likewise.
10739         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10740         Likewise.
10741         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10742         Likewise.
10743         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10744
10745 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
10746
10747         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
10748         EnumValue lines.
10749
10750 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
10751
10752         * config/m68k/m68k.c (m68k_handle_option): Don't handle
10753         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
10754         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
10755         OPT_mcpu32.
10756         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
10757         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
10758         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
10759         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
10760         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
10761         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
10762         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
10763         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
10764         options.  Don't map other m68k options manually.  Don't handle
10765         old-style options as canonical.
10766         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
10767         * doc/install.texi (m68k-*-*): Document binutils version requirement.
10768
10769 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10770
10771         * basic-block.h (force_nonfallthru): Move to...
10772         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
10773         (force_nonfallthru): ...here.
10774         * cfghooks.c (force_nonfallthru): New function.
10775         * cfgrtl.c (force_nonfallthru): Rename into...
10776         (rtl_force_nonfallthru): ...this.
10777         (commit_one_edge_insertion): Do not set AUX field.
10778         (commit_edge_insertions): Do not discover new basic blocks.
10779         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
10780         (cfg_layout_rtl_cfg_hooks): Likewise.
10781         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
10782         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
10783         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
10784
10785 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
10786
10787         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
10788         Remove macros.
10789
10790 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
10791
10792         * config/i386/sse.md: Update copyright year.
10793         (avxcvtvecmode): Remove.
10794         (sse_movhlps): Merge with *avx_movhlps.
10795         (sse_movlhps): Merge with *avx_movlhps.
10796         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
10797         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
10798         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
10799         (sse_loadhps): Merge with *avx_loadhps.
10800         (sse_storelps): Merge with *avx_storelps.
10801         (sse_loadlps): Merge with *avx_loadlps.
10802         (sse_movss): Merge with *avx_movss.
10803         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
10804         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
10805         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
10806         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
10807         (vec_set<mode>_0): Ditto.
10808         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
10809         (sse4_1_insertps): Merge with *avx_insertps.
10810         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
10811         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
10812         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
10813         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
10814         (sse2_storehpd): Merge with *avx_storehpd.
10815         (sse2_loadhpd): Merge with *avx_loadhpd.
10816         (sse2_loadlpd): Merge with *avx_loadlpd.
10817         (sse2_movsd): Merge with *avx_movsd.
10818         (*vec_concatv2df): Merge with *vec_concatv2df.
10819
10820 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
10821
10822         PR debug/48343
10823         * combine.c (combine_instructions): Add last_combined_insn,
10824         update it if insn is after it, pass it to all try_combine calls.
10825         (try_combine): Add last_combined_insn parameter, pass it instead of
10826         i3 to propagate_for_debug.
10827
10828 2011-04-07  Nick Clifton  <nickc@redhat.com>
10829
10830         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
10831         to handle MDR <-> data register transfers.
10832         (movhi_internal): Likewise.
10833
10834 2011-04-07  Alan Modra  <amodra@gmail.com>
10835
10836         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
10837         previous stack info.
10838
10839 2011-04-07  Tom de Vries  <tom@codesourcery.com>
10840
10841         PR target/43920
10842         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
10843         flow_find_cross_jump.  Swap variables to implement backward replacement.
10844         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
10845
10846 2011-04-07  Tom de Vries  <tom@codesourcery.com>
10847
10848         PR target/43920
10849         * cfgcleanup.c (walk_to_nondebug_insn): New function.
10850         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
10851         and bb2.
10852         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
10853         src1 or src2.  Redirect edges to the last basic block.  Update
10854         frequency and count on multiple basic blocks in case of fallthru.
10855
10856 2011-04-07  Tom de Vries  <tom@codesourcery.com>
10857
10858         PR target/43920
10859         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
10860         function.
10861         (old_insns_match_p): Change return type.  Replace return false/true
10862         with return dir_none/dir_both.  Use can_replace_by.
10863         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
10864         direction from dir_p.  Register replacement direction in dir, last_dir
10865         and afterlast_dir.  Handle new return type of old_insns_match_p using
10866         merge_dir.  Return replacement direction in dir_p.
10867         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
10868         return type of old_insns_match_p.
10869         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
10870         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
10871         flow_find_cross_jump.
10872         * basic-block.h (enum replace_direction): New type.
10873         (flow_find_cross_jump): Add parameter to declaration.
10874
10875 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
10876
10877         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
10878         (AVXMODEDCVTPS2DQ): Ditto.
10879         (VEC_FLOAT_MODE): Ditto.
10880         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
10881         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
10882         (<any_logic:code><mode>3): Use VF mode iterator.
10883         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
10884         Use VF mode iterator.
10885         (copysign<mode>3): Use VF mode iterator.
10886         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
10887         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
10888         (*<any_logic:code><MODEF:mode>3): Merge with
10889         *avx_<any_logic:code><MODEF:mode>3.
10890         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
10891         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
10892         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
10893         (avx_cvtdq2ps<avxmodesuffix>): Remove.
10894         (sse2_cvtdq2ps): Use %v modifier.
10895         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
10896         (avx_cvtps2dq<avxmodesuffix>): Remove.
10897         (sse2_cvtps2dq): Use %v modifier.
10898         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
10899         (avx_cvttps2dq<avxmodesuffix>): Remove.
10900         (sse2_cvttps2dq): Use %v modifier.
10901         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
10902         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
10903         (sse2_cvtsd2siq): Fix insn template.
10904         (sse2_cvtsd2siq_2): Ditto.
10905         (sse2_cvttsd2siq): Ditto.
10906         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
10907         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
10908
10909 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
10910
10911         * gcov-io.c: Use GCC Runtime Library Exception.
10912
10913 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
10914
10915         PR debug/48466
10916         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
10917         as base_reg whatever register reg has been eliminated to, instead
10918         of hardcoding STACK_POINTER_REGNUM.
10919
10920 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
10921
10922         * doc/tm.texi.in: Document C target hooks as separate from general
10923         target hooks.
10924         * doc/tm.texi: Regenerate.
10925         * genhooks.c (struct hook_desc): Add docname field.
10926         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
10927         docname field.
10928         (hook_array): Include c-target.def.
10929         (emit_documentation): Use docname field in output.
10930         (emit_init_macros): Take docname argument.  Only emit definitions
10931         for hooks matching docname.
10932         (main): Expect additional arguments in all cases.  Pass argument
10933         to emit_init_macros.
10934         * target.def: Move initial macro definitions and comments to
10935         target-hooks-macros.h.
10936         (gcc_targetcm): Move to c-family/c-target.def.
10937         * target.h (targetcm): Move declaration to c-family/c-target.h.
10938         * targhooks.c (default_handle_c_option): Move to
10939         c-family/c-opts.c.
10940         * targhooks.h (default_handle_c_option): Move declaration to
10941         c-family/c-common.h.
10942         * target-hooks-macros.h: New file.
10943         * config.gcc (target_has_targetcm): Define and use to add to
10944         c_target_objs and cxx_target_objs.
10945         * config/default-c.c: New file.
10946         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
10947         of target.h and target-def.h.
10948         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
10949         (darwin_objc_construct_string, darwin_cfstring_ref_p,
10950         darwin_check_cfstring_format_arg): Make static.
10951         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
10952         TARGET_STRING_OBJECT_REF_TYPE_P,
10953         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
10954         * config/darwin-protos.h (darwin_objc_construct_string,
10955         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
10956         declare.
10957         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
10958         TARGET_STRING_OBJECT_REF_TYPE_P,
10959         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
10960         * config/t-darwin (darwin-c.o): Update dependencies.
10961         * system.h (TARGET_HAS_TARGETCM): Poison.
10962         * Makefile.in (TARGET_H): Update.
10963         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
10964         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
10965         (default-c.o): New target.
10966         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
10967         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
10968         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
10969         c-target.def.
10970         (build/genhooks.o): Update dependencies.
10971
10972 2011-04-06  Richard Guenther  <rguenther@suse.de>
10973
10974         * ipa-inline.c (enum inlining_mode): Remove.
10975         (cgraph_flatten): Use some other token.
10976         (cgraph_edge_early_inlinable_p): New function, split out from ...
10977         (cgraph_perform_always_inlining): New function, split out from ...
10978         (cgraph_decide_inlining_incrementally): ... here.
10979         (cgraph_mark_inline_edge): Adjust.
10980         (cgraph_early_inlining): Re-structure.
10981         (pass_early_inline): Require SSA form.
10982
10983 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
10984             Julian Brown  <julian@codesourcery.com>
10985             Mark Shinwell  <shinwell@codesourcery.com>
10986
10987         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
10988         LO_REGS only for Thumb-1.
10989         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
10990         be used in short instructions when optimising for size on Thumb-2.
10991
10992 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
10993
10994         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
10995         associated with user returns to be preserved.
10996
10997 2011-04-06  Tristan Gingold  <gingold@adacore.com>
10998
10999         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
11000         symbol_queue_size, DBXOUT_DECR_NESTING,
11001         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
11002         if XCOFF_DEBUGGING_INFO.
11003
11004 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
11005
11006         * config/i386/i386.md (attribute isa): New.
11007         (attribute enabled): New.
11008         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
11009         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
11010         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
11011         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
11012         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
11013         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
11014         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
11015         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
11016
11017         * config/i386/sse.md (VF): New mode iterator.
11018         (VF1): Ditto.
11019         (VF2): Ditto.
11020         (VF_128): Ditto.
11021         (SSEMODEF4): Remove.
11022         (attribute sse): Handle V8SF and V4DF modes.
11023         (<absneg:code><mode>2): Use VF mode iterator.
11024         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
11025         mode iterator.
11026         (<plusminus_insn><mode>3): Use VF mode iterator.
11027         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
11028         Use VF mode iterator.
11029         (<sse>_vm<plusminus_insn><mode>3): Merge with
11030         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
11031         (mul<mode>3): Use VF mode iterator.
11032         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
11033         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
11034         mode iterator.
11035         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
11036         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
11037         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
11038         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
11039         mode iterator.
11040         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
11041         Use VF1 mode iterator.
11042         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
11043         (sqrt<VF2:mode>2): New expander.
11044         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
11045         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
11046         and sqrtv2df2.  Use VF mode iterator.
11047         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
11048         mode iterator.
11049         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
11050         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
11051         Use VF1 mode iterator.
11052         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
11053         (<smaxmin:code><mode>3): Use VF mode iterator.
11054         (*<smaxmin:code><mode>3_finite): Merge with
11055         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
11056         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
11057         (<sse>_vm<smaxmin:code><mode>2): Merge with
11058         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
11059         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
11060         mode iterator.
11061         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
11062         mode iterator.
11063         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
11064         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
11065         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
11066         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
11067         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
11068         VF mode iterator.
11069         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
11070         Use VF_128 mode iterator.
11071         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
11072         mode iterator.
11073         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
11074         VF_128 mode iterator.
11075         (vcond<mode>): Use VF mode iterator.
11076         * config/i386/predicates.md (sse_comparison_operator): Merge with
11077         avx_comparison_float_operator.  Do not declare as special_predicate.
11078         * config/i386/i386.c (struct builtin_description): Update for renamed
11079         compare patterns.
11080         (ix86_expand_args_builtin): Ditto.
11081         (ix86_expand_sse_compare_mask): Ditto.
11082
11083 2011-04-06  Richard Guenther  <rguenther@suse.de>
11084
11085         * tree-inline.c (estimate_num_insns): For calls simply account
11086         for all passed arguments and a used return value.
11087
11088 2011-04-06  Richard Guenther  <rguenther@suse.de>
11089
11090         PR tree-optimization/47663
11091         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
11092         call_stmt_time fields.
11093         (cgraph_edge_inlinable_p): Declare.
11094         (cgraph_edge_recursive_p): New inline function.
11095         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
11096         (cgraph_clone_edge): Copy it.
11097         * ipa-inline.c (cgraph_estimate_edge_time): New function.
11098         Account for call stmt time.
11099         (cgraph_estimate_time_after_inlining): Take edge argument.
11100         (cgraph_estimate_edge_growth): Account call stmt size.
11101         (cgraph_estimate_size_after_inlining): Take edge argument.
11102         (cgraph_mark_inline_edge): Adjust.
11103         (cgraph_check_inline_limits): Likewise.
11104         (cgraph_recursive_inlining_p): Remove.
11105         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
11106         (cgraph_decide_recursive_inlining): Take edge argument and
11107         adjust.
11108         (cgraph_decide_inlining_of_small_functions): Do not avoid
11109         diags for recursive inlining here.
11110         (cgraph_flatten): Adjust.
11111         (cgraph_decide_inlining_incrementally): Likewise.
11112         (estimate_function_body_sizes): Remove call cost handling.
11113         (compute_inline_parameters): Initialize caller edge call costs.
11114         (cgraph_estimate_edge_growth): New function.
11115         (cgraph_estimate_growth): Use it.
11116         (cgraph_edge_badness): Likewise.
11117         (cgraph_check_inline_limits): Take an edge argument.
11118         (cgraph_decide_inlining_of_small_functions): Adjust.
11119         (cgraph_decide_inlining): Likewise.
11120         * tree-inline.c (estimate_num_insns): Only account for call
11121         return value if it is used.
11122         (expand_call_inline): Avoid diagnostics on recursive inline
11123         functions here.
11124         * lto-cgraph.c (lto_output_edge): Output edge call costs.
11125         (input_edge): Input edge call costs.
11126
11127 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11128
11129         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
11130
11131 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
11132
11133         * doc/invoke.texi (Spec Files): Fix typo.
11134
11135 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
11136
11137         * profile.c (branch_prob): Move declaration of local variable.  Remove
11138         obsolete ??? comment.  Expand the location explicitly instead of using
11139         the LOCATION_FILE and LOCATION_LINE macros.
11140
11141 2011-04-06  Wei Guozhi  <carrot@google.com>
11142
11143         PR target/47855
11144         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
11145         (arm_cond_branch): Likewise.
11146         (arm_cond_branch_reversed): Likewise.
11147         (arm_jump): Likewise.
11148         (push_multi): Likewise.
11149         * config/arm/constraints.md (Py): New constraint.
11150
11151 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11152
11153         PR bootstrap/48471
11154         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
11155         Move these...
11156         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
11157         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
11158         #ifdef DBX_DEBUGGING_INFO.
11159
11160 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
11161
11162         PR bootstrap/48403
11163         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
11164         if old and new states differ.
11165
11166 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
11167
11168         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
11169         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
11170         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
11171         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
11172         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
11173         mcfv4e): Use Alias.
11174         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
11175         ColdFire options to -mcpu= options.
11176
11177 2011-04-05  Jeff Law  <law@redhat.com>
11178
11179         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
11180         check if BB is a successor of LOOP->header and return
11181         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
11182
11183 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
11184
11185         * cprop.c (struct reg_use): Remove.
11186         (reg_use_table): Make an array of RTX.
11187         (find_used_regs, constprop_register, local_cprop_pass,
11188         bypass_block): Simplify users of reg_use_table.
11189         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
11190         on one of the uses found by find_used_regs.
11191
11192 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11193
11194         PR bootstrap/48469
11195         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
11196         declaration.
11197
11198 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11199
11200         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
11201         as an rtx.
11202         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
11203
11204 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
11205
11206         PR middle-end/48441
11207         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
11208
11209 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11210
11211         * combine.c: Include obstack.h.
11212         (struct insn_link): Define.
11213         (uid_log_links): Adjust type.
11214         (FOR_EACH_LOG_LINK): New macro.
11215         (insn_link_obstack): Declare.
11216         (alloc_insn_link): Define.
11217         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
11218         type of link variables.
11219         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
11220         (try_combine, record_promoted_values, distribute_notes): Likewise.
11221         (distribute_links): Likewise.  Tweak prototype.
11222         (clear_log_links): Delete.
11223         (adjust_for_new_dest): Call alloc_insn_link.
11224         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
11225
11226 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11227
11228         * gcse.c (modify_mem_list): Convert to an array of VECs.
11229         (canon_modify_mem_list, compute_transp): Tweak formatting.
11230         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
11231         (load_killed_in_block_p): Likewise.
11232         (record_last_mem_set_info): Likewise.
11233         (clear_modify_mem_tables): Likewise.
11234
11235 2011-04-05  Tom de Vries  <tom@codesourcery.com>
11236
11237         PR middle-end/48461
11238         * function.c (emit_use_return_register_into_block): Only define if
11239         HAVE_return.
11240
11241 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
11242
11243         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
11244
11245 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
11246
11247         * config/rx/rx-opts.h: New.
11248         * config/rx/rx.c (rx_cpu_type): Remove.
11249         (rx_handle_option): Don't assert that global structures are in
11250         use.  Access variables via opts pointer.  Defer most handling of
11251         OPT_mint_register_.  Use error_at.
11252         (rx_option_override): Handle deferred OPT_mint_register_ here.
11253         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
11254         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
11255         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
11256         (rx_cpu_types): New Enum and EnumValue entries.
11257         (mint-register=): Use Defer and use Var accordingly.
11258
11259 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11260
11261         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
11262         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
11263         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
11264         Move these...
11265         (debug_free_queue, debug_nesting, symbol_queue_index):
11266         ...and these...
11267         * dbxout.c: ...to here.  Make static.
11268
11269 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
11270
11271         * gcse.c (modify_pair): Define.  Define a VEC of it.
11272         (canon_modify_mem_list): Convert to an array of VECs.
11273         (free_insn_expr_list_list): Delete.
11274         (clear_modify_mem_tables): Call VEC_free instead.
11275         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
11276         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
11277         (canon_list_insert, compute_transp): Likewise.
11278
11279 2011-04-05  Tom de Vries  <tom@codesourcery.com>
11280
11281         PR target/43920
11282         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
11283         for size.
11284
11285 2011-04-05  Tom de Vries  <tom@codesourcery.com>
11286
11287         PR target/43920
11288         * function.c (emit_use_return_register_into_block): New function.
11289         (thread_prologue_and_epilogue_insns): Use
11290         emit_use_return_register_into_block.
11291
11292 2011-04-05  Tom de Vries  <tom@codesourcery.com>
11293
11294         PR target/43920
11295         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
11296         insn.
11297
11298 2011-04-05  Tom de Vries  <tom@codesourcery.com>
11299
11300         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
11301
11302 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
11303
11304         * config/arm/arm.md (define_constants for unspec): Replace with
11305         define_c_enum.
11306         (define_constants for unspecv): Replace with define_c_enum.
11307         * config/arm/neon.md (define_constants for unspec): Replace with
11308         define_c_enum.
11309
11310 2011-04-04  Richard Henderson  <rth@redhat.com>
11311
11312         PR bootstrap/48400
11313         * dwarf2out.c (output_line_info): Always emit line info from
11314         at least one section.
11315         (dwarf2out_init): Create text_section_line_info here ...
11316         (set_cur_line_info_table): ... not here.
11317
11318 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
11319
11320         PR target/48380
11321         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
11322         not called.
11323
11324         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
11325
11326 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
11327
11328         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
11329         (expr_equiv_p): Remove.
11330         (insert_set_in_table): Look at <dest, src> pair instead of expr.
11331         (hash_scan_set): Update call to insert_set_in_table.
11332         (dump_hash_table): Dump <dest, src> pair.
11333         (lookup_set): Simplify.  Lookup <dest, src> pair.
11334         (compute_transp): Remove, fold heavily simplified code into...
11335         (compute_local_properties): ...here.  Expect COMP and TRANSP
11336         unconditionally.
11337         (find_avail_set): Take set directly from struct expr.
11338         (find_bypass-set): Likewise.
11339         (bypass_block): Likewise.
11340         (cprop_insn): Likewise.  Remove redundant INSN_P test.
11341
11342         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
11343         checks on form of COND from find_implicit_sets to here.
11344         (find_implicit_sets): Cleanup control flow. Split critical edges
11345         if it exposes implicit sets.  Allocate/resize implicit_sets as
11346         necessary.
11347         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
11348         changed something.  Run df_analyze after find_implicit_sets if any
11349         edges were split.  Do not allocate implicit_sets here.
11350
11351         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
11352         (gcse_obstack): Renamed to cprop_obstack.
11353         (GNEW, GNEWVEC, GNEWVAR): Remove.
11354         (gmalloc): Remove.
11355         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
11356         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
11357         (gcse_alloc): Likewise, and rename to cprop_alloc.
11358         (alloc_gcse_men, free_gcse_mem): Remove.
11359         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
11360         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
11361         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
11362
11363         * cprop.c (oprs_not_set_p): Remove.
11364         (mark_set, mark_clobber): Remove.
11365         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
11366         (reg_not_set_p): New function.
11367         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
11368         (cprop_insn): Likewise.
11369         (cprop_jump): Use FOR_EACH_EDGE.
11370
11371 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
11372
11373         PR bootstrap/48403
11374         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
11375         (rank_for_schedule): Use scheduled_insns vector instead of
11376         last_scheduled_insn.
11377         (ok_for_early_queue_removal): Likewise.
11378         (queue_to_ready): Search forward in nonscheduled_insns_begin if
11379         we have a dbg_cnt.
11380         (choose_ready): Likewise.
11381         (commit_schedule): Use VEC_iterate.
11382         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
11383         a dbg_cnt, use it and ensure the first insn is in the ready list.
11384         (haifa_sched_init): Allocate scheduled_insns.
11385         (sched_extend_ready_list): Don't allocate it; reserve space.
11386         (haifa_sched_finish): Free it.
11387
11388 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
11389
11390         * optc-gen.awk: Always remove type from Variable entry before
11391         recording in var_seen.
11392
11393 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
11394
11395         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
11396         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
11397         call to tidy_fallthru_edges.
11398
11399 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
11400
11401         * doc/options.texi (ToLower): Document.
11402         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
11403         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
11404         * opts.h (cl_option): Add cl_tolower field.
11405         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
11406         arguments with lowercase strings.
11407         * config/rx/rx.opt (mcpu=): Add ToLower.
11408         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
11409         argument.
11410
11411 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
11412
11413         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
11414
11415 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
11416
11417         * config/vax/vax.c: Include reload.h.
11418
11419 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
11420
11421         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
11422         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
11423         (sparc_preferred_reload_class): New function.
11424
11425 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
11426
11427         PR debug/48401
11428         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
11429         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
11430
11431 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
11432
11433         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
11434         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
11435
11436 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
11437
11438         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
11439         (ASM_OUTPUT_ALIGNED_BSS): Define.
11440
11441 2011-04-03  Michael Matz  <matz@suse.de>
11442
11443         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
11444         and next_slot members.
11445         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
11446         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
11447         (lto_streamer_cache_append): Declare.
11448         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
11449         unsigned index, remove offset parameter, ensure that we append
11450         or update existing entries.
11451         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
11452         parameter, update next_slot for append.
11453         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
11454         parameter.
11455         (lto_streamer_cache_insert_at): Likewise.
11456         (lto_streamer_cache_append): New function.
11457         (lto_streamer_cache_lookup): Use unsigned index.
11458         (lto_streamer_cache_get): Likewise.
11459         (lto_record_common_node): Don't test tree_node_can_be_shared.
11460         (preload_common_node): Adjust call to lto_streamer_cache_insert.
11461         (lto_streamer_cache_delete): Don't free offsets member.
11462         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
11463         (lto_output_string_with_length): Use lto_output_data_stream.
11464         (lto_output_tree_header): Remove ix parameter, don't write it.
11465         (lto_output_builtin_tree): Likewise.
11466         (lto_write_tree): Adjust callers to above, don't track and write
11467         offset, write unsigned index.
11468         (output_unreferenced_globals): Don't emit all global vars.
11469         (write_global_references): Use unsigned indices.
11470         (lto_output_decl_state_refs): Likewise.
11471         (write_symbol): Likewise.
11472         * lto-streamer-in.c (lto_input_chain): Move earlier.
11473         (input_function): Use unsigned index.
11474         (input_alias_pairs): Don't read and then ignore all global vars.
11475         (lto_materialize_tree): Remove ix_p parameter, don't read index,
11476         don't pass it back, use lto_streamer_cache_append.
11477         (lto_register_var_decl_in_symtab): Use unsigned index.
11478         (lto_register_function_decl_in_symtab): Likewise.
11479         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
11480         index.
11481         (lto_get_builtin_tree): Don't read index, use
11482         lto_streamer_cache_append.
11483         (lto_read_tree): Adjust call to lto_materialize_tree.
11484
11485         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
11486         don't use function calls in arguments to MIN.
11487
11488         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
11489         twice.
11490
11491         * gimple.c (gimple_type_leader_entry): Mark deletable.
11492
11493 2011-04-03  Alan Modra  <amodra@gmail.com>
11494
11495         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
11496
11497 2011-04-03  Michael Matz  <matz@suse.de>
11498
11499         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
11500         an integer.
11501         * tree.h (tree_decl_non_common.vindex): Adjust comment.
11502
11503 2011-04-03  Michael Matz  <matz@suse.de>
11504
11505         * cgraphbuild.c (record_reference): Canonicalize constructor values.
11506         * gimple-fold.c (canonicalize_constructor_val): Accept being called
11507         without function context.
11508         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
11509         current_function_decl and cfun.
11510
11511 2011-04-03  Michael Matz  <matz@suse.de>
11512
11513         * tree.c (decl_init_priority_insert): Don't create entry for
11514         default priority.
11515         (decl_fini_priority_insert): Ditto.
11516         (fields_compatible_p, find_compatible_field): Remove.
11517         * tree.h (fields_compatible_p, find_compatible_field): Remove.
11518         * gimple.c (gimple_compare_field_offset): Adjust block comment.
11519
11520 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
11521
11522         * combine.c (try_combine): Remove useless local variable.
11523
11524 2011-04-03  Richard Guenther  <rguenther@suse.de>
11525             Ira Rosen  <ira.rosen@linaro.org>
11526
11527         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
11528         non-variable offsets and compare the remaining bases of the two
11529         accesses instead of looking for exact same data-ref.
11530
11531 2011-04-02  Kai Tietz  <ktietz@redhat.com>
11532
11533         PR target/48416
11534         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
11535
11536         * i386.c (ix86_is_msabi_thiscall): New helper function.
11537         (ix86_is_type_thiscall): New helper function.
11538         (ix86_comp_type_attributes): Handle thiscall for method-functions
11539         special.
11540         (init_cumulative_args): Likewise.
11541         (find_drap_reg): Likewise.
11542         (ix86_static_chain): Likewise.
11543         (x86_this_parameter): Likewise.
11544         (x86_output_mi_thunk): Likewise.
11545
11546 2011-04-01  Olivier Hainque  <hainque@adacore.com>
11547             Nicolas Setton  <setton@adacore.com>
11548             Eric Botcazou  <ebotcazou@adacore.com>
11549
11550         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
11551         (add_gnat_descriptive_type_attribute): New function.
11552         (gen_array_type_die): Call it.
11553         (gen_enumeration_type_die): Likewise.
11554         (gen_struct_or_union_type_die): Likewise.
11555         (modified_type_die): Likewise.
11556         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
11557         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
11558         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
11559
11560 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
11561
11562         PR bootstrap/48148
11563         * dwarf2out.c (resolve_addr): Don't call force_decl_die
11564         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
11565
11566         Revert:
11567         2011-03-17  Richard Guenther  <rguenther@suse.de>
11568
11569         PR bootstrap/48148
11570         * lto-cgraph.c (input_overwrite_node): Clear the abstract
11571         origin for decls in other ltrans units.
11572         (input_varpool_node): Likewise.
11573
11574 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
11575
11576         PR middle-end/48335
11577         * expr.c (expand_assignment): Handle all possibilities
11578         if TO_RTX is CONCAT.
11579         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
11580         (store_split_bit_field): If SUBREG_REG (op0) or
11581         op0 itself has smaller mode than word, return it
11582         for offset 0 and const0_rtx for out-of-bounds stores.
11583         If word is const0_rtx, skip it.
11584
11585 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
11586
11587         * config/h8300/h8300.c (print_operand_address): Rename to...
11588         (h8300_print_operand_address): ...this. Make static. Adjust comments.
11589         Call h8300_print_operand and h8300_print_operand_address instead of
11590         print_operand and print_operand_address. Declare.
11591         (print_operand): Renake to...
11592         (h8300_print_operand): ...this. Make static. Adjust comments.
11593         Call h8300_print_operand instead of print_operand. Declare.
11594         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
11595         (h8300_register_move_cost): Likewise.
11596         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
11597         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
11598         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
11599         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
11600         * config/h8300/h8300-protos.h (print_operand): Delete.
11601         (print_operand_address): Delete.
11602
11603 2011-04-01  Richard Henderson  <rth@redhat.com>
11604
11605         PR 48400
11606         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
11607         in strict mode before dwarf4.  Re-order tests to early out
11608         before switching sections.
11609
11610 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
11611
11612         * config/h8300/constraints.md: New file.
11613         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
11614         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
11615         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
11616         * config/h8300/predicates.md (bit_operand): Likewise.
11617         (incdec_operand): Use satisfies_constraint_M and
11618         satisfies_constraint_O.  Don't use C code block.
11619         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
11620         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
11621         (compute_mov_length): Use satisfies_constraint_G.
11622         (fix_bit_operand): Use satisfies_constraint_U.
11623         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
11624         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
11625         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
11626         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
11627         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
11628         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
11629         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11630         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
11631         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
11632         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
11633         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
11634         (EXTRA_MEMORY_CONSTRAINT): Delete.
11635
11636 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
11637             Michael Meissner  <meissner@linux.vnet.ibm.com>
11638
11639         PR target/48262
11640         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
11641         operands, as per the specifications.
11642
11643         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
11644         (vec_extract_evenv4sf): Ditto.
11645         (vec_extract_evenv8hi): Ditto.
11646         (vec_extract_evenv16qi): Ditto.
11647         (vec_extract_oddv4si): Ditto.
11648
11649 2011-03-31  Mark Wielaard  <mjw@redhat.com>
11650
11651         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
11652         high_pc attribute if the CU has no associated code. Only output
11653         DW_AT_entry_pc for CU if not generating strict dwarf and
11654         dwarf_version < 4.
11655
11656 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
11657
11658         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
11659         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
11660         out of ...
11661         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
11662         * final.c (final_start_function): Call the new function rather
11663         than using a NULL argument for dwarf2out_frame_debug.
11664
11665         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
11666         that contains the prologue.
11667
11668         * haifa-sched.c (queue_insn): New arg REASON.  All callers
11669         changed.  Print it in debugging output.
11670
11671         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
11672
11673         * sched-ebb.c (begin_schedule_ready): Remove second argument.
11674         Split most of the code into...
11675         (begin_move_insn): ... here.  New function.
11676         (ebb_sched_info): Add a pointer to it.
11677         * haifa-sched.c (scheduled_insns): New static variable.
11678         (sched_extend_ready_list): Allocate it.
11679         (schedule_block): Use it to record the order of scheduled insns.
11680         Perform RTL changes to move insns only after all scheduling
11681         decisions have been made.
11682         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
11683         begin_move_insn field.
11684         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
11685         * sched-int.h (struct haifa_sched_info): Remove second argument
11686         from begin_schedule_ready hook.  Add new member begin_move_insn.
11687         * sched-rgn.c (begin_schedule_ready): Remove second argument.
11688         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
11689
11690         * haifa-sched.c (prune_ready_list): New function, broken out of
11691         schedule_block.
11692         (schedule_block): Use it.
11693
11694 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11695
11696         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
11697
11698 2011-04-01  Kai Tietz  <ktietz@redhat.com>
11699
11700         * config.gcc (*-*-mingw*): Allow as option the
11701         posix threading model.
11702         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
11703         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
11704         definition.
11705         (CPP_SPEC): Add pthread/no-pthread handling.
11706         (LIB_SPEC): Likewise.
11707         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
11708         (LIB_SPEC): Likewise.
11709         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
11710         flag to pass -pthread option for shared libgcc build.
11711         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
11712         for shared libgcc build.
11713         * config/i386/t-mingw-pthread: New file.
11714         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
11715         New define to enable use of library pthread by default.
11716         * config/i386/mingw.opt (pthread): New driver option.
11717         (no-pthread): New driver option.
11718         * config/i386/cygming.opt: Make sure trailing empty line is retained.
11719         * config/i386/mingw-w64.opt: Likewise.
11720
11721 2011-04-01  Gary Funck  <gary@intrepid.com>
11722
11723         * c-decl.c (grokdeclarator): Fix formatting.
11724
11725 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
11726
11727         * expr.c (emit_block_move_via_movmem): Use n_generator_args
11728         instead of n_operands.
11729         (set_storage_via_setmem): Likewise.
11730         * optabs.c (maybe_gen_insn): Likewise.
11731         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
11732         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
11733         (mips_expand_builtin_direct): Likewise.
11734         * config/spu/spu.c (expand_builtin_args): Likewise.
11735
11736 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
11737
11738         * recog.h (insn_data_d): Add n_generator_args.
11739         * genoutput.c (data): Likewise.
11740         (output_insn_data): Print it.
11741         (max_opno, num_dups): Delete.
11742         (scan_operands): Just fill in "d->operand[...]".
11743         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
11744
11745 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
11746
11747         * gensupport.h (pattern_stats): New structure.
11748         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
11749         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
11750         (max_operand_1, max_operand_vec): Delete.
11751         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
11752
11753 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
11754
11755         * emit-rtl.c (emit_pattern_after_setloc): New function.
11756         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
11757         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
11758         (emit_pattern_after): New function.
11759         (emit_insn_after, emit_jump_insn_after): Call it.
11760         (emit_call_insn_after, emit_debug_insn_after): Likewise.
11761         (emit_pattern_before_setloc): New function.
11762         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
11763         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
11764         Likewise.
11765         (emit_pattern_before): New function.
11766         (emit_insn_before, emit_jump_insn_before): Call it.
11767         (emit_call_insn_before, emit_debug_insn_before): Likewise.
11768
11769 2011-03-31  Richard Henderson  <rth@redhat.com>
11770
11771         * dwarf2out.c (dw_separate_line_info_ref): Remove.
11772         (dw_separate_line_info_entry): Remove.
11773         (enum dw_line_info_opcode): New.
11774         (dw_line_info_entry): Use it.
11775         (dw_line_info_table, dw_line_info_table_p): New.
11776         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
11777         (line_info_table, line_info_label_num): Remove.
11778         (line_info_table_in_use): Remove.
11779         (separate_line_info_table): Remove.
11780         (separate_line_info_table_allocated): Remove.
11781         (separate_line_info_table_in_use): Remove.
11782         (LINE_INFO_TABLE_INCREMENT): Remove.
11783         (line_info_label_num): New.
11784         (cur_line_info_table): New.
11785         (text_section_line_info, cold_text_section_line_info): New.
11786         (separate_line_info): New.
11787         (SEPARATE_LINE_CODE_LABEL): Remove.
11788         (print_dwarf_line_table): Remove.
11789         (debug_dwarf): Don't dump it.
11790         (output_one_line_info_table): New.
11791         (output_line_info): Use it.
11792         (new_line_info_table): New.
11793         (set_cur_line_info_table): New.
11794         (dwarf2out_switch_text_section): Use it.
11795         (dwarf2out_begin_function): Likewise.
11796         (push_dw_line_info_entry): New.
11797         (dwarf2out_source_line): Rewrite for new line info tables.
11798         (dwarf2out_init): Remove dead initailizations.
11799
11800 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
11801
11802         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
11803         various flags.
11804         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
11805         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
11806         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
11807         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
11808         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
11809         * opt-functions.awk (flag_init, switch_bit_fields): New.
11810         (switch_flags): Don't handle flags moved to bit-fields.  Don't
11811         generate CL_MISSING_OK or CL_SAVE.
11812         * optc-gen.awk: Update to generate bit-field output as well as
11813         flags field.
11814         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
11815         bit-field instead of CL_REJECT_DRIVER flag.
11816         * opts-common.c (generate_canonical_option,
11817         decode_cmdline_option): Use bit-fields instead of CL_* flags.
11818         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
11819         instead of CL_REJECT_NEGATIVE flag.
11820         * toplev.c (print_switch_values): Use cl_report bit-field instead
11821         of CL_REPORT flag.
11822
11823 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
11824
11825         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
11826         a zero minimum index only if it is redundant.
11827
11828 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
11829
11830         PR rtl-optimization/48381
11831         * ira-color.c (assign_hard_reg): Use hard reg set intersection
11832         instead of ira_class_hard_reg_index for calculating conflicting
11833         hard registers.
11834
11835 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
11836
11837         * cprop.c: Clean up hash table building.
11838         (reg_avail_info): Remove.
11839         (oprs_available_p): Remove.
11840         (record_last_reg_set_info): Remove.
11841         (record_last_set_info): Remove.
11842         (reg_available_p): New function.
11843         (gcse_constant_p): Do not treat unfolded conditions as constants.
11844         (make_set_regs_unavailable): New function.
11845         (hash_scan_set): Simplify with new reg_available_p.
11846         (compute_hash_table_work): Traverse insns stream only once.
11847         Do not compute reg_avail_info. Traverse insns in reverse order.
11848         Record implicit sets after recording explicit sets from the block.
11849
11850 2011-03-31  Michael Matz  <matz@suse.de>
11851
11852         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
11853
11854 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
11855
11856         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
11857         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
11858         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11859         (h8300_mode_dependent_address_p): New function.
11860         (h8300_get_index): Make static.
11861
11862 2011-03-31  Jeff Law  <law@redhat.com>
11863
11864         * reload1.c (elimination_effects): Fix typo in recent change.
11865
11866         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
11867         typo potentially leading to null pointer dereference.
11868
11869         * caller-save.c (new_saved_hard_reg): Eliminate return value.
11870         (setup_save_areas): Corresponding changes to avoid useless
11871         assignments.
11872
11873         * jump.c (reversed_comparison_code_parts): Avoid successive return
11874         statements when REVERSE_CONDITION is defined.
11875
11876         * expr.c (expand_assignment): Avoid useless assignments.
11877         (expand_expr_real_1): Likewise.
11878         (expand_expr_real_2): Avoid useless statements.
11879
11880         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
11881
11882         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
11883
11884         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
11885         statements.
11886
11887         * stmt.c (expand_expr_stmt): Avoid useless assignment.
11888
11889 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
11890
11891         PR target/47109
11892         * doc/tm.texi.in (TARGET_VERSION): Remove.
11893         * doc/tm.texi: Regenerate.
11894         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
11895         * collect2.c (main): Don't use TARGET_VERSION.
11896         * mips-tdump.c (main): Don't use TARGET_VERSION.
11897         * mips-tfile.c (main): Don't use TARGET_VERSION.
11898         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
11899         * config/rs6000/vxworksae.h: Remove.
11900         * config/alpha/alpha.h (TARGET_VERSION): Remove.
11901         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
11902         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
11903         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
11904         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
11905         * config/arm/arm.h (TARGET_VERSION): Remove.
11906         * config/arm/coff.h (TARGET_VERSION): Remove.
11907         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
11908         * config/arm/elf.h (TARGET_VERSION): Remove.
11909         * config/arm/freebsd.h (TARGET_VERSION): Remove.
11910         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
11911         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
11912         * config/arm/pe.h (TARGET_VERSION): Remove.
11913         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
11914         * config/arm/semi.h (TARGET_VERSION): Remove.
11915         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
11916         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
11917         * config/arm/vxworks.h (TARGET_VERSION): Remove.
11918         * config/avr/avr.h (TARGET_VERSION): Remove.
11919         * config/bfin/bfin.h (TARGET_VERSION): Remove.
11920         * config/fr30/fr30.h (TARGET_VERSION): Remove.
11921         * config/frv/frv.h (TARGET_VERSION): Remove.
11922         * config/h8300/h8300.h (TARGET_VERSION): Remove.
11923         * config/i386/cygwin.h (TARGET_VERSION): Remove.
11924         * config/i386/darwin.h (TARGET_VERSION): Remove.
11925         * config/i386/darwin64.h (TARGET_VERSION): Remove.
11926         * config/i386/djgpp.h (TARGET_VERSION): Remove.
11927         * config/i386/freebsd.h (TARGET_VERSION): Remove.
11928         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
11929         * config/i386/gnu.h (TARGET_VERSION): Remove.
11930         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
11931         * config/i386/i386elf.h (TARGET_VERSION): Remove.
11932         * config/i386/linux.h (TARGET_VERSION): Remove.
11933         * config/i386/linux64.h (TARGET_VERSION): Remove.
11934         * config/i386/lynx.h (TARGET_VERSION): Remove.
11935         * config/i386/mingw32.h (TARGET_VERSION): Remove.
11936         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
11937         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
11938         * config/i386/netware.h (TARGET_VERSION): Remove.
11939         * config/i386/nto.h (TARGET_VERSION): Remove.
11940         * config/i386/openbsd.h (TARGET_VERSION): Remove.
11941         * config/i386/vxworks.h (TARGET_VERSION): Remove.
11942         * config/ia64/elf.h (TARGET_VERSION): Remove.
11943         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
11944         * config/ia64/hpux.h (TARGET_VERSION): Remove.
11945         * config/ia64/linux.h (TARGET_VERSION): Remove.
11946         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
11947         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
11948         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
11949         * config/lm32/lm32.h (TARGET_VERSION): Remove.
11950         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
11951         * config/m32c/m32c.h (TARGET_VERSION): Remove.
11952         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
11953         * config/m32r/m32r.h (TARGET_VERSION): Remove.
11954         * config/m68k/linux.h (TARGET_VERSION): Remove.
11955         * config/m68k/m68k.h (TARGET_VERSION): Remove.
11956         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
11957         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
11958         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
11959         * config/mep/mep.h (TARGET_VERSION): Remove.
11960         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
11961         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
11962         * config/mips/iris6.h (MACHINE_TYPE): Remove.
11963         * config/mips/linux.h (TARGET_VERSION): Remove.
11964         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
11965         * config/mips/vxworks.h (TARGET_VERSION): Remove.
11966         * config/mmix/mmix.h (TARGET_VERSION): Remove.
11967         * config/mn10300/linux.h (TARGET_VERSION): Remove.
11968         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
11969         * config/pa/pa.h (TARGET_VERSION): Remove.
11970         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
11971         * config/picochip/picochip.h (TARGET_VERSION): Remove.
11972         * config/rs6000/aix.h (TARGET_VERSION): Remove.
11973         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
11974         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
11975         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
11976         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
11977         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
11978         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
11979         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
11980         * config/rs6000/linux.h (TARGET_VERSION): Remove.
11981         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
11982         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
11983         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
11984         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
11985         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
11986         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
11987         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
11988         * config/s390/linux.h (TARGET_VERSION): Remove.
11989         * config/s390/s390.h (TARGET_VERSION): Remove.
11990         * config/s390/tpf.h (TARGET_VERSION): Remove.
11991         * config/score/score.h (TARGET_VERSION): Remove.
11992         * config/sh/linux.h (TARGET_VERSION): Remove.
11993         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
11994         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
11995         * config/sh/sh.h (TARGET_VERSION): Remove.
11996         * config/sh/sh64.h (TARGET_VERSION): Remove.
11997         * config/sh/superh.h (TARGET_VERSION): Remove.
11998         * config/sh/vxworks.h (TARGET_VERSION): Remove.
11999         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
12000         * config/sparc/linux.h (TARGET_VERSION): Remove.
12001         * config/sparc/linux64.h (TARGET_VERSION): Remove.
12002         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
12003         TARGET_NAME32, TARGET_NAME): Remove.
12004         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
12005         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
12006         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
12007         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
12008         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
12009         * config/spu/spu.h (TARGET_VERSION): Remove.
12010         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
12011         * config/v850/v850.h (TARGET_VERSION): Remove.
12012         * config/vax/linux.h (TARGET_VERSION): Remove.
12013         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
12014         * config/xtensa/elf.h (TARGET_VERSION): Remove.
12015         * config/xtensa/linux.h (TARGET_VERSION): Remove.
12016
12017 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
12018
12019         PR target/48142
12020         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
12021         frame-related from frame-unrelated adjustments to the stack pointer.
12022
12023 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
12024
12025         * common.opt (fdebug-types-section): Move earlier.
12026         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
12027
12028 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
12029
12030         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
12031         var.
12032
12033 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
12034
12035         * tree.h (CASE_CHAIN): Define.
12036         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
12037         (gimple_redirect_edge_and_branch): Likewise.
12038
12039 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
12040
12041         PR middle-end/48367
12042         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
12043         calculation.
12044
12045 2011-03-30  Jeff Law  <law@redhat.com>
12046
12047         * PR bootstrap/48371
12048         * reload1.c (reload): Fix botch in last change.
12049
12050         * reload.h (struct reload): Fix typo introduced in last change.
12051
12052 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
12053
12054         * config/arm/arm.opt (mhard-float, msoft-float): Mark
12055         Undocumented.  Remove help text.
12056         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
12057         -mhard-float.
12058
12059 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
12060
12061         * doc/options.texi (NegativeAlias): Document.
12062         (Alias): Mention NegativeAlias.
12063         * opt-functions.awk: Handle NegativeAlias.
12064         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
12065         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
12066         * opts.h (CL_NEGATIVE_ALIAS): Define.
12067         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
12068         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
12069         OPT_mspe_.
12070         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
12071         Alias entries.
12072         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
12073         mno-spe and mno-isel instead of mspe=no and -misel=no.
12074
12075 2011-03-29  Mark Wielaard  <mjw@redhat.com>
12076
12077         * common.opt (fdebug-types-section): New flag.
12078         * doc/invoke.texi: Document new -fno-debug-types-section flag.
12079         * dwarf2out.c (use_debug_types): New define.
12080         (struct die_struct): Mark die_id with GTY desc use_debug_types.
12081         (print_die): Guard output of type unit signatures using
12082         use_debug_types.
12083         (build_abbrev_table): Replace assert of dwarf_version >= 4
12084         with assert on use_debug_types.
12085         (size_of_die): Likewise.
12086         (unmark_dies): Likewise.
12087         (value_format): Decide AT_ref_external form on use_debug_types.
12088         (output_die): Replace dwarf_version version check guard with
12089         use_debug_types where appropriate.
12090         (modified_type_die): Likewise.
12091         (gen_reference_type_die): Likewise.
12092         (dwarf2out_start_source_file): Likewise.
12093         (dwarf2out_end_source_file): Likewise.
12094         (prune_unused_types_walk_attribs): Likewise.
12095         (dwarf2out_finish): Likewise.
12096
12097 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
12098
12099         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
12100
12101 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
12102
12103         PR rtl-optimization/48332
12104         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
12105         mode of input operand N and modeN to its actual mode.
12106
12107 2011-03-30  Jeff Law  <law@redhat.com>
12108
12109         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
12110         define accessor macro.
12111         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
12112         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
12113         (reg_equiv_init): Likewise.
12114         (reg_equivs_size): New variable.
12115         (reg_equiv_init_size): Remove.
12116         (allocate_initial_values): Move prototype to here from....
12117         * integrate.h (allocate_initial_values): Remove prototype.
12118         * integrate.c: Include reload.h.
12119         (allocate_initial_values): Corresponding changes.
12120         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
12121         (fix_reg_equiv_init, no_equiv): Corresponding changes.
12122         (update_equiv_regs): Corresponding changes.
12123         (ira): Corresponding changes.
12124         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
12125         (push_secondary_reload): Corresponding changes.
12126         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
12127         (make_memloc, find_reloads_address): Corresponding changes.
12128         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
12129         (find_reloads_address_1): Corresponding changes.
12130         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
12131         (refers_to_regno_for_reload_p): Corresponding changes.
12132         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
12133         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
12134         * reload1.c: Include ggc.h.
12135         (grow_reg_equivs): New function.
12136         (replace_pseudos_in, reload): Corresponding changes.
12137         (calculate_needs_all_insns, alter_regs): Corresponding changes.
12138         (eliminate_regs_1, elimination_effects): Corresponding changes.
12139         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
12140         (delete_output_reload): Likewise.
12141         * caller-save.c (mark_referenced_regs): Corresponding changes.
12142         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
12143         * frv/predicates.md (frv_load_operand): Corresponding changes.
12144         * microblaze/microblaze.c (double_memory_operand): Corresponding
12145         changes.
12146         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
12147         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
12148         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
12149         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
12150         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
12151         changes.
12152         * pa/pa.c (emit_move_sequence): Corresponding changes.
12153         * vax/vax.c (nonindexed_address_p): Corresponding changes.
12154
12155 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
12156
12157         PR target/47551
12158         * config/arm/arm.c (coproc_secondary_reload_class): Handle
12159         structure modes.  Don't check neon_vector_mem_operand for
12160         vector or structure modes.
12161
12162 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
12163             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12164
12165         PR target/43590
12166         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
12167         operand 1 and reshuffle the operands to match.
12168         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
12169
12170 2011-03-30  Christian Schüler  <cschueler@gmx.de>
12171
12172         PR driver/48208
12173         * config/c.opt (F): Added 'Driver' to -F option.
12174
12175         PR driver/48260
12176         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
12177           handler function.
12178         * config/darwin.opt: Added '-arch' option.
12179
12180 2011-03-30  Nick Clifton  <nickc@redhat.com>
12181
12182         * config/rx/rx.md: Add peepholes and patterns to combine
12183         extending loads and simple arithmetic instructions.
12184         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
12185         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
12186         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
12187         modes to use pre-decrement and post-increment addressing.
12188         (rx_is_restricted_memory_address): Add range checking of REG+INT
12189         addresses.
12190         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
12191         (rx_memory_move_cost): Adjust cost of stores.
12192         (rx_adjust_insn_length): New function.
12193
12194 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
12195
12196         PR c/48305
12197         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
12198         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
12199         matching arg00/arg01 types.
12200
12201 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
12202
12203         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
12204         last_location to UNKNOWN_LOCATION.
12205
12206 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
12207
12208         PR target/48349
12209         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
12210         FLOAT_SSE_REGS.
12211
12212 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
12213             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12214
12215         PR bootstrap/48337
12216         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
12217         Init(PROCESSOR_V7).
12218         (sparc_cpu): Likewise.
12219         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
12220         PROCESSOR_V7.
12221
12222 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
12223
12224         PR target/48336
12225         PR middle-end/48342
12226         PR rtl-optimization/48345
12227         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
12228         hard regs for given mode from profitable regs when doing secondary
12229         allocation.
12230
12231 2011-03-29  Jeff Law  <law@redhat.com>
12232
12233         PR bootstrap/48327
12234         * tree-ssa-threadupdate.c (struct redirection_data): Remove
12235         do_not_duplicate field.
12236         (lookup_redirection_data): Corresponding changes.
12237         (create_duplicates): Always create a template block.
12238         (redirect_edges): Remove code which reused the original block
12239         when it was going to become unreachable code.
12240         (thread_block): Don't set do_not_duplicate field.
12241
12242 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
12243
12244         * lto-opts.c (register_user_option_p, lto_register_user_option):
12245         Make type argument unsigned.
12246         * lto-streamer.h (lto_register_user_option): Make type argument
12247         unsigned.
12248         * opth-gen.awk: Make CL_* macros unsigned.
12249         * opts-common.c (find_opt): Make lang_mask argument unsigned.
12250         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
12251         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
12252         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
12253         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
12254         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
12255         (find_opt): Make lang_mask argument unsigned.
12256
12257 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
12258
12259         PR rtl-optimization/48331
12260         PR rtl-optimization/48334
12261         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
12262         for any used algorithm.
12263
12264 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
12265
12266         * ira-conflicts.c (build_object_conflicts): Add unused attribute
12267         to parent_max.
12268
12269 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
12270
12271         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
12272         (alpha_option_override): Don't set alpha_sr_alias_set.
12273         (emit_frame_store_1): Use gen_frame_mem rather than calling
12274         set_mem_alias_set.
12275         (alpha_expand_epilogue): Ditto.
12276
12277 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
12278
12279         PR tree-optimization/48290
12280         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
12281         vectorization, check that relevant phis in the basic block after
12282         the inner loop are really inner loop's exit phis.
12283
12284 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
12285
12286         PR debug/48190
12287         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
12288         (cached_dw_loc_list_def): New structure.
12289         (cached_dw_loc_list): New typedef.
12290         (cached_dw_loc_list_table): New variable.
12291         (cached_dw_loc_list_table_hash): New function.
12292         (cached_dw_loc_list_table_eq): Likewise.
12293         (add_location_or_const_value_attribute): Take a bool cache_p.
12294         Cache the list when the parameter is true.
12295         (gen_formal_parameter_die): Update caller.
12296         (gen_variable_die): Likewise.
12297         (dwarf2out_finish): Likewise.
12298         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
12299         while generating debug info for the decl.
12300         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
12301         (dwarf2out_init): Initialize cached_dw_loc_list_table.
12302         (resolve_addr): Cache the result of resolving a chain of
12303         location lists.
12304
12305 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
12306
12307         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
12308         conflict object hard regset nodes have intersecting hard reg sets.
12309
12310         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
12311         after regstat_init_n_sets_and_refs.
12312
12313         * ira.c: Add more comments at the top.
12314         (setup_stack_reg_pressure_class, setup_pressure_classes):
12315         Add comments how we compute the register pressure classes.
12316         (setup_allocno_and_important_classes): Add more comments.
12317         (setup_class_translate_array, reorder_important_classes)
12318         (setup_reg_class_relations): Add comments.
12319
12320         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
12321         start of the file.
12322
12323         * ira-color.c: Add 2011 to the Copyright line.
12324         (assign_hard_reg):  Add more comments.
12325         (improve_allocation): Ditto.
12326
12327         * ira-costs.c: Add 2011 to the Copyright line.
12328         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
12329         comments.
12330         (setup_regno_cost_classes_by_mode): Ditto.
12331
12332         Initial patches from ira-improv branch:
12333
12334         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
12335
12336         * ira-build.c (ira_create_object): Remove initialization of
12337         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
12338         (ira_create_allocno): Remove initialization of
12339         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
12340         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
12341         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
12342         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
12343         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
12344         Initialize ALLOCNO_ADD_DATA.
12345         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
12346         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
12347         ALLOCNO_REG.
12348         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
12349         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
12350
12351         * ira.c (ira_reallocate): Remove.
12352         (setup_pressure_classes): Call
12353         ira_init_register_move_cost_if_necessary.  Use
12354         ira_register_move_cost instead of ira_get_register_move_cost.
12355         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
12356         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
12357
12358         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
12359         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
12360         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
12361         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
12362         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
12363         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
12364         Fix formatting.
12365         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
12366         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
12367         (struct allocno_color_data): New.
12368         (allocno_color_data_t): New typedef.
12369         (allocno_color_data): New definition.
12370         (ALLOCNO_COLOR_DATA): New macro.
12371         (struct object_color_data): New.
12372         (object_color_data_t): New typedef.
12373         (object_color_data): New definition.
12374         (OBJECT_COLOR_DATA): New macro.
12375         (update_copy_costs, calculate_allocno_spill_cost): Call
12376         ira_init_register_move_cost_if_necessary.  Use
12377         ira_register_move_cost instead of ira_get_register_move_cost.
12378         (move_spill_restore, update_curr_costs): Ditto.
12379         (allocno_spill_priority): Make it inline.
12380         (color_pass): Allocate and free allocno_color_dat and object_color_data.
12381         (struct coalesce_data, coalesce_data_t): New.
12382         (allocno_coalesce_data): New definition.
12383         (ALLOCNO_COALESCE_DATA): New macro.
12384         (merge_allocnos, coalesced_allocno_conflict_p): Use
12385         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
12386         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
12387         (coalesce_allocnos): Ditto.
12388         (setup_coalesced_allocno_costs_and_nums): Ditto.
12389         (collect_spilled_coalesced_allocnos): Ditto.
12390         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
12391         (setup_slot_coalesced_allocno_live_ranges): Ditto.
12392         (coalesce_spill_slots): Ditto.
12393         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
12394         free allocno_coalesce_data.
12395
12396         * ira-conflicts.c: Fix formatting.
12397         (process_regs_for_copy): Call
12398         ira_init_register_move_cost_if_necessary.  Use
12399         ira_register_move_cost instead of ira_get_register_move_cost.
12400         (build_object_conflicts): Optimize.
12401
12402         * ira-costs.c (record_reg_classes): Optimize.  Call
12403         ira_init_register_move_cost_if_necessary.  Use
12404         ira_register_move_cost, ira_may_move_in_cost, and
12405         ira_may_move_out_cost instead of ira_get_register_move_cost and
12406         ira_get_may_move_cost.
12407         (record_address_regs): Ditto.
12408         (scan_one_insn): Optimize.
12409         (find_costs_and_classes): Optimize.
12410         (process_bb_node_for_hard_reg_moves): Call
12411         ira_init_register_move_cost_if_necessary.  Use
12412         ira_register_move_cost instead of ira_get_register_move_cost.
12413
12414         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
12415         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
12416         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
12417         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
12418         definitions.
12419         (ira_initiate_emit_data, ira_finish_emit_data)
12420         (create_new_allocno): New functions.
12421         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
12422         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
12423         Use ira_register_move_cost instead of ira_get_register_move_cost.
12424
12425         * ira-int.h: Fix some comments.
12426         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
12427         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
12428         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
12429         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
12430         add_data.
12431         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
12432         bitfield after mode.  Make hard_regno a short int.  Make
12433         hard_regno short.  Remove first_coalesced_allocno and
12434         next_coalesced_allocno.  Move mem_optimized_dest_p,
12435         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
12436         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
12437         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
12438         temp, colorable_p.  Add new member add_data.
12439         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
12440         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
12441         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
12442         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
12443         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
12444         (ALLOCNO_ADD_DATA): New macro.
12445         (ira_emit_data_t): New typedef.
12446         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
12447         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
12448         from struct ira_allocno.
12449         (ALLOCNO_EMIT_DATA): New macro.
12450         (ira_allocno_emit_data, allocno_emit_reg): New.
12451         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
12452         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
12453         (OBJECT_ADD_DATA): New macro.
12454         (ira_reallocate): Remove.
12455         (ira_initiate_emit_data, ira_finish_emit_data): New.
12456         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
12457         (ira_init_register_move_cost_if_necessary): New.
12458         (ira_object_conflict_iter_next): Merge into
12459         ira_object_conflict_iter_cond.
12460         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
12461
12462         * ira-live.c (process_single_reg_class_operands): Call
12463         ira_init_register_move_cost_if_necessary.  Use
12464         ira_register_move_cost instead of ira_get_register_move_cost.
12465
12466         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
12467
12468         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
12469
12470         * ira-costs.c: Fix formatting.
12471         (cost_classes, cost_classes_num): Remove.
12472         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
12473         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
12474         (cost_classes_del, cost_classes_htab): New.
12475         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
12476         (initiate_regno_cost_classes, setup_cost_classes): New.
12477         (setup_regno_cost_classes_by_aclass): New.
12478         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
12479         (record_reg_classes): Use regno_cost_classes instead of
12480         cost_classes.  Move checking opposite operand up.
12481         (record_address_regs): Use regno_cost_classes
12482         instead of cost_classes.
12483         (scan_one_insn): Ditto.  Use always general register.
12484         (print_allocno_costs): Use regno_cost_classes instead of
12485         cost_classes.
12486         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
12487         (find_costs_and_classes): Set up cost classes for each registers.
12488         Use also their mode for this.  Use regno_cost_classes instead of
12489         cost_classes.
12490         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
12491         cost_classes.
12492         (free_ira_costs, ira_init_costs): Don't use cost_classes.
12493         (ira_costs, ira_set_pseudo_classes): Call
12494         initiate_regno_cost_classes and finish_regno_cost_classes.
12495
12496         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
12497
12498         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
12499
12500         * target.def (ira_cover_classes): Remove.
12501
12502         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
12503
12504         * doc/tm.texi.in: Ditto.
12505
12506         * ira-conflicts.c: Remove mentioning cover classes from the file.
12507         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
12508         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
12509
12510         * targhooks.c (default_ira_cover_classes): Remove.
12511
12512         * targhooks.h (default_ira_cover_classes): Ditto.
12513
12514         * haifa-sched.c: Remove mentioning cover classes from the file.
12515         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
12516         ira_pressure_classes and ira_pressure_classes_num instead of
12517         ira_reg_class_cover_size and ira_reg_class_cover.  Use
12518         sched_regno_pressure_class instead of sched_regno_cover_class.
12519         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
12520         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12521
12522         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
12523         classes from the file.
12524         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
12525         (struct object_hard_regs, struct object_hard_regs_node): New.
12526         (struct ira_object): New members profitable_hard_regs,
12527         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
12528         (struct ira_allocno): Rename cover_class to aclass.  Rename
12529         cover_class_cost and updated_cover_class_cost to class_cost and
12530         updated_class_cost.  Remove splay_removed_p and
12531         left_conflict_size.  Add new members colorable_p.
12532         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
12533         (ALLOCNO_COLORABLE_P): New macro.
12534         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
12535         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
12536         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
12537         (OBJECT_...): Rename parameter C to O.
12538         (OBJECT_PROFITABLE_HARD_REGS): New macro.
12539         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
12540         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
12541         (struct target_ira_int): New members x_ira_max_memory_move_cost,
12542         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
12543         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
12544         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
12545         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
12546         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
12547         x_ira_reg_class_subunion.
12548         (ira_max_memory_move_cost, ira_max_register_move_cost)
12549         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
12550         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
12551         (ira_important_class_nums, ira_reg_class_superunion): New macros.
12552         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
12553         (ira_reg_class_union): Rename to ira_reg_class_subunion.
12554         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
12555         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
12556         (ira_tune_allocno_costs_and_cover_classes): Rename to
12557         ira_tune_allocno_costs.
12558         (ira_debug_hard_regs_forest): New.
12559         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
12560         (ira_object_conflict_iter_next): Fix comments.
12561         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
12562         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
12563         cover_class to aclass.
12564         (ira_allocate_and_accumulate_costs): Ditto.
12565         (ira_allocate_and_set_or_copy_costs): Ditto.
12566
12567         * opts.c (decode_options): Remove ira_cover_class check.
12568
12569         * ira-color.c: Remove mentioning cover classes from the file.  Use
12570         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
12571         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
12572         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
12573         (splay-tree.h): Remove include.
12574         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
12575         before copy_freq_compare_func.
12576         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
12577         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
12578         New definitions.
12579         (hard_regs_roots, hard_regs_node_vec): Ditto.
12580         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
12581         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
12582         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
12583         (create_new_object_hard_regs_node): Ditto.
12584         (add_new_object_hard_regs_node_to_forest): Ditto.
12585         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
12586         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
12587         Ditto.
12588         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
12589         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
12590         (remove_unused_object_hard_regs_nodes): Ditto.
12591         (enumerate_object_hard_regs_nodes): Ditto.
12592         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
12593         (object_hard_regs_subnode_t): Ditto.
12594         (struct object_hard_regs_subnode): Ditto.
12595         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
12596         (setup_object_hard_regs_subnode_index): Ditto.
12597         (get_object_hard_regs_subnodes_num): Ditto.
12598         (form_object_hard_regs_nodes_forest): Ditto.
12599         (finish_object_hard_regs_nodes_tree): Ditto.
12600         (finish_object_hard_regs_nodes_forest): Ditto.
12601         (allocnos_have_intersected_live_ranges_p): Rename to
12602         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
12603         (pseudos_have_intersected_live_ranges_p): Rename to
12604         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
12605         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
12606         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
12607         (update_copy_costs): Remove assert.  Skip cost update if the hard
12608         reg does not belong the class.
12609         (assign_hard_reg): Process only profitable hard regs.
12610         (uncolorable_allocnos_num): Make it scalar.
12611         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
12612         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
12613         and ira_reg_class_max_nregs.
12614         (bucket_allocno_compare_func): Check frequency first.
12615         (sort_bucket): Add compare function as a parameter.
12616         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
12617         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
12618         (push_allocno_to_stack): Rewrite for checking new allocno
12619         colorability.
12620         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
12621         (push_only_colorable): Pass new parameter to sort_bucket.
12622         (push_allocno_to_spill): Remove.
12623         (allocno_spill_priority_compare): Make it inline and rewrite.
12624         (splay_tree_allocate, splay_tree_free): Remove.
12625         (allocno_spill_sort_compare): New function.
12626         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
12627         build and use splay tree.  Choose first allocno in uncolorable
12628         allocno bucket to spill.  Remove setting spill cost.
12629         (all_conflicting_hard_regs): Remove.
12630         (setup_allocno_available_regs_num): Check only profitable hard
12631         regs.  Print info about hard regs nodes.
12632         (setup_allocno_left_conflicts_size): Remove.
12633         (put_allocno_into_bucket): Don't call
12634         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
12635         (improve_allocation): New.
12636         (color_allocnos): Call setup_profitable_hard_regs,
12637         form_object_hard_regs_nodes_forest, improve_allocation,
12638         finish_object_hard_regs_nodes_forest.  Setup spill cost.
12639         (print_loop_title): Use pressure classes.
12640         (color_allocnso): Ditto.
12641         (do_coloring): Remove allocation and freeing splay_tree_node_pool
12642         and allocnos_for_spilling.
12643         (ira_sort_regnos_for_alter_reg): Don't setup members
12644         {first,next}_coalesced_allocno.
12645         (color): Remove allocating and freeing removed_splay_allocno_vec.
12646         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
12647         prohibited_class_mode_regs.
12648
12649         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
12650         formatting.
12651         (update_allocno_pressure_excess_length): Use pressure classes.
12652         (inc_register_pressure, dec_register_pressure): Check for pressure
12653         class.
12654         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
12655         pressure class.  Use ira_reg_class_nregs instead of
12656         ira_reg_class_max_nregs.
12657         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
12658         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
12659         (single_reg_class): Use ira_reg_class_nregs instead of
12660         ira_reg_class_max_nregs.
12661         (process_bb_node_lives): Use pressure classes.
12662
12663         * ira-emit.c: Remove mentioning cover classes from the file.  Use
12664         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
12665         (change_loop): Use pressure classes.
12666         (modify_move_list): Call ira_set_allocno_class instead of
12667         ira_set_allocno_cover_class.
12668
12669         * ira-build.c: Remove mentioning cover classes from the file.  Use
12670         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
12671         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
12672         ALLOCNO_UPDATED_CLASS_COST instead of
12673         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
12674         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
12675         (ira_create_allocno): Remove initialization of
12676         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
12677         ALLOCNO_COLORABLE_P.
12678         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
12679         Update conflict regs for the objects.
12680         (create_cap_allocno): Remove assert.  Don't propagate
12681         ALLOCNO_AVAILABLE_REGS_NUM.
12682         (ira_free_allocno_costs): New function.
12683         (finish_allocno): Change a part of code into call of
12684         ira_free_allocno_costs.
12685         (low_pressure_loop_node_p): Use pressure classes.
12686         (object_range_compare_func): Don't compare classes.
12687         (setup_min_max_conflict_allocno_ids): Ditto.
12688
12689         * loop-invariant.c: Remove mentioning cover classes from the file.
12690         Use ira_pressure_classes and ira_pressure_classes_num instead of
12691         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
12692         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
12693         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12694         Use reg_allocno_class instead of reg_cover_class.
12695         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
12696         STACK_REG_COVER_CLASS.
12697         (get_regno_cover_class): Rename to get_regno_pressure_class.
12698         (move_loop_invariants): Initialize and finalize regstat.
12699
12700         * ira.c: Remove mentioning cover classes from the file.  Add
12701         comments about coloring without cover classes.  Use ALLOCNO_CLASS
12702         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
12703         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
12704         setup_class_subset_and_memory_move_costs.
12705         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
12706         (setup_cover_and_important_classes): Rename to
12707         setup_allocno_and_important_classes.
12708         (setup_class_translate_array): New.
12709         (setup_class_translate): Call it for allocno and pressure classes.
12710         (cover_class_order): Rename to allocno_class_order.
12711         (comp_reg_classes_func): Use ira_allocno_class_translate instead
12712         of ira_class_translate.
12713         (reorder_important_classes): Set up ira_important_class_nums.
12714         (setup_reg_class_relations): Set up ira_reg_class_superunion.
12715         (print_class_cover): Rename to print_classes.  Add parameter.
12716         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
12717         Print pressure classes too.
12718         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
12719         setup_reg_subclasses.
12720         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
12721         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
12722         (setup_prohibited_class_mode_regs): Use
12723         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
12724         (clarify_prohibited_class_mode_regs): New function.
12725         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
12726         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
12727         (ira_init_once): Initialize them.
12728         (free_register_move_costs): Process them.
12729         (ira_init): Move calls of find_reg_classes and
12730         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
12731         Call clarify_prohibited_class_mode_regs.
12732         (ira_no_alloc_reg): Remove.
12733         (too_high_register_pressure_p): Use pressure classes.
12734
12735         * sched-deps.c: Remove mentioning cover classes from the file.
12736         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
12737         ira_pressure_classes and ira_pressure_classes_num instead of
12738         ira_reg_class_cover_size and ira_reg_class_cover.
12739         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
12740         sched_regno_pressure_class instead of sched_regno_cover_class.
12741         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
12742         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12743
12744         * ira.h: Add 2010 to Copyright.
12745         (ira_no_alloc_reg): Remove external.
12746         (struct target_ira): Rename x_ira_hard_regno_cover_class,
12747         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
12748         x_ira_class_translate to x_ira_hard_regno_allocno_class,
12749         x_ira_allocno_classes_num, x_ira_allocno_classes, and
12750         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
12751         x_ira_pressure_classes, x_ira_pressure_class_translate, and
12752         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
12753         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
12754         x_ira_no_alloc_regs.
12755         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
12756         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
12757         ira_allocno_classes_num and ira_allocno_classes.
12758         (ira_class_translate): Rename to ira_allocno_class_translate.
12759         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
12760         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
12761         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
12762         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
12763         (ira_no_alloc_regs): New.
12764
12765         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
12766         classes from the file.  Use ALLOCNO_CLASS instead of
12767         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
12768         ALLOCNO_COVER_CLASS_COST.
12769         (regno_cover_class): Rename to regno_aclass.
12770         (record_reg_classes): Use ira_reg_class_subunion instead of
12771         ira_reg_class_union.
12772         (record_address_regs): Check overflow.
12773         (scan_one_insn): Ditto.
12774         (print_allocno_costs): Print total mem cost fore regional allocation.
12775         (print_pseudo_costs): Use REG_N_REFS.
12776         (find_costs_and_classes): Use classes intersected with them on the
12777         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
12778         ira_reg_class_union.  Use ira_allocno_class_translate and
12779         regno_aclass instead of ira_class_translate and regno_cover_class.
12780         Modify code for finding regno_aclass.  Setup preferred classes for
12781         the next pass.
12782         (setup_allocno_cover_class_and_costs): Rename to
12783         setup_allocno_class_and_costs.  Use regno_aclass instead of
12784         regno_cover_class.  Use ira_set_allocno_class instead of
12785         ira_set_allocno_cover_class.
12786         (init_costs, finish_costs): Use regno_aclass instead of
12787         regno_cover_class.
12788         (ira_costs): Use setup_allocno_class_and_costs instead of
12789         setup_allocno_cover_class_and_costs.
12790         (ira_tune_allocno_costs_and_cover_classes): Rename to
12791         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
12792         by processing objects.  Use ira_reg_class_max_nregs instead of
12793         ira_reg_class_nregs.
12794
12795         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
12796
12797         * sched-int.h: Remove mentioning cover classes from the file.
12798         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
12799
12800         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
12801         classes from the file.
12802         (struct reg_pref): Rename coverclass into allocnoclass.
12803         (reg_cover_class): Rename to reg_allocno_class.
12804
12805         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
12806
12807         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
12808
12809         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
12810
12811         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
12812
12813         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
12814
12815         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
12816
12817         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
12818
12819         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
12820
12821         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
12822
12823         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
12824
12825         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
12826         (i386_ira_cover_classes): Ditto.
12827
12828         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
12829
12830         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
12831
12832         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
12833
12834         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
12835
12836         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
12837
12838         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
12839
12840         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
12841         (mips_ira_cover_classes): Ditto.
12842
12843         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
12844
12845         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
12846
12847         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
12848
12849         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
12850
12851         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
12852
12853         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
12854         (IRA_COVER_CLASSES_VSX): Ditto.
12855
12856         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
12857         (rs6000_ira_cover_classes): Ditto.
12858
12859         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
12860
12861         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
12862
12863         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
12864
12865         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
12866
12867         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
12868
12869         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
12870
12871         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
12872
12873         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
12874
12875         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
12876
12877         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
12878
12879 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
12880
12881         PR debug/48253
12882         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
12883         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
12884         dw_fde_unlikely_section_end_label, cold_in_std_section,
12885         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
12886         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
12887         fields.
12888         (output_fde): Use dw_fde_second_{begin,end} if second is
12889         true, otherwise dw_fde_{begin,end}.
12890         (output_call_frame_info): Test dw_fde_second_begin != NULL
12891         instead of dw_fde_switched_sections.
12892         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
12893         fields, initialize new fields.  Initialize in_std_section
12894         unconditionally from the first partition.
12895         (dwarf2out_end_epilogue): Don't override dw_fde_end when
12896         dw_fde_second_begin is non-NULL.
12897         (dwarf2out_switch_text_section): Stop initializing removed
12898         dw_fde_struct fields, initialize new fields, initialize
12899         also dw_fde_end here.  Set dw_fde_switch_cfi even when
12900         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
12901         (struct var_loc_list_def): Add last_before_switch field.
12902         (arange_table, arange_table_allocated, arange_table_in_use,
12903         ARANGE_TABLE_INCREMENT, add_arange): Removed.
12904         (size_of_aranges): Count !in_std_section and !second_in_std_section
12905         hunks in fdes, instead of looking at arange_table_in_use.
12906         (output_aranges): Add aranges_length argument, don't call
12907         size_of_aranges here.  Instead of using aranges_table*
12908         emit ranges for fdes when !in_std_section resp.
12909         !second_in_std_section.
12910         (dw_loc_list): Break ranges crossing section switch.
12911         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
12912         use dw_fde_second_end instead of dw_fde_end as end of last range.
12913         (gen_subprogram_die): Don't call add_arange.  Use
12914         dw_fde_{begin,end} for first partition and if switched
12915         section dw_fde_second_{begin,end} for the second.
12916         (var_location_switch_text_section_1,
12917         var_location_switch_text_section): New functions.
12918         (dwarf2out_begin_function): Initialize cold_text_section even
12919         when function_section () isn't text_section.
12920         (prune_unused_types): Don't walk arange_table.
12921         (dwarf2out_finish): Don't needlessly test
12922         flag_reorder_blocks_and_partition when testing cold_text_section_used.
12923         If info_section_emitted, call size_of_aranges and if it indicates
12924         non-empty .debug_aranges, call output_aranges with the computed
12925         size.  Stop using removed dw_fde_struct fields, use
12926         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
12927         for second.
12928
12929         PR debug/48203
12930         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
12931         create ENTRY_VALUE if incoming or address of incoming's MEM
12932         is a hard REG.
12933         * dwarf2out.c (mem_loc_descriptor): Don't emit
12934         DW_OP_GNU_entry_value of DW_OP_fbreg.
12935         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
12936         on ENTRY_VALUE is able to find the canonical parameter VALUE.
12937         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
12938         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
12939         ENTRY_VALUE_EXPs.
12940         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
12941         is a REG_P or MEM_P with REG_P address, compute hash directly
12942         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
12943         (preserve_only_constants): Don't clear VALUES forwaring
12944         ENTRY_VALUE to some other VALUE.
12945
12946 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
12947
12948         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
12949         instead of GEN_INT.
12950
12951 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
12952
12953         * cfgexpand.c (expand_gimple_cond): Always set the source location and
12954         block before expanding the statement.
12955         (expand_gimple_stmt_1): Likewise.  Set them here...
12956         (expand_gimple_stmt): ...and not here.  Tidy.
12957         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
12958         unknown.
12959
12960 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
12961
12962         * Makefile.in: New rule for cprop.o.
12963         * gcse.c: Move constant/copy propagation to cprop.c.
12964         (compute_local_properties): Only handle expression tables.
12965         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
12966         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
12967         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
12968         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
12969         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
12970         compute_cprop_data, find_used_regs, try_replace_reg,
12971         find_avail_set, cprop_jump, constprop_register, cprop_insn,
12972         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
12973         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
12974         find_bypass_set, reg_killed_on_edge, bypass_block,
12975         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
12976         execute_rtl_cprop, pass_rtl_cprop): Move to...
12977         * cprop.c: ...here.  New file, constant/copy propagation for RTL
12978         moved from gcse.c to here with minor cleanups in duplicated code.
12979
12980 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
12981
12982         * config/i386/i386.c (flag_opts): Fix a typo in
12983         -mavx256-split-unaligned-store.
12984
12985 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
12986
12987         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
12988         LIBCALL_VALUE): Remove macros.
12989         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12990         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12991         (h8300_function_value, h8300_libcall_value,
12992         h8300_function_value_regno_p): New functions.
12993
12994 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
12995
12996         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
12997
12998 2011-03-28  Jeff Law  <law@redhat.com>
12999
13000         * tree-ssa-threadupdate.c (redirect_edges): Call
13001         create_edge_and_update_destination_phis as needed.
13002         (create_edge_and_update_destination_phis): Accept new BB argument.
13003         All callers updated.
13004         (thread_block): Do not update the profile when threading around
13005         intermediate blocks.
13006         (thread_single_edge): Likewise.
13007         (determine_bb_domination_status): If BB is not a successor of the
13008         loop header, return NONDOMINATING.
13009         (register_jump_thread): Note when we register a jump thread around
13010         an intermediate block.
13011         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
13012         (thread_across_edge): Use it.
13013
13014 2011-03-28  Tristan Gingold  <gingold@adacore.com>
13015
13016         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
13017         when for_return is 2.
13018
13019 2011-03-28  Jeff Law  <law@redhat.com>
13020
13021         * var-tracking.c (canonicalize_values_mark): Delete unused
13022         lhs assignment.
13023         (canonicalize_values_star, set_variable_part): Likewise.
13024         (clobber_variable_part, delete_variable_part): Likewise.
13025
13026 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
13027
13028         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
13029
13030 2011-03-28  Martin Jambor  <mjambor@suse.cz>
13031
13032         * tree-inline.c (expand_call_inline): Do not check that destination
13033         node is analyzed.
13034         (optimize_inline_calls): Assert that destination node is analyzed.
13035         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
13036         not call tree_lowering_passes.
13037         * cgraph.h (cgraph_analyze_function): Declare.
13038         * cgraphunit.c (cgraph_analyze_function): Make public.
13039
13040 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
13041
13042         * config/sparc/sparc-opts.h: New.
13043         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
13044         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
13045         (sparc_option_override): Store processor_type enumeration rather
13046         than string in cpu_default.  Remove name and enumeration from
13047         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
13048         without using sparc_select.  Use target_flags_explicit instead of
13049         fpu_option_set.
13050         * config/sparc/sparc.h (enum processor_type): Move to
13051         sparc-opts.h.
13052         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
13053         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
13054         HeaderInclude entry.
13055         (mcpu=, mtune=): Use Var and Enum.
13056         (sparc_processor_type): New Enum and EnumValue entries.
13057
13058 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13059             Iain Sandoe  <iains@gcc.gnu.org>
13060
13061         PR target/48245
13062         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
13063
13064 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
13065
13066         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
13067         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
13068         Insert new statements at it in lieu of STMT.
13069         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
13070         * tree-vect-stmts.c (vectorizable_store): Likewise.
13071         (vectorizable_load): Likewise.
13072
13073 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
13074
13075         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
13076         (divtf3): Ditto.
13077         (multf3): Ditto.
13078         (subtf3): Ditto.
13079
13080 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13081
13082         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
13083         unaligned 256bit load/store.
13084         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
13085         (*avx_movdqu<avxmodesuffix>): Likewise.
13086
13087 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13088
13089         PR target/48288
13090         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
13091         * config/pa/pa.md (iordi3): Use new predicate in expander.
13092         (iorsi3): Likewise.
13093
13094 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
13095
13096         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
13097         FUNCTION_VALUE_REGNO_P): Remove macros.
13098         * config/mips/mips-protos.h (mips_function_value): Remove.
13099         * config/mips/mips.c (mips_function_value): Rename to...
13100         (mips_function_value_1): ... this. Make static.  Handle receiving
13101         the function type in 'fn_decl_or_type' argument.
13102         (mips_function_value, mips_libcall_value,
13103         mips_function_value_regno_p): New function.
13104         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13105         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13106
13107 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13108
13109         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
13110         and -mavx256-split-unaligned-store.
13111         (ix86_option_override_internal): Split 32-byte AVX unaligned
13112         load/store by default.
13113         (ix86_avx256_split_vector_move_misalign): New.
13114         (ix86_expand_vector_move_misalign): Use it.
13115
13116         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
13117         -mavx256-split-unaligned-store.
13118
13119         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
13120         256bit load/store.  Generate unaligned store on misaligned memory
13121         operand.
13122         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
13123         256bit load/store.
13124         (*avx_movdqu<avxmodesuffix>): Likewise.
13125
13126         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
13127         -mavx256-split-unaligned-store.
13128
13129 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
13130
13131         PR target/38598
13132         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
13133         Update commentary.
13134
13135 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
13136
13137         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
13138         opno arguments with an expand_operand.  Use create_input_operand.
13139         (mips_prepare_builtin_target): Delete.
13140         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
13141         functions.
13142         (mips_expand_builtin_direct): Use create_output_operand and
13143         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
13144         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
13145         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
13146
13147 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
13148
13149         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
13150         function.
13151         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
13152
13153 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
13154
13155         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
13156         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
13157         basic blocks and call commit_edge_insertions directly.
13158         (fixup_abnormal_edges): Move from here to...
13159         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
13160         on the edges and return whether some have actually been inserted.
13161         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
13162         compensation code.
13163
13164 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
13165
13166         PR rtl-optimization/48144
13167         * sel-sched-ir.c (merge_history_vect): Factor out from ...
13168         (merge_expr_data): ... here.
13169         (av_set_intersect): Rename to av_set_code_motion_filter.
13170         Update all callers.  Call merge_history_vect when an expression
13171         is found in both sets.
13172         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
13173
13174 2011-03-26  Alan Modra  <amodra@gmail.com>
13175
13176         * config/rs6000/predicates.md (word_offset_memref_op): Handle
13177         cmodel medium addresses.
13178         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
13179         64-bit gpr loads and stores.
13180         (rs6000_secondary_reload_ppc64): New function.
13181         * config/rs6000/rs6000-protos.h: Declare it.
13182         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
13183
13184 2011-03-26  Alan Modra  <amodra@gmail.com>
13185
13186         PR target/47487
13187         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
13188         GNU Go in traceback table.
13189
13190 2011-03-25  Richard Henderson  <rth@redhat.com>
13191
13192         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
13193         if there are exactly 6 operands.
13194         (set_storage_via_setmem): Similarly.
13195
13196 2011-03-25  Kai Tietz  <ktietz@redhat.com>
13197
13198         * collect2.c (write_c_file_stat): Handle backslash
13199         as right-hand directory separator.
13200         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
13201         checking just for slash.
13202         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
13203         instead of checking for trailing slash.
13204         * gcc.c (record_temp_file): Use filename_cmp instead
13205         of strcmp.
13206         (do_spec_1): Likewise.
13207         (replace_outfile_spec_function): Likewise.
13208         (is_directory): Use filename_ncmp instead of strncmp.
13209         (print_multilib_info): Likewise.
13210         * gcov.c (find_source): Use filename_cmp instead
13211         instead of strcmp.
13212         (make_gcov_file_name): Fix order of slash/backslash
13213         checks.
13214         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
13215         (add_standard_paths): Likewise.
13216         * mips-tfile.c (saber_stop): Handle backslash.
13217         * prefix.c (update_path): Use filename_ncmp instead of
13218         strncmp.
13219         * profile.c (output_location): Use filename_cmp instead
13220         of strcmp.
13221         * read-md.c (handle_toplevel_file): Handle backslash.
13222         * tlink.c (frob_extension):  Likewise.
13223         * tree-cfg.c (same_line_p): Use filename_cmp instead of
13224         strcmp.
13225         * tree-dump.c (dequeue_and_dump): Handle backslash.
13226         * tree.c (get_file_function_name): Likewise.
13227         * gengtype.c (read_input_list): Likewise.
13228         (get_file_realbasename): Likewise.
13229         (get_output_file_with_visibility): Use filename_cmp
13230         instead of strcmp.
13231
13232 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
13233
13234         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
13235         case to VFPv1.
13236
13237 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
13238
13239         * fold-const.c (expr_location_or): New function.
13240         (fold_truth_not_expr): Call it.
13241
13242 2011-03-25  Jeff Law  <law@redhat.com>
13243
13244         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
13245         va_end.
13246         * c-family/c-common.c (def_fn_type): Likewise.
13247         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
13248         * emit-rtl.c (gen_rtvec): Likewise.
13249         * lto/lto-lang.c (def_fn_type): Likewise.
13250
13251 2011-03-25  Richard Guenther  <rguenther@suse.de>
13252
13253         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
13254         also generate copies.
13255         (fini_copy_prop): Handle constant values properly.
13256
13257 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
13258
13259         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
13260         mode size instead of bitsize with DWARF2_ADDR_SIZE.
13261         (hash_loc_operands, compare_loc_operands): Handle
13262         DW_OP_GNU_entry_value.
13263
13264 2011-03-25  Kai Tietz  <ktietz@redhat.com>
13265
13266         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
13267         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
13268         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
13269         comment and use macro TARGET_64BIT_MS_ABI instead.
13270         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
13271         and change default behavior for 32-bit MS_ABI.
13272         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
13273         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
13274         32-bit, too.
13275         (ix86_cfun_abi): Likewise.
13276         (ix86_maybe_switch_abi): Adjust comment.
13277         (init_cumulative_args): Check for bit-ness in MS_ABI case.
13278         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
13279         instead of checking for SYSV_ABI.
13280         (ix86_nsaved_sseregs): Likewise.
13281         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
13282         to 16 bytes.
13283         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
13284         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
13285         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
13286         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
13287         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
13288
13289 2011-03-25  Richard Guenther  <rguenther@suse.de>
13290
13291         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
13292         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
13293         (verify_gimple): Remove.
13294         * tree-cfg.c (verify_gimple_call): Merge verification
13295         from verify_stmts.
13296         (verify_gimple_phi): Merge verification from verify_stmts.
13297         (verify_gimple_label): New function.
13298         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
13299         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
13300         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
13301         (verify_stmts): Rename to verify_gimple_in_cfg.
13302         (verify_gimple_in_cfg): New function.
13303         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
13304         * tree-ssa.c (verify_ssa): Likewise.
13305         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
13306
13307 2011-03-25  Richard Guenther  <rguenther@suse.de>
13308
13309         * passes.c (init_optimization_passes): Add FRE pass after
13310         early SRA.
13311
13312 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
13313             Andrew Stubbs  <ams@codesourcery.com>
13314
13315         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
13316         for Cortex-A8.
13317         (arm_movdi_vfp_cortexa8): New pattern.
13318         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
13319         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
13320         instructions when tuning for Cortex-A8.  Set attribute "arch".
13321         * config/arm/arm.md: Move include arm-tune.md up a bit.
13322         (define_attr "arch"): Add "onlya8" and "nota8" values.
13323         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
13324
13325 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
13326
13327         PR bootstrap/48282
13328         Revert:
13329         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
13330
13331         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
13332         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
13333         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
13334         * passes.c (init_optimization_passes): Move
13335         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
13336
13337 2011-03-25  Kai Tietz  <ktietz@redhat.com>
13338
13339         * c-typeck.c (comptypes_internal): Replace target
13340         hook call of comp_type_attributes by version in tree.c file.
13341         * gimple.c (gimple_types_compatible_p_1): Likewise.
13342         * tree-ssa.c (useless_type_conversion_p): Likewise.
13343         * tree.c (build_type_attribute_qual_variant): Likewise.
13344         (attribute_value_equal): New static helper function.
13345         (comp_type_attributes): New function.
13346         (merge_attributes): Use attribute_value_equal for comparison.
13347         (attribute_list_contained): Likewise.
13348         * tree.h (comp_type_attributes): New prototype.
13349
13350 2011-03-25  Richard Guenther  <rguenther@suse.de>
13351
13352         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
13353         of complex types at -O0.
13354         (verify_gimple_assign_binary): Likewise.
13355         (verify_gimple_assign_ternary): Likewise.
13356
13357 2011-03-24  Mark Wielaard  <mjw@redhat.com>
13358
13359         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
13360         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
13361
13362 2011-03-24  Mark Wielaard  <mjw@redhat.com>
13363
13364         PR debug/48041
13365         * dwarf2out.c (output_abbrev_section): Only write table when
13366         abbrev_die_table_in_use > 1.
13367
13368 2011-02-24  Richard Henderson  <rth@redhat.com>
13369
13370         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
13371         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
13372         (alpha_expand_unaligned_load_words): Use extql.
13373         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
13374         (emit_insxl): Handle all modes for consistency.
13375
13376 2011-02-24  Richard Henderson  <rth@redhat.com>
13377
13378         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
13379         (alpha_expand_unaligned_load): Likewise.
13380         (alpha_expand_unaligned_store): Likewise.
13381         (alpha_expand_unaligned_load_words): Likewise.
13382         (alpha_expand_unaligned_store_words): Likewise.
13383         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
13384         (alpha_split_lock_test_and_set_12): Likewise.
13385         (print_operand, alpha_fold_builtin_extxx): Likewise.
13386         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
13387         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
13388         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
13389         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
13390         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
13391         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
13392         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
13393         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
13394         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
13395         (extwl, extll, extql): Similarly.
13396         (inswh, inslh, insqh): Similarly.
13397         (mskbl, mskwl, mskll, mskql): Similarly.
13398         (mskwh, msklh, mskqh): Similarly.
13399
13400 2011-02-24  Richard Henderson  <rth@redhat.com>
13401
13402         * config/alpha/alpha.md (attribute isa): Add er, ner.
13403         (attribute enabled): Handle them.
13404         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
13405
13406 2011-02-24  Richard Henderson  <rth@redhat.com>
13407
13408         * config/alpha/alpha.md (attribute isa): Add vms.
13409         (attribute enabled): Handle it.
13410         (*movsf): Merge *movsf_{nofix,fix,nofp}.
13411         (*movdf): Merge *movdf_{nofix,fix,nofp}.
13412         (*movtf): Rename from *movtf_internal for consistency.
13413         (*movsi): Merge with *movsi_nt_vms.
13414         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
13415         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
13416         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
13417         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
13418
13419 2011-02-24  Richard Henderson  <rth@redhat.com>
13420
13421         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
13422         (extendqisi2, extendhisi2): Likewise.
13423         (extendqidi2): Simplify BWX/non-BWX expansions.
13424         (extendhidi2): Similarly.
13425
13426 2011-02-24  Richard Henderson  <rth@redhat.com>
13427
13428         * config/alpha/alpha.md (attribute isa): New.
13429         (attribute enabled): New.
13430         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
13431         (zero_extendqisi2, zero_extendqidi2): Similarly.
13432         (zero_extendhisi2, zero_extendhidi2): Similarly.
13433         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
13434
13435 2011-02-24  Richard Henderson  <rth@redhat.com>
13436
13437         * config/alpha/predicates.md (input_operand): Revert last change;
13438         update comment to mention 32-bit VMS rather than Windows.
13439
13440 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
13441
13442         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
13443         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
13444         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
13445         * passes.c (init_optimization_passes): Move
13446         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
13447
13448 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
13449
13450         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
13451
13452 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
13453
13454         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
13455         correctly.
13456
13457 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
13458
13459         PR debug/48204
13460         * simplify-rtx.c (simplify_const_unary_operation): Call
13461         real_convert when changing mode class with FLOAT_EXTEND.
13462
13463 2011-03-24  Nick Clifton  <nickc@redhat.com>
13464
13465         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
13466         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
13467         * config/rx/rx.c (rx_option_override): Set align_jumps,
13468         align_loops and align_labels if not set by the user.
13469         (rx_align_for_label): New function.
13470         (rx_max_skip_for_label): New function.
13471         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
13472         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
13473         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
13474         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
13475         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
13476
13477 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
13478
13479         PR rtl-optimization/48263
13480         * optabs.c (expand_binop_directly): Reinstate convert_modes code
13481         and original commutative_p handling.  Use maybe_gen_insn.
13482
13483 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13484
13485         * reload.c (find_reloads_subreg_address): Add address_reloaded
13486         parameter and return true there if the full address has been
13487         reloaded.
13488         (find_reloads_toplev): Pass address_reloaded flag.
13489         (find_reloads_address_1): Don't use address_reloaded parameter.
13490
13491 2011-03-24  Jeff Law  <law@redhat.com>
13492
13493         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
13494         unused variable "ann".
13495         (remove_unused_locals): Likewise.
13496
13497         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
13498         statement.
13499
13500         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
13501         after it is freed.
13502
13503 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13504
13505         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
13506         for invalid symbolic addresses.
13507         (s390_secondary_reload): Don't use s390_check_symref_alignment for
13508         larl operands.
13509
13510 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
13511
13512         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
13513         the argument in calls to fold_truth_not_expr.
13514
13515 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
13516
13517         * tree.c (record_node_allocation_statistics): New function.
13518         (make_node_stat, copy_node_stat, build_string): Call it.
13519         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
13520         (build1_stat, build_omp_clause): Likewise.
13521
13522 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
13523
13524         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
13525         last commit.
13526
13527 2011-03-24  Richard Guenther  <rguenther@suse.de>
13528
13529         PR tree-optimization/48271
13530         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
13531         blocks that still exist.
13532
13533 2011-03-24  Richard Guenther  <rguenther@suse.de>
13534
13535         PR tree-optimization/48270
13536         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
13537         not free datarefs before ddrs.
13538
13539 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
13540
13541         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
13542         from the address built for a reference with variable offset.
13543
13544 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
13545
13546         PR target/48237
13547         * config/i386/i386.md (*movdf_internal_rex64): Do not split
13548         alternatives that can be handled with movq or movabsq insn.
13549         (*movdf_internal): Disable for !TARGET_64BIT.
13550         (*movdf_internal_nointeger): Ditto.
13551         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
13552
13553 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
13554
13555         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
13556         (FUNCTION_ARG_ADVANCE): Likewise.
13557         * tm.texi.in: Change references to them to hook references.
13558         * tm.texi: Regenerate.
13559         * targhooks.c (default_function_arg): Eliminate check for target macro.
13560         (default_function_incoming_arg): Likewise.
13561         (default_function_arg_advance): Likewise.
13562         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
13563         (function_arg_advance): Likewise.
13564         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
13565
13566 2011-03-24  Richard Guenther  <rguenther@suse.de>
13567
13568         PR middle-end/48269
13569         * tree-object-size.c (addr_object_size): Do not double-account
13570         for MEM_REF offsets.
13571
13572 2011-03-24  Diego Novillo  <dnovillo@google.com>
13573
13574         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
13575         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
13576         (lto_input_data_block): Move from lto-opts.c.  Make extern.
13577         Update all users.
13578         (lto_input_string): Rename from input_string.  Make extern.
13579         Update all users.
13580         * lto-streamer-out.c (lto_output_string_with_length): Rename from
13581         output_string_with_length.
13582         Output 0 to indicate a non-NULL string.  Update all callers to
13583         not emit 0.
13584         (lto_output_string): Rename from output_string.  Make extern.
13585         Update all users.
13586         (lto_output_decl_state_streams): Make extern.
13587         (lto_output_decl_state_refs): Make extern.
13588         * lto-streamer.h (lto_input_string): Declare.
13589         (lto_input_data_block): Declare.
13590         (lto_output_string): Declare.
13591         (lto_output_string_with_length): Declare.
13592         (lto_output_decl_state_streams): Declare.
13593         (lto_output_decl_state_refs): Declare.
13594
13595 2011-03-24  Richard Guenther  <rguenther@suse.de>
13596
13597         PR tree-optimization/46562
13598         * tree.c (build_invariant_address): New function.
13599         * tree.h (build_invariant_address): Declare.
13600         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
13601         a renamed function moved ...
13602         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
13603         Take valueization callback parameter.
13604         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
13605         * gimple-fold.h: New file.
13606         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
13607         (ccp_fold, fold_const_aggregate_ref,
13608         fold_ctor_reference, fold_nonarray_ctor_reference,
13609         fold_array_ctor_reference, fold_string_cst_ctor_reference,
13610         get_base_constructor): Move ...
13611         * gimple-fold.c: ... here.
13612         (gimple_fold_stmt_to_constant_1): New function
13613         split out from ccp_fold.  Take a valueization callback parameter.
13614         Valueize all operands.
13615         (gimple_fold_stmt_to_constant): New wrapper function.
13616         (fold_const_aggregate_ref_1): New function split out from
13617         fold_const_aggregate_ref.  Take a valueization callback parameter.
13618         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
13619         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
13620         invariant POINTER_PLUS_EXPRs to invariant form.
13621         (vn_valueize): New function.
13622         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
13623         * tree-vrp.c (vrp_valueize): New function.
13624         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
13625         to fold statements to constants.
13626         * tree-ssa-pre.c (eliminate): Properly guard propagation of
13627         function declarations.
13628         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
13629         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
13630
13631 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
13632
13633         * config/h8300/predicates.md (jump_address_operand): Fix register
13634         mode check.
13635
13636 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
13637
13638         * doc/invoke.texi (max-stores-to-sink): Document.
13639         * params.h (MAX_STORES_TO_SINK): Define.
13640         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
13641         if either vectorization or if-conversion is disabled.
13642         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
13643         tree-vect-data-refs.c vect_equal_offsets.
13644         (dr_equal_offsets_p): New function.
13645         (find_data_references_in_bb): Remove static.
13646         * tree-data-ref.h (find_data_references_in_bb): Declare.
13647         (dr_equal_offsets_p): Likewise.
13648         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
13649         (vect_drs_dependent_in_basic_block): Update calls to
13650         vect_equal_offsets.
13651         (vect_check_interleaving): Likewise.
13652         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
13653         (cond_if_else_store_replacement): Rename to...
13654         (cond_if_else_store_replacement_1): ... this.  Change arguments and
13655         documentation.
13656         (cond_if_else_store_replacement): New function.
13657         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
13658         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
13659
13660 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
13661
13662         PR target/46934
13663         * config/arm/arm.md (casesi): Use the gen_int_mode() function
13664         to subtract lower bound instead of GEN_INT().
13665
13666 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
13667
13668         PR other/48179
13669         PR other/48221
13670         PR other/48234
13671         * doc/extend.texi (Alignment): Move section to match order in TOC.
13672         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
13673         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
13674
13675 2011-03-23  Jeff Law  <law@redhat.com>
13676
13677         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
13678         before removing the edge.
13679
13680         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
13681         it may have been freed by redirect_branch_edge or
13682         redirect_edge_succ_nodup.
13683
13684 2011-03-23  Richard Guenther  <rguenther@suse.de>
13685
13686         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
13687         (check_va_list_escapes): Likewise.
13688         (check_all_va_list_escapes): Likewise.
13689
13690 2011-03-23  Richard Guenther  <rguenther@suse.de>
13691
13692         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
13693         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
13694         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
13695         (alias.o): Likewise.
13696         (ipa-type-escape.o): Remove.
13697         (ipa-struct-reorg.o): Likewise.
13698         (GTFILES): Remove ipa-struct-reorg.c.
13699         * alias.c: Do not include ipa-type-escape.h.
13700         * tree-ssa-alias.c: Likewise.
13701         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
13702         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
13703         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
13704         and ipa-type-escape passes.
13705         * tree-pass.h (pass_ipa_type_escape): Remove.
13706         (pass_ipa_struct_reorg): Likewise.
13707         * ipa-struct-reorg.h: Remove.
13708         * ipa-struct-reorg.c: Likewise.
13709         * ipa-type-escape.h: Likewise.
13710         * ipa-type-escape.c: Likewise.
13711         * doc/invoke.texi (-fipa-struct-reorg): Remove.
13712         (--param struct-reorg-cold-struct-ratio): Likewise.
13713         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
13714         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
13715         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
13716
13717 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13718
13719         * config/s390/2084.md: Enable all insn reservations also for z9_ec
13720         cpu attribute value.
13721         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
13722         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
13723         * config/s390/s390.c (processor_flags_table): New constant array.
13724         (s390_handle_arch_option): Remove.
13725         (s390_handle_option): Remove s390_handle_arch_option invocations
13726         and OPT_mwarn_framesize_ handling.
13727         (s390_option_override): Remove s390_handle_arch_option invocation.
13728         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
13729         warnings.
13730         * config/s390/s390.md (cpu attribute): Add z9_ec value.
13731         * config/s390/s390.opt (s390_tune, s390_arch)
13732         (march=): Replace s390_arch_option enum and values with
13733         processor_type.  Set variable name to s390_arch.  Set
13734         initialization value.
13735         (mtune=): Replace s390_arch_option with processor_type.  Set
13736         variable name to s390_tune.  Set initialization value.
13737
13738 2011-03-23  Julian Brown  <julian@codesourcery.com>
13739
13740         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
13741         accesses which are not naturally aligned.
13742
13743 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
13744
13745         PR target/47553
13746         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
13747
13748 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
13749
13750         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
13751         parameter from "int" to "enum insn_code".
13752         (expand_operand_type): New enum.
13753         (expand_operand): New structure.
13754         (create_expand_operand): New function.
13755         (create_fixed_operand, create_output_operand): Likewise
13756         (create_input_operand, create_convert_operand_to): Likewise.
13757         (create_convert_operand_from, create_address_operand): Likewise.
13758         (create_integer_operand): Likewise.
13759         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
13760         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
13761         (expand_insn, expand_jump_insn): Likewise.
13762         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
13763         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
13764         (expand_movstr, expand_builtin___clear_cache): Likewise.
13765         (expand_builtin_lock_release): Likewise.
13766         * explow.c (allocate_dynamic_stack_space): Likewise.
13767         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
13768         and use the default handling in that case.
13769         * expmed.c (check_predicate_volatile_ok): Delete.
13770         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
13771         (emit_cstore): Likewise.
13772         * expr.c (emit_block_move_via_movmem): Likewise.
13773         (set_storage_via_setmem, expand_assignment): Likewise.
13774         (emit_storent_insn, try_casesi): Likewise.
13775         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
13776         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
13777         (expand_vec_shift_expr, expand_binop_directly): Likewise.
13778         (expand_twoval_unop, expand_twoval_binop): Likewise.
13779         (expand_unop_direct, emit_indirect_jump): Likewise.
13780         (emit_conditional_move, vector_compare_rtx): Likewise.
13781         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
13782         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
13783         (expand_sync_lock_test_and_set): Likewise.
13784         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
13785         (emit_unop_insn): Likewise.
13786         (expand_copysign_absneg): Change icode to an insn_code.
13787         (create_convert_operand_from_type): New function.
13788         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
13789         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
13790         (expand_insn, expand_jump_insn): Likewise.
13791         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
13792         than const_int_operand for operand 2.
13793
13794 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13795
13796         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
13797         if possible.
13798
13799 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
13800
13801         * emit-rtl.c (emit_pattern_before_noloc): New function.
13802         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
13803         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
13804         (emit_pattern_after_noloc): New function.
13805         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
13806         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
13807
13808 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
13809
13810         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
13811         (__ffsDI2): Likewise.
13812
13813 2011-03-22  Richard Henderson  <rth@redhat.com>
13814
13815         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
13816         of !TARGET_ABI_OPEN_VMS.
13817         (alpha_trampoline_init, alpha_start_function): Likewise.
13818         (alpha_expand_epilogue, alpha_file_start): Likewise.
13819         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
13820         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
13821         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
13822         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
13823         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
13824
13825 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13826
13827         * config/s390/s390-opts.h: New.
13828         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
13829         s390_arch_flags, s390_warn_framesize, s390_stack_size,
13830         s390_stack_guard): Remove.
13831         (s390_handle_arch_option): Return void.  Take enum
13832         s390_arch_option value instead of string and searching array.
13833         (s390_handle_option): Don't assert that global structures are in
13834         use.  Access variables via opts pointer.  Use error_at.  Don't use
13835         sscanf for -mstack-guard= or -mstack-size=.  Update call to
13836         s390_handle_arch_option.
13837         (s390_option_override): Update call to s390_handle_arch_option.
13838         (s390_emit_prologue): Use %d format for s390_stack_size in
13839         diagnostic.  Use %wd for HOST_WIDE_INT.
13840         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
13841         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
13842         * config/s390/s390.opt (config/s390/s390-opts.h): New
13843         HeaderInclude entry.
13844         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
13845         s390_arch_flags, s390_warn_framesize): New Variable entries.
13846         (s390_arch_option): New Enum and EnumValue entries.
13847         (march=): Use Enum instead of Var.
13848         (mstack-guard=, mstack-size=): Use UInteger and Var.
13849         (mtune=): Use Enum.
13850
13851 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13852
13853         * config/score/score.c (score_handle_option): Don't assert that
13854         global structures are in use.  Access target_flags via opts
13855         pointer.  Use value of -march= option to determine target_flags
13856         settings.
13857         * config/score/score.opt (march=): Use Enum.
13858         (score_arch): New Enum and EnumValue entries.
13859
13860 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13861
13862         * config/mep/mep.c (option_mtiny_specified): Remove.
13863         (mep_option_override): Move register handling for -mivc2 from
13864         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
13865         instead of option_mtiny_specified.
13866         (mep_handle_option): Access target_flags via opts pointer.  Don't
13867         assert that global structures are in use.  Defer part of -mivc2
13868         handling and move it to mep_option_override.
13869         * config/mep/mep.opt (IVC2): New Mask entry.
13870         (mivc2): Use Var and Defer instead of Mask.
13871
13872 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13873
13874         * config/v850/v850-opts.h: New.
13875         * config/v850/v850.c (small_memory): Replace with
13876         small_memory_physical_max array.  Make that array static const.
13877         (v850_handle_memory_option): Take integer value of argument.  Take
13878         gcc_options pointer, option text and location.  Return void.
13879         Update for changes to small memory structures.
13880         (v850_handle_option): Access target_flags via opts pointer.  Don't
13881         assert that global structures are in use.  Update calls to
13882         v850_handle_memory_option.
13883         (v850_encode_data_area): Update references to small memory settings.
13884         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
13885         (enum small_memory_type): Move to v850-opts.h.
13886         * config/v850/v850.opt (config/v850/v850-opts.h): New
13887         HeaderInclude entry.
13888         (small_memory_max): New Variable entry.
13889         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
13890         (mtda, mzda): Likewise.
13891
13892 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13893
13894         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
13895         pointer.  Don't assert that global structures are in use.
13896
13897 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13898
13899         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
13900         via opts pointer.  Don't assert that global structures are in use.
13901
13902 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13903
13904         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
13905         (munix=93): Use Var.
13906         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
13907         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
13908         * config/pa/pa-opts.h: New.
13909         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
13910         (pa_handle_option): Don't assert that global structures are in
13911         use.  Access target_flags via opts pointer.  Don't handle
13912         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
13913         OPT_munix_98 here.
13914         (pa_option_override): Handle deferred OPT_mfixed_range_.
13915
13916 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13917
13918         * config/mn10300/mn10300-opts.h: New.
13919         * config/mn10300/mn10300.c (mn10300_processor,
13920         mn10300_tune_string): Remove.
13921         (mn10300_handle_option): Don't assert that global structures are
13922         in use.  Access mn10300_processor via opts pointer.  Don't handle
13923         OPT_mtune_ here.
13924         * config/mn10300/mn10300.h (enum processor_type): Move to
13925         mn10300-opts.h.
13926         (mn10300_processor): Remove.
13927         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
13928         HeaderInclude entry.
13929         (mn10300_processor): New Variable entry.
13930         (mtune=): Use Var.
13931
13932 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13933
13934         * config/microblaze/microblaze.c: Don't include opts.h.
13935         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
13936         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
13937         (mno-clearbss): Use Var and Warn.
13938
13939 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13940
13941         * config/m32r/m32r-opts.h: New.
13942         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
13943         (m32r_handle_option): Don't assert that global structures are in
13944         use.  Access target_flags and m32r_cache_flush_func via opts
13945         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
13946         OPT_mno_flush_trap here.
13947         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
13948         include of m32r-opts.h.
13949         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
13950         HeaderInclude entry.
13951         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
13952         (mmodel=): Use Enum and Var.
13953         (m32r_model): New Enum and EnumValue entries.
13954         (mno-flush-trap): Use Var.
13955         (msdata=): Use Enum and Var.
13956         (m32r_sdata): New Enum and EnumValue entries.
13957
13958 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13959
13960         * config/m32c/m32c.c: Don't include opts.h.
13961         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
13962         m32c_handle_option): Remove.
13963         (m32c_option_override): Check global_options_set.x_target_memregs
13964         instead of target_memregs_set.
13965         * config/m32c/m32c.h (target_memregs): Remove.
13966         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
13967         variable.
13968
13969 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13970
13971         * config/iq2000/iq2000-opts.h: New.
13972         * config/iq2000/iq2000.c: Don't include opts.h.
13973         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
13974         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
13975         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
13976         HeaderInclude entry.
13977         (iq2000_tune): New Variable entry.
13978         (march=): Add comment.  Use Enum.
13979         (iq2000_arch): New Enum and EnumValue entries.
13980         (mcpu=): Use Enum and Var.
13981         (iq2000_tune): New Enum and EnumValue entries.
13982
13983 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13984
13985         * config/ia64/ia64-opts.h: New.
13986         * config/ia64/ia64.c (ia64_tune): Remove.
13987         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
13988         here.  Use error_at.
13989         (ia64_option_override): Handle deferred OPT_mfixed_range_.
13990         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
13991         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
13992         HeaderInclude entry.
13993         (ia64_tune): New Variable entry.
13994         (mfixed-range=): Use Defer and Var.
13995         (mtune=): Use Enum and Var.
13996         (ia64_tune): New Enum and EnumValue entries.
13997
13998 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
13999
14000         * config/frv/frv-opts.h: New.
14001         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
14002         frv-opts.h.
14003         (frv_cpu_type): Remove.
14004         * config/frv/frv.c: Don't include opts.h.
14005         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
14006         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
14007         (frv_cpu_type): New Variable entry.
14008         (frv_cpu): New Enum and EnumValue entries.
14009
14010 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
14011
14012         * config/cris/cris.c (cris_handle_option): Access target_flags via
14013         opts pointer.  Don't assert that global structures are in use.
14014         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
14015         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
14016
14017 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
14018
14019         * config/bfin/bfin-opts.h: New.
14020         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
14021         bfin_si_revision, bfin_workarounds): Remove.
14022         (bfin_cpus): Make static const.
14023         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
14024         not bfin_lib_id_given.
14025         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
14026         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
14027         pointer. Use error_at.  Don't assert that global structures are in use.
14028         * config/bfin/bfin.h: Include bfin-opts.h.
14029         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
14030         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
14031         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
14032         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
14033         entries.
14034
14035 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
14036
14037         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
14038         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
14039         or -msoft-float here.
14040         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
14041         -msoft-float and -mhard-float.
14042         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
14043         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
14044         msoft-float.
14045         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
14046         -msoft-float.
14047         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
14048         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
14049         not mhard-float.
14050         (LIBGCC_SPEC): Don't handle -msoft-float.
14051         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
14052         -mhard-float.
14053         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
14054         msoft-float.
14055         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
14056         -mfloat-abi=*, not -msoft-float and -mhard-float.
14057         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
14058         -msoft-float.
14059         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
14060         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
14061         mhard-float and msoft-float.
14062         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
14063         mfloat-abi=soft in comments, not mhard-float and msoft-float.
14064         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
14065         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
14066         mhard-float.
14067         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
14068         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
14069         msoft-float.
14070         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
14071         not mhard-float.
14072         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
14073         not msoft-float.
14074
14075 2011-03-22  Richard Henderson  <rth@redhat.com>
14076
14077         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
14078         TARGET_ABI_WINDOWS_NT.
14079         (alpha_output_function_end_prologue): Likewise.
14080         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
14081         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
14082         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
14083         (trap, *movsi_nt_vms): Likewise.
14084         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
14085         (*tablejump_osf_nt_internal): Remove.
14086         * config/alpha/predicates.md (input_operand): Only test Pmode.
14087
14088 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
14089
14090         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
14091         via opts pointer.  Use error_at.  Don't assert that global
14092         structures are in use.
14093
14094 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
14095
14096         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
14097         (ix86_handle_option): Access ix86_isa_flags and
14098         ix86_isa_flags_explicit via opts pointer.  Don't assert that
14099         global structures are in use.
14100         (ix86_function_specific_save, ix86_function_specific_restore):
14101         Update ix86_isa_flags_explicit field name.
14102         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
14103         (ix86_isa_flags_explicit): Rename TargetSave entry to
14104         x_ix86_isa_flags_explicit.
14105
14106 2011-03-22  Richard Henderson  <rth@redhat.com>
14107
14108         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
14109         (alpha_option_override, direct_return): Likewise.
14110         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
14111         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
14112         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
14113         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
14114         (alpha_expand_epilogue, alpha_end_function): Likewise.
14115         (alpha_init_libfuncs): Likewise.
14116         (struct machine_function): Remove unicosmk members.
14117         (print_operand) ['t']: Remove.
14118         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
14119         unicosmk_output_module_name, unicosmk_output_common,
14120         current_section_align, unicosmk_output_text_section_asm_op,
14121         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
14122         unicosmk_section_type_flags, unicosmk_unique_section,
14123         unicosmk_asm_named_section, unicosmk_insert_attributes,
14124         unicosmk_output_align, unicosmk_defer_case_vector,
14125         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
14126         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
14127         unicosmk_output_ssib, unicosmk_add_call_info_word,
14128         unicosmk_extern_head, unicosmk_output_default_externs,
14129         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
14130         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
14131         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
14132         * config/alpha/alpha-protos.h: Update.
14133         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
14134         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
14135         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
14136         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
14137         (*mulsi_se, mulvsi3): Likewise.
14138         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
14139         (*divmodsi_internal, call, call_value, realign): Likewise.
14140         (moddi3, umoddi3): Likewise; remove duplicate expander.
14141         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
14142         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
14143         (*movdi_nofix): Remove r/U alternative.
14144         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
14145         * config/alpha/constraints.md ("U"): Remove.
14146         * config/alpha/predicates.md (call_operand"): Don't test
14147         TARGET_ABI_UNICOSMK.
14148
14149 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
14150
14151         * target.def (handle_option): Take gcc_options and
14152         cl_decoded_option pointers and location_t.
14153         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
14154         * doc/tm.texi: Regenerate.
14155         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
14156         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
14157         * lto-opts.c (lto_reissue_options): Generate option structure for
14158         targetm.handle_option call.
14159         * opts.c (target_handle_option): Update call to
14160         targetm.handle_option.  Remove assertions about values now passed
14161         down to hook.
14162         * targhooks.c (default_target_handle_option): New.
14163         * targhooks.h (default_target_handle_option): Declare.
14164         * config/alpha/alpha.c: Include opts.h.
14165         (alpha_handle_option): Update to new hook interface.
14166         * config/arm/arm.c: Include opts.h.
14167         (arm_handle_option): Update to new hook interface.
14168         * config/arm/t-arm (arm.o): Update dependencies.
14169         * config/bfin/bfin.c: Include opts.h.
14170         (bfin_handle_option): Update to new hook interface.
14171         * config/cris/cris.c: Include opts.h.
14172         (cris_handle_option): Update to new hook interface.
14173         * config/frv/frv.c: Include opts.h.
14174         (frv_handle_option): Update to new hook interface.
14175         * config/i386/i386.c: Include opts.h.
14176         (ix86_handle_option): Update to new hook interface.
14177         (ix86_valid_target_attribute_inner_p): Generate option structure
14178         for call to ix86_handle_option.
14179         * config/i386/t-i386 (i386.o): Update dependencies.
14180         * config/ia64/ia64.c: Include opts.h.
14181         (ia64_handle_option): Update to new hook interface.
14182         * config/ia64/t-ia64 (ia64.o): Update dependencies.
14183         * config/iq2000/iq2000.c: Include opts.h.
14184         (iq2000_handle_option): Update to new hook interface.
14185         * config/m32c/m32c.c: Include opts.h.
14186         (m32c_handle_option): Update to new hook interface.
14187         * config/m32r/m32r.c: Include opts.h.
14188         (m32r_handle_option): Update to new hook interface.
14189         * config/m68k/m68k.c: Include opts.h.
14190         (m68k_handle_option): Update to new hook interface.
14191         * config/mep/mep.c: Include opts.h.
14192         (mep_handle_option): Update to new hook interface.
14193         * config/microblaze/microblaze.c: Include opts.h.
14194         (microblaze_handle_option): Update to new hook interface.
14195         * config/mips/mips.c: Include opts.h.
14196         (mips_handle_option): Update to new hook interface.
14197         * config/mn10300/mn10300.c: Include opts.h.
14198         (mn10300_handle_option): Update to new hook interface.
14199         * config/pa/pa.c: Include opts.h.
14200         (pa_handle_option): Update to new hook interface.
14201         * config/pdp11/pdp11.c: Include opts.h.
14202         (pdp11_handle_option): Update to new hook interface.
14203         * config/rs6000/rs6000.c: Include opts.h.
14204         (rs6000_handle_option): Update to new hook interface.
14205         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
14206         * config/rx/rx.c: Include opts.h.
14207         (rx_handle_option): Update to new hook interface.
14208         * config/s390/s390.c: Include opts.h.
14209         (s390_handle_option): Update to new hook interface.
14210         * config/score/score.c: Include opts.h.
14211         (score_handle_option): Update to new hook interface.
14212         * config/sh/sh.c: Include opts.h.
14213         (sh_handle_option): Update to new hook interface.
14214         * config/sparc/sparc.c: Include opts.h.
14215         (sparc_handle_option): Update to new hook interface.
14216         * config/v850/v850.c: Include opts.h.
14217         (v850_handle_option): Update to new hook interface.
14218
14219 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
14220
14221         * gcc.c (driver_unknown_option_callback): Only permit and save
14222         unknown -Wno- options.
14223         (driver_wrong_lang_callback): Save options directly instead of via
14224         driver_unknown_option_callback.
14225
14226 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
14227
14228         * combine.c (simplify_set): Try harder to find the best CC mode when
14229         simplifying a nested COMPARE on the RHS.
14230
14231 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
14232
14233         * config/alpha/gnu.h: Remove.
14234         * config/arc: Remove directory.
14235         * config/arm/netbsd.h: Remove.
14236         * config/arm/t-pe: Remove.
14237         * config/crx: Remove directory.
14238         * config/i386/netbsd.h: Remove.
14239         * config/m68hc11: Remove directory.
14240         * config/m68k/uclinux-oldabi.h: Remove.
14241         * config/mcore/mcore-pe.h: Remove.
14242         * config/mcore/t-mcore-pe: Remove.
14243         * config/netbsd-aout.h: Remove.
14244         * config/rs6000/gnu.h: Remove.
14245         * config/sh/sh-symbian.h: Remove.
14246         * config/sh/symbian-base.c: Remove.
14247         * config/sh/symbian-c.c: Remove.
14248         * config/sh/symbian-cxx.c: Remove.
14249         * config/sh/symbian-post.h: Remove.
14250         * config/sh/symbian-pre.h: Remove.
14251         * config/sh/t-symbian: Remove.
14252         * config/svr3.h: Remove.
14253         * config/vax/netbsd.h: Remove.
14254         * config.build: Don't handle i[34567]86-*-pe.
14255         * config.gcc: Remove handling of deprecations for most deprecated
14256         targets.
14257         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
14258         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
14259         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
14260         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
14261         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
14262         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
14263         Remove cases.
14264         * config.host: Don't handle i[34567]86-*-pe.
14265         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
14266         (ASM_SPEC32): Don't handle -mcall-gnu.
14267         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
14268         -mcall-gnu.
14269         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
14270         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
14271         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
14272         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
14273         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
14274         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
14275         conditional on SYMBIAN.
14276         * configure.ac: Don't handle powerpc*-*-gnu*.
14277         * configure: Regenerate.
14278         * doc/extend.texi (interrupt attribute): Don't mention CRX.
14279         * doc/install-old.texi (m6811, m6812): Don't mention.
14280         * doc/install.texi (arc-*-elf*): Don't document multilib option.
14281         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
14282         (m68k-uclinuxoldabi): Don't mention.
14283         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
14284         Remove.
14285         (-mcall-gnu): Remove.
14286         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
14287         families): Remove constraint documentation.
14288
14289 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
14290
14291         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
14292         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
14293         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
14294
14295 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
14296
14297         PR target/48226
14298         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
14299         vector when peeking at the next token for vector, don't expand the
14300         keywords.
14301
14302 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
14303
14304         * config/avr/avr-protos.h (expand_epilogue): Change prototype
14305         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
14306         * config/avr/avr.c (init_cumulative_args)
14307         (avr_function_arg_advance): Use it.
14308         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
14309         sibcall epilogues.
14310         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
14311         (avr_function_ok_for_sibcall): ...this new function.
14312         (avr_lookup_function_attribute1): New static Function.
14313         (avr_naked_function_p, interrupt_function_p)
14314         (signal_function_p, avr_OS_task_function_p)
14315         (avr_OS_main_function_p): Use it.
14316         * config/avr/avr.md ("sibcall", "sibcall_value")
14317         ("sibcall_epilogue"): New expander.
14318         ("*call_insn", "*call_value_insn"): New insn.
14319         ("call_insn", "call_value_insn"): Remove
14320         ("call", "call_value", "epilogue"): Change expander to handle
14321         sibling calls.
14322
14323 2011-03-21  Nick Clifton  <nickc@redhat.com>
14324
14325         * doc/invoke.texi (Overall Options): Move closing brace to end of
14326         options list.
14327         (Optimization Options): Add missing @gol.
14328         (Directory Options): Likewise.
14329         (i386 and x86-64 Options): Likewise.
14330         (RS6000 and PowerPC Options): Likewise.
14331         (i386 and x86-64 Windows Options): Likewise.
14332         (V850 Options): Add text missing from descriptions.
14333
14334 2011-03-22  Richard Henderson  <rth@redhat.com>
14335
14336         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
14337         (avr_incoming_return_addr_rtx): New.
14338         (emit_push_byte): New.
14339         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
14340         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
14341         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
14342         (emit_pop_byte): New.
14343         (expand_epilogue): Use it.  Pop frame pointer by bytes.
14344         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
14345         (INCOMING_RETURN_ADDR_RTX): New.
14346         (INCOMING_FRAME_SP_OFFSET): New.
14347         (ARG_POINTER_CFA_OFFSET): New.
14348         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
14349         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
14350         (pophi): Remove.
14351
14352         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
14353
14354 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
14355
14356         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
14357         (FUNCTION_ARG_ADVANCE): Likewise.
14358         * tm.texi.in: Change references to them to hook references.
14359         * tm.texi: Regenerate.
14360         * targhooks.c (default_function_arg): Eliminate check for target
14361         macro.
14362         (default_function_incoming_arg): Likewise.
14363         (default_function_arg_advance): Likewise.
14364         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
14365         (function_arg_advance): Likewise.
14366         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
14367
14368 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
14369
14370         * tree.c (build_call_1): New function.
14371         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
14372
14373 2011-03-22  Richard Guenther  <rguenther@suse.de>
14374
14375         PR tree-optimization/48228
14376         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
14377         for single-arg PHIs.
14378
14379 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
14380
14381         PR rtl-optimization/48143
14382         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
14383         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
14384         sse2_cvtps2pd): Likewise.
14385
14386 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14387
14388         * recog.c (canonicalize_change_group): Use validate_unshare_change.
14389
14390 2011-03-22  Richard Guenther  <rguenther@suse.de>
14391
14392         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
14393         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
14394         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
14395         and REALIGN_LOAD_EXPR.
14396         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
14397         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
14398         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
14399         DOT_PROD_EXPR case ...
14400         (expand_expr_real_2): ... here.
14401         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
14402         and REALIGN_LOAD_EXPR.
14403         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
14404         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
14405         (vect_create_epilog_for_reduction): Likewise.
14406         (vectorizable_reduction): Likewise.
14407         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
14408         * tree-vect-stmts.c (vectorizable_load): Likewise.
14409
14410 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
14411
14412         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
14413
14414 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14415
14416         * config/s390/s390.c (s390_delegitimize_address): Fix offset
14417         handling for PLTOFF/GOTOFF.
14418
14419 2011-03-22  Nick Clifton  <nickc@redhat.com>
14420
14421         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
14422         trailing backslash from the end of the macro definition.
14423
14424 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14425
14426         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
14427         and PLT unspecs.
14428
14429 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
14430
14431         * expr.h (prepare_operand): Move to...
14432         * optabs.h (prepare_operand): ...here and change the insn code
14433         parameter from "int" to "enum insn_code".
14434         (insn_operand_matches): Declare.
14435         * expr.c (init_expr_target): Use insn_operand_matches.
14436         (compress_float_constant): Likewise.
14437         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
14438         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
14439         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
14440         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
14441         Likewise.
14442         (gen_cond_trap): Likewise.
14443         (prepare_operand): Likewise.  Change icode to an insn_code.
14444         (insn_operand_matches): New function.
14445         * reload.c (find_reloads_address_1): Use insn_operand_matches.
14446         * reload1.c (gen_reload): Likewise.
14447         * targhooks.c (default_secondary_reload): Likewise.
14448
14449 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
14450
14451         * config/alpha/alpha.md (unspec): New define_c_enum.
14452         (unspecv): Ditto.
14453
14454 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
14455
14456         PR debug/48214
14457         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
14458         between a call and its CALL_ARG_LOCATION note.
14459
14460 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
14461
14462         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
14463
14464 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
14465
14466         PR c/42544
14467         PR c/48197
14468         * c-common.c (shorten_compare): If primopN is first sign-extended
14469         to opN and then zero-extended to result type, set primopN to opN.
14470
14471 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
14472
14473         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
14474         for barrier handlers.
14475
14476 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
14477
14478         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
14479         UNSPEC constants to be in the unspec enumeration, and redefine
14480         all UNSPECV constants to be in the unspecv enumeration, so that
14481         dumps print which unspec/unspec_volatile this is.
14482         * config/rs6000/vector.md (UNSPEC_*): Ditto.
14483         * config/rs6000/paired.md (UNSPEC_*): Ditto.
14484         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
14485         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
14486         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
14487
14488         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
14489         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
14490         UNSPECV_LWSYNC, since these are used as unspec_volatile.
14491         * config/rs6000/sync.md (isync, lwsync): Ditto.
14492
14493 2011-03-21  Richard Guenther  <rguenther@suse.de>
14494
14495         * params.def (lto-min-partition): Fix typo.
14496
14497 2011-03-21  Richard Guenther  <rguenther@suse.de>
14498
14499         PR c/47939
14500         * c-decl.c (grokdeclarator): Drop to the main variant only
14501         for array types.  Drop flag_gen_aux_info check.
14502
14503 2011-03-21  Richard Guenther  <rguenther@suse.de>
14504
14505         PR translation/47911
14506         * params.def (lto-partitions): Fix typo.
14507         (lto-min-partition): Fix wording.
14508
14509 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
14510
14511         * config/rs6000/t-freebsd: Remove duplication from file.
14512
14513 2011-03-21  Richard Guenther  <rguenther@suse.de>
14514
14515         PR middle-end/47661
14516         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
14517
14518 2011-03-21  Richard Guenther  <rguenther@suse.de>
14519
14520         PR lto/48210
14521         * params.def (lto-partitions): Require at least 1 partition.
14522
14523 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14524
14525         * gthr-solaris.h: Remove.
14526         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
14527         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
14528         (LIB_SPEC): Likewise.
14529         * config/sol2.opt (threads): Remove.
14530         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
14531         (sparc*-*-solaris2*): Likewise.
14532         * configure.ac (enable_threads): Enable solaris support.
14533         * configure: Regenerate.
14534         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
14535         * doc/install.texi (Configuration, --enable-threads=lib): Remove
14536         solaris.
14537
14538 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14539
14540         * config.gcc: Obsolete *-*-solaris2.8*.
14541         * doc/install.texi (Specific, *-*-solaris2*): Document it.
14542
14543 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14544
14545         PR bootstrap/48135
14546         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
14547         reference.  Solaris 8 perl works.
14548
14549 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14550
14551         PR bootstrap/48135
14552         * doc/install.texi (Prerequisites): Move jar etc. up.
14553         Explain support library version requirements.
14554
14555 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14556
14557         PR bootstrap/48135
14558         * doc/install.texi (Prerequisites): Move Perl to build
14559         requirements.  Always necessary on Solaris 2 with Sun ld.
14560
14561 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14562
14563         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
14564         binutils 2.21.
14565         (Specific, i?86-*-solaris2.[89]): Likewise.
14566         (Specific, i?86-*-solaris2.10): Likewise.
14567         (Specific, mips-sgi-irix6): Likewise.
14568         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
14569         Update for binutils 2.21.
14570
14571 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14572
14573         * configure.ac (gcc_cv_lto_plugin): Fix typo.
14574         Allow -fuse-linker-plugin for non-default plugin linker.
14575         * configure: Regenerate.
14576
14577 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
14578
14579         PR bootstrap/48167
14580         * gengtype.c (files_rules): Added rule for cp/parser.h.
14581
14582 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
14583
14584         PR target/48213
14585         * config/s390/s390.c (s390_delegitimize_address): Don't call
14586         lowpart_subreg if orig_x has BLKmode.
14587
14588 2011-03-21  Kai Tietz  <ktietz@redhat.com>
14589
14590         PR target/12171
14591         * doc/plugins.texi: Adjust documentation for plugin register_callback.
14592         * tree.h (attribute_spec): Add new member affects_type_identity.
14593         * attribs.c (empty_attribute_table): Adjust attribute_spec
14594         initializers.
14595         * config/alpha/alpha.c: Likewise.
14596         * config/arc/arc.c: Likewise.
14597         * config/arm/arm.c: Likewise.
14598         * config/avr/avr.c: Likewise.
14599         * config/bfin/bfin.c: Likewise.
14600         * config/crx/crx.c: Likewise.
14601         * config/darwin.h: Likewise.
14602         * config/h8300/h8300.c: Likewise.
14603         * config/i386/cygming.h: Likewise.
14604         * config/i386/i386.c: Likewise.
14605         * config/ia64/ia64.c: Likewise.
14606         * config/m32c/m32c.c: Likewise.
14607         * config/m32r/m32r.c: Likewise.
14608         * config/m68hc11/m68hc11.c: Likewise.
14609         * config/m68k/m68k.c: Likewise.
14610         * config/mcore/mcore.c: Likewise.
14611         * config/mep/mep.c: Likewise.
14612         * config/microblaze/microblaze.c: Likewise.
14613         * config/mips/mips.c: Likewise.
14614         * config/rs6000/rs6000.c: Likewise.
14615         * config/rx/rx.c: Likewise.
14616         * config/sh/sh.c: Likewise.
14617         * config/sol2.h: Likewise.
14618         * config/sparc/sparc.c: Likewise.
14619         * config/spu/spu.c: Likewise.
14620         * config/stormy16/stormy16.c: Likewise.
14621         * config/v850/v850.c: Likewise.
14622
14623 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
14624
14625         * simplify-rtx.c (simplify_binary_operation_1): Handle
14626         (xor (and A B) C) case when B and C are both constants.
14627
14628 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
14629
14630         * tree-dfa.c (add_referenced_var): Fix typo in comment.
14631
14632 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
14633
14634         PR bootstrap/48168
14635         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
14636
14637 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
14638
14639         PR rtl-optimization/48156
14640         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
14641         assume df and df_lr are not NULL.
14642
14643 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14644
14645         PR debug/48023
14646         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
14647         between a call and its CALL_ARG_LOCATION note.
14648
14649 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
14650
14651         PR debug/48178
14652         * config/sh/sh.c (find_barrier): Don't emit a constant pool
14653         between a call and its corresponding CALL_ARG_LOCATION note.
14654
14655 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
14656
14657         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
14658         instead of loop. Use HARD_REGISTER_NUM_P predicate.
14659         * haifa-sched.c (setup_ref_regs): Ditto.
14660         * caller-save.c (add_used_regs_1): Ditto.
14661         * dse.c (look_for_hardregs): Ditto.
14662         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
14663         * sched-rgn.c (check_live_1): Ditto.
14664
14665 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
14666
14667         * c-decl.c (diagnose_mismatched_decls): Give an error for
14668         redefining a typedef with variably modified type.
14669
14670 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
14671
14672         * c-decl.c (grokfield): Don't allow typedefs for structures or
14673         unions with no tag by default.
14674         * doc/extend.texi (Unnamed Fields): Update.
14675
14676 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
14677
14678         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
14679         Rewrite using indirect functions.
14680         (lwp_slwpcb): Ditto.
14681         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
14682         (avx_vinsertf128<mode>): Ditto.
14683
14684 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14685
14686         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
14687         unspecs.
14688
14689 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14690
14691         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
14692         splitting between a call and its corresponding CALL_ARG_LOCATION note.
14693
14694 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14695
14696         PR rtl-optimization/48170
14697         * gcse.c (hoist_code): Remove bogus asserts.
14698
14699 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
14700
14701         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
14702         computation for prologue/epilogue.
14703
14704 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14705
14706         * Makefile.in (check-consistency): Remove.
14707
14708 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
14709
14710         PR debug/48176
14711         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
14712         arange_table_in_use is 0, but either text_section_used or
14713         cold_text_section_used is true.  Don't call it if
14714         !info_section_emitted.
14715
14716 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
14717
14718         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
14719         FUNCTION_VALUE_REGNO_P): Remove.
14720         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
14721         Remove.
14722         * config/avr/avr.c (avr_ret_register): Make static inline.
14723         (avr_function_value_regno_p): New function.
14724         (avr_libcall_value): Make static. Add 'func' argument.
14725         (avr_function_value): Make static. Rename 'func' argument to
14726         'fn_decl_or_type', forward it to avr_libcall_value. Call
14727         avr_ret_register function instead of RET_REGISTER macro.
14728         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14729
14730 2011-03-18  Jason Merrill  <jason@redhat.com>
14731
14732         PR c++/23372
14733         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
14734
14735 2011-03-18  Richard Guenther  <rguenther@suse.de>
14736
14737         * doc/install.texi (--enable-gold): Remove.
14738         (--with-plugin-ld): Document.
14739         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
14740
14741 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
14742
14743         PR middle-end/47790
14744         * expr.c (optimize_bitfield_assignment_op): Revamp to work
14745         again after expansion changes.
14746
14747 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
14748
14749         * combine.c (try_combine): Do simplification only call of
14750         subst() on i2 even when i1 is present. Update comments.
14751
14752 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
14753
14754         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
14755         and UNSPEC_PCREL_SYMOFF.
14756
14757 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14758
14759         * config/s390/s390.md: Use define_c_enum for the unspec constant
14760         definitions.
14761
14762 2011-03-18  Richard Henderson  <rth@redhat.com>
14763             Jakub Jelinek  <jakub@redhat.com>
14764
14765         PR bootstrap/48161
14766         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
14767         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
14768
14769 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14770
14771         PR middle-end/47725
14772         * combine.c (cant_combine_insn_p): Don't check zero/sign
14773         extended hard registers.
14774
14775 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14776
14777         PR middle-end/47725
14778         * combine.c (cant_combine_insn_p): Check zero/sign extended
14779         hard registers.
14780
14781 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
14782
14783         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14784         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
14785         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
14786         Change return type to bool.
14787         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14788
14789 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
14790
14791         PR debug/48163
14792         * var-tracking.c (prepare_call_arguments): If CALL target
14793         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
14794         pc instead of looking it up using cselib_lookup and use
14795         Pmode for it if x has VOIDmode.
14796         * dwarf2out.c (gen_subprogram_die): If also both first and
14797         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
14798
14799         PR debug/48163
14800         * function.c (assign_parms): For data.passed_pointer parms
14801         use MEM of data.entry_parm instead of data.entry_parm itself
14802         as DECL_INCOMING_RTL.
14803         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
14804         also when passed and declared mode is the same, DECL_RTL
14805         is a MEM with pseudo as address and DECL_INCOMING_RTL is
14806         a MEM too.
14807
14808 2011-03-16  Jeff Law  <law@redhat.com>
14809
14810         PR rtl-optimization/37273
14811         * ira-costs.c (scan_one_insn): Detect constants living in memory and
14812         handle them like argument loads from stack slots.  Do not double
14813         count memory for memory constants and argument loads from stack slots.
14814
14815 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14816
14817         PR debug/48160
14818         * var-tracking.c (prepare_call_arguments): Check SUBREG.
14819
14820 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14821
14822         PR target/48171
14823         * config/i386/i386.opt: Add Save to -mavx and -mfma.
14824
14825 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
14826
14827         PR bootstrap/48153
14828         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
14829         if dwarf_strict.
14830         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
14831         Clear call_arg_locations and call_arg_loc_last always.
14832
14833         PR middle-end/48152
14834         * var-tracking.c (prepare_call_arguments): If argument needs to be
14835         passed by reference, adjust argtype and mode.
14836
14837 2011-03-17  Richard Guenther  <rguenther@suse.de>
14838
14839         PR middle-end/48134
14840         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
14841         a value make sure to fold the statement.
14842
14843 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
14844
14845         PR target/43872
14846         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
14847         return condition with !cfun->calls_alloca.
14848
14849 2011-03-17  Richard Guenther  <rguenther@suse.de>
14850
14851         PR bootstrap/48148
14852         * lto-cgraph.c (input_overwrite_node): Clear the abstract
14853         origin for decls in other ltrans units.
14854         (input_varpool_node): Likewise.
14855
14856 2011-03-17  Richard Guenther  <rguenther@suse.de>
14857
14858         PR middle-end/48165
14859         * tree-object-size.c (compute_object_offset): Properly return
14860         the offset operand of MEM_REFs as sizetype.
14861
14862 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
14863
14864         PR rtl-optimization/48141
14865         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
14866         * dse.c: Include params.h.
14867         (active_local_stores_len): New variable.
14868         (add_wild_read, dse_step1): Clear it when setting active_local_stores
14869         to NULL.
14870         (record_store, check_mem_read_rtx): Decrease it when removing
14871         from the chain.
14872         (scan_insn): Likewise.  Increase it when adding to chain, if it
14873         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
14874         set active_local_stores to NULL before the addition.
14875         * Makefile.in (dse.o): Depend on $(PARAMS_H).
14876
14877         PR rtl-optimization/48141
14878         * dse.c (record_store): If no positions are needed in an insn
14879         that cannot be deleted, at least unchain it from active_local_stores.
14880
14881 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
14882
14883         PR debug/47510
14884         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
14885         (lookup_type_die_strip_naming_typedef): ... here.
14886         (get_context_die): Use it.
14887         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
14888         the anonymous struct named by the naming typedef.
14889
14890 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
14891
14892         PR target/48154
14893         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
14894         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
14895
14896 2011-03-16  Jeff Law  <law@redhat.com>
14897
14898         * tree-vrp.c (identify_jump_threads): Slightly simplify type
14899         check for operands of conditional.  Allow type to be a pointer.
14900
14901 2011-03-16  Richard Guenther  <rguenther@suse.de>
14902
14903         PR tree-optimization/48149
14904         * fold-const.c (fold_binary_loc): Fold
14905         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
14906
14907 2011-03-16  Richard Guenther  <rguenther@suse.de>
14908
14909         PR tree-optimization/26134
14910         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
14911         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
14912         (non_rewritable_mem_ref_base): Handle complex type component
14913         accesses, constrain offsets for vector and complex extracts
14914         more properly.
14915
14916 2011-03-16  Richard Guenther  <rguenther@suse.de>
14917
14918         PR tree-optimization/48146
14919         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
14920         operands avoiding the need for renaming.
14921
14922 2011-03-16  Richard Guenther  <rguenther@suse.de>
14923
14924         * gimple-fold.c (maybe_fold_reference): Open-code relevant
14925         constant folding.  Move MEM_REF canonicalization first.
14926         Rely on fold_const_aggregate_ref for initializer folding.
14927         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
14928
14929 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
14930
14931         PR middle-end/48136
14932         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
14933         arg0/arg1 or their arguments are always fold converted to matching
14934         types.
14935
14936         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
14937         to nargs.
14938
14939 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14940
14941         PR lto/46944
14942         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
14943         Handle in-tree gold.
14944         (ld_vers): Extract binutils version for gold.
14945         (gcc_cv_ld_hidden): Handle gold here.
14946         (gcc_cv_lto_plugin): Determine level of linker plugin support.
14947         * configure: Regenerate.
14948         * config.in: Regenerate.
14949         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
14950         -fuse-linker-plugin otherwise.
14951         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
14952         (LINK_COMMAND_SPEC): Use it.
14953         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
14954
14955 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
14956
14957         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
14958         * calls.c: Remove debug.h include.
14959         (emit_call_1): Don't call virtual_call_token debug hook.
14960         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
14961         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
14962         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
14963         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
14964         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
14965         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
14966         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
14967         dwarf2out_virtual_call): Remove.
14968         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
14969         copy_call_info and virtual_call hooks.
14970         (dwarf2out_init): Don't initialize vcall_insn_table,
14971         debug_dcall_section and debug_vcall_section.
14972         (prune_unused_types): Don't mark nodes from dcall_table.
14973         (dwarf2out_finish): Don't output dcall or vcall tables.
14974         * final.c (final_scan_insn): Don't call direct_call or
14975         virtual_call debug hooks.
14976         * debug.h (struct gcc_debug_hooks): Remove direct_call,
14977         virtual_call_token, copy_call_info and virtual_call hooks.
14978         (debug_nothing_uid): Remove prototype.
14979         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
14980         copy_call_info and virtual_call hooks.
14981         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
14982         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
14983         * debug.c (do_nothing_debug_hooks): Likewise.
14984         (debug_nothing_uid): Remove.
14985         * doc/invoke.texi (-fenable-icf-debug): Remove.
14986         * common.opt (-fenable-icf-debug): Likewise.
14987
14988         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
14989         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
14990         call's MEM.  Handle functions returning aggregate through a hidden
14991         first pointer.  For virtual calls add clobbered pc to call arguments
14992         chain.
14993         * dwarf2out.c (gen_subprogram_die): Emit
14994         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
14995         can't be emitted.
14996
14997         PR debug/45882
14998         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
14999         * rtl.h (ENTRY_VALUE_EXP): Define.
15000         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
15001         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
15002         * print-rtl.c (print_rtx): Likewise.
15003         * gengtype.c (adjust_field_rtx_def): Likewise.
15004         * var-tracking.c (vt_add_function_parameter): Adjust
15005         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
15006         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
15007         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
15008         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
15009         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
15010
15011         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
15012         Call var_location debug hook even on CALL_INSNs.
15013         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
15014         * rtl.def (ENTRY_VALUE): New.
15015         * dwarf2out.c: Include cfglayout.h.
15016         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
15017         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
15018         (struct call_arg_loc_node): New type.
15019         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
15020         tail_call_site_count): New variables.
15021         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
15022         DW_TAG_GNU_call_site_parameter.
15023         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
15024         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
15025         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
15026         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
15027         and DW_AT_GNU_all_source_call_sites.
15028         (mem_loc_descriptor): Handle ENTRY_VALUE.
15029         (add_src_coords_attributes): Don't add enything if
15030         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
15031         (dwarf2out_abstract_function): Save and clear call_arg_location,
15032         call_site_count and tail_call_site_count around dwarf2out_decl call.
15033         (gen_call_site_die): New function.
15034         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
15035         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
15036         (dwarf2out_function_decl): Clear call_arg_locations,
15037         call_arg_loc_last, set call_site_count and tail_call_site_count
15038         to -1 and free block_map.
15039         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
15040         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
15041         followed by any real instructions.
15042         (dwarf2out_begin_function): Set call_site_count and
15043         tail_call_site_count to 0.
15044         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
15045         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
15046         attempt to force a DIE for it and worst case remove the attribute.
15047         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
15048         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
15049         the decl itself.
15050         * var-tracking.c: Include tm_p.h.
15051         (vt_stack_adjustments): For calls call note_register_arguments.
15052         (argument_reg_set): New variable.
15053         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
15054         ensure the VALUE is resolved.
15055         (call_arguments): New variable.
15056         (prepare_call_arguments): New function.
15057         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
15058         (struct expand_loc_callback_data): Add ignore_cur_loc field.
15059         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
15060         always use the best expression.
15061         (vt_expand_loc): Add ignore_cur_loc argument.
15062         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
15063         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
15064         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
15065         note for all calls.
15066         (vt_add_function_parameter): Use cselib_lookup_from_insn.
15067         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
15068         argument.  Don't call cselib_preserve_only_values and
15069         cselib_reset_table.
15070         (note_register_arguments): New function.
15071         (vt_initialize): Compute argument_reg_set.  Call
15072         vt_add_function_parameters before processing basic blocks instead of
15073         afterwards.  For calls call prepare_call_arguments before calling
15074         cselib_process_insn.
15075         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
15076         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
15077         (var-tracking.o): Depend on $(TM_P_H).
15078         * cfglayout.h (insn_scope): New prototype.
15079         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
15080         * cfglayout.c (insn_scope): No longer static.
15081         * insn-notes.def (CALL_ARG_LOCATION): New.
15082         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
15083         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
15084         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
15085         nothing for DECL_EXTERNAL BLOCK_VARS.
15086
15087 2011-03-16  Alan Modra  <amodra@gmail.com>
15088
15089         PR target/45844
15090         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
15091         create invalid offset address for vsx splat insn.
15092         * config/rs6000/predicates.md (splat_input_operand): New.
15093         * config/rs6000/vsx.md (vsx_splat_*): Use it.
15094
15095 2011-03-15  Xinliang David Li  <davidxl@google.com>
15096
15097         PR c/47837
15098         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
15099         (normalize_preds): New function.
15100         (is_use_properly_guarded): Normalize def predicates.
15101
15102 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15103
15104         PR target/46788
15105         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
15106         in the output template.
15107
15108 2011-03-15  Richard Guenther  <rguenther@suse.de>
15109
15110         PR middle-end/47650
15111         * tree-pretty-print.c (dump_function_declaration): Properly
15112         dump unprototyped and varargs function types.
15113
15114 2011-03-15  Richard Guenther  <rguenther@suse.de>
15115
15116         PR tree-optimization/13954
15117         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
15118         and friends.
15119
15120 2011-03-15  Richard Guenther  <rguenther@suse.de>
15121
15122         PR tree-optimization/48037
15123         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
15124         selects into BIT_FIELD_REFs.
15125         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
15126         vector select.
15127
15128 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
15129
15130         PR tree-optimization/48129
15131         * builtins.c (fold_builtin_snprintf): Convert to type of
15132         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
15133         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
15134
15135 2011-03-15  Richard Guenther  <rguenther@suse.de>
15136
15137         PR tree-optimization/41490
15138         * tree-ssa-dce.c (propagate_necessity): Handle returns without
15139         value but with VUSE.
15140         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
15141         return statements.
15142         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
15143         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
15144         * tree-tailcall.c (find_tail_calls): Ignore returns.
15145
15146 2011-03-15  Richard Guenther  <rguenther@suse.de>
15147
15148         PR middle-end/48031
15149         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
15150         or variable-indexed array accesses when in gimple form.
15151
15152 2011-03-15  Richard Guenther  <rguenther@suse.de>
15153
15154         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
15155
15156 2011-03-15  Alan Modra  <amodra@gmail.com>
15157
15158         PR target/48032
15159         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
15160         presume symbol_refs without a symbol_ref_decl are suitably
15161         aligned, nor other trees we may see here.  Handle anchor symbols.
15162         (legitimate_constant_pool_address_p): Comment.  Add mode param.
15163         Check cmodel=medium addresses.  Adjust all calls.
15164         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
15165         creating cmodel=medium optimized access to locals.
15166         * config/rs6000/constraints.md (R): Pass QImode to
15167         legitimate_constant_pool_address_p.
15168         * config/rs6000/predicates.md (input_operand): Pass mode to
15169         legitimate_constant_pool_address_p.
15170         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
15171         Update prototype.
15172
15173 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15174
15175         PR target/48053
15176         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
15177         64-bit constants being loaded into registers other than GPRs such
15178         as loading 0 into a VSX register.
15179
15180 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15181
15182         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
15183
15184 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
15185
15186         PR middle-end/47917
15187         * builtins.c (fold_builtin_snprintf): New function.
15188         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
15189         (fold_builtin_4): Likewise.
15190
15191         PR middle-end/38878
15192         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
15193         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
15194         and C - X == X also strip nops from +/-/p+ operand.
15195         When optimizing -X == C, fold C to arg0's type.
15196
15197         PR debug/47946
15198         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
15199         emit it as add_AT_int instead of add_AT_unsigned.
15200
15201 2011-03-14  Tom Tromey  <tromey@redhat.com>
15202
15203         * unwind-dw2.c: Include sys/sdt.h if it exists.
15204         (_Unwind_DebugHook): Use STAP_PROBE2.
15205         * config.in, configure: Rebuild.
15206         * configure.ac: Check for sys/sdt.h.
15207
15208 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
15209
15210         * config/i386/i386.md (ROUND_FLOOR): New constant.
15211         (ROUND_CEIL): Ditto.
15212         (ROUND_TRUNC): Ditto.
15213         (ROUND_MXCSR): Ditto.
15214         (ROUND_NO_EXC): Ditto.
15215         (rint<mode>2): Use new defines instead of numerical constants.
15216         (floor<mode>2): Ditto.
15217         (ceil<mode>2): Ditto.
15218         (btrunc<mode>2): Ditto.
15219         * config/i386/i386-builtin-types.def: Define ROUND function type
15220         aliases.
15221         * config/i386/i386.c (enum ix86_builtins): Add
15222         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
15223         (struct builtin_description): Add
15224         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
15225         (ix86_expand_sse_round): New static function.
15226         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
15227         function types.
15228         (ix86_builtin_vectorized_function): Handle
15229         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
15230
15231 2011-03-14  Tom Tromey  <tromey@redhat.com>
15232
15233         * c-parser.c (c_parser_asm_string_literal): Clear
15234         warn_overlength_strings.
15235
15236 2011-03-14  Tom Tromey  <tromey@redhat.com>
15237
15238         * c-parser.c (disable_extension_diagnostics): Save
15239         warn_overlength_strings.
15240         (restore_extension_diagnostics): Restore warn_overlength_strings.
15241
15242 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
15243
15244         * BASE-VER: Change to 4.7.0.
15245
15246 2011-03-14  Richard Guenther  <rguenther@suse.de>
15247
15248         PR middle-end/48098
15249         * tree.c (build_vector_from_val): Adjust assert to requirements
15250         and reality.
15251
15252 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
15253
15254         PR bootstrap/48102
15255         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
15256
15257 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
15258
15259         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
15260         terms of target_flags_explicit. Adjust copyright year.
15261
15262         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
15263         * config/rs6000/t-freebsd: New file. Add override for
15264         LIB2FUNCS_EXTRA.
15265
15266 2011-03-13  Chris Demetriou  <cgd@google.com>
15267
15268         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
15269         (-fno-diagnostics-show-option): this, to reflect current default.
15270         (-Werror=): Update text about -fno-diagnostics-show-option.
15271
15272 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
15273
15274         PR target/48053
15275         * config/rs6000/predicates.md (easy_vector_constant_add_self,
15276         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
15277         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
15278         mode is not V2DImode or V2DFmode.
15279         (vspltis_constant): Do not handle V2DImode and V2DFmode.
15280         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
15281         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
15282         registers to 0.
15283         (movdi_internal64): Likewise.
15284
15285 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
15286
15287         PR tree-optimization/47127
15288         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
15289         parameter.
15290         (set_cloog_options): Same.
15291         (scop_to_clast): Same.
15292         (print_clast_stmt): Do not call cloog_state_malloc and
15293         cloog_state_free.
15294         (print_generated_program): Same.
15295         (gloog): Same.
15296         * graphite-clast-to-gimple.h (cloog_state): Declared.
15297         (scop_to_clast): Adjust declaration.
15298         * graphite.c (cloog_state): Defined here.
15299         (graphite_initialize): Call cloog_state_malloc.
15300         (graphite_finalize): Call cloog_state_free.
15301
15302 2011-03-11  Jason Merrill  <jason@redhat.com>
15303
15304         * attribs.c (lookup_attribute_spec): Take const_tree.
15305         * tree.h: Adjust.
15306
15307 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
15308
15309         * config/sparc/sparc.c (sparc_option_override): Use
15310         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
15311
15312 2011-03-11  Richard Guenther  <rguenther@suse.de>
15313
15314         PR tree-optimization/48067
15315         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
15316         multiplication result will be only used once on the target
15317         stmt.
15318
15319 2011-03-11  Richard Guenther  <rguenther@suse.de>
15320
15321         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
15322
15323 2011-03-11  Richard Guenther  <rguenther@suse.de>
15324
15325         PR lto/48073
15326         * tree.c (find_decls_types_r): Do not walk types only reachable
15327         from IDENTIFIER_NODEs.
15328
15329 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
15330
15331         PR middle-end/48044
15332         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
15333         all vnode->force_output nodes as needed.
15334
15335 2011-03-11  Jason Merrill  <jason@redhat.com>
15336
15337         PR c++/48069
15338         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
15339         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
15340
15341 2011-03-11  Martin Jambor  <mjambor@suse.cz>
15342
15343         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
15344         cgraph_node.
15345
15346 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
15347
15348         PR tree-optimization/48063
15349         * ipa-inline.c (cgraph_decide_inlining): Don't try to
15350         inline functions called once if !tree_can_inline_p (node->callers).
15351
15352 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
15353
15354         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
15355         extra_objs.
15356         * config/score/score3.c: Delete.
15357         * config/score/score3.h: Delete.
15358         * config/score/mul-div.S: Delete.
15359         * config/score/sfp-machine.h: Add new file.
15360         * config/score/constraints.md: Add new file.
15361         * config/score/t-score-softfp: Add new file.
15362         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
15363         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
15364         (score7_extra_constraint): Delete.
15365         (score7_option_override): Remove unused code.
15366         * config/score/score.c: Remove score3 and score5 define and code.
15367         * config/score/score.h: Remove score3 and score5 define and code.
15368         * config/score/score.md: Remove score3 template and unusual insn.
15369         * config/score/score.opt: Remove score3 and score5 options.
15370
15371 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15372
15373         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
15374         when _HPUX_SOURCE is defined.
15375         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
15376
15377 2011-03-10  Jason Merrill  <jason@redhat.com>
15378
15379         PR c++/48029
15380         * stor-layout.c (layout_type): Don't set structural equality
15381         on arrays of incomplete type.
15382         * tree.c (type_hash_eq): Handle comparing them properly.
15383
15384 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
15385
15386         PR debug/48043
15387         * config/s390/s390.c (s390_delegitimize_address): Make sure the
15388         result mode matches original rtl mode.
15389
15390 2011-03-10  Nick Clifton  <nickc@redhat.com>
15391
15392         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
15393         (andsi3, andsi3_flags): Fix timings for three operand alternative.
15394
15395 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
15396
15397         PR rtl-optimization/47866
15398         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
15399         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
15400         if target wasn't scalar.
15401         * function.c (assign_stack_temp_for_type): Assert that neither
15402         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
15403         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
15404         macro.
15405         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
15406
15407 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15408
15409         * config/s390/s390-protos.h (s390_label_align): New prototype.
15410         * config/s390/s390.c (s390_label_align): New function.
15411         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
15412
15413 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
15414
15415         PR target/47755
15416         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
15417         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
15418         (output_vec_const_move): Ditto.
15419
15420 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
15421
15422         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
15423         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
15424         * config/mips/mips.c (mips_preferred_reload_class): Make static.
15425         Change 'rclass' argument and result type to reg_class_t.
15426         (TARGET_PREFERRED_RELOAD_CLASS): Define.
15427
15428 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
15429
15430         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15431         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
15432         (TARGET_MEMORY_MOVE_COST): Define.
15433         (avr_register_move_cost, avr_memory_move_cost): New Functions.
15434
15435 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
15436
15437         PR debug/47881
15438         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
15439         removed anything.
15440
15441         PR tree-optimization/48022
15442         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
15443         for EQ/NE_EXPR.
15444
15445 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
15446
15447         PR debug/47991
15448         * var-tracking.c (find_use_val): Return NULL for
15449         cui->sets && cui->store_p BLKmode MEMs.
15450
15451 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
15452
15453         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
15454         Remove.
15455         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
15456         xstormy16_print_operand_address): Remove.
15457         * config/stormy16/stormy16.c (xstormy16_print_operand,
15458         xstormy16_print_operand_address): Make static.
15459         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15460
15461 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
15462
15463         PR target/47862
15464         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
15465         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
15466         before definition.
15467
15468 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
15469
15470         PR bootstrap/48000
15471         * cfgloopmanip.c (fix_bb_placements): Return immediately
15472         if FROM is BASE_LOOP's header.
15473
15474 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
15475
15476         * gimplify.c (gimplify_function_tree): Fix building calls
15477         to __builtin_return_address.
15478
15479 2011-03-07  Alan Modra  <amodra@gmail.com>
15480
15481         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
15482         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
15483         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
15484         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
15485         return_mode args.
15486         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
15487         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
15488         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
15489         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
15490         * config/rs6000/rs6000.c
15491         (rs6000_elf_end_indicate_exec_stack): Rename to..
15492         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
15493         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
15494         (rs6000_file_start): ..here.
15495         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
15496         file scope variables.
15497         (call_ABI_of_interest): New function.
15498         (init_cumulative_args): Set above vars when function return value
15499         is a float, vector, or small struct.
15500         (rs6000_function_arg_advance_1): Likewise for function args.
15501         (rs6000_va_start): Set rs6000_passes_float if variable arg function
15502         references float args.
15503
15504 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
15505
15506         * doc/cfg.texi: Remove "See" before @ref.
15507         * doc/invoke.texi: Likewise.
15508
15509 2011-03-05  Jason Merrill  <jason@redhat.com>
15510
15511         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
15512
15513 2011-03-05  Anthony Green  <green@moxielogic.com>
15514
15515         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
15516
15517 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
15518
15519         PR rtl-optimization/47899
15520         * cfgloopmanip.c (fix_bb_placements): Fix first argument
15521         to flow_loop_nested_p when moving the loop upward.
15522
15523 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
15524
15525         PR target/47719
15526         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
15527
15528 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
15529
15530         PR tree-optimization/47967
15531         * ipa-cp.c (build_const_val): Return NULL instead of creating
15532         VIEW_CONVERT_EXPR for mismatching sizes.
15533         (ipcp_create_replace_map): Return NULL if build_const_val failed.
15534         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
15535         give up on versioning.
15536
15537 2011-03-05  Alan Modra  <amodra@gmail.com>
15538
15539         PR target/47986
15540         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
15541         full cmodel medium/large lo_sum + high addresses.
15542
15543 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15544
15545         * config/s390/s390.c (s390_decompose_address): Reject non-literal
15546         pool references in UNSPEC_LTREL_OFFSET.
15547
15548 2011-03-04  Jan Hubicka  <jh@suse.cz>
15549
15550         PR lto/47497
15551         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
15552         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
15553         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
15554         Add node pointers.
15555         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
15556         cgraph_add_thunk): Add node pointers.
15557         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
15558         associated to right node.
15559         (input_node): Update use of cgraph_same_body_alias
15560         and cgraph_add_thunk.
15561
15562 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
15563
15564         * config/i386/i386.opt (mprefer-avx128): New flag.
15565         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
15566         modes when the flag -mprefer-avx128 is on.
15567
15568 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
15569
15570         * dwarf2out.c (compare_loc_operands): Fix address handling.
15571
15572 2011-03-04  Alan Modra  <amodra@gmail.com>
15573
15574         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
15575
15576 2011-03-04  Richard Guenther  <rguenther@suse.de>
15577
15578         PR middle-end/47968
15579         * expmed.c (extract_bit_field_1): Prefer vector modes that
15580         vec_extract patterns can handle.
15581
15582 2011-03-04  Richard Guenther  <rguenther@suse.de>
15583
15584         PR middle-end/47975
15585         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
15586
15587 2011-03-04  Richard Henderson  <rth@redhat.com>
15588
15589         * explow.c (emit_stack_save): Remove 'after' parameter.
15590         (emit_stack_restore): Likewise.
15591         * expr.h: Update to match.
15592         * builtins.c, calls.c, stmt.c: Likewise.
15593         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
15594         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
15595         * function.c (expand_function_end): Insert the emit_stack_save
15596         sequence before parm_birth_insn instead of after.
15597
15598 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
15599
15600         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
15601         (ssse3_pmaddubsw128): Ditto.
15602         (ssse3_pmaddubsw): Ditto.
15603
15604 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
15605
15606         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
15607
15608 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
15609
15610         PR c/47963
15611         * gimplify.c (omp_add_variable): Only call omp_notice_variable
15612         on TYPE_SIZE_UNIT if it is a DECL.
15613
15614         PR debug/47283
15615         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
15616         first operand is not is_gimple_mem_ref_addr, try to fold it.
15617         If the operand still isn't is_gimple_mem_ref_addr, clear
15618         MEM_EXPR on op0.
15619
15620 2011-03-03  Richard Guenther  <rguenther@suse.de>
15621
15622         PR middle-end/47283
15623         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
15624         match comment.
15625         (refs_may_alias_p_1): For release branches return true if
15626         we are confused by our input.
15627
15628 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15629
15630         * config/s390/s390.c (s390_function_value): Rename to ...
15631         (s390_function_and_libcall_value): ... this.
15632         (s390_function_value): New function.
15633         (s390_libcall_value): New function.
15634         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
15635         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
15636         target macro definitions.
15637         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
15638
15639 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
15640
15641         * config/i386/freebsd64.h (CC1_SPEC): Define.
15642         * config/i386/linux64.h (CC1_SPEC): Define.
15643         * config/i386/x86-64.h (CC1_SPEC): Don't define.
15644
15645 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
15646
15647         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15648         Remove.
15649         * config/stormy16/stormy16.c: Include reload.h.
15650         (xstormy16_memory_move_cost): New function.
15651         (TARGET_MEMORY_MOVE_COST): Define.
15652
15653 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
15654
15655         PR rtl-optimization/47925
15656         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
15657         with side effects.  Remove the more-specific check for volatile asms.
15658
15659 2011-03-02  Alan Modra  <amodra@gmail.com>
15660
15661         PR target/47935
15662         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
15663         toc relative addresses for valid offsets.
15664
15665 2011-03-01  Richard Guenther  <rguenther@suse.de>
15666
15667         PR tree-optimization/47890
15668         * tree-vect-loop.c (get_initial_def_for_induction): Set
15669         related stmt properly.
15670
15671 2011-03-01  Richard Guenther  <rguenther@suse.de>
15672
15673         PR lto/47924
15674         * lto-streamer.c (lto_record_common_node): Also register
15675         the canonical type.
15676
15677 2011-03-01  Richard Guenther  <rguenther@suse.de>
15678
15679         PR lto/46911
15680         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
15681         Do not stream DECL_ABSTRACT_ORIGIN.
15682         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
15683         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
15684         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15685         Do not stream DECL_ABSTRACT_ORIGIN.
15686         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
15687         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
15688
15689 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
15690
15691         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
15692         FUNCTION_VALUE_REGNO_P): Remove.
15693         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
15694         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
15695         Add 'outgoing' argument.
15696         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
15697         function.
15698         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15699         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15700
15701 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
15702
15703         PR debug/28047
15704         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
15705         (lookup_filename): Likewise.
15706         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
15707
15708 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
15709             Jakub Jelinek  <jakub@redhat.com>
15710
15711         PR middle-end/47893
15712         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
15713         (assign_stack_local_1): Change last argument type to int.
15714         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
15715         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
15716         don't record padding space into frame_space_list nor use those areas.
15717         (assign_stack_local): Adjust caller.
15718         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
15719         of assign_stack_local, pass 0 as last argument.
15720         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
15721         callers.
15722
15723 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
15724
15725         PR debug/47283
15726         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
15727         Use target address_mode and pointer_mode hooks instead of hardcoded
15728         Pmode and ptr_mode.  Handle some simple cases of extending if
15729         POINTERS_EXTEND_UNSIGNED < 0.
15730         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
15731         Call convert_debug_memory_address.
15732         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
15733         convert_debug_memory_address.
15734
15735         PR middle-end/46790
15736         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
15737         * configure: Regenerated.
15738         * config.in: Regenerated.
15739         * varasm.c (default_function_section): Return NULL
15740         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
15741
15742 2011-02-28  Martin Jambor  <mjambor@suse.cz>
15743
15744         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
15745         the description to match the printed values.
15746
15747 2011-02-28  Richard Guenther  <rguenther@suse.de>
15748
15749         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
15750         of the copied scope tree.
15751
15752 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15753
15754         * doc/extend.texi (Function Attributes): Avoid deeply (and
15755         wrongly) nested tables.
15756
15757 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
15758
15759         PR middle-end/47903
15760         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
15761         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
15762         r isn't op0 nor op1.
15763
15764 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
15765
15766         * config/avr/avr.md: Remove magic comment for emacs.
15767
15768 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
15769
15770         PR target/45261
15771         * config/avr/avr.c (avr_option_override): Use error on bad options.
15772         (avr_help): New function.
15773         (TARGET_HELP): Define.
15774
15775 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
15776
15777         PR target/42240
15778         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
15779         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
15780
15781 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
15782
15783         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
15784         (ARM Options): Ditto.
15785         (i386 and x86-64 Options): Ditto.
15786         (RX Options): Ditto.
15787         (SPARC Options): Ditto.
15788
15789 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
15790
15791         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
15792         FreeBSD 6 and later.  Generally use cpu generic.
15793
15794 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
15795
15796         * doc/cpp.texi: Update copyright years.
15797
15798 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
15799
15800         PR target/46898
15801         * config/lm32/lm32.md (ashrsi3): Added needed variable.
15802
15803 2011-02-25  Jon Beniston  <jon@beniston.com>
15804
15805         PR target/46898
15806         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
15807         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
15808         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
15809         (lm32_block_move_inline): Add type cast to remove warning.
15810         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
15811         (gen_int_relational): Move declarations to start of function.
15812
15813 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
15814
15815         PR tree-optimization/45470
15816         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
15817         can throw internally only.
15818         * tree-vect-stmts.c (vectorizable_call): Likewise.
15819
15820 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
15821
15822         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
15823         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
15824         * config/stormy16/stormy16-protos.h
15825         (xstormy16_preferred_reload_class): Remove.
15826         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
15827         static. Change 'rclass' argument and return type to reg_class_t.
15828         (TARGET_PREFERRED_RELOAD_CLASS,
15829         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
15830
15831 2011-02-24  Richard Guenther  <rguenther@suse.de>
15832
15833         * lto-streamer-in.c (input_bb): Do not find referenced vars
15834         in debug statements.
15835
15836 2011-02-23  Jason Merrill  <jason@redhat.com>
15837
15838         * common.opt (fabi-version): Document v5 and v6.
15839
15840 2011-02-23  Richard Guenther  <rguenther@suse.de>
15841
15842         PR tree-optimization/47849
15843         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
15844
15845 2011-02-23  Jie Zhang  <jie@codesourcery.com>
15846
15847         * opts-common.c (decode_cmdline_option): Print empty string
15848         argument as "" in decoded->orig_option_with_args_text.
15849         * gcc.c (execute): Print empty string argument as ""
15850         in the verbose output.
15851         (do_spec_1): Keep empty string argument.
15852
15853 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
15854
15855         * config.gcc: Declare score-* and crx-* obsolete.
15856
15857 2011-02-23  Jie Zhang  <jie@codesourcery.com>
15858
15859         PR rtl-optimization/47763
15860         * web.c (web_main): Ignore naked clobber when replacing register.
15861
15862 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
15863
15864         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
15865         Remove.
15866
15867 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
15868
15869         PR doc/47848
15870         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
15871
15872 2011-02-22  Mike Stump  <mikestump@comcast.net>
15873
15874         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
15875         assembler.
15876         * configure: Regenerate.
15877
15878 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
15879
15880         PR rtl-optimization/46002
15881         * ira-color.c (update_copy_costs): Change class intersection
15882         test to reg_class_contents[] test of 'hard_regno'.
15883
15884 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
15885
15886         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
15887         than Driver option.
15888         * config/hpux11.opt (mt): Likewise.
15889         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
15890         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
15891         * config/vax/elf.opt (mno-asm-pic): Likewise.
15892         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
15893
15894 2011-02-21  Mike Stump  <mikestump@comcast.net>
15895
15896         PR target/47822
15897         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
15898         tree so we can get save the type.
15899         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
15900         for CFString instead of trying to use past the end of the builtins.
15901         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
15902         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
15903         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
15904         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
15905         Rename to darwin_builtin_cfstring.
15906         (darwin_init_cfstring_builtins): Return the built type.
15907
15908 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
15909
15910         PR target/47840
15911         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
15912         (_mm256_insert_epi64): Use _mm_insert_epi64.
15913
15914 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
15915
15916         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15917         * config/stormy16/stormy16-protos.h
15918         (xstormy16_mode_dependent_address_p): Remove.
15919         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
15920         Make static. Change return type to bool. Change argument type to
15921         const_rtx. Remove dead code.
15922         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15923
15924 2011-02-21  Richard Guenther  <rguenther@suse.de>
15925
15926         PR lto/47820
15927         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
15928         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
15929         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
15930         TUs context.
15931         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15932         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
15933
15934 2011-02-20  Richard Guenther  <rguenther@suse.de>
15935
15936         PR lto/47822
15937         * tree.c (free_lang_data_in_decl): Clean builtins from
15938         the TU decl BLOCK_VARS.
15939
15940 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
15941
15942         PR debug/47620
15943         PR debug/47630
15944         * haifa-sched.c (fix_tick_ready): Skip tick computation
15945         for debug insns.
15946
15947 2011-02-19  Richard Guenther  <rguenther@suse.de>
15948
15949         PR lto/47647
15950         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
15951         Remove lazy BLOCK_VARS streaming.
15952         (lto_input_ts_block_tree_pointers): Likewise.
15953         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
15954
15955 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
15956
15957         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
15958
15959 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
15960
15961         * config/i386/biarch32.h, config/i386/mach.h,
15962         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
15963
15964 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
15965
15966         PR target/47800
15967         * config/i386/i386.md (peephole2 for shift and plus): Use
15968         operands[1] original mode in the first insn.
15969
15970 2011-02-18  Mike Stump  <mikestump@comcast.net>
15971
15972         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
15973
15974 2011-02-18  Jan Hubicka  <jh@suse.cz>
15975
15976         PR middle-end/47788
15977         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
15978         to zero when the function is not inlinable at all.
15979
15980 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15981
15982         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
15983         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15984         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
15985         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
15986         * config/pa/t-pa64: Likewise.
15987         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
15988
15989 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
15990
15991         PR driver/47787
15992         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
15993
15994 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15995
15996         PR target/47792
15997         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
15998
15999 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
16000
16001         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
16002         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
16003         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
16004         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
16005         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
16006         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
16007         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
16008         m32r_load_postinc_p, m32r_store_preinc_predec_p,
16009         m32r_legitimate_address_p): New functions.
16010         * config/m32r/constraints.md (constraint "S"): Don't use
16011         STORE_PREINC_PREDEC_P.
16012         (constraint "U"): Don't use LOAD_POSTINC_P.
16013
16014 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
16015
16016         PR rtl-optimization/46178
16017         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
16018         compute ira_hard_regno_cover_class[].
16019
16020 2011-02-18  Richard Guenther  <rguenther@suse.de>
16021
16022         PR lto/47798
16023         * lto-streamer.h (lto_global_var_decls): Declare.
16024         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
16025         statics for global var processing.
16026
16027 2011-02-18  Richard Guenther  <rguenther@suse.de>
16028
16029         PR tree-optimization/47737
16030         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
16031         edge dominance check.
16032
16033 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
16034
16035         PR debug/47780
16036         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
16037         avoid invalid rtx sharing.
16038
16039 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
16040
16041         * doc/cpp.texi (Obsolete Features): Add background on the
16042         origin of assertions.
16043
16044 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
16045
16046         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
16047         objc_abi == 2.
16048         * config/darwin.c (output_objc_section_asm_op): Added support for
16049         ABI v1 and v2.
16050         (is_objc_metadata): New.
16051         (darwin_objc2_section): New.
16052         (darwin_objc1_section): New.
16053         (machopic_select_section): Added support for ABI v1 and v2.
16054         (darwin_emit_objc_zeroed): New.
16055         (darwin_output_aligned_bss): Detect objc metadata and treat it
16056         appropriately.
16057         (darwin_asm_output_aligned_decl_common): Same.
16058         (darwin_asm_output_aligned_decl_local): Same.
16059         * config/darwin-sections.def: Updated for ABI v1 and v2.
16060         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
16061         compiling Objective-C code for the NeXT runtime, default to using
16062         ABI version 0 for 32-bit, and version 2 for 64-bit.
16063
16064 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
16065
16066         * common.opt (optimize_fast): New Variable.
16067         * opts.c (default_options_optimization): Use opts->x_optimize_fast
16068         instead of local variable ofast.
16069
16070 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
16071
16072         * doc/invoke.texi (fobjc-abi-version): Documented.
16073         (fobjc-nilcheck): Documented.
16074         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
16075         version.
16076
16077 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
16078
16079         PR driver/47390
16080         * common.opt (export-dynamic): New Driver option.
16081         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
16082
16083 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
16084
16085         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
16086
16087 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
16088             Jan Hubicka  <jh@suse.cz>
16089
16090         PR debug/47106
16091         PR debug/47402
16092         * cfgexpand.c (account_used_vars_for_block): Remove.
16093         (estimated_stack_frame_size): Use referenced vars.
16094         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
16095         that were referenced in the original function.  Test src_fn
16096         rather than cfun.  Drop redundant get_var_ann.
16097         (setup_one_parameter): Drop redundant get_var_ann.
16098         (declare_return_variable): Likewise.
16099         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
16100         (copy_arguments_for_versioning): Drop redundant get_var_ann.
16101         * ipa-inline.c (compute_inline_parameters): Do not compute
16102         disregard_inline_limits here.
16103         (compute_inlinable_for_current, pass_inlinable): New.
16104         (pass_inline_parameters): Require PROP_referenced_vars.
16105         * cgraphunit.c (cgraph_process_new_functions): Don't run
16106         compute_inline_parameters explicitly unless function is in SSA form.
16107         (cgraph_analyze_function): Set .disregard_inline_limits.
16108         * tree-sra.c (convert_callers): Compute inliner parameters
16109         only for functions already in SSA form.
16110
16111 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
16112
16113         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
16114         -mlittle-endian-data.
16115
16116 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
16117
16118         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
16119         -mno-fpu, not -fpu and -no-fpu.
16120         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
16121         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
16122
16123 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
16124
16125         PR target/43653
16126         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
16127         input reload with PLUS RTX.
16128
16129 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
16130
16131         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
16132         of InverseVar(MDMX).
16133
16134 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
16135
16136         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
16137         --m4-340.
16138
16139 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
16140
16141         * config/mn10300/mn10300.opt (mno-crt0): New.
16142
16143 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
16144
16145         * config/m68k/uclinux.opt (static-libc): New Driver option.
16146
16147 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
16148
16149         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
16150
16151 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
16152
16153         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
16154         %{muser-extend-enabled}.
16155
16156 2011-02-16  Richard Guenther  <rguenther@suse.de>
16157
16158         PR tree-optimization/47738
16159         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
16160         the TODO from tree_predictive_commoning.
16161
16162 2011-02-15  Jeff Law  <law@redhat.com>
16163
16164         Revert
16165         2011-01-25  Jeff Law  <law@redhat.com>
16166
16167         PR rtl-optimization/37273
16168         * ira-costs.c (scan_one_insn): Detect constants living in memory and
16169         handle them like argument loads from stack slots.  Do not double
16170         count memory for memory constants and argument loads from stack slots.
16171
16172 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
16173
16174         PR middle-end/47725
16175         * combine.c (cant_combine_insn_p): Revert the last change.
16176
16177 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
16178
16179         PR target/47755
16180         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
16181         mode for vector constants.  Remove code that checks for TImode.
16182
16183 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
16184
16185         PR debug/47106
16186         PR debug/47402
16187         * cgraph.h (compute_inline_parameters): Return void.
16188         * ipa-inline.c (compute_inline_parameters): Adjust.
16189
16190 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
16191
16192         PR debug/47106
16193         PR debug/47402
16194         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
16195         rather than decl.
16196         * cfgexpand.c (estimated_stack_frame_size): Likewise.
16197         * ipa-inline.c (compute_inline_parameters): Adjust.
16198
16199 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
16200
16201         PR debug/47106
16202         PR debug/47402
16203         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
16204         Adjust all users.  Pass FN to...
16205         * tree-flow-inline.h (first_referenced_var): ... this.  Add
16206         fn argument.
16207         * ipa-struct-reorg.c: Adjust.
16208         * tree-dfa.c: Adjust.
16209         * tree-into-ssa.c: Adjust.
16210         * tree-sra.c: Adjust.
16211         * tree-ssa-alias.c: Adjust.
16212         * tree-ssa-live.c: Adjust.
16213         * tree-ssa.c: Adjust.
16214         * tree-ssanames.c: Adjust.
16215         * tree-tailcall.c: Adjust.
16216
16217 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
16218
16219         PR debug/47106
16220         PR debug/47402
16221         * tree-flow.h (referenced_var_lookup): Add fn parameter.
16222         Adjust all callers.
16223         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
16224         * tree-flow-inline.h: Adjust.
16225         * gimple-pretty-print.c: Adjust.
16226         * tree-into-ssa.c: Adjust.
16227         * tree-ssa.c: Adjust.
16228         * cfgexpand.c: Adjust.
16229
16230 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
16231
16232         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
16233         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16234         (EXTRA_CONSTRAINT): Delete.
16235         * config/iq2000/constraints.md: New file.
16236         * config/iq2000/iq2000.md: Include it.
16237         (define_insn ""): Delete.
16238         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
16239         unsupported constraint letters from patterns.
16240         (call_value, call_value_internal1): Likewise.
16241         (call_value_multiple_internal1): Likewise.
16242
16243 2011-02-15  Nick Clifton  <nickc@redhat.com>
16244
16245         * config/mn10300/mn10300.c: Include tm-constrs.h.
16246         (struct liw_data): New data structure describing an LIW candidate
16247         instruction.
16248         (extract_bundle): Use struct liw_data.  Allow small integer
16249         operands for some instructions.
16250         (check_liw_constraints): Use struct liw_data.  Remove swapped
16251         parameter.  Add comments describing the checks.  Fix bug when
16252         assigning the source of liw1 to the source of liw2.
16253         (liw_candidate): Delete.  Code moved into extract_bundle.
16254         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
16255         before swapping.
16256         * config/mn10300/predicates.md (liw_operand): New predicate.
16257         Allows registers and small integer constants.
16258         * config/mn10300/constraints.md (O): New constraint.  Accetps
16259         integers in the range -8 to +7 inclusive.
16260         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
16261         for moving a small integer into a register.  Give this alternative
16262         LIW attributes.
16263         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
16264         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
16265         using the J,K,L and M constraints,
16266         (liw): Remove SI mode on second operands to allow for HI and QI
16267         mode values.
16268         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
16269         instruction.
16270
16271 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
16272
16273         PR middle-end/47725
16274         * combine.c (cant_combine_insn_p): Check zero/sign extended
16275         hard registers.
16276
16277 2011-02-15  Richard Guenther  <rguenther@suse.de>
16278
16279         PR tree-optimization/47743
16280         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
16281         for a non-type-compatible VN lookup bail out.
16282
16283 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
16284
16285         * config/fr30/constraints.md: New file.
16286         * config/fr30/fr30.md: Include it.
16287         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
16288         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16289         (EXTRA_CONSTRAINT): Delete.
16290
16291 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
16292
16293         * config/frv/constraints.md: New file.
16294         * config/frv/predicates.md: Include it.
16295         * config/frv/frv.c (reg_class_from_letter): Delete.
16296         (frv_option_override): Don't initialize it.
16297         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
16298         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
16299         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
16300         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
16301         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
16302         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16303         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
16304         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
16305         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
16306         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
16307         (REG_CLASS_FROM_CONSTRAINT): Delete.
16308
16309 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
16310
16311         PR middle-end/47581
16312         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
16313         if frame size is 0 in a leaf function.
16314
16315 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16316
16317         PR pch/14940
16318         * config/alpha/host-osf.c: New file.
16319         * config/alpha/x-osf: New file.
16320         * config.host (alpha*-dec-osf*): Use it.
16321
16322 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
16323
16324         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16325         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
16326         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
16327         (rx_mode_dependent_address_p): ...this. Make static. Change argument
16328         type to const_rtx.
16329         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16330
16331 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
16332
16333         * config/stormy16/constraints.md: New file.
16334         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
16335         Use satisfies_constraint_Q and satisfies_constraint_R.
16336         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
16337         Delete.
16338         (xstormy16_legitiamte_address_p): Declare.
16339         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
16340         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16341         (EXTRA_CONSTRAINT): Delete.
16342         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
16343         Un-staticize.
16344         (xstormy16_extra_constraint_p): Delete.
16345
16346 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
16347
16348         PR tree-optimization/46494
16349         * loop-unroll.c (split_edge_and_insert): Adjust comment.
16350         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
16351         (pass_rtl_loop_done): Add TODO_verify_flow.
16352         * fwprop.c (pass_rtl_fwprop): Likewise.
16353         * modulo-sched.c (pass_sms): Likewise.
16354         * tree-ssa-dom.c (pass_dominator): Likewise.
16355         * tree-ssa-loop-ch.c (pass_ch): Likewise.
16356         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
16357         (pass_tree_loop_done): Likewise.
16358         * tree-ssa-pre.c (execute_pre): Likewise.
16359         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
16360         * tree-ssa-sink.c (pass_sink_code): Likewise.
16361         * tree-vrp.c (pass_vrp): Likewise.
16362
16363 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
16364
16365         * config/v850/constraints.md: New file.
16366         * config/v850/v850.md: Include it.
16367         * config/v850/predicates.md (reg_or_0_operand): Use
16368         satisfies_constraint_G.
16369         (special_symbolref_operand): Use satisfies_constraint_K.
16370         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
16371         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
16372         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
16373         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
16374         (EXTRA_CONSTRAINT): Delete.
16375         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
16376         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
16377         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
16378
16379 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
16380
16381         PR target/47696
16382         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
16383         description.
16384
16385 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
16386
16387         * config/mcore/constraints.md: New file.
16388         * config/mcore/mcore.md: Include it.
16389         * config/mcore/mcore.c (reg_class_from_letter): Delete.
16390         * config/mcore/mcore.h (reg_class_from_letter): Delete.
16391         (REG_CLASS_FROM_LETTER): Delete.
16392         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
16393         insn_const_int_ok_for_constraint.
16394         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
16395         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
16396         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16397         (EXTRA_CONSTRAINT): Delete.
16398
16399 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16400
16401         PR ada/41929
16402         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
16403         (IS_SIGHANDLER): Define.
16404         (sparc64_is_sighandler): New function, split off from
16405         sparc64_fallback_frame_state.
16406         (sparc_is_sighandler): New function, split off from
16407         sparc_fallback_frame_state.
16408         (sparc64_fallback_frame_state): Merge with ...
16409         (sparc_fallback_frame_state): ... this into ...
16410         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
16411         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
16412         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
16413         stack instead of hardcoded offsets.
16414
16415 2011-02-14  Andriy Gapon  <avg@freebsd.org>
16416
16417         PR target/45808
16418         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
16419
16420 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16421
16422         * configure: Regenerate.
16423
16424 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
16425
16426         PR driver/45731
16427         * gcc.c (asm_options): Correct spec matching --target-help.
16428
16429 2011-02-12  Martin Jambor  <mjambor@suse.cz>
16430
16431         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
16432         to gimple call error.
16433
16434 2011-02-12  Mike Stump  <mikestump@comcast.net>
16435
16436         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
16437         comments in backslash regions.
16438
16439 2011-02-12  Mike Stump  <mikestump@comcast.net>
16440             Jakub Jelinek  <jakub@redhat.com>
16441             Iain Sandoe  <iains@gcc.gnu.org>
16442
16443         PR target/47324
16444         * dwarf2out.c (output_cfa_loc): When required, apply the
16445         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
16446         (output_loc_sequence): Likewise.
16447         (output_loc_operands_raw): Likewise.
16448         (output_loc_sequence_raw): Likewise.
16449         (output_cfa_loc): Likewise.
16450         (output_loc_list): Suppress register number adjustment when
16451         calling output_loc_sequence()
16452         (output_die): Likewise.
16453
16454 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
16455
16456         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16457         Remove macros.
16458         * config/xtensa/xtensa.c (xtensa_register_move_cost,
16459         xtensa_memory_move_cost): New functions.
16460         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
16461
16462 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
16463
16464         PR lto/47225
16465         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
16466         in the current directory.
16467         * configure: Rebuilt.
16468
16469 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
16470
16471         * config/darwin.c (darwin_override_options): Add a hunk missed
16472         from the commit of r168571.  Trim comment line lengths and
16473         correct indents of the preceding block.
16474
16475 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
16476
16477         * gcc.c (driver_handle_option): Concatenate the argument to -F with
16478         the switch.
16479
16480 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
16481
16482         * common.opt (nostartfiles): New Driver option.
16483
16484 2011-02-11  Xinliang David Li  <davidxl@google.com>
16485
16486         PR tree-optimization/47707
16487         * tree-chrec.c (convert_affine_scev): Keep type precision.
16488
16489 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
16490
16491         PR tree-optimization/47420
16492         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
16493
16494 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
16495
16496         PR rtl-optimization/47614
16497         * rtl.h (check_for_inc_dec): Declare.
16498         * dse.c (check_for_inc_dec): Externalize...
16499         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
16500         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
16501
16502 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
16503
16504         PR driver/47678
16505         * gcc.c (main): Do not compile inputs if there were errors in
16506         option handling.
16507         * opts-common.c (read_cmdline_option): Check for wrong language
16508         after other error checks.
16509
16510 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
16511
16512         * cgraph.c: Fix comment typos.
16513         * cgraph.h: Likewise.
16514         * cgraphunit.c: Likewise.
16515         * ipa-cp.c: Likewise.
16516         * ipa-inline.c: Likewise.
16517         * ipa-prop.c: Likewise.
16518         * ipa-pure-const.c: Likewise.
16519         * ipa-ref.c: Likewise.
16520         * ipa-reference.c: Likewise.
16521
16522 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
16523
16524         PR debug/47684
16525         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
16526
16527 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16528
16529         PR testsuite/47400
16530         * doc/sourcebuild.texi (Require Support): Document
16531         dg-require-ascii-locale.
16532
16533 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
16534
16535         * doc/lto.texi (Write summary): Fix missing parentheses.
16536
16537 2011-02-10  DJ Delorie  <dj@redhat.com>
16538
16539         * config/m32c/m32c.c (m32c_option_override): Disable
16540         -fcombine-stack-adjustments until flag value tracking and compare
16541         optimization can be rewritten.
16542
16543 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
16544
16545         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
16546         PROCESSOR_POWER7.
16547         (PROCESSOR_DEFAULT64): Likewise.
16548
16549 2011-02-10  Richard Henderson  <rth@redhat.com>
16550
16551         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
16552         change from 2011-02-03.
16553         * config/rx/rx.c (flags_from_code): Likewise.
16554         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
16555         is valid, n/pz otherwise.
16556         (rx_select_cc_mode): Return CCmode if Y is not zero.
16557
16558 2011-02-10  Richard Guenther  <rguenther@suse.de>
16559
16560         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
16561
16562 2011-02-10  Richard Guenther  <rguenther@suse.de>
16563
16564         PR tree-optimization/47677
16565         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
16566
16567 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
16568
16569         PR target/47665
16570         * combine.c (make_compound_operation): Only change shifts into
16571         multiplication for SCALAR_INT_MODE_P.
16572
16573 2011-02-10  Jie Zhang  <jie@codesourcery.com>
16574
16575         PR testsuite/47622
16576         Revert
16577         2011-02-05  Jie Zhang  <jie@codesourcery.com>
16578         PR debug/42631
16579         * web.c (entry_register): Don't clobber the number of the
16580         first uninitialized reference in used[].
16581
16582 2011-02-09  Richard Guenther  <rguenther@suse.de>
16583
16584         PR tree-optimization/47664
16585         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
16586         all edges again.
16587
16588 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
16589
16590         PR target/46481
16591         PR target/47032
16592         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
16593         PROCESSOR_POWER7.
16594         (PROCESSOR_DEFAULT64): Same.
16595         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
16596
16597 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16598
16599         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
16600
16601 2011-02-09  Martin Jambor  <mjambor@suse.cz>
16602
16603         PR middle-end/45505
16604         * tree-sra.c (struct access): New flags grp_scalar_read and
16605         grp_scalar_write.  Changed description of assignment read and write
16606         flags.
16607         (dump_access): Dump new flags, reorder all of them.
16608         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
16609         to detect multiple scalar reads.
16610         (analyze_access_subtree): Use the new scalar read write flags instead
16611         of the old flags.  Adjusted comments.
16612
16613 2011-02-08  DJ Delorie  <dj@redhat.com>
16614
16615         PR target/47548
16616         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
16617         patterns.
16618
16619 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16620
16621         * config/m68k/uclinux.opt: New.
16622         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
16623
16624 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16625
16626         * config/cris/elf.opt (sim): New Driver option.
16627
16628 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16629
16630         * config/xtensa/elf.opt: New.
16631         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
16632
16633 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16634
16635         * config/vax/elf.opt: New.
16636         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
16637
16638 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16639
16640         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
16641
16642 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16643
16644         * config/gnu-user.opt: New.
16645         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
16646         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
16647         *-*-uclinux*): Use gnu-user.opt.
16648
16649 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
16650
16651         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
16652         * config/i386/gnu.h (CPP_SPEC): Likewise.
16653
16654 2011-02-08  Ian Lance Taylor  <iant@google.com>
16655
16656         * common.opt (fcx-limited-range): Add SetByCombined flag.
16657         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
16658         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
16659         (fassociative-math, freciprocal-math): Likewise.
16660         (funsafe-math-optimizations): Likewise.
16661         * opth-gen.awk: Handle SetByCombined.
16662         * optc-gen.awk: Likewise.
16663         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
16664         (set_unsafe_math_optimizations_flags): Likewise.
16665         * doc/options.texi (Option properties): Document SetByCombined.
16666
16667 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
16668
16669         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
16670         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
16671         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
16672         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
16673         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
16674
16675 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
16676
16677         PR tree-optimization/46834
16678         PR tree-optimization/46994
16679         PR tree-optimization/46995
16680         * graphite-sese-to-poly.c (used_outside_reduction): New.
16681         (detect_commutative_reduction): Call used_outside_reduction.
16682         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
16683         translate_scalar_reduction_to_array only when at least one
16684         loop-phi/close-phi tuple has been detected.
16685
16686 2011-02-08  Richard Guenther  <rguenther@suse.de>
16687
16688         PR middle-end/47639
16689         * tree-vect-generic.c (expand_vector_operations_1): Update
16690         stmts here ...
16691         (expand_vector_operations): ... not here.  Cleanup EH info
16692         and the CFG if required.
16693
16694 2011-02-08  Richard Guenther  <rguenther@suse.de>
16695
16696         PR tree-optimization/47641
16697         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
16698         require type compatibility.
16699
16700 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16701
16702         * gimple-low.c (lower_function_body): Don't remove the location of
16703         the return statement here.
16704         (lower_gimple_return): Do it here instead but only if the return
16705         statement is actually used twice.
16706
16707 2011-02-08  Richard Guenther  <rguenther@suse.de>
16708
16709         PR tree-optimization/47632
16710         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
16711         unused up_to_stmt parameter, return whether cfg-cleanup is
16712         necessary, remove EH info properly.
16713         (forward_propagate_into_gimple_cond): Adjust caller.
16714         (forward_propagate_into_cond): Likewise.
16715         (forward_propagate_comparison): Likewise.
16716         (tree_ssa_forward_propagate_single_use_vars): Make
16717         forward_propagate_comparison case similar to the two others.
16718
16719 2011-02-08  Nick Clifton  <nickc@redhat.com>
16720
16721         * config/mn10300/mn10300.opt (mliw): New command line option.
16722         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
16723         (liw_bundling): New automaton.
16724         (liw): New attribute.
16725         (liw_op): New attribute.
16726         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
16727         (movsi_internal): Add LIW attributes.
16728         (andsi3): Likewise.
16729         (iorsi3): Likewise.
16730         (xorsi3): Likewise.
16731         (addsi3): Separate register and immediate alternatives.
16732         Add LIW attributes.
16733         (subsi3): Likewise.
16734         (cmpsi): Likewise.
16735         (aslsi3): Likewise.
16736         (lshrsi3): Likewise.
16737         (ashrsi3): Likewise.
16738         (liw): New pattern.
16739         * config/mn10300/mn10300.c (liw_op_names): New
16740         (mn10300_print_operand): Handle 'W' operand descriptor.
16741         (extract_bundle): New function.
16742         (check_liw_constraints): New function.
16743         (liw_candidate): New function.
16744         (mn10300_bundle_liw): New function.
16745         (mn10300_reorg): New function.
16746         (TARGET_MACHINE_DEPENDENT_REORG): Define.
16747         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
16748         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
16749         __LIW__ or __NO_LIW__.
16750         * doc/invoke.texi: Describe the -mliw command line option.
16751
16752 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16753
16754         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
16755         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
16756         pthread_mutex_unlock): Remove.
16757         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
16758         * config/pa/t-pa64: Likewise.
16759         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
16760         shared libc if not linking against libpthread.
16761         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
16762
16763 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
16764
16765         PR target/47558
16766         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
16767         on 10.6 and later to ensure that we always use the unwinder from
16768         the system.  Only add -no_compact_unwind when tarteting darwin
16769         10.6 or later.
16770
16771 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
16772
16773         PR target/46997
16774         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
16775         (vec_interleave_lowv2sf): Ditto.
16776         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
16777         (vec_extract_oddv2sf): Ditto.
16778
16779 2011-02-07  Mike Stump  <mikestump@comcast.net>
16780
16781         PR target/42333
16782         Add __ieee_divdc3 entry point.
16783         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
16784         entry point.
16785         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
16786         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
16787         * config/darwin.c (darwin_rename_builtins): Add.
16788         * config/darwin-protos.h (darwin_rename_builtins): Add.
16789
16790 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
16791
16792         PR target/47636
16793         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
16794         for the condition.
16795
16796 2011-02-07  Mike Stump  <mikestump@comcast.net>
16797
16798         * config/darwin.opt (mmacosx-version-min): Update default OS version.
16799
16800 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
16801
16802         PR target/47534
16803         * config/avr/libgcc.S (exit): Move .endfunc
16804
16805 2011-02-07  Richard Guenther  <rguenther@suse.de>
16806
16807         PR tree-optimization/47615
16808         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
16809         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
16810         (run_scc_vn): Initialize it.
16811         (visit_reference_op_load): Use it.
16812         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
16813
16814 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16815
16816         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
16817         DImode trapping arithmetic libfuncs.
16818
16819 2011-02-07  Richard Guenther  <rguenther@suse.de>
16820
16821         PR tree-optimization/47621
16822         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
16823         two duplicates ...
16824         (execute_update_addresses_taken): ... here.  Make it more
16825         conservative in what we accept.
16826
16827 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
16828
16829         * config/sparc/freebsd.h (ASM_SPEC): Define.
16830         * config/sparc/vxworks.h (ASM_SPEC): Define.
16831
16832 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
16833
16834         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
16835
16836 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
16837
16838         * doc/invoke.texi: Remove reference to compiler internals from
16839         user documentation.
16840
16841         * reg-notes.def: Remove REG_VALUE_PROFILE.
16842         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
16843
16844 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
16845
16846         PR middle-end/47610
16847         * varasm.c (default_section_type_flags): If decl is NULL,
16848         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
16849
16850 2011-02-05  Jie Zhang  <jie@codesourcery.com>
16851
16852         PR debug/42631
16853         * web.c (entry_register): Don't clobber the number of the
16854         first uninitialized reference in used[].
16855
16856 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
16857
16858         PR tree-optimization/46194
16859         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
16860         (build_classic_dist_vector_1): Do not represent classic distance
16861         vectors when the access functions are variating in different loops.
16862
16863 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
16864
16865         * config/mips/iris6.opt: New.
16866         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
16867
16868 2011-02-04  Richard Henderson  <rth@redhat.com>
16869             Steve Ellcey  <sje@cup.hp.com>
16870
16871         PR target/46997
16872         * config/ia64/predicates.md (mux1_brcst_element): New.
16873         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
16874         * config/ia64/ia64.c (ia64_unpack_assemble): New.
16875         (ia64_unpack_sign): New.
16876         (ia64_expand_unpack): Rewrite using new routines.
16877         (ia64_expand_widen_sum): Ditto.
16878         (ia64_expand_dot_prod_v8qi): Ditto.
16879         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
16880         routines, add endian check.
16881         (pmpy2_even): Rename from pmpy2_r, add endian check.
16882         (pmpy2_odd): Rename from pmpy2_l, add endian check.
16883         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
16884         (vec_widen_smult_hi_v4hi): Ditto.
16885         (vec_widen_umult_lo_v4hi): Ditto.
16886         (vec_widen_umult_hi_v4hi): Ditto.
16887         (mulv2si3): Change endian checks.
16888         (sdot_prodv4hi): Rewrite with new calls.
16889         (udot_prodv4hi): New.
16890         (vec_pack_ssat_v4hi): Add endian check.
16891         (vec_pack_usat_v4hi): Ditto.
16892         (vec_pack_ssat_v2si): Ditto.
16893         (max1_even): Rename from max1_r, add endian check.
16894         (max1_odd): Rename from max1_l, add endian check.
16895         (*mux1_rev): Format change.
16896         (*mux1_mix): Ditto.
16897         (*mux1_shuf): Ditto.
16898         (*mux1_alt): Ditto.
16899         (*mux1_brcst_v8qi): Use new predicate.
16900         (vec_extract_evenv8qi): Remove endian check.
16901         (vec_extract_oddv8qi): Ditto.
16902         (vec_interleave_lowv4hi): Format change.
16903         (vec_interleave_highv4hi): Ditto.
16904         (mix2_even): Rename from mix2_r, add endian check.
16905         (mix2_odd): Rename from mux2_l, add endian check.
16906         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
16907         (vec_extract_evenodd_helper): Format change.
16908         (vec_extract_evenv4hi): Remove endian check.
16909         (vec_extract_oddv4hi): Remove endian check.
16910         (vec_interleave_lowv2si): Format change.
16911         (vec_interleave_highv2si): Format change.
16912         (vec_initv2si): Remove endian check.
16913         (vecinit_v2si): Add endian check.
16914         (reduc_splus_v2sf): Add endian check.
16915         (reduc_smax_v2sf): Ditto.
16916         (reduc_smin_v2sf): Ditto.
16917         (vec_initv2sf): Remove endian check.
16918         (fpack): Add endian check.
16919         (fswap): Add endian check.
16920         (vec_interleave_highv2sf): Add endian check.
16921         (vec_interleave_lowv2sf): Add endian check.
16922         (fmix_lr): Add endian check.
16923         (vec_setv2sf): Format change.
16924         (*vec_extractv2sf_0_be): Use shift to extract operand.
16925         (*vec_extractv2sf_1_be): New.
16926         (vec_pack_trunc_v4hi): Add endian check.
16927         (vec_pack_trunc_v2si): Format change.
16928
16929 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
16930
16931         PR inline-asm/23200
16932         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
16933         do bb, locus and block comparison and disallow loads if it is not set.
16934         (stmt_is_replaceable_p): New function.
16935         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
16936         callers.
16937         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
16938         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
16939         SSA_NAME_DEF_STMT.
16940         * tree-flow.h (stmt_is_replaceable_p): New prototype.
16941
16942 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
16943
16944         * config/rs6000/xilinx.opt: New.
16945         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
16946
16947 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
16948
16949         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
16950
16951 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
16952
16953         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
16954         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
16955         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
16956         secondary_reload_info, xtensa_secondary_reload): Remove.
16957         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
16958         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
16959         (xtensa_preferred_reload_class): Make static. Change return and
16960         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
16961         Use CONST_DOUBLE_P predicate.
16962         (xtensa_preferred_output_reload_class): New function.
16963         (xtensa_secondary_reload): Make static.
16964
16965 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
16966
16967         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
16968         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
16969         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
16970
16971 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
16972
16973         PR middle-end/31490
16974         * output.h (SECTION_RELRO): Define.
16975         (SECTION_MACH_DEP): Adjust.
16976         (get_variable_section): New prototype.
16977         * varpool.c (varpool_finalize_named_section_flags): New function.
16978         (varpool_assemble_pending_decls): Call it.
16979         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
16980         * cgraphunit.c (cgraph_output_in_order): Call
16981         varpool_finalize_named_section_flags.
16982         * varasm.c (get_section): Allow section flags conflicts between
16983         relro and read-only sections if the section hasn't been declared yet.
16984         Set SECTION_OVERRIDE after diagnosing section type conflict.
16985         (get_variable_section): No longer static.
16986         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
16987         readonly sections that need relocations.
16988         (decl_readonly_section_1): New function.
16989         (decl_readonly_section): Use it.
16990
16991         Revert:
16992         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
16993                     Steve Ellcey  <sje@cup.hp.com>
16994
16995         PR middle-end/31490
16996         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
16997         if section attribute used.
16998
16999 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
17000
17001         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
17002         * config/darwin.c (SECTION_NO_ANCHOR): Define.
17003         (darwin_init_sections): Remove assertion.
17004
17005 2011-02-03  Nick Clifton  <nickc@redhat.com>
17006
17007         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
17008         lt and ge.
17009         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
17010         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
17011         instead of "n" and "pz".
17012         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
17013         CC_FLAG_S.
17014
17015 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
17016
17017         PR target/47312
17018         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
17019         fma, expand FMA_EXPR as fma{,f,l} call.
17020
17021         PR lto/47274
17022         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
17023         copy them into a unsigned char variable and pass address of it to
17024         lto_output_data_stream.
17025
17026         PR target/47564
17027         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
17028         around backend_init_target and lang_dependent_init_target calls.
17029         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
17030         (verify_cgraph_node): Don't call set_cfun here.  Use
17031         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
17032         Set error_found for incorrectly represented calls to thunks.
17033
17034 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
17035
17036         PR debug/43092
17037         PR rtl-optimization/43494
17038         * rtl.h (for_each_inc_dec_fn): New type.
17039         (for_each_inc_dec): Declare.
17040         * rtlanal.c (struct for_each_inc_dec_ops): New type.
17041         (for_each_inc_dec_find_inc_dec): New fn.
17042         (for_each_inc_dec_find_mem): New fn.
17043         (for_each_inc_dec): New fn.
17044         * dse.c (struct insn_size): Remove.
17045         (replace_inc_dec, replace_inc_dec_mem): Remove.
17046         (emit_inc_dec_insn_before): New fn.
17047         (check_for_inc_dec): Use it, along with for_each_inc_dec.
17048         (canon_address): Pass mem modes to cselib_lookup.
17049         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
17050         (cselib_lookup_from_insn): Likewise.
17051         (cselib_subst_to_values): Likewise.
17052         * cselib.c (find_slot_memmode): New var.
17053         (cselib_find_slot): New fn.  Use it instead of
17054         htab_find_slot_with_hash everywhere.
17055         (entry_and_rtx_equal_p): Use find_slot_memmode.
17056         (autoinc_split): New fn.
17057         (rtx_equal_for_cselib_p): Rename and implement in terms of...
17058         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
17059         Deal with autoinc.  Special-case recursion into MEMs.
17060         (cselib_hash_rtx): Likewise.
17061         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
17062         address and MEM modes.
17063         (cselib_subst_to_values): Add memmode, pass it on.
17064         Deal with autoinc.
17065         (cselib_lookup): Add memmode argument, pass it on.
17066         (cselib_lookup_from_insn): Add memmode.
17067         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
17068         (struct cselib_record_autoinc_data): New.
17069         (cselib_record_autoinc_cb): New fn.
17070         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
17071         mode to cselib_lookup.  Reset autoinced REGs here instead of...
17072         (cselib_process_insn): ... here.
17073         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
17074         to cselib_lookup.
17075         (add_uses): Likewise, also to cselib_subst_to_values.
17076         (add_stores): Likewise.
17077         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
17078         cselib_subst_to_values.
17079         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
17080         * gcse.c (do_local_cprop): Adjusted.
17081         * postreload.c (reload_cse_simplify_set): Adjusted.
17082         (reload_cse_simplify_operands): Adjusted.
17083         * sel-sched-dump (debug_mem_addr_value): Pass mode.
17084
17085 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
17086
17087         PR tree-optimization/45122
17088         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
17089         unsafe assumptions when there's more than one loop exit.
17090
17091 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
17092
17093         PR target/47272
17094         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
17095         Document using vector double with the load/store builtins, and
17096         that the load/store builtins always use Altivec instructions.
17097
17098         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
17099         to use altivec memory instructions, even on VSX.
17100         (vector_altivec_store_<mode>): Ditto.
17101
17102         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
17103         function.
17104
17105         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17106         V2DF, V2DI support to load/store overloaded builtins.
17107
17108         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
17109         altivec load/store builtins for V2DF/V2DI types.
17110
17111         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
17112         set avoid indexed addresses on power6 if -maltivec.
17113         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
17114         vector_altivec_load/vector_altivec_store builtins.
17115         (altivec_expand_st_builtin): Ditto.
17116         (altivec_expand_builtin): Add VSX memory builtins.
17117         (rs6000_init_builtins): Add V2DI types to internal types.
17118         (altivec_init_builtins): Add support for V2DF/V2DI altivec
17119         load/store builtins.
17120         (rs6000_address_for_altivec): Insure memory address is appropriate
17121         for Altivec.
17122
17123         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
17124         vec_vsx_ld and vec_vsx_st.
17125         (vsx_store_<mode>): Ditto.
17126
17127         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
17128         variables to hold long long types for VSX vector memory builtins.
17129         (RS6000_BTI_unsigned_long_long): Ditto.
17130         (long_long_integer_type_internal_node): Ditti.
17131         (long_long_unsigned_type_internal_node): Ditti.
17132
17133         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
17134         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
17135         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
17136
17137         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
17138         short cuts.
17139         (vec_vsx_st): Ditto.
17140
17141 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
17142
17143         * config/pa/pa-hpux10.opt: New.
17144         * config/hpux11.opt (pthread): New Driver option.
17145         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
17146         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
17147
17148 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
17149
17150         * config/ia64/vms.opt: New.
17151         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
17152
17153 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
17154
17155         PR target/47580
17156         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
17157         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
17158         generator functions.
17159         (vsx_floatuns<VSi><mode>2): Ditto.
17160         (vsx_fix_trunc<mode><VSi>2): Ditto.
17161         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
17162
17163 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
17164
17165         * config/i386/djgpp.opt (posix): New Driver option.
17166
17167 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
17168
17169         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
17170         Move to the unsupported targets list.
17171
17172 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
17173
17174         PR rtl-optimization/47525
17175         * df-scan.c: Update copyright years.
17176         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
17177         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
17178
17179 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17180
17181         * config/i386/sysv4.h (TARGET_VERSION): Remove.
17182         (SUBTARGET_RETURN_IN_MEMORY): Remove.
17183         (ASM_OUTPUT_ASCII): Remove.
17184         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
17185
17186 2011-02-02  Jeff Law  <law@redhat.com>
17187
17188         PR middle-end/47543
17189         * reload.c (find_reloads_address): Handle reg+d address where both
17190         components are invalid by reloading the entire address.
17191
17192 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
17193             Richard Guenther  <rguenther@suse.de>
17194
17195         PR tree-optimization/40979
17196         PR bootstrap/47044
17197         * passes.c (init_optimization_passes): After LIM call copy_prop
17198         and DCE to clean up.
17199         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
17200
17201 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
17202
17203         PR tree-optimization/47576
17204         PR tree-optimization/47555
17205         * doc/invoke.texi (scev-max-expr-complexity): Documented.
17206         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17207         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
17208         * tree-scalar-evolution.c (follow_ssa_edge): Use
17209         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
17210
17211 2011-02-02  Richard Guenther  <rguenther@suse.de>
17212
17213         PR tree-optimization/47566
17214         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
17215
17216 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
17217
17218         PR debug/47106
17219         PR debug/47402
17220         * tree-inline.c (declare_return_variable): Remove unused caller
17221         variable.
17222
17223         PR debug/47106
17224         PR debug/47402
17225         * tree-flow-inline.h (clear_is_used, is_used_p): New.
17226         * cfgexpand.c (account_used_vars_for_block): Use them.
17227         * tree-nrv.c (tree_nrv): Likewise.
17228         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
17229         (dump_scope_block): Likewise.
17230         (remove_unused_locals): Likewise.
17231
17232         PR debug/47106
17233         PR debug/47402
17234         * tree-inline.c (declare_return_variable): Add result decl to
17235         local decls only once.
17236         * gimple-low.c (record_vars_into): Mark newly-created variables
17237         as referenced.
17238
17239 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
17240
17241         PR debug/47498
17242         PR debug/47501
17243         PR debug/45136
17244         PR debug/45130
17245         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
17246         debug insns.
17247         (no_real_insns_p, schedule_block, set_priorities): Drop special
17248         treatment of boundary debug insns.
17249         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
17250         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
17251         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
17252         (BOUNDARY_DEBUG_INSN_P): Likewise.
17253         (SCHEDULE_DEBUG_INSN_P): Likewise.
17254         * sched-rgn.c (init_ready_list): Drop special treatment of
17255         boundary debug insns.
17256         * final.c (rest_of_clean_state): Clear notes' BB.
17257
17258 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17259
17260         * config/openbsd.opt (assert=): New Driver option.
17261
17262 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17263
17264         * config/i386/nto.opt: New.
17265         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
17266
17267 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17268
17269         * config/i386/netware.opt: New.
17270         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
17271
17272 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17273
17274         * config/interix.opt (posix): New Driver option.
17275
17276 2011-02-01  DJ Delorie  <dj@redhat.com>
17277
17278         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
17279
17280         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
17281         class for A0/A1.
17282
17283 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
17284
17285         PR tree-optimization/47561
17286         * toplev.c (process_options): Print the Graphite flags.  Add
17287         flag_loop_flatten to the list of options requiring Graphite.
17288
17289 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17290
17291         * config/i386/cygming.opt (posix): New Driver option.
17292
17293 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17294
17295         * config/arm/vxworks.opt: New.
17296         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
17297
17298 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
17299
17300         * config/alpha/elf.opt: New.
17301         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
17302         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
17303
17304 2011-02-01  Richard Guenther  <rguenther@suse.de>
17305
17306         PR tree-optimization/47559
17307         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
17308         store-motion on references that can throw.
17309
17310 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
17311
17312         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
17313         * tree-pass.h (TDF_CSELIB): New macro.
17314         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
17315         cselib_lookup): Check for it rather than for TDF_DETAILS.
17316
17317 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
17318
17319         PR driver/47547
17320         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
17321         is HOST_BIT_BUCKET.
17322
17323         * opts.c (finish_options): Don't add x_aux_base_name if it is
17324         HOST_BIT_BUCKET.
17325
17326 2011-02-01  Richard Guenther  <rguenther@suse.de>
17327
17328         PR tree-optimization/47555
17329         Revert
17330         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
17331
17332         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17333
17334 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
17335
17336         PR gcc/46692
17337         * config/lm32/t-lm32: Add multilib for all CPU options.
17338
17339 2011-02-01  Richard Guenther  <rguenther@suse.de>
17340
17341         PR tree-optimization/47541
17342         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
17343         sure to have a field at offset zero.
17344
17345 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
17346
17347         * config/arc/arc.opt (EB, EL): New Driver options.
17348
17349 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
17350
17351         * config/alpha/osf5.opt: New.
17352         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
17353
17354 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
17355
17356         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
17357
17358 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
17359
17360         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
17361         -floop-interchange.
17362         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
17363         is an alias of -floop-interchange and that it requires the
17364         Graphite infrastructure.
17365         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
17366         flag_loop_interchange based on the value of flag_tree_loop_linear.
17367
17368 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
17369             Richard Guenther  <rguenther@suse.de>
17370
17371         PR tree-optimization/47538
17372         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
17373         type instead of r1type, except for comparisons.  For right
17374         shifts and comparisons punt if there are mismatches in
17375         sizetype vs. non-sizetype types.
17376
17377 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17378
17379         * doc/sourcebuild.texi (Effective-Target Keywords): Document
17380         avx_runtime.
17381
17382 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17383
17384         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
17385         version number.
17386         * configure: Regenerate.
17387
17388 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17389
17390         * configure.ac (gcc_cv_ld_static_option): Define.
17391         (gcc_cv_ld_dynamic_option): Define.
17392         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
17393         instead.
17394         (HAVE_LD_STATIC_DYNAMIC): Update message.
17395         (LD_STATIC_OPTION): Define.
17396         (LD_DYNAMIC_OPTION): Define.
17397         * configure: Regenerate.
17398         * config.in: Regenerate.
17399         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
17400         HAVE_LD_STATIC_DYNAMIC]: Use them.
17401
17402 2011-01-31  Nick Clifton  <nickc@redhat.com>
17403
17404         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
17405         registers inside interrupt handlers if the handler is not a leaf
17406         function.
17407
17408 2011-01-31  Nick Clifton  <nickc@redhat.com>
17409
17410         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
17411         reg_renumber returning an INVALID_REGNUM.
17412
17413 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
17414
17415         PR libgcj/44341
17416         * doc/install.texi: Document host options discarded when cross
17417         configuring target libraries.
17418
17419 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
17420
17421         Reverted:
17422         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
17423         PR debug/45136
17424         PR debug/45130
17425         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
17426         debug insns.
17427         (no_real_insns_p, schedule_block, set_priorities): Drop special
17428         treatment of boundary debug insns.
17429         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
17430         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
17431         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
17432         (BOUNDARY_DEBUG_INSN_P): Likewise.
17433         (SCHEDULE_DEBUG_INSN_P): Likewise.
17434         * sched-rgn.c (init_ready_list): Drop special treatment of
17435         boundary debug insns.
17436         * final.c (rest_of_clean-state): Clear notes' BB.
17437
17438 2011-01-31  Alan Modra  <amodra@gmail.com>
17439
17440         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
17441         toc relative expressions as we do in print_operand_address.
17442
17443 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
17444
17445         * doc/extend.texi: Follow spelling conventions.
17446         * doc/invoke.texi: Fix a typo.
17447
17448 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
17449
17450         * config/hpux11.opt: New.
17451         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
17452         ia64*-*-hpux*): Use hpux11.opt.
17453
17454 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
17455
17456         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
17457         to tmake_file.
17458
17459 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
17460
17461         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
17462         support sites.
17463
17464 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
17465
17466         * doc/install.texi (Binaries): Remove outdated reference for
17467         Motorola 68HC11/68HC12 downloads.
17468
17469 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
17470
17471         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
17472         Drepper's paper.
17473
17474 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
17475
17476         PR bootstrap/47147
17477         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
17478         used by NetBSD.
17479
17480 2011-01-28  Ahmad Sharif  <asharif@google.com>
17481
17482         * value-prof.c (check_counter): Corrected error message.
17483
17484 2011-01-29  Jie Zhang  <jie@codesourcery.com>
17485
17486         * config/arm/arm.c (arm_legitimize_reload_address): New.
17487         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
17488         arm_legitimize_reload_address.
17489         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
17490
17491 2011-01-28  Ian Lance Taylor  <iant@google.com>
17492
17493         * godump.c (go_define): Ignore macros whose definitions include
17494         two adjacent operands.
17495
17496 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
17497
17498         PR target/42894
17499         * varasm.c (force_const_mem): Store copy of x in desc->constant
17500         instead of x itself.
17501         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
17502         itself into REG_EQUAL note.
17503
17504 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
17505
17506         * config/freebsd.opt (posix, rdynamic): New Driver options.
17507
17508 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17509
17510         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
17511         -Bstatic/-Bdynamic.
17512         * configure: Regenerate.
17513
17514 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
17515
17516         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
17517         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
17518
17519 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
17520
17521         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
17522         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
17523         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
17524         (s390_preferred_reload_class): Make static. Change return and
17525         'rclass' argument type to reg_class_t.
17526
17527 2011-01-27  Jan Hubicka  <jh@suse.cz>
17528
17529         PR middle-end/46949
17530         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
17531         (process_function_and_variable_attributes): Check defined weakrefs.
17532
17533 2011-01-27  Martin Jambor  <mjambor@suse.cz>
17534
17535         PR tree-optimization/47228
17536         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
17537         build_ref_for_offset.
17538
17539 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17540
17541         * config/spu/spu-elf.h (ASM_SPEC): Remove.
17542
17543 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
17544
17545         PR rtl-optimization/46856
17546         * postreload.c (reload_combine_recognize_const_pattern): Do not
17547         separate cc0 setter and user on cc0 targets.
17548
17549 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
17550
17551         PR c/43082
17552         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
17553         passed a VOID_TYPE expression, immediately emit an error and
17554         return error_mark_node.
17555
17556 2011-01-26  Jeff Law  <law@redhat.com>
17557
17558         PR rtl-optimization/47464
17559         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
17560         rather than may_trap_p as needed.
17561
17562 2011-01-26  DJ Delorie  <dj@redhat.com>
17563
17564         PR rtl-optimization/46878
17565         * combine.c (insn_a_feeds_b): Check for the implicit cc0
17566         setter/user dependency as well.
17567
17568 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
17569
17570         PR rtl-optimization/44469
17571         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
17572         after removing trivially dead basic blocks.
17573
17574 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
17575
17576         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
17577         * config/frv/frv.h (LINK_SPEC): Likewise.
17578         * config/i386/netware.h (LINK_SPEC): Likewise.
17579         * config/m68k/linux.h (ASM_SPEC): Likewise.
17580         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
17581         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
17582         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17583         * config/sparc/linux.h (ASM_SPEC): Likewise.
17584         * config/sparc/linux64.h (ASM_SPEC): Likewise.
17585         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17586
17587 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
17588
17589         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
17590         * config/frv/frv.h (ASM_SPEC): Likewise.
17591         * config/m68k/linux.h (ASM_SPEC): Likewise.
17592         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
17593         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
17594         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17595         * config/sparc/linux.h (ASM_SPEC): Likewise.
17596         * config/sparc/linux64.h (ASM_SPEC): Likewise.
17597         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17598
17599 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
17600
17601         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
17602         * config/frv/frv.h (LINK_SPEC): Likewise.
17603         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
17604
17605 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
17606
17607         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
17608         * config/frv/frv.h (ASM_SPEC): Likewise.
17609         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
17610         * config/m68k/linux.h (ASM_SPEC): Likewise.
17611         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
17612         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
17613         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17614         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
17615         * config/sparc/linux.h (ASM_SPEC): Likewise.
17616         * config/sparc/linux64.h (ASM_SPEC): Likewise.
17617         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17618         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
17619
17620 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
17621
17622         PR target/46997
17623         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
17624         (*mux2): Ditto.
17625         (vec_extract_evenodd_help): Ditto.
17626         (vec_extract_evenv4hi): Ditto.
17627         (vec_extract_oddv4hi): Ditto.
17628         (vec_interleave_lowv2si): Ditto.
17629         (vec_interleave_highv2si): Ditto.
17630         (vec_extract_evenv2si): Ditto.
17631         (vec_extract_oddv2si: Ditto.
17632         (vec_pack_trunc_v2si): Ditto.
17633
17634 2011-01-22  Jan Hubicka  <jh@suse.cz>
17635
17636         PR target/47237
17637         * cgraph.h (cgraph_local_info): New field can_change_signature.
17638         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
17639         signature can change.
17640         (ipcp_estimate_growth): Call sequence simplify only if calle signature
17641         can change.
17642         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
17643         (cgraph_function_versioning): We can not change signature of functions
17644         that don't allow that.
17645         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
17646         (lto_input_node): Likewise.
17647         * ipa-inline.c (compute_inline_parameters): Compute
17648         local.can_change_signature.
17649         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
17650         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
17651         functions that can not change signature.
17652         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
17653         init_cumulative_args): Do not use local calling conventions
17654         for functions that can not change signature.
17655
17656 2011-01-22  Jan Hubicka  <jh@suse.cz>
17657
17658         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
17659
17660 2011-01-26  Richard Guenther  <rguenther@suse.de>
17661
17662         PR tree-optimization/47190
17663         * cgraphunit.c (process_common_attributes): New function.
17664         (process_function_and_variable_attributes): Use it.
17665
17666 2011-01-26  Richard Guenther  <rguenther@suse.de>
17667
17668         PR lto/47423
17669         * cgraphbuild.c (record_eh_tables): Record reference to personality
17670         function.
17671
17672 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
17673
17674         PR debug/45454
17675         * sel-sched.c (moveup_expr): Don't let debug insns prevent
17676         non-debug insns from moving up.
17677
17678 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
17679
17680         PR target/40125
17681         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
17682         t-dlldir{,-x} fragment for build and add it to tmake_file.
17683         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
17684         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
17685         * config/i386/t-dlldir: New file.
17686         (SHLIB_DLLDIR): Define.
17687         * config/i386/t-dlldir-x: New file.
17688         (SHLIB_DLLDIR): Define.
17689         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
17690         (SHLIB_INSTALL): Use it.
17691
17692 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
17693
17694         PR target/47246
17695         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
17696         lower bound of the allowed Thumb-2 coprocessor load/store
17697         index range to -256. Add explaining comment.
17698
17699 2011-01-25  Ian Lance Taylor  <iant@google.com>
17700
17701         * godump.c (go_define): Improve lexing of macro expansion to only
17702         accept expressions which match Go spec.
17703
17704 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
17705
17706         PR c++/43601
17707         * tree.c (handle_dll_attribute): Handle it.
17708         * doc/extend.texi (@item dllexport): Mention it.
17709         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
17710
17711 2011-01-25  Ian Lance Taylor  <iant@google.com>
17712
17713         PR tree-optimization/26854
17714         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
17715         (decl_jump_unsafe): Move higher in file, with no other change.
17716         (bind): Set has_jump_unsafe_decl if appropriate.
17717         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
17718         (check_earlier_gotos): Likewise.
17719         (c_check_switch_jump_warnings): Likewise.
17720
17721 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
17722
17723         * doc/invoke.texi (Warning Options): Add missing hyphen.
17724         (-fprofile-dir): Minor grammatical fixes.
17725         (-fbranch-probabilities): Likewise.
17726
17727 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
17728
17729         PR debug/45136
17730         PR debug/45130
17731         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
17732         debug insns.
17733         (no_real_insns_p, schedule_block, set_priorities): Drop special
17734         treatment of boundary debug insns.
17735         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
17736         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
17737         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
17738         (BOUNDARY_DEBUG_INSN_P): Likewise.
17739         (SCHEDULE_DEBUG_INSN_P): Likewise.
17740         * sched-rgn.c (init_ready_list): Drop special treatment of
17741         boundary debug insns.
17742         * final.c (rest_of_clean-state): Clear notes' BB.
17743
17744 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17745
17746         * Makefile.in (LAMBDA_H): Removed.
17747         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
17748         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
17749         lambda-trans.o, and tree-loop-linear.o.
17750         (lto-symtab.o): Remove dependence on LAMBDA_H.
17751         (tree-loop-linear.o): Remove rule.
17752         (lambda-mat.o): Same.
17753         (lambda-trans.o): Same.
17754         (lambda-code.o): Same.
17755         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
17756         (tree-vect-slp.o): Same.
17757         * hwint.h (gcd): Moved here.
17758         (least_common_multiple): Same.
17759         * lambda-code.c: Removed.
17760         * lambda-mat.c: Removed.
17761         * lambda-trans.c: Removed.
17762         * lambda.h: Removed.
17763         * tree-loop-linear.c: Removed.
17764         * lto-symtab.c: Do not include lambda.h.
17765         * omega.c (gcd): Removed.
17766         * passes.c (init_optimization_passes): Remove pass_linear_transform.
17767         * tree-data-ref.c (print_lambda_vector): Moved here.
17768         (lambda_vector_copy): Same.
17769         (lambda_matrix_copy): Same.
17770         (lambda_matrix_id): Same.
17771         (lambda_vector_first_nz): Same.
17772         (lambda_matrix_row_add): Same.
17773         (lambda_matrix_row_exchange): Same.
17774         (lambda_vector_mult_const): Same.
17775         (lambda_vector_negate): Same.
17776         (lambda_matrix_row_negate): Same.
17777         (lambda_vector_equal): Same.
17778         (lambda_matrix_right_hermite): Same.
17779         * tree-data-ref.h: Do not include lambda.h.
17780         (lambda_vector): Moved here.
17781         (lambda_matrix): Same.
17782         (dependence_level): Same.
17783         (lambda_transform_legal_p): Removed declaration.
17784         (lambda_collect_parameters): Same.
17785         (lambda_compute_access_matrices): Same.
17786         (lambda_vector_gcd): Same.
17787         (lambda_vector_new): Same.
17788         (lambda_vector_clear): Same.
17789         (lambda_vector_lexico_pos): Same.
17790         (lambda_vector_zerop): Same.
17791         (lambda_matrix_new): Same.
17792         * tree-flow.h (least_common_multiple): Removed declaration.
17793         * tree-parloops.c (lambda_trans_matrix): Moved here.
17794         (LTM_MATRIX): Same.
17795         (LTM_ROWSIZE): Same.
17796         (LTM_COLSIZE): Same.
17797         (LTM_DENOMINATOR): Same.
17798         (lambda_trans_matrix_new): Same.
17799         (lambda_matrix_vector_mult): Same.
17800         (lambda_transform_legal_p): Same.
17801         * tree-pass.h (pass_linear_transform): Removed declaration.
17802         * tree-ssa-loop.c (tree_linear_transform): Removed.
17803         (gate_tree_linear_transform): Removed.
17804         (pass_linear_transform): Removed.
17805         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
17806         flag_loop_interchange.
17807
17808 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
17809
17810         PR tree-optimization/47265
17811         PR tree-optimization/47443
17812         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
17813         if name still has some uses.
17814
17815 2011-01-25  Martin Jambor  <mjambor@suse.cz>
17816
17817         PR tree-optimization/47382
17818         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
17819         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
17820
17821 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
17822
17823         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
17824         sjlj_except_unwind_info.
17825
17826 2011-01-25  Richard Guenther  <rguenther@suse.de>
17827
17828         PR tree-optimization/47426
17829         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
17830         visible functions results escape.
17831
17832 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
17833
17834         PR target/45701
17835         * config/arm/arm.c (any_sibcall_uses_r3): New function.
17836         (arm_get_frame_offsets): Use it.
17837
17838 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17839             Jakub Jelinek  <jakub@redhat.com>
17840
17841         PR tree-optimization/47271
17842         * tree-if-conv.c (bb_postdominates_preds): New.
17843         (if_convertible_bb_p): Call bb_postdominates_preds.
17844         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
17845         (predicate_scalar_phi): Call bb_postdominates_preds.
17846
17847 2011-01-25  Nick Clifton  <nickc@redhat.com>
17848
17849         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
17850         * config/rx/rx.c (rx_function_value): Likewise.
17851         (rx_promote_function_mode): Likewise.
17852         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
17853         in order to make it legitimate.
17854         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
17855         make sure that the first operand is the same as the result register.
17856         (addsi3_unspec): Delete.
17857         (subdi3): Do not accept immediate operands.
17858         (subdi3_internal): Likewise.
17859
17860 2011-01-25  Jeff Law  <law@redhat.com>
17861
17862         PR rtl-optimization/37273
17863         * ira-costs.c (scan_one_insn): Detect constants living in memory and
17864         handle them like argument loads from stack slots.  Do not double
17865         count memory for memory constants and argument loads from stack slots.
17866
17867 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
17868
17869         PR tree-optimization/47427
17870         PR tree-optimization/47428
17871         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
17872         coalesce if the new root var would be TREE_READONLY.
17873
17874 2011-01-25  Richard Guenther  <rguenther@suse.de>
17875
17876         PR middle-end/47414
17877         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
17878         correct type for TBAA.
17879
17880 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17881
17882         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
17883         (close_phi_written_to_memory): Call for_each_index with
17884         dr_indices_valid_in_loop.
17885
17886 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17887
17888         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
17889         when it is initialized.
17890
17891 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17892
17893         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
17894         call to graphite_find_data_references_in_stmt.
17895         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
17896         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
17897         call to graphite_find_data_references_in_stmt.
17898         (analyze_drs_in_stmts): Same.
17899         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
17900         in which the scalar analysis of indices is performed.
17901         (create_data_ref): Same.  Update call to dr_analyze_indices.
17902         (find_data_references_in_stmt): Update call to create_data_ref.
17903         (graphite_find_data_references_in_stmt): Same.
17904         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
17905         declaration.
17906         (create_data_ref): Same.
17907         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
17908         call to create_data_ref.
17909
17910 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17911
17912         * graphite-sese-to-poly.c (build_poly_scop): Move
17913         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
17914
17915 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17916
17917         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
17918         VAR_DECL, PARM_DECL, and RESULT_DECL.
17919
17920 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17921
17922         * graphite-dependences.c (reduction_dr_1): Allow several reductions
17923         in a reduction PBB.
17924         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
17925         that have already been marked as PBB_IS_REDUCTION.
17926
17927 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17928
17929         * graphite-scop-detection.c (same_close_phi_node): New.
17930         (remove_duplicate_close_phi): New.
17931         (make_close_phi_nodes_unique): New.
17932         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
17933
17934 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17935
17936         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
17937         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
17938         of both data references to be the same.
17939
17940 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17941
17942         * graphite-dependences.c (build_lexicographical_constraint): Remove
17943         the gdim parameter.
17944         (build_lexicographical_constraint): Adjust call to
17945         ppl_powerset_is_empty.
17946         (dependence_polyhedron): Same.
17947         (graphite_legal_transform_dr): Same.
17948         (graphite_carried_dependence_level_k): Same.
17949         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
17950         parameter.
17951         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
17952
17953 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17954
17955         * graphite-sese-to-poly.c
17956         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
17957         (close_phi_written_to_memory): New.
17958         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
17959         and unshare_expr.
17960
17961 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17962
17963         * doc/install.texi: Update the expected version number of PPL to 0.11.
17964         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
17965         #if PPL_VERSION_MINOR < 11.
17966
17967 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17968
17969         * graphite-dependences.c: Include graphite-cloog-util.h.
17970         (new_poly_ddr): Inlined into dependence_polyhedron.
17971         (free_poly_ddr): Moved close by new_poly_ddr.
17972         (dependence_polyhedron_1): Renamed dependence_polyhedron.
17973         Early return NULL when ppl_powerset_is_empty returns true.
17974         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
17975         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
17976         (graphite_legal_transform_dr): Call new_poly_ddr.
17977         (graphite_carried_dependence_level_k): Same.
17978         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
17979         (dot_transformed_deps_stmt_1): Removed.
17980         (dot_deps_stmt_1): Call dot_deps_stmt_2.
17981         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
17982         (dot_deps_1): Call dot_deps_2.
17983         * Makefile.in (graphite-dependences.o): Add missing dependence on
17984         graphite-cloog-util.h.
17985
17986 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17987
17988         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
17989         (build_lexicographical_constraint): Same.
17990         (dependence_polyhedron_1): Same.
17991         (graphite_legal_transform_dr): Same.
17992         (graphite_carried_dependence_level_k): Same.
17993         * graphite-ppl.c (ppl_powerset_is_empty): New.
17994         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
17995         * tree-data-ref.c (dump_data_reference): Print the basic block index.
17996
17997 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
17998
17999         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
18000         the "a followed by b" relation and document it.
18001
18002 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
18003
18004         * graphite-dependences.c (build_lexicographical_constraint): Stop the
18005         iteration when the bag of constraints is empty.
18006
18007 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
18008
18009         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
18010
18011 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
18012
18013         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
18014         nest and two loop depths as parameters.
18015         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
18016         lst_perfect_nestify.
18017
18018 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
18019
18020         * graphite-dependences.c (print_pddr): Call
18021         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
18022
18023 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
18024
18025         * graphite-ppl.c (debug_gmp_value): New.
18026         * graphite-ppl.h (debug_gmp_value): Declared.
18027
18028 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
18029
18030         * doc/install.texi: Document availability of cloog-0.16.
18031
18032 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
18033
18034         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
18035         invalid postdominance info.
18036
18037 2011-01-24  Jan Hubicka  <jh@suse.cz>
18038
18039         PR c/21659
18040         * doc/extend.texi (weak pragma): Drop claim that it must
18041         appear before definition.
18042         * varasm.c (merge_weak, declare_weak): Only sanity check
18043         that DECL is not output at a time it is declared weak.
18044
18045 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
18046
18047         * machmode.def: Fixed comments.
18048
18049 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
18050
18051         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
18052
18053 2011-01-24  Paul Koning  <ni1d@arrl.net>
18054
18055         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
18056         WORDS_BIG_ENDIAN.
18057
18058 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
18059
18060         PR target/46519
18061         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
18062         (block_info): Add scanned and prev.
18063         (move_or_delete_vzeroupper_2): Return if the basic block
18064         has been scanned and the upper 128bit state is unchanged
18065         from the last scan.
18066         (move_or_delete_vzeroupper_1): Return true if the exit
18067         state is changed.
18068         (move_or_delete_vzeroupper): Visit basic blocks using the
18069         work-list based algorithm based on vt_find_locations in
18070         var-tracking.c.
18071
18072         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
18073
18074 2011-01-24  Nick Clifton  <nickc@redhat.com>
18075
18076         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
18077         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
18078         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
18079         then define __v850e1__.
18080         * doc/invoke.texi: Document -mv850es.
18081
18082 2011-01-24  Richard Henderson  <rth@redhat.com>
18083
18084         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
18085         compound unordered comparisons.
18086         * config/rx/rx.c (rx_split_fp_compare): Remove.
18087         * config/rx/rx-protos.h: Update.
18088         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
18089         (cbranchsf4): Don't call rx_split_fp_compare.
18090         (*cbranchsf4): Use rx_split_cbranch.
18091         (*cmpsf): Don't accept "i" constraint.
18092         (*conditional_branch): Only valid after reload.
18093         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
18094
18095 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
18096
18097         PR target/47385
18098         * config/rs6000/altivec.md (vector constant splitters): Add
18099         support for creating vector single precision constants if -mvsx is
18100         used and we would create the constant using Altivec primitives.
18101
18102 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
18103             Richard Sandiford  <rdsandiford@googlemail.com>
18104
18105         PR rtl-optimization/47166
18106         * reload1.c (emit_reload_insns): Disable the spill_reg_store
18107         mechanism for PRE_MODIFY and POST_MODIFY.
18108         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
18109         reloadreg.
18110
18111 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
18112
18113         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
18114
18115 2011-01-22  Jan Hubicka  <jh@suse.cz>
18116
18117         PR lto/47333
18118         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
18119
18120 2011-01-22  Jan Hubicka  <jh@suse.cz>
18121
18122         PR tree-optimization/43884
18123         PR lto/44334
18124         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
18125         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
18126
18127 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
18128
18129         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
18130         * config/s390/s390.c (s390_register_move_cost,
18131         s390_memory_move_cost): New.
18132         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
18133
18134 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18135
18136         PR middle-end/47401
18137         * except.c (sjlj_assign_call_site_values): Move setting the
18138         crtl->uses_eh_lsda flag to ...
18139         (sjlj_mark_call_sites): ... here.
18140         (sjlj_emit_function_enter): Support NULL dispatch label.
18141         (sjlj_build_landing_pads): In a function with no landing pads
18142         that still has must-not-throw regions, generate code to register
18143         a personality function with empty LSDA.
18144
18145 2011-01-21  Richard Henderson  <rth@redhat.com>
18146
18147         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
18148
18149         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
18150
18151         * compare-elim.c: New file.
18152         * Makefile.in (OBJS-common): Add it.
18153         (compare-elim.o): New.
18154         * common.opt (fcompare-elim): New.
18155         * opts.c (default_options_table): Add OPT_fcompare_elim.
18156         * tree-pass.h (pass_compare_elim_after_reload): New.
18157         * passes.c (init_optimization_passes): Add it.
18158         * recog.h: Protect against re-inclusion.
18159         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
18160         * doc/invoke.texi (-fcompare-elim): Document it.
18161         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
18162         * doc/tm.texi: Rebuild.
18163
18164 2011-01-22  Nick Clifton  <nickc@redhat.com>
18165
18166         * config/rx/rx.md (cstoresf4): Pass comparison operator to
18167         rx_split_fp_compare.
18168
18169 2011-01-22  Nick Clifton  <nickc@redhat.com>
18170
18171         * config/rx/rx.md (UNSPEC_CONST): New.
18172         (deallocate_and_return): Wrap the amount popped off the stack in
18173         an UNSPEC_CONST in order to stop it being rejected by
18174         -mmax-constant-size.
18175         (pop_and_return): Add a "(return)" rtx.
18176         (call): Drop the immediate operand.
18177         (call_internal): Likewise.
18178         (call_value): Likewise.
18179         (call_value_internal): Likewise.
18180         (sibcall_internal): Likewise.
18181         (sibcall_value_internal): Likewise.
18182         (sibcall): Likewise.  Generate an explicit call using
18183         sibcall_internal.
18184         (sibcall_value): Likewise.
18185         (mov<>): FAIL if a constant operand is not legitimate.
18186         (addsi3_unpsec): New pattern.
18187
18188         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
18189         (ok_for_max_constant): New function.
18190         (gen_safe_add): New function.
18191         (rx_expand_prologue): Use gen_safe_add.
18192         (rx_expand_epilogue): Likewise.
18193         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
18194         UNSPEC CONSTs.
18195
18196 2011-01-21  Jeff Law  <law@redhat.com>
18197
18198         PR tree-optimization/47053
18199         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
18200         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
18201         statements are deleted.
18202         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
18203         is nonempty, then purge dead edges and cleanup the CFG.
18204
18205 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
18206
18207         PR debug/47402
18208         Temporarily revert:
18209         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
18210         PR debug/47106
18211         * tree-dfa.c (create_var_ann): Mark variable as used.
18212
18213 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
18214
18215         PR middle-end/45566
18216         * except.c (convert_to_eh_region_ranges): Emit queued no-region
18217         notes from other section in hot/cold partitioning even if
18218         last_action is -3.  Increment call_site_base.
18219
18220         PR rtl-optimization/47366
18221         * fwprop.c (forward_propagate_into): Return bool.  If
18222         any changes are made, -fnon-call-exceptions is used and
18223         REG_EH_REGION note is present, call purge_dead_edges
18224         and return true if it purged anything.
18225         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
18226         any EH edges were purged.
18227
18228 2011-01-21  Jeff Law  <law@redhat.com>
18229
18230         PR rtl-optimization/41619
18231         * caller-save.c (setup_save_areas): Break out code to determine
18232         which hard regs are live across calls by examining the reload chains
18233         so that it is always used.
18234         Eliminate code which checked REG_N_CALLS_CROSSED.
18235
18236 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
18237
18238         PR tree-optimization/47355
18239         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
18240         NOP has non-debug uses beyond PHIs in new_bb.
18241
18242 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
18243
18244         PR debug/47106
18245         * cfgexpand.c (account_used_vars_for_block): Only account vars
18246         that are annotated as used.
18247         (estimated_stack_frame_size): Don't set TREE_USED.
18248         * tree-dfa.c (create_var_ann): Mark variable as used.
18249
18250 2011-01-21  Richard Guenther  <rguenther@suse.de>
18251
18252         PR middle-end/47395
18253         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
18254
18255 2011-01-21  Richard Guenther  <rguenther@suse.de>
18256
18257         PR tree-optimization/47365
18258         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
18259         (vn_reference_lookup_pieces): Adjust.
18260         (vn_reference_lookup): Likewise.
18261         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
18262         (vn_reference_lookup_3): Only look through kills if in
18263         VN_WALKREWRITE mode.
18264         (vn_reference_lookup_pieces): Adjust.
18265         (vn_reference_lookup): Likewise.
18266         (visit_reference_op_load): Likewise.
18267         (visit_reference_op_store): Likewise.
18268         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
18269         (compute_avail): Likewise.
18270         (eliminate): Likewise.
18271
18272 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
18273
18274         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
18275         DECL_IGNORED_P non-reg vars if they are used.
18276
18277         PR tree-optimization/47391
18278         * varpool.c (const_value_known_p): Return false if
18279         decl is volatile.
18280
18281 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
18282
18283         PR bootstrap/47215
18284         * config/i386/i386.c (ix86_local_alignment): Handle
18285         case for va_list_type_node is nil.
18286         (ix86_canonical_va_list_type): Likewise.
18287
18288 2011-01-21  Alan Modra  <amodra@gmail.com>
18289
18290         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
18291         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
18292
18293 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18294
18295         * config/arm/arm.md (define_attr type): Rename f_load
18296         and f_store to f_fpa_load and f_fpa_store. Update.
18297         (write_conflict): Deal with rename fallout.
18298         (*push_fp_multi): Likewise.
18299         * config/arm/fpa.md (f_load): Use f_fpa_load.
18300         (f_store): Use f_fpa_store.
18301         (*movsf_fpa): Likewise.
18302         (*movdf_fpa): Likewise.
18303         (*movxf_fpa): Likewise.
18304         (*thumb2_movsf_fpa): Likewise.
18305         (*thumb2_movdf_fpa): Likewise.
18306         (*thumb2_movxf_fpa): Likewise.
18307         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
18308         f_loadd and f_stored.
18309         (*thumb2_movdi_vfp): Likewise.
18310         (*thumb2_movsf_vfp): Fix attribute to f_loads.
18311         (*thumb2_movsi_vfp): Likewise.
18312         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
18313         Use f_loads instead of f_load.
18314         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
18315
18316 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
18317
18318         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18319         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
18320         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18321         (xtensa_mode_dependent_address_p): New function.
18322         (constantpool_address_p): Make static. Change return type to bool.
18323         Change argument type to const_rtx. Use CONST_INT_P predicate.
18324
18325 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
18326
18327         PR debug/46583
18328         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
18329
18330 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
18331
18332         PR debug/47283
18333         * cfgexpand.c (expand_debug_expr): Instead of generating
18334         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
18335         etc. handling.
18336
18337 2011-01-20  Richard Guenther  <rguenther@suse.de>
18338
18339         PR middle-end/47370
18340         * tree-inline.c (remap_gimple_op_r): Recurse manually for
18341         the pointer operand of MEM_REFs.
18342
18343 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
18344
18345         PR tree-optimization/46130
18346         * ipa-split.c (consider_split): If return_bb contains non-virtual
18347         PHIs other than for retval or if split_function would not adjust it,
18348         refuse to split.
18349
18350 2011-01-20  Richard Guenther  <rguenther@suse.de>
18351
18352         PR tree-optimization/47167
18353         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
18354         Revert previous change, only avoid enumeral type changes.
18355
18356 2011-01-19  Mike Stump  <mikestump@comcast.net>
18357
18358         * doc/tm.texi.in (BRANCH_COST): Englishify.
18359         * doc/tm.texi (BRANCH_COST): Likewise.
18360
18361 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
18362
18363         PR c++/47291
18364         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
18365         (gen_scheduled_generic_parms_dies): New functions.
18366         (gen_struct_or_union_type_die): Schedule template parameters DIEs
18367         generation for the end of CU compilation.
18368         (dwarf2out_finish): Generate template parameters DIEs here.
18369
18370 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
18371
18372         PR debug/46240
18373         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
18374         debug bind stmt on merge edges.
18375
18376 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
18377
18378         PR debug/47079
18379         PR debug/46724
18380         * function.c (instantiate_expr): Instantiate incoming rtl of
18381         implicit arguments, and recurse on VALUE_EXPRs.
18382         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
18383         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
18384
18385 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
18386
18387         * c-parser.c (c_parser_for_statement): Initialize
18388         collection_expression.
18389
18390 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
18391
18392         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
18393
18394 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
18395
18396         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
18397         (LINK_SHLIB_SPEC): Don't use %(link_path).
18398         (SUBTARGET_EXTRA_SPECS): Remove link_path.
18399
18400 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
18401
18402         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
18403         (NO_SHARED_LIB_SUPPORT): Remove.
18404         (LINK_SHLIB_SPEC): Remove one conditional definition.
18405
18406 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
18407
18408         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
18409         %{call_shared}.
18410         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
18411         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
18412         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
18413         %{call_shared} and conditionals on these options not being passed.
18414         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
18415         %{call_shared}.
18416
18417 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
18418
18419         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
18420         simplify.
18421
18422         * ipa-split.c: Spelling fixes.
18423
18424 2011-01-19  Richard Henderson  <rth@redhat.com>
18425
18426         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
18427         (*mulsi3): Likewise.
18428
18429         * longlong.h [__mn10300__] (count_leading_zeros): New.
18430         [__mn10300__] (umul_ppmm, smul_ppmm): New.
18431         [__mn10300__] (add_ssaaaa, subddmmss): New.
18432         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
18433         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
18434
18435 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18436
18437         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
18438
18439 2011-01-19  Richard Henderson  <rth@redhat.com>
18440
18441         * config/mn10300/mn10300.md (addsi3_flags): New.
18442         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
18443         (subsi3_flags, subc_internal, subdi3): New.
18444         (subdi3_internal, *subdi3_degenerate): New.
18445         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
18446
18447         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
18448         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
18449         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
18450         * config/mn10300/mn10300-protos.h: Update.
18451         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
18452         (return_ret): Likewise.  Rename from return_internal_regs.
18453         (return_internal): Remove.
18454
18455         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
18456         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
18457         (mn10300_legitimate_constant_p): Likewise.
18458         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
18459         (mn10300_frame_size): New.
18460         (mn10300_expand_prologue): Use it.
18461         (mn10300_expand_epilogue): Likewise.
18462         (mn10300_initial_offset): Likewise.
18463         * config/mn10300/mn10300-protos.h: Update.
18464         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
18465         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
18466         (prologue, epilogue, return_internal): Tidy output code.
18467         (mn10300_store_multiple_operation, return): Likewise.
18468         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
18469         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
18470         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
18471         (load_pic, am33_load_pic): New.
18472         (mn10300_load_pic0, mn10300_load_pic1): New.
18473
18474         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
18475         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
18476         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
18477         (cc_flags_for_mode, cc_flags_for_code): New.
18478         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
18479         overflow flag is not valid.  Validate that the flags we need
18480         for the comparison are valid.
18481         (mn10300_output_cmp): Remove.
18482         (mn10300_output_add): New.
18483         (mn10300_select_cc_mode): Use cc_flags_for_code.
18484         (mn10300_split_cbranch): New.
18485         (mn10300_match_ccmode): New.
18486         (mn10300_split_and_operand_count): New.
18487         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
18488         to the function.
18489         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
18490         (addsi3): ... here.  Use mn10300_output_add.
18491         (*addsi3_flags): New.
18492         (*am33_subsi3, *mn10300_subsi3): Merge...
18493         (subsi3): ... here.  Use attribute isa.
18494         (*subsi3_flags): New.
18495         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
18496         when possible.
18497         (*am33_andsi3, *mn10300_andsi3): Merge...
18498         (andsi3): ... here.
18499         (*andsi3_flags): New.
18500         (andsi3 splitters): New.
18501         (*am33_iorsi3, *mn10300_iorsi3): Merge...
18502         (iorsi3): ... here.
18503         (*iorsi3_flags): New.
18504         (*am33_xorsi3, *mn10300_xorsi3): Merge...
18505         (xorsi3): ... here.
18506         (*xorsi3_flags): New.
18507         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
18508         (one_cmplsi2): ... here.
18509         (*one_cmplsi2_flags): New.
18510         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
18511         instead of "dax" in constraints.  Use mn10300_split_cbranch.
18512         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
18513         use matching constraints to eliminate a self-comparison.
18514         (*integer_conditional_branch): Rename from integer_conditional_branch.
18515         Use int_mode_flags to match CC_REG.
18516         (*cbranchsi4_btst, *btstsi): New.
18517         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
18518         mn10300_split_cbranch.
18519         (*am33_cmpsf): Rename from am33_cmpsf.
18520         (*float_conditional_branch): Rename from float_conditional_branch.
18521         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
18522         (zero_extendqisi2): ... here.
18523         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
18524         (zero_extendhisi2): ... here.
18525         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
18526         (extendqisi2): ... here.
18527         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
18528         (extendhisi2): ... here.
18529         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
18530         (ashlsi3): ... here.
18531         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
18532         (lshrsi3): ... here.
18533         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
18534         (ashrsi3): ... here.
18535         (consecutive add peephole): Remove.
18536         * config/mn10300/predicates.md (label_ref_operand): New.
18537         (int_mode_flags): New.
18538         (CCZN_comparison_operator): New.
18539
18540         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
18541         (throughput_42_latency_43): New reservation.
18542         (mulsidi3, umulsidi3): New expanders.
18543         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
18544         the MDR register to allocation; separately allocate the low and
18545         high parts of the DImode result.
18546         (umulsidi3_internal): Similarly.
18547         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
18548         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
18549         (udivsi3, umodsi3): Remove.
18550         (udivmodsi4, divmodsi4): New expanders.
18551         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
18552         (*divmodsi4): Simiarly.
18553         (ext_internal): New.
18554
18555         * config/mn10300/constraints.md ("z"): New constraint.
18556         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
18557         (FIXED_REGISTERS): Don't fix MDR.
18558         (CALL_USED_REGSITERS): Reformat nicely.
18559         (REG_ALLOC_ORDER): Add MDR.
18560         (enum regclass): Add MDR_REGS.
18561         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
18562         (IRA_COVER_CLASSES): Add MDR_REGS.
18563         (REGNO_REG_CLASS): Handle MDR_REG.
18564         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
18565         (mn10300_register_move_cost): Likewise.
18566         * config/mn10300/mn10300.md (MDR_REG): New.
18567         (*movsi_internal): Handle moves to/from MDR_REGS.
18568
18569         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
18570         POST_MODIFY.
18571         (mn10300_secondary_reload): Tidy combination reload classes.
18572         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
18573         addresses for AM33.  Allow symbolic offsets for reg+imm.
18574         (mn10300_regno_in_class_p): New.
18575         (mn10300_legitimize_reload_address): New.
18576         * config/mn10300/mn10300.h (enum reg_class): Remove
18577         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
18578         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
18579         SP_OR_GENERAL_REGS.
18580         (REG_CLASS_NAMES): Update to match.
18581         (REG_CLASS_CONTENTS): Likewise.
18582         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
18583         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
18584         (REGNO_IN_RANGE_P): Remove.
18585         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
18586         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
18587         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
18588         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
18589         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
18590         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
18591         (REGNO_GENERAL_P): New.
18592         (HAVE_POST_MODIFY_DISP): New.
18593         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
18594         (LEGITIMIZE_RELOAD_ADDRESS): New.
18595         * config/mn10300/mn10300-protos.h: Update.
18596
18597         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
18598         DATA_REGS for AM33 stack-pointer destination.
18599         (mn10300_preferred_output_reload_class): Likewise.
18600         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
18601         into a form appropriate for ...
18602         (TARGET_SECONDARY_RELOAD): New.
18603         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
18604         * config/mn10300/mn10300-protos.h: Update.
18605         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
18606         reload_insi; use the "A" constraint for the scratch; handle AM33
18607         moves of sp to non-address registers.
18608
18609         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
18610         (*movqi_internal): ... here.
18611         (*am33_movhi, *mn10300_movhi): Merge into...
18612         (*movhi_internal): ... here.
18613         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
18614         as the source/destination of moves from/to SP.
18615         (movsf): Only allow for AM33-2.
18616         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
18617         any integer constant constraint.  Only allow for AM33-2.  Tidy
18618         all of the alternative outputs.
18619         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
18620         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
18621         for MN103.
18622         (udivsi3, umodsi3): New patterns for MN103 only.
18623
18624 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
18625
18626         * doc/tm.texi.in: Spell out that a lack of register class unions
18627         can lead to ICEs.
18628         * doc/tm.texi: Regenerate.
18629
18630 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
18631
18632         PR rtl-optimization/47337
18633         * dce.c (check_argument_store): New function.
18634         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
18635
18636         PR tree-optimization/47290
18637         * tree-eh.c (infinite_empty_loop_p): New function.
18638         (cleanup_empty_eh): Use it.
18639
18640 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
18641
18642         PR target/46997
18643         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
18644         (a64_expand_widen_sum): Ditto.
18645         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
18646         (vec_extract_evenodd_help): Ditto.
18647         (vec_extract_evenv4hi): Ditto.
18648         (vec_extract_oddv4hi): Ditto.
18649         (vec_extract_evenv2si): Ditto.
18650         (vec_extract_oddv2si): Ditto.
18651         (vec_extract_evenv2sf): Ditto.
18652         (vec_extract_oddv2sf): Ditto.
18653         (vec_pack_trunc_v4hi: Ditto.
18654         (vec_pack_trunc_v2si): Ditto.
18655         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
18656         (vec_interleave_highv8qi): Ditto.
18657         (mix1_r): Ditto.
18658         (vec_extract_oddv8qi): Ditto.
18659         (vec_interleave_lowv4hi): Ditto.
18660         (vec_interleave_highv4hi): Ditto.
18661         (vec_interleave_lowv2si): Ditto.
18662         (vec_interleave_highv2si): Ditto.
18663
18664 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18665
18666         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
18667         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
18668         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
18669         (pa_c_mode_for_suffix): New.
18670         (TARGET_EXPAND_BUILTIN): Define.
18671         (TARGET_C_MODE_FOR_SUFFIX): Define.
18672         (pa_builtins): Define.
18673         (pa_init_builtins): Register __float128 type and init new support
18674         builtins.
18675         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
18676         * config/pa/quadlib.c (_U_Qfcopysign): New.
18677
18678 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
18679
18680         PR middle-end/46894
18681         * explow.c (allocate_dynamic_stack_space): Do not assume more than
18682         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
18683         are defined.
18684
18685 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18686
18687         PR tree-optimization/47179
18688         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
18689         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
18690
18691 2011-01-18  Richard Guenther  <rguenther@suse.de>
18692
18693         PR rtl-optimization/47216
18694         * emit-rtl.c: Include tree-flow.h.
18695         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
18696         of replicating it with different semantics.
18697         * Makefile.in (emit-rtl.o): Adjust.
18698
18699 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18700
18701         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
18702         (cortex_a9_dp): Handle neon types correctly.
18703
18704 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
18705
18706         PR rtl-optimization/47299
18707         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
18708         subtarget.  Use normal multiplication if both operands are constants.
18709         * expmed.c (expand_widening_mult): Don't try to optimize constant
18710         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
18711         before using it.
18712
18713 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18714
18715         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
18716         spacing after 'e.g.', typos, comma, hyphenation.
18717
18718 2011-01-17  Richard Henderson  <rth@redhat.com>
18719
18720         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
18721         (rx_restricted_mem_operand): New.
18722         (rx_shift_operand): Use register_operand.
18723         (rx_source_operand, rx_compare_operand): Likewise.
18724         * config/rx/rx.md (addsi3_flags): New expander.
18725         (adddi3): Rewrite as expander.
18726         (adc_internal, *adc_flags, adddi3_internal): New patterns.
18727         (subsi3_flags): New expander.
18728         (subdi3): Rewrite as expander.
18729         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
18730
18731         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
18732         (rx_init_builtins): Remove sat builtin.
18733         (rx_expand_builtin): Likewise.
18734         * config/rx/rx.md (ssaddsi3): New.
18735         (*sat): Rename from sat.  Represent the CC_REG input.
18736
18737         * config/rx/predicates.md (rshift_operator): New.
18738         * config/rx/rx.c (rx_expand_insv): Remove.
18739         * config/rx/rx-protos.h: Update.
18740         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
18741         operand to the canonical position.
18742         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
18743         (*bitclr, *bitclr_in_memory): Similarly.
18744         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
18745         (insv): Retain the zero_extract in the expansion.
18746
18747         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
18748         (bswaphi2, bitinvert, revw): Likewise.
18749
18750         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
18751         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
18752         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
18753         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
18754         (bitset, bitset_in_memory): Likewise.
18755         (bitinvert, bitinvert_in_memory): Likewise.
18756         (bitclr, bitclr_in_memory): Likewise.
18757         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
18758         (rx_strend, rx_cmpstrn): Likewise.
18759         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
18760         (bitop peep2 patterns): Remove.
18761
18762         * config/rx/rx.c (rx_match_ccmode): New.
18763         * config/rx/rx-protos.h: Update.
18764         * config/rx/rx.md (abssi2): Clobber, don't set flags.
18765         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
18766         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
18767         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
18768         (fix_truncsfsi2, floatsisf2): Likewise.
18769         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
18770         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
18771         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
18772         (*subsi3_flags, *xorsi3_flags): New.
18773
18774         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
18775
18776         * config/rx/rx.c (rx_print_operand): Remove workaround for
18777         unsplit comparison operations.
18778
18779         * config/rx/rx.md (movsicc): Split after reload.
18780         (*movsicc): Merge *movsieq and *movsine via match_operator.
18781         (*stcc): New pattern.
18782
18783         * config/rx/rx.c (rx_float_compare_mode): Remove.
18784         * config/rx/rx.h (rx_float_compare_mode): Remove.
18785         * config/rx/rx.md (cstoresi4): Split after reload.
18786         (*sccc): New pattern.
18787
18788         * config/rx/predicates.md (label_ref_operand): New.
18789         (rx_z_comparison_operator): New.
18790         (rx_zs_comparison_operator): New.
18791         (rx_fp_comparison_operator): New.
18792         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
18793         Validate that the flags are set properly for the comparison.
18794         (rx_gen_cond_branch_template): Remove.
18795         (rx_cc_modes_compatible): Remove.
18796         (mode_from_flags): New.
18797         (flags_from_code): Rename from flags_needed_for_conditional.
18798         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
18799         (rx_select_cc_mode): Likewise.
18800         (rx_split_fp_compare): New.
18801         (rx_split_cbranch): New.
18802         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
18803         (*cbranchsi4): Use match_operator and rx_split_cbranch.
18804         (*cbranchsf4): Similarly.
18805         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
18806         match_operator and rx_split_cbranch.
18807         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
18808         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
18809         (*cmpsi): Rename from cmpsi.
18810         (*tstsi): Rename from tstsi.
18811         (*cmpsf): Rename from cmpsf; use CC_Fmode.
18812         (*conditional_branch): Rename from conditional_branch.
18813         (*reveresed_conditional_branch): Remove.
18814         (b<code>): Remove expander.
18815         * config/rx/rx-protos.h: Update.
18816
18817         * config/rx/rx.c (rx_compare_redundant): Remove.
18818         * config/rx/rx.md (cmpsi): Don't use it.
18819         * config/rx/rx-protos.h: Update.
18820
18821         * config/rx/rx-modes.def (CC_F): New mode.
18822         * config/rx/rx.c (rx_select_cc_mode): New.
18823         * config/rx/rx.h (SELECT_CC_MODE): Use it.
18824         * config/rx/rx-protos.h: Update.
18825
18826 2011-01-17  Richard Henderson  <rth@redhat.com>
18827
18828         * except.c (dump_eh_tree): Fix stray ; after for statement.
18829
18830 2011-01-17  Richard Guenther  <rguenther@suse.de>
18831
18832         PR tree-optimization/47313
18833         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
18834         handling before copying the body.  Properly deal with
18835         by-reference result in SSA form.
18836
18837 2011-01-17  Ian Lance Taylor  <iant@google.com>
18838
18839         PR target/47219
18840         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
18841         (struct_value_alias_set): Don't define.
18842         (sparc_option_override): Don't set sparc_sr_alias_set and
18843         struct_value_alias_set.
18844         (save_or_restore_regs): Use gen_frame_mem rather than calling
18845         set_mem_alias_set.
18846         (sparc_struct_value_rtx): Likewise.
18847
18848 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
18849
18850         PR target/47318
18851         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
18852         (_mm_maskstore_pd): Likewise.
18853         (_mm_maskload_ps): Likewise.
18854         (_mm_maskstore_ps): Likewise.
18855         (_mm256_maskload_pd): Change mask to __m256i.
18856         (_mm256_maskstore_pd): Likewise.
18857         (_mm256_maskload_ps): Likewise.
18858         (_mm256_maskstore_ps): Likewise.
18859
18860         * config/i386/i386-builtin-types.def: Updated.
18861         (ix86_expand_special_args_builtin): Likewise.
18862
18863         * config/i386/i386.c (bdesc_special_args): Update
18864         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
18865         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
18866         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
18867         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
18868
18869         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
18870         Use <avxpermvecmode> on mask register.
18871         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
18872
18873 2011-01-17  Olivier Hainque  <hainque@adacore.com>
18874             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
18875             Eric Botcazou  <ebotcazou@adacore.com>
18876
18877         PR target/46655
18878         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
18879         if <= USHRT_MAX in 32-bit mode.
18880
18881 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18882
18883         * doc/install.texi (Configuration, Specific): Wrap long
18884         lines in examples.  Allow line wrapping in long options
18885         and URLs where beneficial for PDF output.
18886
18887 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
18888
18889         * config/mips/mips.c (mips_classify_symbol): Don't return
18890         SYMBOL_PC_RELATIVE for nonlocal labels.
18891
18892 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
18893
18894         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
18895
18896 2011-01-15  Jan Hubicka  <jh@suse.cz>
18897
18898         PR tree-optimization/47276
18899         * ipa.c (function_and_variable_visibility): Do not try to mark alias
18900         declarations as needed.
18901
18902 2011-01-15  Martin Jambor  <mjambor@suse.cz>
18903
18904         * common.opt (fdevirtualize): New flag.
18905         * doc/invoke.texi (Option Summary): Document it.
18906         * opts.c (default_options_table): Add devirtualize flag.
18907         * ipa-prop.c (detect_type_change): Return immediately if
18908         devirtualize flag is not set.
18909         (detect_type_change_ssa): Likewise.
18910         (compute_known_type_jump_func): Likewise.
18911         (ipa_analyze_virtual_call_uses): Likewise.
18912
18913 2011-01-14  Martin Jambor  <mjambor@suse.cz>
18914
18915         PR tree-optimization/45934
18916         PR tree-optimization/46302
18917         * ipa-prop.c (type_change_info): New type.
18918         (stmt_may_be_vtbl_ptr_store): New function.
18919         (check_stmt_for_type_change): Likewise.
18920         (detect_type_change): Likewise.
18921         (detect_type_change_ssa): Likewise.
18922         (compute_complex_assign_jump_func): Check for dynamic type change.
18923         (compute_complex_ancestor_jump_func): Likewise.
18924         (compute_known_type_jump_func): Likewise.
18925         (compute_scalar_jump_functions): Likewise.
18926         (ipa_analyze_virtual_call_uses): Likewise.
18927         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
18928
18929 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18930
18931         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
18932         * config/i386/i386.opt (msse5): New Alias.
18933
18934 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18935
18936         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
18937         * config/sparc/linux64.h (CC1_SPEC): Likewise.
18938         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
18939         * config/sparc/sparc.h (CC1_SPEC): Likewise.
18940
18941 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18942
18943         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
18944         -mcpu options.
18945         * config/sparc/linux64.h (CC1_SPEC): Likewise.
18946         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
18947         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
18948         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
18949         Likewise.
18950         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
18951
18952 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18953
18954         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
18955
18956 2011-01-14  Mike Stump  <mikestump@comcast.net>
18957
18958         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
18959         * config/fr30/fr30.md: Likweise
18960         (movsi_push): Likewise.
18961         (movsi_pop): Likewise.
18962         (enter_func): Likewise.
18963         * config/moxie/moxie.md (movsi_push): Likewise.
18964         (movsi_pop): Likewise.
18965
18966 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18967
18968         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
18969         %{no_archive} %{exact_version}.
18970         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
18971         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
18972         %{no_archive} %{exact_version}.
18973         * config/mips/openbsd.h (LINK_SPEC): Likewise.
18974         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
18975         * config/mips/vxworks.h: Likewise.
18976
18977 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18978
18979         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
18980
18981 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18982
18983         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
18984         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
18985
18986 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18987
18988         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
18989         -nodefaultlib.
18990
18991 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
18992
18993         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
18994         for mcpu not cpu.
18995         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
18996         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
18997         not cpu.
18998         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
18999         Don't handle -shlib.
19000
19001 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
19002
19003         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
19004         (CC1_SPEC): Don't handle -profile.
19005
19006 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
19007
19008         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
19009         * config/mips/mips.h (CC1_SPEC): Likewise.
19010
19011 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
19012
19013         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
19014         * config/mips/mips.h (CC1_SPEC): Likewise.
19015
19016 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
19017
19018         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
19019         * config/m32r/linux.h (LINK_SPEC): Likewise.
19020         * config/mips/linux.h (LINK_SPEC): Likewise.
19021         * config/mips/linux64.h (LINK_SPEC): Likewise.
19022         * config/sparc/linux.h (LINK_SPEC): Likewise.
19023         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
19024         LINK_SPEC): Likewise.
19025         * config/xtensa/linux.h (LINK_SPEC): Likewise.
19026
19027 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
19028
19029         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
19030         %{version:-v}.
19031         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
19032
19033 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
19034
19035         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
19036         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
19037
19038 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
19039
19040         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
19041
19042 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19043
19044         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
19045         supports -Bstatic/-Bdynamic.
19046         * configure: Regenerate.
19047
19048 2011-01-14  Jan Hubicka  <jh@suse.cz>
19049             Jack Howarth  <howarth@bromo.med.uc.edu>
19050
19051         PR target/46037
19052         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
19053         when checking debug_info_level. Test write_symbols instead of
19054         debug_hooks->var_location when setting flag_var_tracking_uninit.
19055
19056 2011-01-14  Richard Guenther  <rguenther@suse.de>
19057
19058         PR tree-optimization/47179
19059         * target.def (ref_may_alias_errno): New target hook.
19060         * targhooks.h (default_ref_may_alias_errno): Declare.
19061         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
19062         (default_ref_may_alias_errno): New function.
19063         * target.h (struct ao_ref_s): Declare.
19064         * tree-ssa-alias.c: Include target.h.
19065         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
19066         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
19067         (targhooks.o): Likewise.
19068         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
19069         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
19070
19071 2011-01-14  Richard Guenther  <rguenther@suse.de>
19072
19073         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
19074
19075 2011-01-14  Richard Guenther  <rguenther@suse.de>
19076
19077         PR tree-optimization/47280
19078         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
19079         return CFG changes.
19080         (tree_ssa_forward_propagate_single_use_vars): Deal with
19081         CFG changes from associate_plusminus.
19082
19083 2011-01-14  Richard Guenther  <rguenther@suse.de>
19084
19085         PR middle-end/47281
19086         Revert
19087         2011-01-11  Richard Guenther  <rguenther@suse.de>
19088
19089         PR tree-optimization/46076
19090         * tree-ssa.c (useless_type_conversion_p): Conversions from
19091         unprototyped to empty argument list function types are useless.
19092
19093 2011-01-14  Richard Guenther  <rguenther@suse.de>
19094
19095         PR tree-optimization/47286
19096         * tree-ssa-structalias.c (new_var_info): Register variables are global.
19097
19098 2011-01-14  Martin Jambor  <mjambor@suse.cz>
19099
19100         PR middle-end/46823
19101         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
19102
19103 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
19104
19105         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
19106         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
19107         * config/xtensa/xtensa.c (xtensa_libcall_value,
19108         xtensa_function_value_regno_p): New functions.
19109         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
19110
19111 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
19112
19113         PR c++/47213
19114         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
19115         PE specific hook.
19116         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
19117         New function prototype.
19118         * config/i386/winnt.c (i386_pe_assemble_visibility):
19119         Warn only if attribute was specified by user.
19120
19121 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
19122
19123         PR target/47251
19124         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
19125         floating point.
19126         (floatunsdidf2_fcfidu): Ditto.
19127
19128 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19129
19130         * config/s390/s390.c (print_operand_address): Replace 'error' with
19131         'output_operand_lossage'.
19132         (print_operand): Likewise.
19133
19134 2011-01-13  Jeff Law  <law@redhat.com>
19135
19136         PR rtl-optimization/39077
19137         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
19138         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
19139         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
19140         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
19141         * gcse.c (prune_insertions_deletions): New function.
19142         (compute_pre_data): Use it.
19143
19144 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
19145
19146         PR debug/PR46973
19147         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
19148         static function.
19149         (prune_unused_types_mark): Use it.
19150
19151 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
19152
19153         PR rtl-optimization/45352
19154         * sel-sched.c: Update copyright years.
19155         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
19156         in the advancing loop when we have issued issue_rate insns.
19157
19158 2011-01-12  Richard Henderson  <rth@redhat.com>
19159
19160         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
19161         (TARGET_MD_ASM_CLOBBERS): New.
19162
19163         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
19164         (TARGET_DELEGITIMIZE_ADDRESS): New.
19165
19166         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
19167         (clzsi2, *bsch): New patterns.
19168
19169         * config/mn10300/mn10300.md (INT): New mode iterator.
19170         (*mov<INT>_clr): New pattern, and peep2 to generate it.
19171
19172         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
19173         flag_split_wide_types.
19174
19175         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
19176         (mn10300_trampoline_init): Rewrite without a template, an immediate
19177         load and a direct branch.
19178         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
19179
19180 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
19181
19182         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
19183         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
19184         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
19185         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
19186
19187 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
19188
19189         PR debug/47209
19190         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
19191         of type.
19192
19193 2011-01-12  Jan Hubicka  <jh@suse.cz>
19194
19195         PR driver/47244
19196         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
19197         (PLUGIN_COND_CLOSE): New macro.
19198         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
19199
19200 2011-01-12  Richard Guenther  <rguenther@suse.de>
19201
19202         PR lto/47259
19203         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
19204         register variables in a MEM_REF.
19205
19206 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
19207
19208         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
19209         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
19210         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
19211         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
19212         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
19213         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
19214         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
19215         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
19216         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
19217         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
19218         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
19219         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
19220         * config/gnu-user.h: New.  Copied from linux.h.
19221         (LINUX_TARGET_STARTFILE_SPEC): Rename to
19222         GNU_USER_TARGET_STARTFILE_SPEC.
19223         (LINUX_TARGET_ENDFILE_SPEC): Rename to
19224         GNU_USER_TARGET_ENDFILE_SPEC.
19225         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
19226         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
19227         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
19228         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
19229         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
19230         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
19231         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
19232         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
19233         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
19234         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
19235         * config/arm/linux-eabi.h (CC1_SPEC): Use
19236         GNU_USER_TARGET_CC1_SPEC.
19237         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
19238         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
19239         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
19240         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
19241         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
19242         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
19243         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
19244         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
19245
19246 2011-01-12  Richard Guenther  <rguenther@suse.de>
19247
19248         PR other/46946
19249         * doc/invoke.texi (ffast-math): Document it is turned on
19250         with -Ofast.
19251
19252 2011-01-12  Jan Hubicka  <jh@suse.cz>
19253
19254         PR tree-optimization/47233
19255         * opts.c (common_handle_option): Disable ipa-reference with profile
19256         feedback.
19257
19258 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
19259
19260         * c-parser.c (c_parser_objc_at_property_declaration): Improved
19261         error message.
19262
19263 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
19264
19265         * c-parser.c (c_lex_one_token): Updated and reindented some
19266         comments.  No changes in code.
19267
19268 2011-01-11  Ian Lance Taylor  <iant@google.com>
19269
19270         * godump.c (go_output_var): Don't output the variable if there is
19271         already a type with the same name.
19272
19273 2011-01-11  Ian Lance Taylor  <iant@google.com>
19274
19275         * godump.c (go_format_type): Don't generate float80.
19276
19277 2011-01-11  Richard Henderson  <rth@redhat.com>
19278
19279         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
19280         declaration.  Rewrite for both speed and size.
19281         (mn10300_address_cost_1): Remove.
19282         (mn10300_register_move_cost): New.
19283         (mn10300_memory_move_cost): New.
19284         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
19285         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
19286         extensions, shifts, BSWAP, CLZ.
19287         (mn10300_wide_const_load_uses_clr): Remove.
19288         (TARGET_REGISTER_MOVE_COST): New.
19289         (TARGET_MEMORY_MOVE_COST): New.
19290         * config/mn10300/mn10300-protos.h: Update.
19291         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
19292
19293         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
19294         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
19295         * config/mn10300/mn10300-protos.h: Update.
19296         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
19297         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
19298         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
19299         (*test_int_bitfield, *test_byte_bitfield): Remove.
19300         (*bit_test, *subreg_bit_test): Remove.
19301         * config/mn10300/predicates.md (const_8bit_operand): Remove.
19302
19303         * config/mn10300/constraints.md ("c"): Rename from "A".
19304         ("A", "D"): New constraint letters.
19305         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
19306         (fmssf4, fnmasf4, fnmssf4): Likewise.
19307
19308         * config/mn10300/mn10300.md (isa): New attribute.
19309         (enabled): New attribute.
19310
19311         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
19312         (abssf2, negsf2): Define only for hardware fp.
19313         (sqrtsf2): Reformat.
19314         (addsf3, subsf3, mulsf3): Merge expander and insn.
19315
19316         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
19317         (DEBUGGER_AUTO_OFFSET): Remove.
19318         (DEBUGGER_ARG_OFFSET): Remove.
19319
19320         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
19321         Emit register stores with the same offsets as the hardware.
19322         (mn10300_store_multiple_operation): Don't check that the register
19323         save offsets are monotonic.
19324         * config/mn10300/mn10300-protos.h: Update.
19325
19326         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
19327
19328         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
19329         in terms of the value on the stack, not the MDR register.
19330
19331 2011-01-11  Jan Hubicka  <jh@suse.cz>
19332
19333         PR lto/45721
19334         PR lto/45375
19335         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
19336         (symbol_alias_set_destroy, symbol_alias_set_contains,
19337         propagate_aliases_backward): Declare.
19338         * lto-streamer-out.c (struct sets): New sturcture.
19339         (trivally_defined_alias): New function.
19340         (output_alias_pair_p): Rewrite.
19341         (output_unreferenced_globals): Fix output of alias pairs.
19342         (produce_symtab): Likewise.
19343         * ipa.c (function_and_variable_visibility): Set weak alias destination
19344         as needed in lto.
19345         * varasm.c (symbol_alias_set_t): Remove.
19346         (symbol_alias_set_destroy): Export.
19347         (propagate_aliases_forward, propagate_aliases_backward): New functions
19348         based on ...
19349         (compute_visible_aliases): ... this one; remove.
19350         (trivially_visible_alias): New
19351         (trivially_defined_alias): New.
19352         (remove_unreachable_alias_pairs): Rewrite.
19353         (finish_aliases_1): Reorganize code checking if alias is defined.
19354         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
19355         in LTO mode.
19356
19357 2011-01-11  Richard Guenther  <rguenther@suse.de>
19358
19359         PR tree-optimization/46076
19360         * tree-ssa.c (useless_type_conversion_p): Conversions from
19361         unprototyped to empty argument list function types are useless.
19362
19363 2011-01-11  Richard Guenther  <rguenther@suse.de>
19364
19365         PR middle-end/45235
19366         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
19367         volatile MEMs as MEM_READONLY_P.
19368
19369 2011-01-11  Richard Guenther  <rguenther@suse.de>
19370
19371         PR tree-optimization/47239
19372         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
19373
19374 2011-01-11  Jeff Law  <law@redhat.com>
19375
19376         PR tree-optimization/47086
19377         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
19378         IVs from statements that might throw.
19379
19380 2011-01-10  Jan Hubicka  <jh@suse.cz>
19381
19382         PR lto/45375
19383         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
19384
19385 2011-01-10  Jan Hubicka  <jh@suse.cz>
19386
19387         PR lto/45375
19388         * profile.c (read_profile_edge_counts): Ignore profile inconistency
19389         when correcting profile.
19390
19391 2011-01-10  Jan Hubicka  <jh@suse.cz>
19392
19393         PR lto/46083
19394         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
19395         DECL_FINI_PRIORITY.
19396         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
19397         Restore DECL_FINI_PRIORITY.
19398
19399 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19400
19401         * doc/gimple.texi: Fix quoting of multi-word return values in
19402         @deftypefn statements.  Ensure presence of return value.  Wrap
19403         overlong @deftypefn lines.
19404         (is_gimple_operand, is_gimple_min_invariant_address): Remove
19405         descriptions of removed functions.
19406         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
19407         of multi-word return value in @deftypefn statement.
19408
19409 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19410
19411         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
19412         (Conditional Expressions, Logical Operators)
19413         (Statement and operand traversals): Do not indent smallexample
19414         code.  Fix duplicate function argument in example.
19415
19416 2011-01-10  Jeff Law  <law@redhat.com>
19417
19418         PR tree-optimization/47141
19419         * ipa-split.c (split_function): Handle case where we are
19420         returning a value and the return block has a virtual operand phi.
19421
19422 2011-01-10  Jan Hubicka  <jh@suse.cz>
19423
19424         PR tree-optimization/47234
19425         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
19426         (pass_feedback_split_functions): Declare.
19427         * passes.c (init_optimization_passes): Add ipa-split as subpass of
19428         tree-profile.
19429         * ipa-split.c (gate_split_functions): Update comments; disable
19430         split-functions for profile_arc_flag and branch_probabilities.
19431         (gate_feedback_split_functions): New function.
19432         (execute_feedback_split_functions): New function.
19433         (pass_feedback_split_functions): New global var.
19434
19435 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
19436
19437         PR lto/46760
19438         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
19439         calling gimple_call_set_cannot_inline.
19440
19441 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
19442
19443         * config/darwin-sections.def: Remove unused section.
19444
19445 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
19446
19447         PR c++/47218
19448         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
19449
19450 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
19451
19452         PR objc/47232
19453         * c-parser.c (c_parser_declaration_or_fndef): Improved
19454         error message.
19455
19456 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
19457
19458         * config/i386/winnt.c (i386_pe_start_function): Make sure
19459         to switch back to function's section.
19460
19461 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
19462
19463         PR gcc/46902
19464         PR testsuite/46912
19465         * plugin.c: Move include of dlfcn.h from here...
19466         * system.h: ... to here.
19467
19468 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19469
19470         * doc/cpp.texi (C++ Named Operators): Fix markup for header
19471         file name.
19472         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
19473         two extra empty pages in PDF output.
19474
19475 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
19476
19477         PR objc/47078
19478         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
19479         for error recovery purposes behave as if it was not specified so
19480         that the default type is usd.
19481
19482 2011-01-07  Jan Hubicka  <jh@suse.cz>
19483
19484         PR tree-optmization/46469
19485         * ipa.c (function_and_variable_visibility): Clear needed flags on
19486         nodes with external decls; handle weakrefs merging correctly.
19487
19488 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
19489
19490         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
19491         not false.
19492
19493 2011-01-07  Jan Hubicka  <jh@suse.cz>
19494
19495         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
19496         and no longer claim that gold is required for linker plugin.
19497         * configure: Regenerate.
19498         * gcc.c (PLUGIN_COND): New macro.
19499         (LINK_COMMAND_SPEC): Use it.
19500         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
19501         * config.in (HAVE_LTO_PLUGIN): New.
19502         * configure.ac (--with-lto-plugin): New parameter; autodetect
19503         HAVE_LTO_PLUGIN.
19504
19505 2011-01-07  Jan Hubicka  <jh@suse.cz>
19506
19507         PR tree-optimization/46367
19508         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
19509         when we can update original.
19510         (cgraph_mark_inline_edge): Sanity check.
19511         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
19512
19513 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19514
19515         * config/spu/spu.h (ASM_COMMENT_START): Define.
19516
19517 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
19518
19519         PR driver/42445
19520         * gcc.c (%>S): New.
19521         (SWITCH_KEEP_FOR_GCC): Likewise.
19522         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
19523         (do_spec_1): Handle "%>".
19524
19525         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
19526
19527 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
19528
19529         PR target/47201
19530         * config/i386/i386.c (ix86_delegitimize_address): If
19531         simplify_gen_subreg fails, return orig_x.
19532
19533         PR bootstrap/47187
19534         * value-prof.c (gimple_stringop_fixed_value): Handle
19535         lhs of the call properly.
19536
19537 2011-01-07  Jan Hubicka  <jh@suse.cz>
19538
19539         PR lto/45375
19540         * lto-opt.c (lto_reissue_options): Set flag_shlib.
19541
19542 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
19543
19544         * target.def (function_switched_text_sections): New hook.
19545         * doc/tm.texi: Regenerated.
19546         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
19547         * final.c (default_function_switched_text_sections): New.
19548         (final_scan_insn): Call function_switched_text_sections when a
19549         mid-function section change occurs.
19550         * output.h (default_function_switched_text_sections): Declare.
19551         * config/darwin-protos.h (darwin_function_switched_text_sections):
19552         Likewise.
19553         * config/darwin.c (darwin_function_switched_text_sections): New.
19554         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
19555
19556 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
19557
19558         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
19559         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
19560         the secondary code fragment when outputting for DWARF == 2.
19561
19562 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
19563
19564         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
19565         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
19566         Remove.
19567         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
19568         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
19569
19570 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
19571
19572         PR debug/46704
19573         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
19574         when it is not empty.
19575
19576 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
19577
19578         Bobcat Enablement
19579         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
19580         (case ${target}): Add btver1.
19581         * config/i386/driver-i386.c (host_detect_local_cpu): Let
19582         -march=native recognize btver1 processors.
19583         * config/i386/i386-c.c (ix86_target_macros_internal): Add
19584         btver1 def_and_undef
19585         * config/i386/i386.c (struct processor_costs btver1_cost): New
19586         btver1 cost table.
19587         (m_BTVER1): New definition.
19588         (m_AMD_MULTIPLE): Includes m_BTVER1.
19589         (initial_ix86_tune_features): Add btver1 tune.
19590         (processor_target_table): Add btver1 entry.
19591         (static const char *const cpu_names): Add btver1 entry.
19592         (software_prefetching_beneficial_p): Add btver1.
19593         (ix86_option_override_internal): Add btver1 instruction sets.
19594         (ix86_issue_rate): Add btver1.
19595         (ix86_adjust_cost): Add btver1.
19596         * config/i386/i386.h (TARGET_BTVER1): New definition.
19597         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
19598         (enum processor_type): Add PROCESSOR_BTVER1.
19599         * config/i386/i386.md (define_attr "cpu"): Add btver1.
19600
19601 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19602
19603         PR target/43309
19604         * config/i386/i386.c (legitimize_tls_address)
19605         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
19606         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
19607         (tls_initial_exec_64_sun): New pattern.
19608
19609 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
19610
19611         * doc/invoke.texi (Overall Options): Improve wording and markup
19612         of the description of -wrapper.
19613
19614 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
19615
19616         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
19617         rdynamic, threads): New Driver options.
19618
19619 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19620
19621         PR target/38118
19622         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
19623         if coming from .tdata.
19624         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
19625
19626 2011-01-06  Jan Hubicka  <jh@suse.cz>
19627
19628         PR lto/47188
19629         * collect2.c (main): Do not enable LTOmode when plugin is active.
19630
19631 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19632
19633         PR other/45915
19634         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
19635         --version output if supported.
19636         * configure: Regenerate.
19637
19638 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
19639
19640         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
19641         Driver options.
19642
19643 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
19644
19645         PR c/47150
19646         * c-convert.c (convert): When converting a complex expression
19647         other than COMPLEX_EXPR to a different complex type, ensure
19648         c_save_expr is called instead of save_expr, unless in_late_binary_op.
19649         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
19650         when converting COMPLEX_TYPE.
19651
19652 2011-01-06  Ira Rosen  <irar@il.ibm.com>
19653
19654         PR tree-optimization/47139
19655         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
19656         only the last reduction value is used outside the loop.  Update
19657         documentation.
19658
19659 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
19660
19661         * config/rtems.opt: New.
19662         * config.gcc (*-*-rtems*): Use rtems.opt.
19663
19664 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
19665
19666         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
19667         processors do not support 3DNow instructions.
19668
19669 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19670
19671         * config/spu/spu.c (spu_option_override): Set parameter
19672         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
19673
19674 2011-01-05  Jan Hubicka  <jh@suse.cz>
19675
19676         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
19677         at the command line.
19678
19679 2011-01-05  Martin Jambor  <mjambor@suse.cz>
19680
19681         PR lto/47162
19682         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
19683         deltas on streamed outgoing edges.
19684         (output_node_opt_summary): Output info for outgoing edges only when
19685         the node is in new parameter set.
19686         (output_cgraph_opt_summary): New parameter set, passed to the two
19687         aforementioned functions.  Update its forward declaration and its
19688         callee too.
19689
19690 2011-01-05  Tom Tromey  <tromey@redhat.com>
19691
19692         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
19693         operator to c_finish_omp_atomic.
19694         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
19695         (build_unary_op): Update.
19696         (build_modify_expr): Update.
19697         (build_asm_expr): Update.
19698
19699 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19700
19701         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
19702         newly inserted insns.
19703         (pad_bb): Likewise.
19704         (spu_emit_branch_hint): Likewise.
19705         (insert_hbrp_for_ilb_runout): Likewise.
19706         (spu_machine_dependent_reorg): Call df_finish_pass after
19707         schedule_insns returns.
19708
19709 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19710
19711         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
19712
19713 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
19714
19715         PR tree-optimization/47005
19716         * tree-sra.c (struct access): Add 'non_addressable' bit.
19717         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
19718         (decide_one_param_reduction): Return 0 if the parameter is passed by
19719         reference and one of the accesses in the group is non_addressable.
19720
19721 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
19722
19723         PR tree-optimization/47056
19724         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
19725         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
19726         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
19727
19728 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
19729
19730         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
19731         initializer.  Skip view conversions from aggregate types.
19732
19733 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
19734
19735         PR bootstrap/47055
19736         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
19737
19738 2011-01-04  Philipp Thomas  <pth@suse.de>
19739
19740         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
19741         obvious typo.
19742
19743 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19744
19745         * function.c (thread_prologue_and_epilogue_insns): Do not crash
19746         on empty epilogue sequences.
19747
19748 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
19749
19750         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
19751         non-static): New Driver options.
19752
19753 2011-01-04  Jie Zhang  <jie@codesourcery.com>
19754
19755         PR driver/47137
19756         * gcc.c (default_compilers[]): Set combinable field to 0
19757         for all assembly languages.
19758
19759 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
19760
19761         * config/mips/loongson3a.md: New file.
19762         * config/mips/mips.md: Include loongson3a.md.
19763         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
19764         TUNE_LOONGSON_3A.
19765
19766 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
19767
19768         PR middle-end/47017
19769         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
19770         instead of convert_memory_address_addr_space on the base expression.
19771
19772 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19773
19774         * config/spu/spu.c (spu_option_override): Update error text
19775         for bad -march= / -mtune= values.
19776
19777 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19778
19779         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
19780         if branch-hint optimization will be performed.
19781
19782 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
19783
19784         PR tree-optimization/47148
19785         * ipa-split.c (split_function): Convert arguments to
19786         DECL_ARG_TYPE if possible.
19787
19788         PR tree-optimization/47155
19789         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
19790         when computing uns.
19791
19792         PR rtl-optimization/47157
19793         * combine.c (try_combine): If undobuf.other_insn becomes
19794         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
19795         and set *new_direct_jump_p too.
19796
19797 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
19798
19799         PR tree-optimization/47021
19800         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
19801
19802 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
19803
19804         * gcc.c (process_command): Update copyright notice dates.
19805         * gcov.c (print_version): Likewise.
19806         * gcov-dump.c (print_version): Likewise.
19807         * mips-tfile.c (main): Likewise.
19808         * mips-tdump.c (main): Likewise.
19809
19810 2011-01-03  Martin Jambor  <mjambor@suse.cz>
19811
19812         PR tree-optimization/46801
19813         * tree-sra.c (type_internals_preclude_sra_p): Check whether
19814         aggregate fields start at byte boundary instead of the bit-field flag.
19815
19816 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
19817
19818         PR driver/47137
19819         * gcc.c (main): Revert revision 168407.
19820
19821 2011-01-03  Martin Jambor  <mjambor@suse.cz>
19822
19823         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
19824
19825 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19826
19827         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
19828         vector optab to expand vector/scalar shift, update gimple to vector.
19829
19830 2011-01-03  Martin Jambor  <mjambor@suse.cz>
19831
19832         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
19833         a thunk.
19834
19835 2011-01-03  Martin Jambor  <mjambor@suse.cz>
19836
19837         PR tree-optimization/46984
19838         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
19839         HOST_WIDE_INT.
19840         (cgraph_create_indirect_edge): Fixed line length.
19841         (cgraph_indirect_call_info): Declare.
19842         (cgraph_make_edge_direct) Update declaration.
19843         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
19844         (cgraph_create_indirect_edge): Use it.
19845         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
19846         callees.
19847         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
19848         the new thunk_delta representation.
19849         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
19850         HOST_WIDE_INT.
19851         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
19852         (ipa_read_indirect_edge_info): Likewise.
19853         * lto-cgraph.c (output_edge_opt_summary): New function.
19854         (output_node_opt_summary): Call it on all outgoing edges.
19855         (input_edge_opt_summary): New function.
19856         (input_node_opt_summary): Call it on all outgoing edges.
19857
19858 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
19859
19860         PR driver/47137
19861         * gcc.c (main): Don't check have_o when settting combine_inputs.
19862
19863 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
19864
19865         * regrename.c: Add general comment describing the pass.
19866         (struct du_head): Remove 'length' field.
19867         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
19868         (regrename_optimize): Do not sort chains.  Rework comments, add others.
19869         Force renaming to the preferred class (if any) in the first pass and do
19870         not consider registers that belong to it in the second pass.
19871         (create_new_chain): Do not set 'length' field.
19872         (scan_rtx_reg): Likewise.
19873
19874 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
19875
19876         PR tree-optimization/47140
19877         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
19878         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
19879         to bit_value_binop.
19880
19881         PR rtl-optimization/47028
19882         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
19883         parm_birth_insn instead of at the beginning of first bb.
19884
19885 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
19886
19887         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
19888         Remove the word "see" before "@pxref".
19889         * doc/rtl.texi: Remove the word "see" before "@pxref".
19890
19891 2011-01-01  Jan Hubicka  <jh@suse.cz>
19892
19893         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
19894         memory.
19895
19896 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
19897
19898         PR target/38662
19899         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
19900
19901 \f
19902 Copyright (C) 2011 Free Software Foundation, Inc.
19903
19904 Copying and distribution of this file, with or without modification,
19905 are permitted in any medium without royalty provided the copyright
19906 notice and this notice are preserved.