OSDN Git Service

cd02017211ecb792333609f22e6729cc2d9925d8
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
2
3         * haifa-sched.c (struct sched_block_state): New.
4         (schedule_block): Move some local variables into such a structure.
5
6 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7
8         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
9         * config/i386/t-crtpc: Remove.
10         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
11         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
12         tmake_file.
13         (x86_64-*-darwin*): Likewise.
14         (i[34567]86-*-linux*): Likewise.
15         (x86_64-*-linux*): Likewise.
16
17         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
18         Handle -mpc32, -mpc64, -mpc80.
19
20 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21
22         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
23         * config/alpha/t-crtfm: Remove.
24         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
25         * config/i386/t-crtfm: Remove.
26         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
27         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
28         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
29         * config/sparc/t-crtfm: Remove.
30
31         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
32         (alpha*-*-freebsd*): Likewise.
33         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
34         (x86_64-*-darwin*): Likewise.
35         (i[34567]86-*-linux*): Likewise.
36         (x86_64-*-linux*): Likewise.
37         (x86_64-*-mingw*): Likewise.
38         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
39         (ia64*-*-freebsd*): Likewise.
40         (ia64*-*-linux*): Likewise.
41         (mips64*-*-linux*): Likewise.
42         (mips*-*-linux*): Likewise.
43         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
44         (sparc64-*-linux*): Likewise.
45         (sparc64-*-freebsd*): Likewise.
46
47 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
48
49         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
50         * config/darwin-crt3.c: Move to ../libgcc/config.
51         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
52         ($(T)crt3$(objext)): Remove.
53         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
54         ($(T)crt2$(objext)): Remove.
55         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
56         (powerpc64-*-darwin*): Likewise.
57
58 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
59
60         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode
61         != Pmode.
62
63         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
64         (addsi_1_zext): This.
65
66 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
67
68         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
69         * doc/tm.texi: Regenerate.
70         * target.def (mergeable_rodata_prefix: New defhookpod.
71         * varasm.c (mergeable_string_section, mergeable_constant_section):
72         Use it. Allocate name with alloca.
73
74 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
75
76         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
77
78 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
79
80         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
81         overlap check.
82
83 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
84
85         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
86         (count_type_elements): Delete.
87         (complete_ctor_at_level_p): Declare.
88         * expr.c (flexible_array_member_p): New function, split out from...
89         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
90         parameter with for_ctor_p.  When for_ctor_p is true, return the
91         number of elements that should appear in the top-level constructor,
92         otherwise return an estimate of the number of scalars.
93         (categorize_ctor_elements): Replace p_must_clear with p_complete.
94         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
95         (complete_ctor_at_level_p): New function, borrowing union logic
96         from old categorize_ctor_elements_1.
97         (mostly_zeros_p): Return true if the constructor is not complete.
98         (all_zeros_p): Update call to categorize_ctor_elements.
99         * gimplify.c (gimplify_init_constructor): Update call to
100         categorize_ctor_elements.  Don't call count_type_elements.
101         Unconditionally prevent clearing for variable-sized types,
102         otherwise rely on categorize_ctor_elements to detect
103         incomplete initializers.
104
105 2011-07-13  Richard Guenther  <rguenther@suse.de>
106
107         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
108         the final type is integral.
109
110 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
111
112         * sched-int.h (struct _dep): Add member cost.
113         (DEP_COST, UNKNOWN_DEP_COST): New macros.
114         * sched-deps.c (init_dep_1): Initialize DEP_COST.
115         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
116         (sched_change_pattern): Reset it for dependent insns.
117
118 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
119
120         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
121         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
122         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
123         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
124         (CRT0_S, MCRT0_S): Remove.
125         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
126         Remove.
127         (s-crt0): Remove.
128         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
129
130 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
131
132         * cse.c (insert_with_costs): Put semi-colon after empty loop body
133         on the next line.
134         * emit-rtl.c (push_to_sequence): Likewise.
135         * haifa-sched.c (max_issue): Likewise.
136         * matrix-reorg.c (add_allocation_site): Likewise.
137         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
138         * reload.c (alternative_allows_const_pool_ref): Likewise.
139         * sched-rgn.c (rgn_add_block): Likewise.
140         (rgn_fix_recovery_cfg): Likewise.
141         * tree.c (attribute_list_contained): Likewise.
142
143 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
144
145         * config/i386/i386.c: Tidy processor feature bitmasks.
146         (m_P4_NOCONA): New.
147
148 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
149
150         PR rtl-opt/49474
151         * cprop.c (find_implicit_sets): Correct the condition.
152
153 2011-07-12  Richard Henderson  <rth@redhat.com>
154
155         PR target/49713
156         * dwarf2out.h (dwarf_frame_regnum): Remove.
157         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
158         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
159         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
160         (execute_dwarf2_frame): Initialize them.
161         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
162         users of the macros with the variables.
163         (expand_builtin_dwarf_sp_column): Revert last change.
164         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
165         result of DWARF_FRAME_REGNUM into a local variable.
166
167 2011-07-12  Richard Henderson  <rth@redhat.com>
168
169         PR target/49714
170         * config/i386/i386.c (x86_output_mi_thunk): Use
171         machopic_indirect_call_target instead of machopic_indirection_name
172         directly.
173
174 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
175             Eric Botcazou  <ebotcazou@adacore.com>
176
177         * prefix.h: Wrap up in extern "C" block.
178
179 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
180
181         AMD bdver2 Enablement
182         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
183         (case ${target}): Add bdver2.
184         * config/i386/driver-i386.c (host_detect_local_cpu): Let
185         -march=native recognize bdver2 processors.
186         * config/i386/i386-c.c (ix86_target_macros_internal): Add
187         bdver2 def_and_undef
188         * config/i386/i386.c (struct processor_costs bdver2_cost): New
189         bdver2 cost table.
190         (m_BDVER2): New definition.
191         (m_AMD_MULTIPLE): Includes m_BDVER2.
192         (initial_ix86_tune_features): Add bdver2 tuning.
193         (processor_target_table): Add bdver2 entry.
194         (static const char *const cpu_names): Add bdver2 entry.
195         (ix86_option_override_internal): Add bdver2 instruction sets.
196         (ix86_issue_rate): Add bdver2.
197         (ix86_adjust_cost): Add bdver2.
198         (has_dispatch): Add bdver2.
199         * config/i386/i386.h (TARGET_BDVER2): New definition.
200         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
201         (enum processor_type): Add PROCESSOR_BDVER2.
202         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
203         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
204         description.
205
206 2011-07-12  Richard Henderson  <rth@redhat.com>
207
208         PR target/49714
209         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
210         destination address in memory on some paths.
211
212 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
213
214         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
215         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
216         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
217         * function.c (locate_and_pad_parm): Take it into account.
218         * target.def (function_arg_round_boundary): New hook.
219         * targhooks.c (default_function_arg_round_boundary): New function.
220         * targhooks.h (default_function_arg_round_boundary): Declare.
221         * doc/tm.texi: Regenerate.
222
223 2011-07-12  Richard Guenther  <rguenther@suse.de>
224
225         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
226         Do not perform no-op changes.
227
228 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
229
230         * config/arm/predicates.md (neon_struct_operand): Make a normal
231         predicate.
232         (neon_struct_or_register_operand): New predicate.
233         * config/arm/neon.md (movmisalign<mode>): Replace predicates
234         with neon_struct_or_register_operand.
235         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
236         neon_struct_operand instead of memory_operand.
237
238 2011-07-12  Martin Jambor  <mjambor@suse.cz>
239
240         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
241         * cgraph.c (cgraph_get_node_or_alias): Removed.
242         (change_decl_assembler_name): Changed all calls to
243         cgraph_get_node_or_alias to a call to cgraph_get_node.
244         (cgraph_make_decl_local): Likewise.
245         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
246         * varasm.c (default_binds_local_p_1): Likewise.
247         (decl_binds_to_current_def_p): Likewise.
248
249 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
250
251         PR tree-optimization/49712
252         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
253
254 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
255
256         * genautomata.c (add_arc): Return void.  All callers changed.
257         (make_automaton): Remove dead code.
258
259 2011-07-11  Richard Henderson  <rth@redhat.com>
260
261         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
262         (DW_FRAME_POINTER_REGNUM): New.
263         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
264         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
265         (dwf_regno): New.
266         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
267         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
268         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
269         Use it.
270         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
271         * dwarf2out.h (dwarf_frame_regnum): New.
272         (struct cfa_loc): Document the domain of the reg member.
273
274 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
275
276         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
277         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
278
279 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
280
281         PR debug/49676
282         * dwarf2out.c (int_shift_loc_descriptor): New function.
283         (int_loc_descriptor): If shorter, emit i as
284         (i >> shift), shift, DW_OP_shl for suitable shift value.
285         Similarly, try to optimize large negative values using
286         DW_OP_neg of a positive value if shorter.
287         (size_of_int_shift_loc_descriptor): New function.
288         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
289         changes.
290         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
291         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
292         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
293         is shorter.
294         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
295         addend as added DW_OP_plus if it is shorter.
296
297 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
298
299         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
300         (DTORS_SECTION_ASM_OP): Define.
301
302 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
303
304         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
305         * config/t-dfprules: Move to ../libgcc/config.
306         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
307         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
308         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
309         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
310         Likewise.
311         (i[34567]86-*-cygwin*): Likewise.
312         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
313         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
314         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
315         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
316         D64PBIT_FUNCS, D128PBIT_FUNCS.
317
318 2011-07-11  Richard Guenther  <rguenther@suse.de>
319
320         * tree-vrp.c (simplify_conversion_using_ranges): Manually
321         translate the source value-range through the conversion chain.
322
323 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
324
325         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
326
327 2011-07-11  Arthur Loiret  <aloiret@debian.org>
328
329         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
330         a bi-arch compiler defaulting to 31-bit. In this case:
331         (tmake_file): Add s390/t-linux64.
332         * doc/install.texi: Add s390-linux to the list of targets supporting
333         --enable-targets=all.
334
335 2011-07-11  Arthur Loiret  <aloiret@debian.org>
336             Matthias Klose <doko@debian.org>
337
338         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
339         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
340         (tm_file): Add mips/linux64.h.
341         (tmake_file): Add mips/t-linux64.
342         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
343         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
344         instead of hardcoded mabi=n32.
345         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
346         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
347         convention.
348
349 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
350
351         * passes.c (init_optimization_passes): Add invariant motion pass
352         after induction variable optimization.
353
354 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
355
356         PR target/39633
357         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
358         offsets 1..5 set cc0 in a usable way.
359
360 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
361
362         * tree.h (call_expr_arg): Remove.
363         (call_expr_argp): Likewise.
364
365 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
366
367         * config/sparc/sparc.md (save_register_window_1): Rename to...
368         (window_save): ...this.
369         * config/sparc/sparc.c (emit_save_register_window): Rename to...
370         (emit_window_save): ...this.
371         (sparc_expand_prologue): Adjust to above renaming.
372
373 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
374
375         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
376         of movabs for x32.
377
378 2011-07-10  Richard Henderson  <rth@redhat.com>
379
380         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
381         run final, instead of emitting text directly.
382
383 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
384
385         * config/i386/i386.c (ix86_option_override_internal): Turn on
386         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
387         small PIC models for TARGET_X32.
388
389 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
390
391         PR target/49684
392         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
393         $(LIBGCC2_CFLAGS).
394
395         PR bootstrap/49680
396         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
397         stray notes and debug insns by using prev_nonnote_nondebug_insn
398         instead of PREV_INSN.
399
400 2011-07-09  Richard Henderson  <rth@redhat.com>
401
402         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
403         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
404         * dwarf2out.c: ... here.
405         (output_all_cfis): Remove.
406         (dwarf2out_switch_text_section): Use output_cfis directly.
407         (size_of_locs): Export.
408         (output_loc_sequence, output_loc_sequence_raw): Export.
409         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
410         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
411         output_cfa_loc_raw): Move to ...
412         * dwarfcfi.c: ... here.
413         * dwarf2out.h: Update decls.
414
415 2011-07-09  Richard Henderson  <rth@redhat.com>
416
417         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
418         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
419         * dwarf2cfi.c: ... here.
420         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
421         (DWARF_ROUND, DWARF_CIE_ID): Remove.
422         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
423         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
424         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
425
426 2011-07-09  Richard Henderson  <rth@redhat.com>
427
428         * dwarf2cfi.c (cie_return_save): New.
429         (queue_reg_save): Use compare_reg_or_pc.
430         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
431         (dwarf2out_frame_debug_expr): Likewise.
432         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
433         (initial_return_save): Likewise.
434         (execute_dwarf2_frame): Save and restore initial return save from
435         the cie to the fde.
436         * config/mips/mips.c (mips_frame_set): Remove special case for
437         DWARF_FRAME_RETURN_COLUMN.
438
439 2011-07-09  Richard Henderson  <rth@redhat.com>
440
441         * dwarf2cfi.c (lookup_cfa): Remove.
442         (execute_dwarf2_frame): Assert queues are empty on entry.
443         Setup initial cfa directly, not via lookup_cfa.
444         Don't clear args_size state here.
445
446 2011-07-09  Richard Henderson  <rth@redhat.com>
447
448         * dwarf2cfi.c (add_cfi_vec): New.
449         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
450         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
451         (execute_dwarf2_frame): Set add_cfi_vec.
452
453 2011-07-09  Richard Henderson  <rth@redhat.com>
454
455         * defaults.h (ASM_COMMENT_START): Move here...
456         * dwarf2asm.c: ... from here.
457         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
458         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
459         * varasm.c: Likewise.
460
461 2011-07-09  Richard Henderson  <rth@redhat.com>
462
463         PR debug/49686
464         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
465         (create_cfi_notes): ... do it here instead.
466
467 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
468
469         PR debug/49676
470         * dwarf2out.c (size_of_int_loc_descriptor): New function.
471         (address_of_int_loc_descriptor): Use it.
472         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
473
474 2011-07-09  Richard Henderson  <rth@redhat.com>
475
476         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
477         (prologue, epilogue): New.
478         (return, *rts): New.
479         (blockage, setd, seti): New.
480         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
481         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
482         (pdp11_saved_regno): New.
483         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
484         generate rtl instead of text.
485         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
486         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
487         * config/pdp11/pdp11-protos.h: Update.
488
489 2011-07-09  Richard Henderson  <rth@redhat.com>
490
491         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
492         try to insert an rtl prologue here.
493         (rs6000_output_function_epilogue): Similarly.
494         * config/rs6000/rs6000.md (prologue): Emit a barrier to
495         satisfy !TARGET_SCHED_PROLOG.
496         (epilogue, sibcall_epilogue): Likewise.
497
498 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
499
500         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
501         (FP_REG_P): Delete.
502         (IN_OR_GLOBAL_P): Likewise.
503
504 2011-07-08  Jason Merrill  <jason@redhat.com>
505
506         PR c++/45437
507         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
508         compound assignment.
509
510         * cgraph.c (cgraph_add_to_same_comdat_group): New.
511         * cgraph.h: Declare it.
512         * ipa.c (function_and_variable_visibility): Make sure thunks
513         have the right visibility.
514
515 2011-07-08  Richard Henderson  <rth@redhat.com>
516
517         PR bootstrap/49680
518         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
519         any tablejump vector.
520
521         PR bootstrap/49680
522         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
523         end of the prologue.
524
525 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
526
527         PR target/49621
528         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
529         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
530         * config/rs6000/vector.md (vector_select_<mode>,
531         vector_select_<mode>_uns): Change second operand of NE to
532         CONST0_RTX (<MODE>mode) instead of const0_rtx.
533         * config/rs6000/altivec.md (*altivec_vsel<mode>,
534         *altivec_vsel<mode>_uns): Expect second operand of NE to be
535         zero_constant of the corresponding vector mode.
536         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
537         Likewise.
538
539 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
540
541         * graphite-dependences.c (build_alias_set_powerset): Remove
542         continue from loop, add one more assert.
543
544 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
545
546         PR target/46779
547         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
548         In particular, allow 8-bit values in r28 and r29.
549         (avr_hard_regno_scratch_ok): Disallow any register that might be
550         part of the frame pointer.
551         (avr_hard_regno_rename_ok): Same.
552         (avr_legitimate_address_p): Don't allow SUBREGs.
553
554 2011-07-08  Julian Brown  <julian@codesourcery.com>
555
556         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
557         big-endian mode.
558         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
559         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
560         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
561         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
562         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
563         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
564         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
565         registers in big-endian mode.
566
567 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
568
569         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
570         in terms of another.
571         (write_attr_value): Write a cast if necessary.
572
573         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
574         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
575         (REG_WORDS_BIG_ENDIAN): Document.
576         * doc/tm.texi: Regenerate.
577         * reload.c (operands_match_p): Take it into account.
578         (reload_adjust_reg_for_mode): Likewise.
579         * rtlanal.c (subreg_get_info): Likewise.
580
581 2011-07-08  Richard Guenther  <rguenther@suse.de>
582
583         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
584         folding.
585
586 2011-07-08  Kai Tietz  <ktietz@redhat.com>
587
588         * fold-const.c (fold_truth_andor): Factored out truth_andor
589         label from fold_binary as function.
590         (fold_binary_loc): Replace truth_andor lable
591         by function fold_truth_andor.
592
593 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
594
595         PR middle-end/49519
596         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
597         check if address is stored in register. If so - give up.
598         (check_sibcall_argument_overlap_1): Do not perform check of
599         overlapping when it is call to address.
600
601 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
602
603         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
604         of magic '31'.
605
606 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
607
608         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
609         GET_MODE_BITSIZE where appropriate.
610         (widen_leading, expand_parity, expand_ctz, expand_ffs,
611         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
612         expand_float, expand_fix): Likewise.
613         * expr.c (convert_move, convert_modes, expand_expr_real_2,
614         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
615         * stor-layout.c (get_mode_bounds): Likewise.
616         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
617         Likewise.
618         * convert.c (convert_to_integer): Likewise.
619         * expmed.c (expand_shift_1): Likewise.
620
621         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
622         a bitsize.
623
624         * optabs.c (expand_binop): Tighten conditions for doubleword
625         expansions.
626         (widen_bswap): Assert that mode bitsize and precision are the same.
627         * stor-layout.c (get_best_mode): Skip modes that have lower
628         precision than bitsize.
629         * recog.c (simplify_while_replacing): Assert that bitsize and
630         precision are the same.
631
632 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
633
634         * Makefile.in (LIBGCOV): Remove.
635         (libgcc.mvars): Remove LIBGCOV.
636         * libgov.c: Move to ../libgcc.
637
638 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
639
640         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
641
642 2011-07-08  Martin Jambor  <mjambor@suse.cz>
643
644         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
645         is too big for total scalarization.
646
647 2011-07-07  Richard Henderson  <rth@redhat.com>
648
649         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
650         (DBX_DEBUGGING_INFO): Undef.
651
652 2011-07-07  Richard Henderson  <rth@redhat.com>
653
654         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
655         Handle some opcodes specially for debugging.
656         * print-rtl.c: Include dwarf2out.h
657         (print_rtx): Handle NOTE_INSN_CFI.
658         * Makefile.in (print-rtl.o): Update.
659
660 2011-07-07  Richard Henderson  <rth@redhat.com>
661
662         * tree-pass.h (pass_dwarf2_frame): Declare.
663         * passes.c (init_optimization_passes): Add it.
664         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
665         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
666         make static, do not call add_cfis_to_fde.
667         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
668         dwarf2out_frame_init): Merge into...
669         (execute_dwarf2_frame): ... here.  New function.
670         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
671         saved_do_cfi_asm to a tri-state variable.
672         (gate_dwarf2_frame, pass_dwarf2_frame): New.
673         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
674         if it has yet to be done.  Don't call dwarf2cfi_function_init.
675         * dwarf2out.h, debug.h: Update decls.
676         * final.c (final_start_function): Don't call
677         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
678         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
679         * toplev.c (lang_dependent_init): Likewise.
680
681 2011-07-07  Richard Henderson  <rth@redhat.com>
682
683         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
684         FDE_TABLE_INCREMENT): Replace with...
685         (fde_vec): ... this, a new vector.
686         (current_fde): Remove.  Replace all users with cfun->fde.
687         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
688         (size_of_aranges, dwarf2out_finish): Likewise.
689         (dwarf2out_alloc_current_fde): Break out from ...
690         (dwarf2out_begin_prologue): ... here.
691         (dwarf2out_frame_init): Remove.
692         * dwarf2cfi.c: Update all users of current_fde.
693         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
694         * dwarf2out.h: Update decls.
695         (dw_fde_node): Add fde_index member.
696         * function.h (struct function): Add fde member.
697
698 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
699             Richard Henderson  <rth@redhat.com>
700
701         * dwarf2cfi.c (add_cfi): Remove.
702         (dwarf2out_cfi_label): Remove force argument.  Only generate the
703         label name.
704         (add_fde_cfi): Simplify the different code paths.
705         (add_cie_cfi): New.
706         (old_cfa, old_cfa_remember): New.
707         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
708         (last_reg_save_label): Remove.
709         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
710         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
711         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
712         dwarf2out_frame_debug_cfa_expression,
713         dwarf2out_frame_debug_cfa_restore,
714         dwarf2out_frame_debug_cfa_window_save,
715         dwarf2out_frame_debug_expr): Remove label parameter.
716         (cfi_label_required_p, add_cfis_to_fde): New.
717         (dwarf2out_frame_debug_after_prologue): New.
718         (dwarf2cfi_frame_init): Initialize old_cfa.
719         (dwarf2out_frame_debug_restore_state): Likewise.
720         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
721         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
722         * final.c (final_start_function): Call
723         dwarf2out_frame_debug_after_prologue.
724
725 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
726             Richard Henderson  <rth@redhat.com>
727
728         * dwarf2cfi.c (cfi_insn): New.
729         (dwarf2out_cfi_label): Don't emit cfi label here.
730         (add_fde_cfi): Create a NOTE_INSN_CFI.
731         (dwarf2out_frame_debug): Setup cfi_insn.
732         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
733         (dwarf2out_cfi_begin_epilogue): Make static.
734         (dwarf2out_frame_debug_restore_state): Make static.
735         * dwarf2out.c (output_cfi_directive): Make static.
736         (dwarf2out_emit_cfi): New.
737         * dwarf2out.h: Update.
738         * final.c (final): Remove CFI notes.
739         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
740         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
741         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
742         * insn-notes.def (NOTE_INSN_CFI): New.
743         (NOTE_INSN_CFI_LABEL): New.
744         * rtl.h (union rtunion_def): Add rt_cfi member.
745         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
746
747 2011-07-07  Richard Henderson  <rth@redhat.com>
748
749         * dwarf2cfi.c: New file.
750         * Makefile.in (OBJS): Add it.
751         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
752         * gengtype.c (open_base_files): Include dwarf2out.h.
753         * coretypes.h (enum var_init_status): Move from ...
754         * rtl.h: ... here.
755         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
756         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
757         expand_builtin_dwarf_sp_column, init_return_column_size,
758         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
759         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
760         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
761         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
762         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
763         compute_barrier_args_size, dwarf2out_args_size,
764         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
765         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
766         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
767         queue_reg_save, dwarf2out_flush_queued_reg_saves,
768         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
769         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
770         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
771         dwarf2out_frame_debug_cfa_expression,
772         dwarf2out_frame_debug_cfa_restore,
773         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
774         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
775         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
776         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
777         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
778         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
779         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
780         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
781         dw_loc_descr_node): Move to dwarf2out.h.
782         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
783         mem_loc_descriptor): Export.
784         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
785         (dwarf2out_frame_init): Extract CIE generation code to
786         dwarf2cfi_frame_init.
787
788 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
789
790         PR target/49660
791         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
792         MASK_V8PLUS, remove commented out flag and reorder.
793
794 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
795
796         PR c/49644
797         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
798         one non-complex and one complex argument, call c_save_expr on both
799         operands.
800
801 2011-07-07  Martin Jambor  <mjambor@suse.cz>
802
803         PR middle-end/49495
804         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
805         (verify_cgraph_node): Some functinality moved to
806         verify_edge_corresponds_to_fndecl, call it.
807
808 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
809
810         * config.gcc (*local*): Remove.
811         * doc/install-old.texi: Don't mention local configurations.
812
813 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
814
815         PR debug/49522
816         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
817         referencing debug insns that have been reset.
818         (dead_debug_insert_before): Don't assert reg is non-NULL,
819         instead return immediately if it is NULL.
820
821 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
822
823         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
824
825 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
826
827         * hw-doloop.c: New file.
828         * hw-doloop.h: New file.
829         * Makefile.in (OBJS): Add hw-doloop.o.
830         (hw-doloop.o): New rule.
831         ($(obj_out_file)): Add hw-doloop.h dependency.
832         * config/bfin/bfin.c: Include "hw-doloop.h".
833         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
834         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
835         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
836         type changed to hwloop_info.  Return bool, true if the loop was
837         successfully optimized.  Remove code that was moved to
838         hw-doloop.c, and adjust other parts.
839         (hwloop_fail): New static function, containing parts that used
840         to be in bfin_optimize_loop.
841         (bfin_discover_loop, bfin_discover_loops, free_loops,
842         bfin_reorder_loops): Remove.
843         (hwloop_pattern_reg): New static function.
844         (bfin_doloop_hooks): New variable.
845         (bfin_reorg_loops): Remove most code, call reorg_loops.
846         * config/bfin/bfin.md (doloop_end splitter): Also enable if
847         loop counter is a memory_operand.
848
849 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
850
851         * config.gcc: Support --with-multilib-list for x86 Linux targets.
852
853         * configure.ac: Mention x86-64 for --with-multilib-list.
854         * configure: Regenerated.
855
856         * config/i386/gnu-user64.h (SPEC_64): Support x32.
857         (SPEC_32): Likewise.
858         (ASM_SPEC): Likewise.
859         (LINK_SPEC): Likewise.
860         (TARGET_THREAD_SSP_OFFSET): Likewise.
861         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
862         (SPEC_X32): New.
863
864         * config/i386/i386.h (TARGET_X32): New.
865         (TARGET_LP64): New.
866         (LONG_TYPE_SIZE): Likewise.
867         (POINTER_SIZE): Likewise.
868         (POINTERS_EXTEND_UNSIGNED): Likewise.
869         (OPT_ARCH64): Support x32.
870         (OPT_ARCH32): Likewise.
871
872         * config/i386/i386.opt (mx32): New.
873
874         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
875         (GLIBC_DYNAMIC_LINKERX32): Likewise.
876         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
877         (GLIBC_DYNAMIC_LINKERX32): Likewise.
878
879         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
880         (BIONIC_DYNAMIC_LINKERX32): Likewise.
881         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
882
883         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
884
885         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
886
887         * doc/invoke.texi: Document -mx32.
888
889 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
890
891         * doc/invoke.texi (mwords-little-endian): Deprecate.
892         * config/arm/arm.opt (mwords-little-endian): Likewise.
893         * config/arm/arm.c (arm_option_override): Warn about the deprecation
894         of -mwords-little-endian.
895
896 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
897
898         * reload1.c (choose_reload_regs): Use mode sizes to check whether
899         an old reload register completely defines the required value.
900
901 2011-07-07  Richard Guenther  <rguenther@suse.de>
902
903         * fold-const.c (fold_unary_loc): Do not strip sign-changes
904         for NEGATE_EXPR.
905
906 2011-07-07  Richard Guenther  <rguenther@suse.de>
907
908         * tree-vrp.c (simplify_conversion_using_ranges): New function.
909         (simplify_stmt_using_ranges): Call it.
910
911 2011-07-07  Kai Tietz  <ktietz@redhat.com>
912
913         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
914         (lookup_logical_inverted_value): Likewise.
915         (simplify_bitwise_binary_1): Likewise.
916         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
917
918 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
919
920         * gcc.c (%[Spec]): Don't document.
921         (struct spec_list): Update comment.
922         (do_spec_1): Don't handle %[Spec].
923         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
924
925 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
926
927         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
928         default based on TARGET_ASM_NAMED_SECTION.
929         * common/common-target.def (have_named_sections): Default to true.
930         * common/config/default-common.c: Don't include tm.h.
931         * common/config/picochip/picochip-common.c
932         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
933         * common/config/m32c/m32c-common.c: Remove.
934         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
935         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
936         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
937         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
938         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
939         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
940         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
941
942 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
943
944         PR middle-end/49640
945         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
946         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
947
948 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
949
950         PR libmudflap/49550
951         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
952
953 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
954
955         PR target/39150
956         * configure.ac (gcc_cv_as_hidden): Also accept
957         x86_64-*-solaris2.1[0-9]*.
958         (gcc_cv_as_cfi_directive): Likewise.
959         (gcc_cv_as_comdat_group_group): Likewise.
960         (set_have_as_tls): Likewise.
961         * configure: Regenerate.
962         * config.gcc (i[34567]86-*-solaris2*): Also handle
963         x86_64-*-solaris2.1[0-9]*.
964         * config.host (i[34567]86-*-solaris2*): Likewise.
965         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
966         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
967         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
968         (TARGET_LD_EMULATION): Use it.
969         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
970         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
971         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
972         (ASM_CPU64_DEFAULT_SPEC): Define.
973         (ASM_CPU_SPEC): Use %(asm_cpu_default).
974         (ASM_SPEC): Redefine.
975         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
976         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
977         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
978         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
979         configuration.
980         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
981
982 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
983
984         * config/sol2.h (ASM_SPEC): Split into ...
985         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
986         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
987         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
988         (ASM_SPEC): Use ASM_SPEC_BASE.
989         * config/sparc/sol2.h (ASM_SPEC): Redefine.
990
991 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
992
993         * config/avr/avr.md (*reload_insi): Change predicate #1 to
994         const_int_operand.  Ditto for peep2 producing this insn.
995         Add argument to output_reload_insisf call.
996         (*movsi,*movsf): Add argument to output_movsisf call.
997         (*reload_insf): New insn and new peep2 to produce it.
998         * config/avr/avr-protos.h (output_movsisf): Change prototype.
999         (output_reload_insisf): Change prototype.
1000         * config/avr/avr.c (avr_asm_len): New function.
1001         (output_reload_insisf): Rewrite.
1002         (output_movsisf): Change prototype.  output_reload_insisf for
1003         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
1004         (adjust_insn_length): Add argument to output_movsisf and
1005         output_reload_insisf call.
1006
1007 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
1008
1009         * emit-rtl.c (paradoxical_subreg_p): New function.
1010         * rtl.h (paradoxical_subreg_p): Declare.
1011         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
1012         apply_distributive_law, simplify_comparison, simplify_set): Use it.
1013         * cse.c (record_jump_cond, cse_insn): Likewise.
1014         * expr.c (force_operand): Likewise.
1015         * rtlanal.c (num_sign_bit_copies1): Likewise.
1016         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
1017         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
1018         (push_reload): Use precision to check for paradoxical subregs.
1019         * expmed.c (extract_bit_field_1): Likewise.
1020
1021         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
1022         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
1023         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
1024         simplify_set, simplify_logical, expand_compound_operation,
1025         make_extraction, force_to_mode, if_then_else_cond, extended_count,
1026         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
1027         record_value_for_reg): Likewise.
1028         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
1029         * simplify-rtx. c (simplify_unary_operation_1,
1030         simplify_binary_operation_1, simplify_const_relational_operation):
1031         Likewise.
1032
1033         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
1034         instead of GET_MODE_BITSIZE where appropriate.
1035         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
1036         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
1037         init_num_sign_bit_copies_in_rep): Likewise.
1038         * cse.c (fold_rtx, cse_insn): Likewise.
1039         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
1040         * simplify-rtx.c (simplify_unary_operation_1,
1041         simplify_const_unary_operation, simplify_binary_operation_1,
1042         simplify_const_binary_operation, simplify_ternary_operation,
1043         simplify_const_relational_operation, simplify_subreg): Likewise.
1044         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
1045         simplify_if_then_else, simplify_set, expand_compound_operation,
1046         expand_field_assignment, make_extraction, if_then_else_cond,
1047         make_compound_operation, force_to_mode, make_field_assignment,
1048         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
1049         extended_count, try_widen_shift_mode, simplify_shift_const_1,
1050         simplify_comparison, record_promoted_value, simplify_compare_const,
1051         record_dead_and_set_regs_1): Likewise.
1052
1053         Revert:
1054         * simplify-rtx.c (simplify_const_binary_operation): Use the
1055         shift_truncation_mask hook instead of performing modulo by width.
1056         Compare against mode precision, not bitsize.
1057         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
1058         Use shift_truncation_mask instead of constructing the value manually.
1059
1060 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1061
1062         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
1063         declaration.
1064         (rs6000_save_toc_in_prologue_p): Ditto.
1065
1066         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
1067         up the static chain (r11) during indirect function calls.
1068         (-msave-toc-indirect): New undocumented debug switch.
1069
1070         * config/rs6000/rs6000.c (struct machine_function): Add
1071         save_toc_in_prologue field to note whether the prologue needs to
1072         save the TOC value in the reserved stack location.
1073         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
1074         to save the TOC in the prologue, do so.
1075         (rs6000_trampoline_init): Don't allow creating AIX style
1076         trampolines if -mno-r11 is in effect.
1077         (rs6000_call_indirect_aix): New function to create AIX style
1078         indirect calls, adding support for -mno-r11 to suppress loading
1079         the static chain, and saving the TOC in the prologue instead of
1080         the call body.
1081         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
1082         TOC in the prologue.
1083
1084         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
1085         register numbers.
1086         (TOC_REGNUM): Ditto.
1087         (STATIC_CHAIN_REGNUM): Ditto.
1088         (ARG_POINTER_REGNUM): Ditto.
1089         (SFP_REGNO): Delete, unused.
1090         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
1091         function descriptor offsets.
1092         (TOC_SAVE_OFFSET_64BIT): Ditto.
1093         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
1094         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
1095         (AIX_FUNC_DESC_SC_32BIT): Ditto.
1096         (AIX_FUNC_DESC_SC_64BIT): Ditto.
1097         (ptrload): New mode attribute for the appropriate load of a pointer.
1098         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
1099         (call_indirect_aix64): Ditto.
1100         (call_value_indirect_aix32): Ditto.
1101         (call_value_indirect_aix64): Ditto.
1102         (call_indirect_nonlocal_aix32_internal): Ditto.
1103         (call_indirect_nonlocal_aix32): Ditto.
1104         (call_indirect_nonlocal_aix64_internal): Ditto.
1105         (call_indirect_nonlocal_aix64): Ditto.
1106         (call): Rewrite AIX indirect function calls.  Add support for
1107         eliminating the static chain, and for moving the save of the TOC
1108         to the function prologue.
1109         (call_value): Ditto.
1110         (call_indirect_aix<ptrsize>): Ditto.
1111         (call_indirect_aix<ptrsize>_internal): Ditto.
1112         (call_indirect_aix<ptrsize>_internal2): Ditto.
1113         (call_indirect_aix<ptrsize>_nor11): Ditto.
1114         (call_value_indirect_aix<ptrsize>): Ditto.
1115         (call_value_indirect_aix<ptrsize>_internal): Ditto.
1116         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1117         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1118         (call_nonlocal_aix32): Relocate in the rs6000.md file.
1119         (call_nonlocal_aix64): Ditto.
1120
1121         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
1122         -mno-r11 documentation.
1123
1124 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
1125
1126         PR other/49658
1127         * doc/extend.texi (Compound Literals): Fix typo.
1128
1129 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
1130
1131         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
1132
1133 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
1134
1135         * configure.ac (plugin-version.h): Generate
1136         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
1137         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
1138         macros.
1139
1140         * configure: Regenerate.
1141
1142         * doc/plugins.texi (Building GCC plugins): Mention
1143         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
1144
1145 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
1146
1147         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
1148         * combine.c (make_extraction, gen_lowpart_or_truncate,
1149         apply_distributive_law, simplify_comparison,
1150         reg_truncated_to_mode, record_truncated_value): Use it.
1151         * cse.c (notreg_cost): Likewise.
1152         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
1153         * expr.c (convert_move, convert_modes): Likewise.
1154         * optabs.c (expand_binop, expand_unop): Likewise.
1155         * postreload.c (move2add_last_label): Likewise.
1156         * regmove.c (optimize_reg_copy_3): Likewise.
1157         * rtlhooks.c (gen_lowpart_general): Likewise.
1158         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1159
1160 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
1161
1162         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
1163
1164 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
1165
1166         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
1167         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
1168         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
1169         (simplify_const_unary_operation, simplify_binary_operation_1,
1170         simplify_const_binary_operation, simplify_const_relational_operation):
1171         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
1172         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
1173         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
1174         simplify_shift_const_1, simplify_comparison): Likewise.
1175         * expr.c (convert_modes): Likewise.
1176         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
1177         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
1178         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
1179
1180         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
1181
1182 2011-07-06  Richard Guenther  <rguenther@suse.de>
1183
1184         PR tree-optimization/49645
1185         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
1186         register variables.
1187         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
1188         in type qualification here ...
1189         (copy_reference_ops_from_ref): ... not here.
1190         (vn_reference_lookup_3): ... or here.
1191         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
1192         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
1193
1194 2011-07-06  Ian Lance Taylor  <iant@google.com>
1195
1196         * doc/install.texi (Configuration): It's
1197         --enable-gnu-indirect-function, not --enable-indirect-function.
1198
1199 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
1200
1201         * simplify-rtx.c (simplify_const_binary_operation): Use the
1202         shift_truncation_mask hook instead of performing modulo by width.
1203         Compare against mode precision, not bitsize.
1204         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
1205         Use shift_truncation_mask instead of constructing the value manually.
1206
1207 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
1208
1209         PR middle-end/47383
1210         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
1211         address computation and convert to address_mode if needed.
1212
1213 2011-07-06  Richard Guenther  <rguenther@suse.de>
1214
1215         * tree.c (build_common_tree_nodes_2): Merge with
1216         build_common_tree_nodes.
1217         * tree.h (build_common_tree_nodes): Adjust prototype.
1218         (build_common_tree_nodes_2): Remove.
1219         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
1220         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
1221
1222 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
1223
1224         PR tree-optimization/49618
1225         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
1226         t recurse on the decl.
1227         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
1228         return true if expr isn't known to be defined in current
1229         TU or some other LTO partition.
1230
1231 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
1232
1233         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
1234         override CASE_VALUES_THRESHOLD.
1235
1236         * stmt.c (toplevel): Include params.h.
1237         (case_values_threshold): Use the --param case-values-threshold
1238         value if non-zero, otherwise use machine dependent value.
1239         (expand_case): Use case_values_threshold.
1240
1241         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
1242
1243         * doc/invoke.texi (--param case-values-threshold): Document.
1244
1245 2011-07-05  Richard Henderson  <rth@redhat.com>
1246
1247         * dwarf2out.c (dwarf2out_cfi_label): Make static.
1248         (dwarf2out_flush_queued_reg_saves): Make static.
1249         (dwarf2out_reg_save): Remove.
1250         (dwarf2out_return_save): Remove.
1251         (dwarf2out_return_reg): Remove.
1252         (dwarf2out_reg_save_reg): Remove.
1253         (dwarf2out_def_cfa): Merge into ...
1254         (dwarf2out_frame_init): ... here.
1255         * dwarf2out.h, tree.h: Remove declarations as necessary.
1256
1257 2011-07-05  Richard Henderson  <rth@redhat.com>
1258
1259         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
1260         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1261         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
1262         the alloc insn.
1263
1264         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
1265         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
1266         (process_epilogue): Don't call dwarf2out_def_cfa.
1267
1268         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
1269         indicate the return address save.
1270         (process_cfa_register): Likewise.
1271
1272         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
1273         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
1274
1275         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
1276         for ar.pfs save at alloc insn.
1277
1278 2011-07-05  Richard Henderson  <rth@redhat.com>
1279
1280         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
1281         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1282         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
1283         stack pointer save.
1284         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
1285         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
1286         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
1287         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
1288
1289 2011-07-05  Richard Henderson  <rth@redhat.com>
1290
1291         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
1292         VUNSPEC_* constants here instead of via define_constants.
1293         (VUNSPEC_PEM): New constant.
1294         (procedure_entry_mask): New insn.
1295         (prologue): New expander.
1296         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
1297         (vax_expand_prologue): Rename from vax_output_function_prologue;
1298         emit rtl instead of text.
1299         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
1300         (print_operand): Add 'x' prefix.
1301
1302 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1303
1304         PR middle-end/47715
1305         * calls.c (precompute_register_parameters): Promote the function
1306         argument before checking non-legitimate constant.
1307
1308 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1309
1310         PR tree-optimization/47654
1311         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
1312         (lst_do_strip_mine_loop): Return an int.
1313         (lst_do_strip_mine): Same.
1314         (scop_do_strip_mine): Same.
1315         (scop_do_block): Loop blocking should strip-mine at least two loops.
1316         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
1317         (scop_do_interchange): Same.
1318         * graphite-poly.h (scop_do_interchange): Update declaration.
1319         (scop_do_strip_mine): Same.
1320
1321 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1322
1323         * graphite-clast-to-gimple.c (precision_for_value): Removed.
1324         (precision_for_interval): Removed.
1325         (gcc_type_for_interval): Use mpz_sizeinbase.
1326
1327 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1328
1329         * graphite-ppl.h (value_max): Correct computation of max.
1330
1331 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1332
1333         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
1334
1335 2011-07-05  Richard Guenther  <rguenther@suse.de>
1336
1337         * c-decl.c (c_init_decl_processing): Defer building common
1338         tree nodes to c_common_nodes_and_builtins.
1339
1340 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
1341
1342         PR tree-optimization/49580
1343         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
1344         the loop's number of iterations.
1345         * tree-parloops.c (transform_to_exit_first_loop): Add the
1346         handling of the loop's number of iterations before the call
1347         to gimple_duplicate_sese_tail.
1348         Insert the stmt caclculating the new rhs of the loop's
1349         condition stmt to the preheader instead of iters_bb.
1350
1351 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1352
1353         PR rtl-optimization/47449
1354         * fwprop.c (forward_propagate_subreg): Don't propagate hard
1355         register nor zero/sign extended hard register.
1356
1357 2011-07-05  Richard Guenther  <rguenther@suse.de>
1358
1359         PR tree-optimization/49518
1360         PR tree-optimization/49628
1361         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
1362         irrelevant and invariant data-references.
1363         (vect_analyze_data_ref_access): For invariant loads clear the
1364         group association.
1365
1366 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
1367
1368         PR rtl-optimization/49619
1369         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
1370         pass VOIDmode as op0_mode to recursive call, and return temp even
1371         when different from tor, just if it is not IOR of the original
1372         PLUS arguments.
1373
1374         PR rtl-optimization/49472
1375         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
1376         negating MULT, negate the second operand instead of first.
1377         (simplify_binary_operation_1) <case MULT>: If one operand is
1378         a NEG and the other is MULT, don't attempt to optimize by negation
1379         of the MULT operand if it only moves the NEG operation around.
1380
1381         PR debug/49602
1382         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
1383         get_current_def return value if it can't be trusted to be
1384         the current value of the variable in the current bb.
1385
1386 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
1387
1388         PR target/49600
1389         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
1390         general register to memory for !TARGET_INTER_UNIT_MOVES.
1391
1392 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1393
1394         PR target/44643
1395         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
1396         instead of TREE_READONLY.
1397
1398 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1399
1400         * doc/extend.texi (AVR Built-in Functions): Update documentation
1401         of __builtin_avr_fmul*.
1402         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
1403         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
1404         * config/avr/avr.md (fmul): Rename to fmul_insn.
1405         (fmuls): Rename to fmuls_insn.
1406         (fmulsu): Rename to fmulsu_insn.
1407         (fmul,fmuls,fmulsu): New expander.
1408         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
1409         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
1410         * config/avr/libgcc.S (__fmul): New function.
1411         (__fmuls): New function.
1412         (__fmulsu,__fmulsu_exit): New function.
1413
1414 2011-07-04  Richard Guenther  <rguenther@suse.de>
1415
1416         PR tree-optimization/49615
1417         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
1418         basic-block index check.
1419
1420 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1421
1422         * longlong.h (count_leading_zeros, count_trailing_zeros,
1423         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
1424         resp. 64.
1425
1426 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
1427
1428         PR tree-optimization/49610
1429         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
1430         a basic block.
1431
1432 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1433             Olivier Hainque  <hainque@adacore.com>
1434             Nicolas Setton  <setton@adacore.com>
1435
1436         * tree.h (TYPE_ARTIFICIAL): New flag.
1437         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
1438         the DIE of the type if it is artificial.
1439         (gen_array_type_die): Likewise.
1440         (gen_enumeration_type_die): Likewise.
1441         (gen_struct_or_union_type_die): Likewise.
1442         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
1443         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
1444
1445 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
1446
1447         * tree-object-size.c (pass_through_call): Handle
1448         BUILT_IN_ASSUME_ALIGNED.
1449
1450 2011-07-01  Martin Jambor  <mjambor@suse.cz>
1451
1452         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
1453
1454 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
1455
1456         PR middle-end/48016
1457         * explow.c (update_nonlocal_goto_save_area): Use proper mode
1458         for stack save area.
1459         * function.c (expand_function_start): Likewise.
1460
1461 2011-07-01  Richard Guenther  <rguenther@suse.de>
1462
1463         PR middle-end/49596
1464         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
1465         may have unknown refs.
1466
1467 2011-07-01  Kai Tietz  <ktietz@redhat.com>
1468
1469         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
1470
1471 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1472
1473         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
1474         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
1475         (Specific, mips-sgi-irix6): Likewise.
1476
1477 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1478
1479         PR libmudflap/49549
1480         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
1481
1482 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
1483
1484         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
1485         [idx]= and [idx1 ... idx2]= before initializers if needed for
1486         array initializers.
1487
1488 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
1489
1490         * config.gcc (score-*-elf): Remove score7.o.
1491         * config/score/t-score-elf: Likewise.
1492         * config/score/score.c: Merge score7 to score.c and
1493         remove forwarding functions.
1494         * config/score/score7.c: Deleted.
1495         * config/score/score7.h: Deleted.
1496
1497 2011-07-01  Richard Guenther  <rguenther@suse.de>
1498
1499         PR tree-optimization/49603
1500         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
1501
1502 2011-06-30  Martin Jambor  <mjambor@suse.cz>
1503
1504         * tree-sra.c (struct access): Rename total_scalarization to
1505         grp_total_scalarization
1506         (completely_scalarize_var): New function.
1507         (sort_and_splice_var_accesses): Set total_scalarization in the
1508         representative access.
1509         (analyze_access_subtree): Propagate total scalarization accross the
1510         tree, no holes in totally scalarized trees, simplify coverage
1511         computation.
1512         (analyze_all_variable_accesses): Call completely_scalarize_var instead
1513         of completely_scalarize_record.
1514
1515 2011-06-30  Richard Henderson  <rth@redhat.com>
1516
1517         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
1518         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
1519         * config/i386/i386.c: Don't include dwarf2out.h.
1520         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
1521         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
1522         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
1523         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
1524         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
1525
1526 2011-06-30  Richard Henderson  <rth@redhat.com>
1527
1528         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
1529         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
1530         * final.c (final_scan_insn): Look for it, and invoke
1531         dwarf2out_frame_debug before the insn if found.
1532
1533 2011-06-30  Richard Henderson  <rth@redhat.com>
1534
1535         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
1536         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
1537
1538 2011-06-30  Richard Henderson  <rth@redhat.com>
1539
1540         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
1541         Define a vector of this type.
1542         (regs_saved_in_regs): Use a VEC.
1543         (num_regs_saved_in_regs): Remove.
1544         (compare_reg_or_pc): New.
1545         (record_reg_saved_in_reg): Split out from...
1546         (dwarf2out_flush_queued_reg_saves): ... here.
1547         (clobbers_queued_reg_save): Update for VEC.
1548         (reg_saved_in): Likewise.
1549         (dwarf2out_frame_debug_init): Likewise.
1550         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
1551         (dwarf2out_frame_debug_cfa_register): Likewise.
1552
1553 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1554
1555         PR tree-optimization/49572
1556         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
1557         type of the RHS instead of that of the LHS for the expression type.
1558
1559 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1560
1561         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
1562         unconditionally.
1563
1564 2011-06-30  Richard Guenther  <rguenther@suse.de>
1565
1566         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
1567         * tree-ssa-structalias.c (create_variable_info_for): Do not
1568         add initial constraints for non-var-decls.  Properly handle
1569         globals in other ltrans partitions.
1570         (intra_create_variable_infos): Manually create constraints for
1571         the fake no-alias parameter.
1572         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
1573         and assert there are no clones.
1574
1575 2011-06-30  Richard Guenther  <rguenther@suse.de>
1576
1577         PR tree-optimization/46787
1578         * tree-data-ref.c (dr_address_invariant_p): Remove.
1579         (find_data_references_in_stmt): Invariant accesses are ok now.
1580         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
1581         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
1582         invariant loads.
1583
1584 2011-06-30  Martin Jambor  <mjambor@suse.cz>
1585
1586         PR tree-optimization/49094
1587         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
1588         (build_accesses_from_assign): Use it.
1589
1590 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1591
1592         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1593         handling of BUILT_IN_ASSUME_ALIGNED.
1594
1595         PR debug/49364
1596         * dwarf2out.c (output_abbrev_section): Don't return early
1597         if abbrev_die_table_in_use is 1.
1598         (dwarf2out_finish): Instead don't call output_abbrev_section
1599         nor emit abbrev_section_label in that case.
1600
1601 2011-06-30  Nick Clifton  <nickc@redhat.com>
1602
1603         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
1604         for the V850E.
1605
1606 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1607
1608         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1609         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
1610
1611 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
1612
1613         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1614         both pattern and original statements if necessary.
1615         (vect_transform_loop): Likewise.
1616         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
1617         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
1618         Mark the pattern statement only if the original statement doesn't
1619         have its own uses.
1620         (process_use): Call vect_mark_relevant with additional parameter.
1621         (vect_mark_stmts_to_be_vectorized): Likewise.
1622         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
1623         (vect_analyze_stmt): Handle both pattern and original statements
1624         if necessary.
1625         (vect_transform_stmt): Don't store vectorized pattern statement
1626         in the original statement.
1627         (vect_is_simple_use_1): Use related pattern statement only if the
1628         original statement is irrelevant.
1629         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1630
1631 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
1632
1633         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
1634         option.
1635         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
1636         entry.
1637         (TARGET_AVX128_OPTIMAL): New definition.
1638         * config/i386/i386.c (initial_ix86_tune_features): Initialize
1639         X86_TUNE_AVX128_OPTIMAL entry.
1640         (ix86_option_override_internal): Enable the generation
1641         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
1642         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
1643         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
1644
1645 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1646
1647         PR tree-optimization/49539
1648         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
1649         names by means of stmt_references_abnormal_ssa_name.
1650         (associate_plusminus): Call can_propagate_from before propagating
1651         from definition statements.
1652         (ssa_forward_propagate_and_combine): Remove superfluous newline.
1653
1654 2011-06-29  Richard Guenther  <rguenther@suse.de>
1655
1656         * doc/invoke.texi: Document -scev dump modifier.
1657         * tree-pass.h (TDF_SCEV): New dump flag.
1658         * tree-dump.c (dump_option_value_in): Add scev.
1659         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
1660         * tree-scalar-evolution.c: Likewise.
1661
1662 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
1663
1664         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
1665         (cxa_type_match): Correct declaration.
1666         (__gnu_unwind_pr_common): Reconstruct additional indirection
1667         when __cxa_type_match returns succeeded_with_ptr_to_base.
1668
1669 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1670
1671         PR rtl-optimization/49114
1672         * reload.c (struct replacement): Remove SUBREG_LOC member.
1673         (push_reload): Do not set it.
1674         (push_replacement): Likewise.
1675         (subst_reload): Remove dead code.
1676         (copy_replacements): Remove assertion.
1677         (copy_replacements_1): Do not handle SUBREG_LOC.
1678         (move_replacements): Likewise.
1679         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
1680         Detect subregs via recursive descent instead of via SUBREG_LOC.
1681
1682 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1683
1684         * config/avr/avr.c (avr_encode_section_info): Dispatch to
1685         default_encode_section_info.
1686
1687 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
1688
1689         PR tree-optimization/49545
1690         * builtins.c (get_object_alignment_1): Update function comment.
1691         Do not use DECL_ALIGN for functions, but test
1692         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
1693         * fold-const.c (get_pointer_modulus_and_residue): Don't check
1694         for functions here.
1695         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1696
1697 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
1698
1699         PR debug/49567
1700         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
1701         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
1702
1703 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1704
1705         PR target/34734
1706         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
1707         about uninitialized data attributed 'progmem' from here...
1708         (avr_encode_section_info): ...to this new function.
1709         (TARGET_ENCODE_SECTION_INFO): New define.
1710         (avr_section_type_flags): For data in ".progmem.data", remove
1711         section flag SECTION_WRITE.
1712
1713 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1714
1715         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
1716         _xmulhisi3_exit.
1717         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
1718         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
1719         (__umulhisi3): Ditto.
1720         * config/avr/avr.md (mulhisi3): New insn expender.
1721         (umulhisi3): New insn expender.
1722         (*mulhisi3_call): New insn.
1723         (*umulhisi3_call): New insn.
1724
1725 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1726
1727         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
1728
1729 2011-06-28  Richard Henderson  <rth@redhat.com>
1730
1731         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
1732         all code and arguments that handled pushes.  Update all callers.
1733
1734 2011-06-28  Richard Henderson  <rth@redhat.com>
1735
1736         * config/arm/arm.c (arm_output_function_prologue): Don't call
1737         thumb1_output_function_prologue.
1738         (arm_expand_prologue): Avoid dead store.
1739         (number_of_first_bit_set): Use ctz_hwi.
1740         (thumb1_emit_multi_reg_push): New.
1741         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
1742         to emit the entire prologue as rtl.
1743         (thumb1_output_interwork): Split out from
1744         thumb1_output_function_prologue.
1745         (thumb1_output_function_prologue): Remove.
1746         (arm_attr_length_push_multi): Handle thumb1.
1747         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
1748         (prologue_thumb1_interwork): New.
1749         (*push_multi): Allow thumb1; use push_mult_memory_operand.
1750         * config/arm/predicates.md (push_mult_memory_operand): New.
1751
1752 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1753
1754         * config/sparc/sync.md (*stbar): Delete.
1755         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
1756
1757 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1758
1759         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
1760
1761 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1762
1763         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
1764         (TARGET_64BIT_DEFAULT): Define.
1765         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
1766         of tm_file.
1767         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
1768
1769 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1770
1771         * common.opt (in_lto_p): New Variable entry.
1772         * flags.h (in_lto_p): Move to common.opt.
1773         * gcc.c: Include params.h.
1774         (set_option_handlers): Also use common_handle_option and
1775         target_handle_option.
1776         (main): Call global_init_params, finish_params and init_options_struct.
1777         * opts.c (debug_type_names): Move from toplev.c.
1778         (print_filtered_help): Access quiet_flag through opts pointer.
1779         (common_handle_option): Return early in the driver for some options.
1780         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
1781         opts pointer.
1782         * toplev.c (in_lto_p): Move to common.opt.
1783         (debug_type_names): Move to opts.c.
1784         * Makefile.in (OBJS): Remove opts.o.
1785         (OBJS-libcommon-target): Add opts.o.
1786         (gcc.o): Update dependencies.
1787
1788 2011-06-28  Kai Tietz  <ktietz@redhat.com>
1789
1790         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
1791
1792 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1793
1794         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
1795         with '=' constraint modifier.
1796         (*divdf3_vfp): Likewise.
1797         ("*mulsf3_vfp"): Likewise.
1798         ("*muldf3_vfp"): Likewise.
1799         ("*mulsf3negsf_vfp"): Likewise.
1800         ("*muldf3negdf_vfp"): Likewise.
1801
1802 2011-06-28  Nick Clifton  <nickc@redhat.com>
1803
1804         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
1805         relaxation when performing an incremental link.
1806
1807 2011-06-28  Kai Tietz  <ktietz@redhat.com>
1808
1809         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
1810         within BB from last to first.
1811
1812 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1813
1814         * genattr-common.c: New.  Based on genattr.c.
1815         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
1816         (MOSTLYCLEANFILES): Add insn-attr-common.h.
1817         (opts.o): Update dependencies.
1818         (.PRECIOUS): Add insn-attr-common.h.
1819         (simple_rtl_generated_h): Add insn-attr-common.h.
1820         (build/genattr-common.o): New.
1821         (genprogrtl): Add attr-common.
1822         * genattr.c (main): Include insn-attr-common.h.  Don't generate
1823         definitions of DELAY_SLOTS or INSN_SCHEDULING.
1824         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
1825
1826 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
1827
1828         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
1829         avr-*-* and avr-*-rtems* targets.
1830
1831         * config/avr/elf.h: New file.
1832         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
1833         (TARGET_ASM_SELECT_SECTION): Define.
1834         (INIT_SECTION_ASM_OP): Undefine.
1835         (FINI_SECTION_ASM_OP): Undefine.
1836         (READONLY_DATA_SECTION_ASM_OP): Undefine.
1837         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
1838         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
1839         * config/avr/avr.h:
1840         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
1841         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
1842         (MAX_OFILE_ALIGNMENT): Move to elf.h.
1843         (STRING_LIMIT): Move to elf.h.
1844         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
1845         (ASM_DECLARE_OBJECT_NAME): Remove.
1846         (ESCAPES): Remove.
1847         (ASM_OUTPUT_SKIP): Remove.
1848         (DWARF2_DEBUGGING_INFO): Remove.
1849         (OBJECT_FORMAT_ELF): Remove.
1850         (USER_LABEL_PREFIX): Remove.
1851         (ASM_OUTPUT_EXTERNAL): Remove.
1852         (ASM_OUTPUT_ASCII): Remove.
1853         (TYPE_ASM_OP): Remove.
1854         (SIZE_ASM_OP): Remove.
1855         (WEAK_ASM_OP): Remove.
1856         (STRING_ASM_OP): Remove.
1857         (SET_ASM_OP): Remove.
1858         (ASM_WEAKEN_LABEL): Remove.
1859         (TYPE_OPERAND_FMT): Remove.
1860         (ASM_DECLARE_FUNCTION_SIZE): Remove.
1861         (ASM_FINISH_DECLARE_OBJECT): Remove.
1862         (NO_DOLLAR_IN_LABEL): Remove.
1863         (ASM_GENERATE_INTERNAL_LABEL): Remove.
1864         (ASM_OUTPUT_CASE_LABEL): Remove.
1865         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
1866         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
1867         (gas_output_ascii): Remove.
1868         (gas_output_limited_string): Remove.
1869         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
1870         * config/avr/avr-protos.h
1871         (gas_output_ascii): Remove prototye.
1872         (gas_output_limited_string): Remove prototype.
1873
1874 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
1875
1876         PR target/48637
1877         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
1878         asm operands.
1879
1880 2011-06-27  Jan Hubicka  <jh@suse.cz>
1881
1882         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
1883         node instead of references in node.
1884
1885 2011-06-27  Richard Henderson  <rth@redhat.com>
1886
1887         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
1888         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
1889         inside ifdef.
1890
1891 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
1892
1893         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
1894
1895         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
1896         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
1897         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
1898         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
1899         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
1900         (evaluate_stmt, execute_fold_all_builtins): Handle
1901         BUILT_IN_ASSUME_ALIGNED.
1902         * tree-ssa-dce.c (propagate_necessity): Likewise.
1903         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1904         call_may_clobber_ref_p_1): Likewise.
1905         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
1906         (expand_builtin_assume_aligned): New function.
1907         * doc/extend.texi (__builtin_assume_aligned): Document.
1908
1909         PR debug/49544
1910         * cselib.c (promote_debug_loc): If cselib_preserve_constants
1911         and l has two DEBUG_INSN owned locs instead of just one, adjust
1912         the second location's setting_insn too.
1913
1914 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1915
1916         PR libmudflap/38738
1917         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
1918
1919 2011-06-27  Nick Clifton  <nickc@redhat.com>
1920
1921         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
1922         bit position of highest bit set into a count of the high zero bits.
1923
1924 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1925
1926         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
1927
1928 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1929
1930         PR lto/48492
1931         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
1932         to a NULL parent.
1933
1934 2011-06-27  Richard Guenther  <rguenther@suse.de>
1935
1936         PR tree-optimization/49394
1937         * passes.c (execute_one_pass): Restore current_pass after
1938         applying IPA transforms.
1939
1940 2011-06-27  Kai Tietz  <ktietz@redhat.com>
1941
1942         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
1943         out of type precision after operation.
1944         (find_bswap): Take for limit value the integer auto-promotion
1945         into account.
1946
1947 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1948
1949         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
1950         forward scan as well.
1951
1952 2011-06-27  Tristan Gingold  <gingold@adacore.com>
1953
1954         PR target/44241
1955         * config/vms/vms-protos.h: New file.
1956         * config/vms/vms-crtlmap.map: New file.
1957         * config/vms/vms.c: New file.
1958         * config/vms/make-crtlmap.awk: New file.
1959         * config/vms/vms-crtl.h: File removed.
1960         * config/vms/vms-crtl-64.h: File removed.
1961         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
1962         * config/alpha/vms64.h: Do not include vms-crtl-64.h
1963         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
1964         clear some builtins on VMS.  Calls vms_patch_builtins.
1965         (avms_asm_output_external): Remove.
1966         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
1967         (struct crtl_name_spec): Remove
1968         (DO_CTRL_NAMES): Remove.
1969         * config/ia64/vms.h (struct crtl_name_spec): Remove
1970         (DO_CTRL_NAMES): Remove.
1971         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
1972         clear some builtins on VMS.  Calls vms_patch_builtins.
1973         (ia64_asm_output_external): Remove DO_CRTL_NAME.
1974         * config/ia64/vms64.h: Do not include vms-crtl-64.h
1975         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
1976
1977 2011-06-27  Tristan Gingold  <gingold@adacore.com>
1978
1979         * config/alpha/alpha.c (alpha_end_function): Always generate .end
1980         directive on VMS.
1981
1982 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1983
1984         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
1985         the function receives nonlocal gotos.
1986
1987 2011-06-27  Richard Guenther  <rguenther@suse.de>
1988
1989         PR tree-optimization/49536
1990         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1991         For non-scalar inner types use a scalar type according to
1992         the scalar inner mode.
1993
1994 2011-06-27  Richard Guenther  <rguenther@suse.de>
1995
1996         PR tree-optimization/49365
1997         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
1998
1999 2011-06-27  Richard Guenther  <rguenther@suse.de>
2000
2001         PR tree-optimization/49169
2002         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
2003         the alignment of function decls.
2004
2005 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
2006
2007         PR target/47997
2008         * config/darwin.c (darwin_mergeable_string_section): Place string
2009         constants in '.cstring' rather than '.const' when CF/NSStrings are
2010         active.
2011
2012 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
2013
2014         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
2015         (emit_save_register_window): Likewise.
2016         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
2017         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
2018         Swap back %o7/%i7 in register naming.
2019
2020 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
2021
2022         PR driver/49371
2023         * config/darwin.c (darwin_override_options): Improve warning when
2024         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
2025         is given with fpie/fPIE.
2026         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
2027         * config/darwin9.h (PIE_SPEC): New.
2028
2029 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
2030
2031         * timevar.c (timevar_print): Increase width for display of timevar
2032         name.
2033
2034 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
2035
2036         PR c++/46400
2037         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
2038         instead of TYPE_CHAIN for chain_next for types.
2039
2040 2011-06-24  Richard Henderson  <rth@redhat.com>
2041
2042         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
2043         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
2044         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
2045         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
2046         (sparc_flat_expand_prologue): Emit individual instructions
2047         instead of one of the above.
2048
2049 2011-06-24  Easwaran Raman  <eraman@google.com>
2050
2051         PR rtl-optimization/49429
2052         PR target/49454
2053         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
2054         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
2055         used to copy y into x.
2056         * calls.c (initialize_argument_information): Mark
2057         an argument addressable if it is passed by invisible reference.
2058         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
2059         if it is passed by reference.
2060
2061 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
2062
2063         PR rtl-optimization/49504
2064         * rtlanal.c (nonzero_bits1): Properly handle addition or
2065         subtraction of a pointer in Pmode if pointers extend unsigned.
2066         (num_sign_bit_copies1): Likewise.
2067
2068 2011-06-24  Martin Jambor  <mjambor@suse.cz>
2069
2070         PR tree-optimizations/49516
2071         * tree-sra.c (sra_modify_assign): Choose the safe path for
2072         aggregate copies if we also did scalar replacements.
2073
2074 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2075
2076         PR target/49335
2077         * config/arm/predicates.md (add_operator): New.
2078         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
2079
2080 2011-06-24  Andi Kleen  <ak@linux.intel.com>
2081
2082         * tree-sra.c (type_internals_preclude_sra_p): Add msg
2083         parameter. Split up ifs and report reason in *msg.
2084         (reject): Add.
2085         (find_var_candiate): Add msg variable.
2086         Split up ifs and report reason to reject.
2087         (find_param_candidates): Add msg variable.
2088         Pass msg to type_internals_preclude_sra_p.
2089
2090 2011-06-23  Jeff Law  <law@redhat.com>
2091
2092         PR middle-end/48770
2093         * reload.h (reload): Change to return a bool.
2094         * ira.c (ira): If requested by reload, run a fast DCE pass after
2095         reload has completed.  Fix comment typo.
2096         * reload1.c (need_dce): New file scoped static.
2097         (reload): Set reload_completed here.  Return whether or not a DCE
2098         pass after reload is needed.
2099         (delete_dead_insn): Set need_dce as needed.
2100
2101         PR middle-end/49465
2102         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
2103         to detect threading through joiner block.  If there was already
2104         an edge to the new target, then do not change the PHI nodes.
2105
2106 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
2107
2108         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
2109         get_pointer_alignment to see if base isn't sufficiently aligned.
2110
2111 2011-06-23  Jan Hubicka  <jh@suse.cz>
2112
2113         PR tree-optimize/49373
2114         * tree-pass.h (all_late_ipa_passes): Declare.
2115         * cgraphunit.c (init_lowered_empty_function): Fix properties.
2116         (cgraph_optimize): Execute late passes; remove unreachable funcions
2117         after materialization.
2118         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
2119         LTOing.
2120         * passes.c (all_late_ipa_passes): Declare.
2121         (dump_passes, register_pass): Handle late ipa passes.
2122         (init_optimization_passes): Move ipa_pta to late passes; schedule
2123         fixup_cfg at beggining of all_passes.
2124         (apply_ipa_transforms): New function.
2125         (execute_one_pass): When doing simple ipa pass, apply all transforms.
2126
2127 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
2128
2129         * params.c: Include common/common-target.h.  Don't include tm.h.
2130         (lang_independent_params): Move from toplev.c.
2131         (global_init_params): New.
2132         * params.h (global_init_params): Declare.
2133         * target.def (default_params): Move to common-target.def.
2134         * toplev.c (lang_independent_options): Remove.
2135         (lang_independent_params): Move to params.c.
2136         (general_init): Use global_init_params.
2137         * common/common-target.def (option_default_params): Move from
2138         target.def.
2139         * common/config/ia64/ia64-common.c: Include params.h.
2140         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2141         from ia64.c.
2142         * common/config/rs6000/rs6000-common.c: Include params.h.
2143         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2144         from rs6000.c.
2145         * common/config/sh/sh-common.c: Include params.h.
2146         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2147         from sh.c.
2148         * common/config/spu/spu-common.c: Include params.h.
2149         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2150         from spu.c.
2151         * config/ia64/ia64.c (ia64_option_default_params,
2152         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
2153         * config/rs6000/rs6000.c (rs6000_option_default_params,
2154         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
2155         * config/sh/sh.c (sh_option_default_params,
2156         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
2157         * config/spu/spu.c (spu_option_default_params,
2158         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
2159         * Makefile.in (OBJS): Remove params.o.
2160         (OBJS-libcommon-target): Add params.o.
2161         (params.o, $(common_out_object_file)): Update dependencies.
2162         * doc/tm.texi: Regenerate.
2163
2164 2011-06-23  Alan Modra  <amodra@gmail.com>
2165
2166         PR bootstrap/49383
2167         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
2168         invocation for 2011-06-09 changes.
2169
2170 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
2171
2172         PR libgomp/49490
2173         * omp-low.c (expand_omp_for_static_nochunk): Only
2174         use n ceil/ nthreads size for the first n % nthreads threads in the
2175         team instead of all threads except for the last few ones which
2176         get less work or none at all.
2177
2178         PR debug/49496
2179         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
2180         uses.
2181
2182 2011-06-22  Richard Guenther  <rguenther@suse.de>
2183
2184         PR tree-optimization/49493
2185         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
2186         Refer to the alias target of variables.
2187         (associate_varinfo_to_alias_1): Remove.
2188         (ipa_pta_execute): Do not associate aliases with anything.
2189         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
2190         (cgraph_function_node): Likewise.
2191         (cgraph_function_or_thunk_node): Likewise.
2192         (varpool_variable_node): Likewise.
2193
2194 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2195
2196         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
2197         * config.gcc (arm*-*-linux*): Default to gnu tls.
2198         (arm*-*-*): Add --with-tls option.
2199         (all_defaults): Add 'tls'.
2200
2201 2011-06-22  Richard Henderson  <rth@redhat.com>
2202
2203         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
2204         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
2205         (dwarf2out_frame_debug_cfa_window_save): Rename from
2206         dwarf2out_window_save; make static.
2207         * tree.h (dwarf2out_window_save): Don't declare.
2208
2209         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
2210         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2211         (emit_save_register_window): Rename from gen_save_register_window;
2212         emit the insn and add REG_CFA_* notes.
2213         (sparc_expand_prologue): Update to match.
2214         * config/sparc/sparc.md (save_register_window_1): Simplify from
2215         save_register_window<P:mode>.
2216
2217 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
2218
2219         PR target/49497
2220         * config/i386/i386.md (*lea_general_2): Always allow SImode.
2221         (*lea_general_2_zext): Likewise.
2222         (imul to lea peepholes): Use const359_operand and check
2223         TARGET_PARTIAL_REG_STALL.
2224
2225         * config/i386/predicates.md (const359_operand): New.
2226
2227 2011-06-22  Michael Matz  <matz@suse.de>
2228
2229         * cgraphunit.c (assemble_thunk): Use correct return type.
2230
2231 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
2232             Dmitry Melnik  <dm@ispras.ru>
2233
2234         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
2235         (neon_output_shift_immediate): Ditto.
2236         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
2237         prototype.
2238         (neon_output_shift_immediate): Ditto.
2239         * config/arm/neon.md (vashl<mode>3): Modified constraint.
2240         (vashr<mode>3_imm): New insn pattern.
2241         (vlshr<mode>3_imm): Ditto.
2242         (vashr<mode>3): Modified constraint.
2243         (vlshr<mode>3): Ditto.
2244         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
2245         predicate.
2246         (imm_for_neon_rshift_operand): Ditto.
2247         (imm_lshift_or_reg_neon): Ditto.
2248         (imm_rshift_or_reg_neon): Ditto.
2249
2250         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
2251
2252 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
2253
2254         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
2255         builtin calls even if likelyvalue is not CONSTANT.
2256         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
2257         Return get_value_for_expr of first operand
2258         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
2259         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
2260         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
2261         their non-checking counterparts.
2262         (call_may_clobber_ref_p_1): Likewise.
2263         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
2264         like their non-checking counterparts.
2265         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2266         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
2267         like their non-checking counterparts.
2268         (find_func_clobbers): Likewise.
2269         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
2270         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
2271
2272         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
2273         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
2274         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
2275         of base type reference as argument.
2276         (resolve_addr_in_expr): Likewise.  Fix keep computation.
2277         (convert_descriptor_to_signed): Renamed to...
2278         (convert_descriptor_to_mode): ... this.  For wider types convert to
2279         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
2280         (typed_binop): New function.
2281         (scompare_loc_descriptor, ucompare_loc_descriptor,
2282         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
2283         default to unsigned type instead of signed.
2284
2285         PR debug/47858
2286         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
2287         (gimple_build_debug_source_bind_stat): New prototype.
2288         (gimple_build_debug_source_bind): Define.
2289         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
2290         gimple_debug_source_bind_get_value,
2291         gimple_debug_source_bind_get_value_ptr,
2292         gimple_debug_source_bind_set_var,
2293         gimple_debug_source_bind_set_value): New inlines.
2294         * gimple.c (gimple_build_debug_source_bind_stat): New function.
2295         * gimple-pretty-print.c (dump_gimple_debug): Handle
2296         GIMPLE_DEBUG_SOURCE_BIND.
2297         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
2298         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2299         * tree-parloops.c (eliminate_local_variables,
2300         separate_decls_in_region): Likewise.
2301         (separate_decls_in_region_debug): Renamed from
2302         separate_decls_in_region_debug_bind.  Handle
2303         gimple_debug_source_bind_p.
2304         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
2305         prototypes.
2306         (DECL_HAS_DEBUG_ARGS_P): Define.
2307         (struct tree_function_decl): Add has_debug_args_flag field.
2308         * tree.c (debug_args_for_decl): New variable.
2309         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
2310         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
2311         (rewrite_debug_stmt_uses): New function.
2312         (rewrite_stmt): Use it to rewrite debug stmt uses.
2313         * rtl.def (DEBUG_PARAMETER_REF): New.
2314         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
2315         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
2316         DEBUG_PARAMETER_REF.
2317         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
2318         * print-rtl.c (print_rtx): Likewise.
2319         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
2320         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
2321         debug stmts in the first bb.
2322         * tree-inline.c (remap_ssa_name): If remapping default def
2323         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
2324         a source bind debug stmt.
2325         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
2326         (maybe_move_debug_stmts_to_successors): Likewise.
2327         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
2328         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
2329         debug args vector from old_decl to new_decl.
2330         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
2331         or modified parameters, add debug bind stmts before call
2332         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
2333         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
2334         on DECL_DEBUG_EXPRs from debug args vector.
2335         (expand_debug_source_expr): New function.
2336         (expand_debug_locations): Use it for source bind insns.
2337         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
2338         * var-tracking.c (prepare_call_arguments): Add debug args
2339         to call_arguments if any.
2340         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
2341         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
2342         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
2343         (get_ref_die_offset, parameter_ref_descriptor): New functions.
2344         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
2345         (gen_subprogram_die): Handle parameters identified by
2346         DEBUG_PARAMETER_REF.
2347
2348 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2349
2350         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
2351         * doc/install.texi (Configuration): Document --with-tls.
2352         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
2353         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
2354         (arm_tls_descseq_addr): New.
2355         (legitimize_tls_address): Add tlsdesc support.
2356         (arm_cannot_copy_insn_p): Check for tlscall.
2357         (arm_emit_tls_decoration): Likewise.
2358         * config/arm/arm.h (TARGET_GNU2_TLS): New.
2359         (OPTION_DEFAULT_SPECS): Add with-tls support.
2360         * config/arm/arm.md (R1_REGNUM): Define.
2361         (tlscall): New.
2362         * config/arm/arm.opt (tls_type): New enumeration type and values.
2363         (mtls-dialect): New switch.
2364         * config/arm/arm-opts.h (enum tls_type): New.
2365
2366 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2367
2368         * attribs.c (register_attribute): Added assert to check that all
2369         attribute specs are registered with a name that is not empty and
2370         does not start with '_'.
2371         (decl_attributes): Avoid the lookup of the "naked" attribute spec
2372         if the function has no attributes.
2373         * tree.c (is_attribute_with_length_p): Removed.
2374         (is_attribute_p): Removed.
2375         (private_is_attribute_p): New.
2376         (private_lookup_attribute): New.
2377         (lookup_attribute): Removed.
2378         (lookup_ident_attribute): New.
2379         (remove_attribute): Require the first argument to be in the form
2380         'text', not '__text__'.  Updated asserts.
2381         (merge_attributes): Use lookup_ident_attributes instead of
2382         lookup_attribute.
2383         (merge_dllimport_decl_attributes): Use remove_attribute.
2384         (attribute_list_contained): Likewise.
2385         (attribute_list_equal): Immediately return 1 if the arguments are
2386         identical pointers.
2387         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
2388         'int'.  Require the first argument to be in the form 'text', not
2389         '__text__'.  Require the second argument to be an identifier.
2390         (lookup_attribute): Made inline.  Require the first argument to be
2391         in the form 'text', not '__text__'.
2392         (private_is_attribute_p, private_lookup_attribute): New.
2393         Updated comments.
2394
2395 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
2396
2397         * builtins.c: Add sync_ or SYNC__ to builtin names.
2398         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
2399         * omp-low.c: Add sync_ or SYNC__ to builtin names.
2400
2401 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
2402
2403         PR target/33049
2404         * config/avr/avr.md (extzv): New expander.
2405         (*extzv): New insn.
2406         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
2407         * config/avr/constraints.md (C04): New constraint.
2408         * doc/md.texi (Machine Constraints): Document it.
2409
2410 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
2411
2412         PR middle-end/49489
2413         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
2414         unsignedp argument instead of 1 for clrsb_optab.
2415         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
2416         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
2417         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
2418         * optabs.c (widen_leading): Call widen_operand and expand_unop
2419         with 0 as unsignedp argument instead of 1 for clrsb_optab.
2420         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
2421
2422 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
2423
2424         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
2425
2426 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
2427
2428         * gensupport.c (add_define_attr): New static function.
2429         (is_predicable): Allow multi-alternative lists for the "predicable"
2430         attribute.
2431         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
2432         (process_one_cond_exec): Call alter_attrs_for_insn.
2433         * doc/md.texi (Defining Attributes): Mention some standard names.
2434         (Conditional Execution): Update documentation for "predicable".
2435
2436         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
2437         __builtin_clrsbll): Document.
2438         * doc/rtl.texi (clrsb): New entry.
2439         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
2440         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
2441         (expand_unop): Handle clrsb_optab.
2442         (init_optabs): Initialize it.
2443         * optabs.h (enum optab_index): New entry OTI_clrsb.
2444         (clrsb_optab): Define.
2445         * genopinit.c (optabs): Add an entry for it.
2446         * builtins.c (expand_builtin): Handle clrsb builtin functions.
2447         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
2448         BUILT_IN_CLRSBLL): New.
2449         * rtl.def (CLRSB): New code.
2450         * dwarf2out.c (mem_loc_descriptor): Handle it.
2451         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2452         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
2453         and popcount.
2454         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
2455         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
2456         (__ctzDI2): Move declaration.
2457         * config/bfin/bfin.md (clrsbsi2): New expander.
2458         (signbitssi2): Use the CLRSB rtx.
2459         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
2460         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
2461
2462 2011-06-21  Richard Guenther  <rguenther@suse.de>
2463
2464         * ipa-inline-transform.c (inline_transform): Fix previous change.
2465
2466 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
2467
2468         PR tree-optimization/49478
2469         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
2470         with constant operand.
2471
2472 2011-06-21  Richard Guenther  <rguenther@suse.de>
2473
2474         * ipa-inline-transform.c (inline_transform): Fix typo.
2475
2476 2011-06-21  Richard Guenther  <rguenther@suse.de>
2477
2478         PR tree-optimization/49483
2479         * tree-vect-stmts.c (vectorizable_assignment): Also handle
2480         VIEW_CONVERT_EXPR conversions.
2481
2482 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
2483
2484         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
2485         * config/avr/avr-tables.opt: New file (generated).
2486         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
2487         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
2488         avr-mcus.def.
2489         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
2490         (avr_option_override): Don't process -mmcu= argument here.  Set
2491         avr_current_device using avr_mcu_index.
2492         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
2493         * config/avr/avr.opt (mmcu=): Use Enum.
2494         * config/avr/t-avr (avr-devices.o): Update dependencies.
2495         ($(srcdir)/config/avr/avr-tables.opt): New.
2496         * target.def (help): Remove.
2497         * doc/tm.texi.in (TARGET_HELP): Remove.
2498         * doc/tm.texi: Regenerate.
2499         * opts.c: Don't include target.h.
2500         (common_handle_option): Don't call targetm.help.
2501         * system.h (TARGET_HELP): Poison.
2502         * Makefile.in (opts.o): Update dependencies.
2503
2504 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2505
2506         * config/usegld.h: New file.
2507         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
2508         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
2509         (LIB_SPEC): Likewise.  Search /lib.
2510         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
2511         (RDYNAMIC_SPEC): Handle GNU ld.
2512         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
2513         Define.
2514         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
2515         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
2516         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
2517         (STACK_CHECK_STATIC_BUILTIN): Define.
2518         * config/sol2.opt (compat-bsd): Remove.
2519         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
2520         * config/sol2-bi.h: New file.
2521         * config/sol2-gld.h: Remove.
2522         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
2523         (NO_DBX_BNSYM_ENSYM): Remove.
2524         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2525         (STACK_CHECK_STATIC_BUILTIN): Remove.
2526         Test USE_GLD instead of TARGET_GNU_LD.
2527         * config/i386/sol2-10.h: Rename to ...
2528         * config/i386/sol2-bi.h .. this.
2529         (SUBTARGET_EXTRA_SPECS): Redefine.
2530         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
2531         (MULTILIB_DEFAULTS): Remove.
2532         (DEFAULT_ARCH32_P): Define.
2533         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
2534         (ARCH64_SUBDIR): Define.
2535         Test USE_GLD instead of TARGET_GNU_LD.
2536         (I386_EMULATION): Rename to ...
2537         (ARCH32_EMULATION): ... this.
2538         (X86_64_EMULATION): Rename to ...
2539         (ARCH64_EMULATION): ... this.
2540         (TARGET_LD_EMULATION): Remove.
2541         (LINK_ARCH_SPEC): Remove.
2542         * config/i386/sol2-gas.h: Remove.
2543         * config/i386/t-sol2-10: Rename to ...
2544         * config/i386/t-sol2-64: ... this.
2545         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
2546         (AS_SPARC64_FLAG): Define.
2547         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
2548         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
2549         depending on TARGET_CPU_DEFAULT.
2550         (CPP_CPU_SPEC): Redefine.
2551         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
2552         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
2553         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
2554         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
2555         ASM_ARCH_DEFAULT_SPEC): Redefine.
2556         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2557         LINK_ARCH_DEFAULT_SPEC.
2558         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
2559         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
2560         (ARCH64_SUBDIR): Define.
2561         (LINK_ARCH64_SPEC): Redefine.
2562         (CC1_SPEC): Redefine.
2563         (OPTION_DEFAULT_SPECS): Redefine.
2564         (MULTILIB_DEFAULTS): Define.
2565         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
2566         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
2567         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
2568         (NO_DBX_BNSYM_ENSYM): Remove.
2569         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2570         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
2571         (TARGET_ASM_NAMED_SECTION): Likewise.
2572         (STACK_CHECK_STATIC_BUILTIN): Remove.
2573         * config/sparc/sol2-bi.h: Remove.
2574         * config/sparc/sol2-gas-bi.h: Remove.
2575         * config/sparc/sol2-gas.h: Remove.
2576         * config/sparc/sol2-gld-bi.h: Remove.
2577         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
2578         common parts ...
2579         (*-*-solaris2*): ... here.
2580
2581 2011-06-21  Christian Bruel  <christian.bruel@st.com>
2582
2583         PR other/43564
2584         * ipa-inline.c (can_inline_edge_p): Check
2585         !DECL_DISREGARD_INLINE_LIMITS.
2586
2587 2011-06-21  Christian Bruel  <christian.bruel@st.com>
2588
2589         PR middle-end/49139
2590         * cgraphunit.c (process_function_and_variable_attributes): warn when
2591         always_inline functions that are not inline.
2592         * ipa-inline-transform.c (inline_transform): Always call
2593         optimize_inline.
2594         * tree-inline.c (tree_inlinable_function_p): Use error instead
2595         of sorry.
2596         (expand_call_inline): Likewise.
2597
2598 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
2599
2600         * Makefile.in (dg_target_exps): Set.
2601         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
2602         instead of 7, try to divide it more evenly.
2603
2604 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
2605
2606         PR target/49089
2607         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
2608         (avx256_split_unaligned_store): New definition.
2609         (ix86_option_override_internal): Enable avx256 unaligned load/store
2610         splitting only when avx256_split_unaligned_load/store is set.
2611
2612 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
2613
2614         * regrename.c (scan_rtx_reg): Handle the case where we write to an
2615         open chain in a smaller mode without failing the entire block.
2616
2617 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
2618
2619         PR middle-end/47725
2620         * combine.c (cant_combine_insn_p): Don't check zero/sign
2621         extended hard registers.
2622
2623 2011-06-21  Alan Modra  <amodra@gmail.com>
2624
2625         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
2626         CONST high part large-toc address.
2627         (rs6000_tls_referenced_p): Make static.
2628         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
2629
2630 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
2631
2632         PR middle-end/47725
2633         * combine.c (cant_combine_insn_p): Check zero/sign extended
2634         hard registers.
2635
2636 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2637
2638         PR target/49385
2639         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
2640         one of the operands is a register.
2641
2642 2011-06-20  Kai Tietz  <ktietz@redhat.com>
2643
2644         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
2645         operations in combination with binary and.
2646
2647 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
2648
2649         * regrename.c (do_replace): Don't update notes.
2650
2651 2011-06-20  Alan Modra  <amodra@gmail.com>
2652
2653         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
2654         of toc-relative address in CONST.
2655         (rs6000_delegitimize_address): Recognize changed address.
2656         (rs6000_legitimize_reload_address): Likewise.
2657         (rs6000_emit_move): Don't force these constants to memory.
2658         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
2659         toc-relative address in CONST.
2660         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
2661         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
2662
2663 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2664
2665         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
2666         (count_trailing_zeros): Likewise.
2667
2668 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2669
2670         PR other/49325
2671         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
2672         .init_array can be used with .ctors on targets.
2673         * configure: Regenerated.
2674
2675 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
2676
2677         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
2678         if the element type is volatile.
2679
2680 2011-06-18  Jan Hubicka  <jh@suse.cz>
2681
2682         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
2683         extra name aliases.
2684         (lto_symtab_resolve_can_prevail_p): Likewise.
2685         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
2686         * cgraphbuild.c (record_reference): Remove extra body alias code.
2687         (mark_load): Likewise.
2688         (mark_store): Likewise.
2689         * cgraph.h (varpool_node): Remove extra_name filed;
2690         add alias_of and extraname_alias.
2691         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
2692         (varpool_alias_aliased_node): New inline function.
2693         (varpool_variable_node): New function.
2694         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
2695         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
2696         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
2697         (input_varpool_node): Likewise.
2698         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
2699         (varpool_externally_visible_p): Remove extra body alias code.
2700         (function_and_variable_visibility): Likewise.
2701         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
2702         (ipa_pta_execute): Use it.
2703         * varpool.c (varpool_remove_node): Remove extra name alias code.
2704         (varpool_mark_needed_node): Likewise.
2705         (varpool_analyze_pending_decls): Analyze aliases.
2706         (assemble_aliases): New functoin.
2707         (varpool_assemble_decl): Use it.
2708         (varpool_create_variable_alias): New function.
2709         (varpool_extra_name_alias): Rewrite.
2710         (varpool_for_node_and_aliases): New function.
2711
2712 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
2713
2714         PR target/49411
2715         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
2716         last_arg_constant and last argument doesn't match its predicate,
2717         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
2718         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
2719         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
2720         spelling of error message.
2721         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
2722         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
2723         const_0_to_255_operand instead of const_int_operand.
2724
2725         Revert:
2726         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2727
2728         * config/i386/sse.md (blendbits): Remove mode attribute.
2729         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2730         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2731         Check integer value of operand 3 in insn constraint.
2732
2733 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
2734
2735         PR rtl-optimization/48542
2736         * reload.c (find_equiv_reg): Stop looking when finding a
2737         setjmp-type call.
2738         * reload1.c (reload_as_needed): Invalidate all reload
2739         registers when crossing a setjmp-type call.
2740
2741 2011-06-16  Jeff Law  <law@redhat.com>
2742
2743         * tree-ssa-threadupdate.c (struct redirection_data): New field
2744         intermediate_edge.
2745         (THREAD_TARGET2): Define.
2746         (redirection_data_eq): Also check that the intermediate edge is equal.
2747         (lookup_redirection_data): Drop useless argument.  Extract the
2748         outgoing_edge and intermediate edge from E.  Callers updated.
2749         (copy_phi_args, update_destination_phis): New functions.
2750         (fix_duplicate_block_edges): Likewise.
2751         (create_edge_and_update_destination_phis): Duplicate all the edges
2752         hung off e->aux.  Use copy_phi_args.
2753         (create_duplicates): Use fix_duplicate_block_edges.
2754         (fixup_template_block): Likewise.
2755         (redirect_edges): If necessary, redirect the joiner block's incoming
2756         edge to the duplicate of the joiner block.
2757         (thread_block): Don't muck up loops when threading through a joiner
2758         block.
2759         (thread_through_loop_header): Handle threading through a joiner block.
2760         (mark_threaded_blocks, register_jump_thread): Likewise.
2761         * tree-flow.h (register_jump_thread): Add new argument.  Callers
2762         updated.
2763         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
2764         (thread_across_edge): Handle threading through a joiner block.
2765
2766 2011-06-16  Martin Jambor  <mjambor@suse.cz>
2767
2768         PR tree-optimization/49343
2769         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
2770         calculate offset, provide 2nd operand for the new COMPONENT_REF.
2771
2772 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
2773
2774         * config/darwin-protos.h (machopic_select_rtx_section): Move to
2775         inside RTX_CODE ifdef.
2776
2777 2011-06-16  Tom de Vries  <tom@codesourcery.com>
2778
2779         PR target/45098
2780         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
2781         Disallow NULL pointer for pointer arithmetic.
2782
2783 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2784
2785         PR target/49398
2786         Revert.
2787         2011-06-10  Wei Guozhi  <carrot@google.com>
2788
2789         PR target/45335
2790         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
2791         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
2792         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
2793         related peephole2.
2794         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
2795         related peephole2.
2796         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
2797         (arm_legitimate_ldrd_p): New prototype.
2798         (arm_output_ldrd): New prototype.
2799         * config/arm/arm.c (arm_check_ldrd_operands): New function.
2800         (arm_legitimate_ldrd_p): New function.
2801         (arm_output_ldrd): New function.
2802
2803 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
2804
2805         PR middle-end/46500
2806         * doc/tm.texi.in: Update Copyright date.
2807         * doc/tm.texi: Regenerate.
2808         * targhooks.c (default_setup_incoming_varargs): Replace
2809         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2810         (default_pretend_outgoing_varargs_named): Likewise.
2811         (hook_pass_by_reference_must_pass_in_stack): Likewise.
2812         (hook_callee_copies_named): Likewise.
2813         (default_function_arg_advance): Likewise.
2814         (default_function_arg): Likewise.
2815         (default_function_incoming_arg): Likewise.
2816         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
2817         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
2818         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
2819         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
2820         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
2821         * targhooks.h (default_setup_incoming_varargs): Likewise.
2822         (default_pretend_outgoing_varargs_named): Likewise.
2823         (hook_pass_by_reference_must_pass_in_stack): Likewise.
2824         (hook_callee_copies_named): Likewise.
2825         (default_function_arg_advance): Likewise.
2826         (default_function_arg): Likewise.
2827         (default_function_incoming_arg): Likewise.
2828         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
2829         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
2830         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
2831         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
2832         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
2833         * target.def (pass_by_reference): Likewise.
2834         (setup_incoming_varargs, strict_argument_naming): Likewise.
2835         (pretend_outgoing_varargs_named, callee_copies): Likewise.
2836         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
2837         (function_incoming_arg): Likewise.
2838         * target.h: Don't include "tm.h" .
2839         (cumulative_args_t): New typedef.
2840         [GCC_TM_H] (get_cumulative_args): New static inline function.
2841         [GCC_TM_H] (pack_cumulative_args): Likewise.
2842         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
2843         argument type with cumulative_args_t.
2844         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
2845         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
2846         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
2847         (frv_arg_partial_bytes, frv_function_arg): Likewise.
2848         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
2849         (frv_function_arg_1): Likewise.
2850         * config/s390/s390.c (s390_pass_by_reference): Likewise.
2851         (s390_function_arg_advance, s390_function_arg): Likewise.
2852         * config/m32c/m32c.c (m32c_function_arg): Likewise.
2853         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
2854         (m32c_strict_argument_naming): Likewise.
2855         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
2856         (spu_function_arg_advance): Likewise.
2857         (spu_setup_incoming_varargs): Likewise.  Make static.
2858         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
2859         Remove prototype.
2860         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
2861         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2862         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
2863         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
2864         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
2865         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
2866         (mep_pass_by_reference, mep_function_arg): Likewise.
2867         (mep_function_arg_advance): Likewise.
2868         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
2869         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
2870         (m32r_function_arg, m32r_function_arg_advance): Likewise.
2871         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
2872         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
2873         (ix86_function_arg, ix86_pass_by_reference): Likewise.
2874         (ix86_setup_incoming_varargs): Likewise.
2875         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
2876         (sh_strict_argument_naming): Likewise.
2877         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
2878         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
2879         (sh_function_arg_advance, sh_function_arg): Likewise.
2880         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
2881         (pdp11_function_arg_advance): Likewise.
2882         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
2883         Likewise.
2884         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
2885         * config/avr/avr.c (avr_function_arg): Likewise.
2886         (avr_function_arg_advance): Likewise.
2887         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
2888         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
2889         (xtensa_function_arg_1): Likewise.
2890         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
2891         Likewise.
2892         (xstormy16_function_arg): Likewise.
2893         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
2894         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
2895         (fr30_function_arg_advance): Likewise.
2896         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
2897         (lm32_function_arg, lm32_function_arg_advance): Likewise.
2898         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
2899         (moxie_function_arg, moxie_function_arg_advance): Likewise.
2900         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
2901         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
2902         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
2903         (cris_function_arg, cris_function_incoming_arg): Likewise.
2904         (cris_function_arg_advance, cris_function_arg_1): Likewise.
2905         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
2906         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
2907         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
2908         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
2909         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
2910         (mn10300_arg_partial_bytes): Likewise.
2911         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
2912         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
2913         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
2914         (ia64_function_arg_1): Likewise.
2915         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
2916         (m68k_function_arg): Likewise.
2917         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
2918         (rs6000_function_arg, setup_incoming_varargs): Likewise.
2919         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
2920         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
2921         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
2922         (picochip_arg_advance): Likewise.
2923         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
2924         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
2925         (mcore_function_arg_advance): Likewise.
2926         * config/score/score.c (score_pass_by_reference): Likewise.
2927         (score_function_arg_advance): Likewise.
2928         (score_arg_partial_bytes): Likewise.  Make static.
2929         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
2930         * config/arm/arm.c (arm_arg_partial_bytes): Replace
2931         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2932         (arm_function_arg, arm_function_arg_advance): Likewise.
2933         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
2934         * config/pa/pa.c (pa_pass_by_reference): Likewise.
2935         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
2936         (pa_function_arg): Likewise.
2937         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
2938         (mips_function_arg, mips_function_arg_advance): Likewise.
2939         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
2940         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
2941         * config/vax/vax.c (vax_function_arg): Likewise.
2942         (vax_function_arg_advance): Likewise.
2943         * config/h8300/h8300.c (h8300_function_arg): Likewise.
2944         (h8300_function_arg_advance): Likewise.
2945         * config/v850/v850.c (v850_pass_by_reference): Likewise.
2946         (v850_strict_argument_naming, v850_function_arg): Likewise.
2947         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
2948         (v850_setup_incoming_varargs): Likewise.
2949         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
2950         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
2951         (mmix_function_arg, mmix_pass_by_reference): Likewise.
2952         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
2953         with const void *.
2954         * config/bfin/bfin.c (setup_incoming_varargs): Replace
2955         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2956         (bfin_function_arg_advance, bfin_function_arg): Likewise.
2957         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
2958         * calls.c (emit_call_1): Change type of args_so_far to
2959         cumulative_args_t.  Changed all callers.
2960         (initialize_argument_information): Likewise.
2961         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
2962         * dse.c (get_call_args): Likewise.
2963         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
2964         * function.c (pass_by_reference, reference_callee_copied): Likewise.
2965         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
2966         New member args_so_far_v.  Changed all users.
2967         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
2968         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
2969         * config/mips/mips.c (mips_output_args_xfer): Likewise.
2970         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
2971         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2972         * config/microblaze/microblaze.c (microblaze_expand_prologue):
2973         Likewise.
2974         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
2975         m32r_pass_by_reference.
2976
2977 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
2978
2979         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
2980         argument to be a VEC of statements.
2981         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
2982         assert that pattern statements have to have their vector type set.
2983         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
2984         Change the first argument to be a VEC of statements.  Update
2985         documentation.
2986         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
2987         (vect_handle_widen_mult_by_const): New function.
2988         (vect_recog_widen_mult_pattern):  Change the first argument to be a
2989         VEC of statements.  Update documentation.  Check that the constant is
2990         INTEGER_CST.  Support multiplication by a constant that fits an
2991         intermediate type - call vect_handle_widen_mult_by_const.
2992         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
2993         call.  Handle additional pattern statements if necessary.
2994
2995 2011-06-16  Nick Clifton  <nickc@redhat.com>
2996
2997         PR target/49427
2998         * config.gcc: Set cpu_type to v850 for any V850 architecture.
2999         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
3000         md_file, extra_modes, out_file and extra_options are these are all
3001         deduced from cpu_type.
3002
3003 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
3004
3005         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
3006         truncation mask to 63.
3007
3008 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
3009
3010         PR target/49313
3011         PR target/29524
3012         * longlong.h: Add AVR support:
3013         (count_leading_zeros): New macro.
3014         (count_trailing_zeros): New macro.
3015         (COUNT_LEADING_ZEROS_0): New macro.
3016         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
3017         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
3018         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
3019         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
3020         (LIB2FUNCS_EXCLUDE): Add _clz.
3021         * config/avr/libgcc.S (XCALL): Move up in file.
3022         (XJMP): New C Macro.
3023         (DEFUN): New asm macro.
3024         (ENDF): New asm macro.
3025         (__ffssi2): New function.
3026         (__ffshi2): New function.
3027         (__loop_ffsqi2): New function.
3028         (__ctzsi2): New function.
3029         (__ctzhi2): New function.
3030         (__clzdi2): New function.
3031         (__clzsi2): New function.
3032         (__clzhi2): New function.
3033         (__paritydi2): New function.
3034         (__paritysi2): New function.
3035         (__parityhi2): New function.
3036         (__parityqi2): New function.
3037         (__popcounthi2): New function.
3038         (__popcountsi2): New function.
3039         (__popcountdi2): New function.
3040         (__popcountqi2): New function.
3041         (__bswapsi2): New function.
3042         (__bswapdi2): New function.
3043         (__ashldi3): New function.
3044         (__ashrdi3): New function.
3045         (__lshrdi3): New function.
3046         Fix suspicous lines.
3047
3048 2011-06-16  Richard Guenther  <rguenther@suse.de>
3049
3050         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
3051         the same as x != 0.
3052         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
3053         to (bool) X & 1.
3054         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
3055         equality compares against zero for the lower bit.
3056
3057 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
3058
3059         PR tree-optimization/49419
3060         * tree-vrp.c (execute_vrp): Call init_range_assertions
3061         before estimate_numbers_of_iterations, call
3062         free_number_of_iterations_estimates before calling
3063         remove_range_assertions.
3064
3065 2011-06-16  Revital Eres  <revital.eres@linaro.org>
3066
3067         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
3068         (struct partial_schedule): Add rows_length field.
3069         (verify_partial_schedule): Check rows_length.
3070         (ps_insert_empty_row): Handle rows_length.
3071         (create_partial_schedule): Likewise.
3072         (free_partial_schedule): Likewise.
3073         (reset_partial_schedule): Likewise.
3074         (create_ps_insn): Remove rest_count argument.
3075         (remove_node_from_ps): Update rows_length.
3076         (add_node_to_ps): Update rows_length and call create_ps_insn
3077         without passing row_rest_count.
3078         (rotate_partial_schedule): Update rows_length.
3079
3080 2011-06-16  Revital Eres  <revital.eres@linaro.org>
3081
3082         * ddg.c (add_intra_loop_mem_dep): New function.
3083         (build_intra_loop_deps): Call it.
3084
3085 2011-06-13  Jeff Law  <law@redhat.com>
3086
3087         * df-problems.c (df_lr_local_compute): Manually CSE
3088         PIC_OFFSET_TABLE_REGNUM.
3089         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
3090         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
3091
3092 2011-06-13  Jan Hubicka  <jh@suse.cz>
3093
3094         * cgraphunit.c (handle_alias_pairs): New function.
3095         (cgraph_finalize_compilation_unit): Use it.
3096         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
3097         as externally visible.
3098
3099 2011-06-15  Richard Guenther  <rguenther@suse.de>
3100
3101         * expr.c (expand_expr_real_2): Reduce all integral types to
3102         bitfield precision.
3103         (expand_expr_real_1): Likewise.
3104
3105 2011-06-15  Martin Jambor  <mjambor@suse.cz>
3106
3107         PR tree-optimization/48613
3108         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
3109         ipa_node_params_vector is NULL.
3110
3111 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
3112
3113         PR debug/49382
3114         * dwarf2out.c (dw_loc_list_node): Add force field.
3115         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
3116         location in the list, even if it is modified before first real insn.
3117         (output_loc_list): Emit empty ranges with force flag set.
3118         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
3119
3120 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
3121
3122         PR target/49349
3123         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
3124         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
3125         above a fence.  Update comments.
3126         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
3127         placed just above it.  Do not allow NULL place_to_insert.
3128
3129 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
3130
3131         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
3132         (slpeel_tree_peel_loop_to_edge): Don't call
3133         remove_dead_stmts_from_loop.
3134         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
3135         remove irrelevant pattern statements.  For irrelevant statements
3136         check if it is the last statement of a detected pattern, use
3137         corresponding pattern statement instead.
3138         (destroy_loop_vec_info): No need to remove pattern statements,
3139         only free stmt_vec_info.
3140         (vect_transform_loop): For irrelevant statements check if it is
3141         the last statement of a detected pattern, use corresponding
3142         pattern statement instead.
3143         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
3144         pattern statements.  Set basic block for the new statement.
3145         (vect_pattern_recog): Update documentation.
3146         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
3147         operands of pattern statements.
3148         (vectorizable_call): Fix printing.  In case of a pattern statement
3149         use the lhs of the original statement when creating a dummy
3150         statement to replace the original call.
3151         (vect_analyze_stmt): For irrelevant statements check if it is
3152         the last statement of a detected pattern, use corresponding
3153         pattern statement instead.
3154         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
3155         statements use gsi of the original statement.
3156
3157 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
3158
3159         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
3160         common/common-target-def.h.
3161         * target.def (default_target_flags, handle_option,
3162         supports_split_stack, optimization_table, init_struct,
3163         except_unwind_info, unwind_tables_default, have_named_sections):
3164         Move to common/common-target.def.
3165         * target.h (enum opt_levels, struct default_options): Move to
3166         common/common-target.h.
3167         * targhooks.c (default_except_unwind_info,
3168         dwarf2_except_unwind_info, sjlj_except_unwind_info,
3169         default_target_handle_option, empty_optimization_table): Move to
3170         common/common-targhooks.c.
3171         * targhooks.h (default_except_unwind_info,
3172         dwarf2_except_unwind_info, sjlj_except_unwind_info,
3173         default_target_handle_option, empty_optimization_table): Move to
3174         common/common-targhooks.h.
3175         * common/common-target-def.h: Include common/common-targhooks.h.
3176         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
3177         defined.
3178         * common/common-target.def (handle_option, option_init_struct,
3179         option_optimization_table, default_target_flags,
3180         except_unwind_info, supports_split_stack, unwind_tables_default,
3181         have_named_sections): Move from target.def.
3182         (HOOK_PREFIX): Undefine at end of file.
3183         * common/common-target.h: Include input.h.
3184         (enum opt_levels, struct default_options): Move from target.h.
3185         * common/common-targhooks.c, common/common-targhooks.h: New.
3186         * config.gcc (target_has_targetm_common): Default to yes.
3187         (moxie*): Set target_has_targetm_common=no.
3188         (hppa*-*-*): Don't set target_has_targetm_common=yes.
3189         * doc/tm.texi: Regenerate.
3190         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
3191         (C_TARGET_DEF_H): Add common/common-targhooks.h.
3192         (GCC_OBJS): Remove vec.o.
3193         (OBJS): Remove hooks.o and vec.o.
3194         (OBJS-libcommon-target): Add vec.o, hooks.o and
3195         common/common-targhooks.o.
3196         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
3197         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
3198         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
3199         cfglayout.o, $(out_object_file), $(common_out_object_file)):
3200         Update dependencies.
3201         (common/common-targhooks.o): New.
3202         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
3203         * common/config/pa/pa-common.c: Include more headers.  Take
3204         copyright dates from pa.c.
3205         (pa_option_optimization_table, pa_handle_option,
3206         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
3207         TARGET_HANDLE_OPTION): Move from pa.c.
3208         * common/config/alpha/alpha-common.c,
3209         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
3210         common/config/bfin/bfin-common.c,
3211         common/config/cris/cris-common.c,
3212         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
3213         common/config/h8300/h8300-common.c,
3214         common/config/i386/i386-common.c,
3215         common/config/ia64/ia64-common.c,
3216         common/config/iq2000/iq2000-common.c,
3217         common/config/lm32/lm32-common.c,
3218         common/config/m32c/m32c-common.c,
3219         common/config/m32r/m32r-common.c,
3220         common/config/m68k/m68k-common.c,
3221         common/config/mcore/mcore-common.c,
3222         common/config/mep/mep-common.c,
3223         common/config/microblaze/microblaze-common.c,
3224         common/config/mips/mips-common.c,
3225         common/config/mmix/mmix-common.c,
3226         common/config/mn10300/mn10300-common.c,
3227         common/config/pdp11/pdp11-common.c,
3228         common/config/picochip/picochip-common.c,
3229         common/config/rs6000/rs6000-common.c,
3230         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
3231         common/config/score/score-common.c, common/config/sh/sh-common.c,
3232         common/config/sparc/sparc-common.c,
3233         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
3234         common/config/vax/vax-common.c,
3235         common/config/xstormy16/xstormy16-common.c,
3236         common/config/xtensa/xtensa-common.c: New.
3237         * config/alpha/alpha.c: Include common/common-target.h.
3238         (alpha_option_optimization_table, alpha_handle_option,
3239         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3240         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
3241         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
3242         * config/arm/arm.c (arm_option_optimization_table,
3243         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3244         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
3245         arm-common.c.
3246         * config/avr/avr.c (avr_option_optimization_table,
3247         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
3248         to avr-common.c.
3249         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
3250         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
3251         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
3252         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
3253         * config/cris/cris.c (cris_option_optimization_table,
3254         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3255         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
3256         cris-common.c.
3257         * config/fr30/fr30.c (fr30_option_optimization_table,
3258         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
3259         to fr30-common.c.
3260         * config/frv/frv.c (frv_option_optimization_table,
3261         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
3262         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
3263         * config/h8300/h8300.c (h8300_option_optimization_table,
3264         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3265         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
3266         * config/i386/i386-protos.h (ix86_handle_option): Declare.
3267         * config/i386/i386.c: Include common/common-target.h.
3268         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
3269         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
3270         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
3271         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
3272         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
3273         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
3274         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
3275         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
3276         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
3277         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
3278         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
3279         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
3280         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
3281         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
3282         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
3283         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
3284         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
3285         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
3286         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
3287         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
3288         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
3289         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
3290         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
3291         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
3292         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
3293         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
3294         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
3295         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
3296         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
3297         ix86_option_optimization_table, ix86_option_init_struct,
3298         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
3299         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3300         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
3301         i386-common.c.
3302         * config/i386/t-i386 (i386.o): Update dependencies.
3303         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
3304         * config/ia64/ia64.c (ia64_option_optimization_table,
3305         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
3306         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3307         ia64_handle_option): Move to ia64-common.c.
3308         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
3309         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
3310         * config/lm32/lm32.c (lm32_option_optimization_table,
3311         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
3312         to lm32-common.c.
3313         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
3314         m32c-common.c.
3315         * config/m32r/m32r.c (m32r_option_optimization_table,
3316         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3317         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
3318         m32r_handle_option): Move to m32r-common.c.
3319         (m32r_memory_move_cost): Remove comment referring to
3320         TARGET_HANDLE_OPTION.
3321         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
3322         Move to m68k-common.c.
3323         * config/mcore/mcore.c (mcore_option_optimization_table,
3324         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3325         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
3326         * config/mep/mep.c (mep_option_optimization_table,
3327         mep_handle_option, TARGET_HANDLE_OPTION,
3328         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
3329         Move to mep-common.c.
3330         * config/microblaze/microblaze.c
3331         (microblaze_option_optimization_table,
3332         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3333         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
3334         * config/mips/mips.c (mips_handle_option,
3335         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
3336         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
3337         mips-common.c.
3338         * config/mmix/mmix.c (mmix_option_optimization_table,
3339         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3340         Move to mmix-common.c.
3341         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
3342         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
3343         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3344         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
3345         * config/pa/pa.c: Include common/common-target.h.
3346         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
3347         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3348         pa_handle_option): Move to pa-common.c.
3349         (pa_option_override): Use targetm_common.except_unwind_info.
3350         (pa_asm_output_mi_thunk, pa_function_section): Use
3351         targetm_common.have_named_sections.
3352         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
3353         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3354         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3355         pdp11_handle_option, pdp11_option_init_struct): Move to
3356         pdp11-common.c.
3357         * config/picochip/picochip.c (picochip_option_optimization_table,
3358         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
3359         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
3360         * config/rs6000/rs6000.c: Include common/common-target.h.
3361         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
3362         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
3363         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
3364         rs6000_handle_option): Move to rs6000-common.c.
3365         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
3366         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
3367         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3368         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
3369         * config/s390/s390.c (processor_flags_table,
3370         s390_option_optimization_table, s390_option_init_struct,
3371         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
3372         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3373         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
3374         * config/s390/s390.h (processor_flags_table): Declare.
3375         * config/score/score.c (score_option_optimization_table,
3376         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3377         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
3378         score_handle_option): Move to score-common.c.
3379         * config/sh/sh.c (sh_option_optimization_table,
3380         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3381         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3382         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
3383         * config/sparc/sparc.c: Include common/common-target.h.
3384         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3385         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
3386         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
3387         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
3388         spu_option_init_struct): Move to spu-common.c.
3389         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
3390         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
3391         * config/v850/v850.c (small_memory_physical_max,
3392         v850_handle_memory_optionn v850_handle_option,
3393         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3394         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
3395         v850-common.c.
3396         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
3397         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
3398         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3399         Move to xtensa-common.c.
3400         * cfglayout.c: Include common/common-target.h.
3401         (fixup_reorder_chain): Use targetm_common.have_named_sections.
3402         * cfgrtl.c: Include common/common-target.h.
3403         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
3404         targetm_common.have_named_sections.
3405         * dbxout.c: Include common/common-target.h.
3406         (dbxout_function_end): Use targetm_common.have_named_sections.
3407         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
3408         targetm_common.except_unwind_info.
3409         * dwarf2out.c: Include common/common-target.h.
3410         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
3411         dwarf2out_begin_prologue, dwarf2out_frame_init,
3412         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
3413         targetm_common.except_unwind_info.
3414         * except.c: Include common/common-target.h.
3415         (init_eh, finish_eh_generation,
3416         output_one_function_exception_table): Use
3417         targetm_common.except_unwind_info.
3418         (switch_to_exception_section): Use targetm_common.have_named_sections.
3419         * explow.c: Include common/common-target.h.
3420         * expr.c: Include common/common-target.h.
3421         (build_personality_function): Use targetm_common.except_unwind_info.
3422         * function.c: Include common/common-target.h.
3423         (expand_function_end): Use targetm_common.except_unwind_info.
3424         * haifa-sched.c: Include common/common-target.h.
3425         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
3426         * lto-opts.c: Include common/common-target.h instead of target.h.
3427         (lto_reissue_options): Use targetm_common.handle_option.
3428         * opts.c: Include common/common-target.h.
3429         (target_handle_option): Use targetm_common.handle_option.
3430         (init_options_struct): Update comment referring to
3431         targetm.target_option.optimization.  Use
3432         targetm_common.default_target_flags,
3433         targetm_common.unwind_tables_default and
3434         targetm_common.option_init_struct.
3435         (default_options_optimization): Use
3436         targetm_common.option_optimization_table.
3437         (finish_options): Use targetm_common.except_unwind_info,
3438         targetm_common.unwind_tables_default,
3439         targetm_common.have_named_sections and
3440         targetm_common.supports_split_stack.
3441         * toplev.c: Include common/common-target.h.
3442         (process_options): Use targetm_common.have_named_sections.
3443         * tree-tailcall.c: Include common/common-target.h.
3444         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
3445         * tree.c: Include common/common-target.h.
3446         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
3447         * varasm.c: Include common/common-target.h.
3448         (resolve_unique_section, hot_function_section,
3449         default_function_section): Use targetm_common.have_named_sections.
3450
3451 2011-06-14  Easwaran Raman  <eraman@google.com>
3452
3453         PR rtl-optimization/44194
3454         * dse.c: Include tree-flow.h
3455         (insn_info): Add new field non_frame_wild_read.
3456         (group_info): Add new fields escaped_n and escaped_p.
3457         (kill_on_calls): New variable.
3458         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
3459         (dse_step0): Initialize kill_on_calls.
3460         (can_escape): New function.
3461         (set_usage_bits): Add additional parameter; record information
3462         about escaped locations.
3463         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
3464         (dse_step2_nospill): Set kill_on_calls based on
3465         group->escaped_n and group->escaped_n.
3466         (add_wild_read): Refactor into...
3467         (reset_active_stores): ... New function, and
3468         (free_read_records): ... New function.
3469         (add_non_frame_wild_read): New function.
3470         (scan_insn): Call add_non_frame_wild_read on non-const calls.
3471         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
3472         (dse_step5_nospill): Call scan_reads_nospill for instructions
3473         marked as non_frame_wild_read.
3474         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
3475
3476 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
3477
3478         * common/common-target-def.h, common/common-target.def,
3479         common/common-target.h, common/config/default-common.c,
3480         common/config/pa/pa-common.c: New files.
3481         * Makefile.in (common_out_file, common_out_object_file,
3482         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
3483         (OBJS-libcommon-target): Include $(common_out_object_file).
3484         (prefix.o): Update dependencies.
3485         ($(common_out_object_file), common/common-target-hooks-def.h,
3486         s-common-target-hooks-def-h): New.
3487         (s-tm-texi): Also check timestamp on common-target.def.
3488         (build/genhooks.o): Update dependencies.
3489         * config.gcc (common_out_file, target_has_targetm_common): Define.
3490         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
3491         TARGET_ALWAYS_STRIP_DOTDOT.
3492         * configure.ac (common_out_object_file): Define.
3493         (common_out_file, common_out_object_file): Substitute.
3494         (common): Create directory.
3495         * configure: Regenerate.
3496         * doc/tm.texi.in (targetm_common): Document.
3497         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
3498         * doc/tm.texi: Regenerate.
3499         * genhooks.c (hook_array): Also include common/common-target.def.
3500         * prefix.c (tm.h): Don't include.
3501         (common/common-target.h): Include.
3502         (ALWAYS_STRIP_DOTDOT): Don't define.
3503         (update_path): Use targetm_common.always_strip_dotdot instead of
3504         ALWAYS_STRIP_DOTDOT.
3505         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
3506
3507 2011-06-14  David Li  <davidxl@google.com>
3508
3509         * passes.c (execute_function_todo): Remove TODO_dump_func.
3510         (execute_one_pass): Remove TODO_dump_func.
3511         (execute_function_dump): New function.
3512         * tree-vrp.c: Remove TODO_dump_func.
3513         * regrename.c: Remove TODO_dump_func.
3514         * fwprop.c: Remove TODO_dump_func.
3515         * tree-into-ssa.c: Remove TODO_dump_func.
3516         * tree-complex.c: Remove TODO_dump_func.
3517         * tracer.c: Remove TODO_dump_func.
3518         * tree-loop-distribution.c: Remove TODO_dump_func.
3519         * postreload-gcse.c: Remove TODO_dump_func.
3520         * postreload.c: Remove TODO_dump_func.
3521         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
3522         * tree-tailcall.c: Remove TODO_dump_func.
3523         * ipa-cp.c: Remove TODO_dump_func.
3524         * final.c: Remove TODO_dump_func.
3525         * tree-emutls.c: Remove TODO_dump_func.
3526         * omp-low.c: Remove TODO_dump_func.
3527         * tree-ssa-dse.c: Remove TODO_dump_func.
3528         * tree-ssa-uncprop.c: Remove TODO_dump_func.
3529         * auto-inc-dec.c: Remove TODO_dump_func.
3530         * reorg.c: Remove TODO_dump_func.
3531         * tree-ssa-copyrename.c: Remove TODO_dump_func.
3532         * tree-ssa-ccp.c: Remove TODO_dump_func.
3533         * compare-elim.c: Remove TODO_dump_func.
3534         * mode-switching.c: Remove TODO_dump_func.
3535         * modulo-sched.c: Remove TODO_dump_func.
3536         * tree-call-cdce.c: Remove TODO_dump_func.
3537         * cse.c: Remove TODO_dump_func.
3538         * web.c: Remove TODO_dump_func.
3539         * tree-stdarg.c: Remove TODO_dump_func.
3540         * lto-streamer-out.c: Remove TODO_dump_func.
3541         * tree-ssa-math-opts.c: Remove TODO_dump_func.
3542         * tree-ssa-dom.c: Remove TODO_dump_func.
3543         * tree-nrv.c: Remove TODO_dump_func.
3544         * loop-init.c: Remove TODO_dump_func.
3545         * gimple-low.c: Remove TODO_dump_func.
3546         * ipa-inline.c: Remove TODO_dump_func.
3547         * tree-ssa-sink.c: Remove TODO_dump_func.
3548         * jump.c: Remove TODO_dump_func.
3549         * ifcvt.c: Remove TODO_dump_func.
3550         * tree-ssa-loop.c: Remove TODO_dump_func.
3551         * recog.c: Remove TODO_dump_func.
3552         * dse.c: Remove TODO_dump_func.
3553         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
3554         * matrix-reorg.c: Remove TODO_dump_func.
3555         * tree-eh.c: Remove TODO_dump_func.
3556         * regmove.c: Remove TODO_dump_func.
3557         * function.c: Remove TODO_dump_func.
3558         * tree-vectorizer.c: Remove TODO_dump_func.
3559         * ipa-split.c: Remove TODO_dump_func.
3560         * gcse.c: Remove TODO_dump_func.
3561         * tree-if-conv.c: Remove TODO_dump_func.
3562         * init-regs.c: Remove TODO_dump_func.
3563         * tree-ssa-phiopt.c: Remove TODO_dump_func.
3564         * implicit-zee.c: Remove TODO_dump_func.
3565         * lower-subreg.c: Remove TODO_dump_func.
3566         * bt-load.c: Remove TODO_dump_func.
3567         * tree-dfa.c: Remove TODO_dump_func.
3568         * except.c: Remove TODO_dump_func.
3569         * emit-rtl.c: Remove TODO_dump_func.
3570         * store-motion.c: Remove TODO_dump_func.
3571         * cfgexpand.c: Remove TODO_dump_func.
3572         * tree-cfgcleanup.c: Remove TODO_dump_func.
3573         * cfgcleanup.c: Remove TODO_dump_func.
3574         * tree-ssa-pre.c: Remove TODO_dump_func.
3575         * tree-sra.c: Remove TODO_dump_func.
3576         * tree-mudflap.c: Remove TODO_dump_func.
3577         * tree-ssa-copy.c: Remove TODO_dump_func.
3578         * cfglayout.c: Remove TODO_dump_func.
3579         * tree-ssa-forwprop.c: Remove TODO_dump_func.
3580         * tree-ssa-dce.c: Remove TODO_dump_func.
3581         * ira.c: Remove TODO_dump_func.
3582         * tree-ssa.c: Remove TODO_dump_func.
3583         * integrate.c: Remove TODO_dump_func.
3584         * tree-optimize.c: Remove TODO_dump_func.
3585         * tree-ssa-phiprop.c: Remove TODO_dump_func.
3586         * tree-object-size.c: Remove TODO_dump_func.
3587         * combine.c: Remove TODO_dump_func.
3588         * bb-reorder.c: Remove TODO_dump_func.
3589         * cprop.c: Remove TODO_dump_func.
3590         * var-tracking.c: Remove TODO_dump_func.
3591         * tree-profile.c: Remove TODO_dump_func.
3592         * tree-vect-generic.c: Remove TODO_dump_func.
3593         * reg-stack.c: Remove TODO_dump_func.
3594         * sched-rgn.c: Remove TODO_dump_func.
3595         * tree-ssa-structalias.c: Remove TODO_dump_func.
3596         * tree-switch-conversion.c: Remove TODO_dump_func.
3597         * tree-cfg.c: Remove TODO_dump_func.
3598         * tree-ssa-reassoc.c: Remove TODO_dump_func.
3599         * combine-stack-adj.c: Remove TODO_dump_func.
3600         * dce.c: Remove TODO_dump_func.
3601         * tree-ssanames.c: Remove TODO_dump_func.
3602         * regcprop.c: Remove TODO_dump_func.
3603
3604 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
3605
3606         PR middle-end/47364
3607         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
3608         and properly handle result not in Pmode.
3609
3610 2011-06-14  Robert Millan  <rmh@gnu.org>
3611
3612         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
3613         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
3614         `config/linux.h'.
3615
3616         * config/i386/kfreebsd-gnu64.h: New file.
3617         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
3618         with `i386/kfreebsd-gnu64.h'.
3619
3620         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
3621         (GNU_USER_LINK_EMULATION64): New macros.
3622         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
3623         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
3624         of hardcoding `elf_i386' and `elf_x86_64'.
3625
3626 2011-06-14  Nick Clifton  <nickc@redhat.com>
3627
3628         PR target/49403
3629         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
3630
3631         PR target/49402
3632         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
3633
3634 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
3635
3636         PR fortran/49103
3637         * tree.h (DECL_NONSHAREABLE): Define.
3638         (struct tree_decl_common): Change decl_common_unused to
3639         decl_nonshareable_flag.
3640         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
3641         Ignore vars with DECL_NONSHAREABLE bit set.
3642         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
3643         on stores to automatic aggregate vars.
3644
3645         PR rtl-optimization/49390
3646         Revert:
3647         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
3648
3649         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
3650         MEM_ALIAS_SET.
3651
3652 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
3653             Tom de Vries  <tom@codesourcery.com>
3654
3655         PR target/45098
3656         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
3657         Document changed semantics.
3658         (max_stmt_executions, max_stmt_executions_int): Declare.
3659         * tree-data-ref.c (estimated_loop_iterations)
3660         (estimated_loop_iterations_int): Move functions...
3661         * tree-ssa-loop-niter.c (estimated_loop_iterations)
3662         (estimated_loop_iterations_int): here.
3663         (record_estimate): Change nb_iterations_upper_bound and
3664         nb_iterations_estimate semantics.
3665         (max_stmt_executions, max_stmt_executions_int): New function.
3666         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
3667         (max_stmt_executions_tree): this.
3668         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
3669         estimated_loop_iterations_tree.
3670         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
3671         max_stmt_executions_int instead of estimated_loop_iterations_int.
3672         * predict.c (predict_loops): Idem.
3673         * tree-parloops.c (parallelize_loops): Idem.
3674         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
3675         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
3676         (init_omega_for_ddr_1): Idem.
3677         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
3678         (loop_prefetch_arrays): Idem
3679         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
3680         max_stmt_executions instead of estimated_loop_iterations.
3681         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
3682         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
3683         instead of nb_iterations_upper_bound.
3684
3685 2011-06-13  Jan Hubicka  <jh@suse.cz>
3686
3687         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
3688
3689 2011-06-14  Richard Henderson  <rth@redhat.com>
3690
3691         PR debug/48459
3692         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
3693         (based_loc_descr): Assert it's true.
3694         (compute_frame_pointer_to_fb_displacement): Set it, rather than
3695         aborting immediately.
3696
3697 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
3698             Mingfeng Wu  <mingfeng@faraday-tech.com>
3699
3700         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
3701
3702 2011-06-13  Jan Hubicka  <jh@suse.cz>
3703
3704         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
3705
3706 2011-06-13  Jan Hubicka  <jh@suse.cz>
3707
3708         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
3709         similarly to DECL_COMDAT.
3710         * cgraphunit.c (cgraph_analyze_function): Likewise.
3711         * ipa.c (function_and_variable_visibility): Likewise.
3712
3713 2011-06-13  Jan Hubicka  <jh@suse.cz>
3714
3715         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
3716         BINFO_VIRTUALS when streaming for ltrans unit.
3717
3718 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
3719
3720         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
3721         (movdi_internal64): Same.
3722
3723 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
3724
3725         PR target/44618
3726         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
3727         a set of similar patterns, where the MATCH_OPERAND for the function
3728         argument is replaced with individual references to hardware registers.
3729         (save_fpregs_<mode>): Ditto
3730         (restore_gpregs_<mode>): Ditto
3731         (return_and_restore_gpregs_<mode>): Ditto
3732         (return_and_restore_fpregs_<mode>): Ditto
3733         (return_and_restore_fpregs_aix_<mode>): Ditto
3734
3735 2011-06-13  Jan Hubicka  <jh@suse.cz>
3736
3737         * ipa-utils.c (postorder_stack): New structure.
3738         (ipa_reverse_postorder): Handle aliases.
3739
3740 2011-06-13  Jan Hubicka  <jh@suse.cz>
3741
3742         * ipa-inline.c (reset_edge_caches): Walk aliases.
3743         (update_caller_keys): Do not test inlinability of aliases.
3744         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
3745         (do_estimate_growth): Fix typo.
3746
3747 2011-06-13  Jan Hubicka  <jh@suse.cz>
3748
3749         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
3750         (can_remove_node_now_p): ... here; handle same comdat groups.
3751         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
3752         (inline_call): Update use of can_remove_node_now_p.
3753
3754 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3755
3756         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
3757         condition to disallow non-identical memory locations.
3758         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
3759         preference to bit manipulation instructions.
3760
3761 2011-06-13  Jan Hubicka  <jh@suse.cz>
3762
3763         * cgraph.c (cgraph_for_node_thunks_and_aliases,
3764         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
3765         (nonremovable_p): New function.
3766         (cgraph_can_remove_if_no_direct_calls_p): New function.
3767         (used_from_object_file_p): New functoin.
3768         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
3769         references from aliases.
3770         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
3771         * ipa-inline.c (check_caller_edge): New function.
3772         (want_inline_function_called_once_p): Use it; accept aliases called
3773         once, too.
3774         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
3775
3776 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3777
3778         PR target/48454
3779         * config/arm/neon.md (vec_pack_trunc): Set the lengths
3780         correctly for the case with Quad vectors.
3781
3782 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
3783            Ira Rosen  <ira.rosen@linaro.org>
3784
3785         PR tree-optimization/49352
3786         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
3787         all, make sure loop_use_stmt after the loop is a def stmt of a used
3788         SSA_NAME that is the only one defined inside of the loop.  Don't
3789         check for COND_EXPR and GIMPLE_BINARY_RHS.
3790         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
3791         check_reduction is true.
3792
3793 2011-06-11  Jan Hubicka  <jh@suse.cz>
3794
3795         PR middle-end/49373
3796         * ipa.c (cgraph_externally_visible_p): Check resolution info.
3797
3798 2011-06-11  Jan Hubicka  <jh@suse.cz>
3799
3800         PR middle-end/48836
3801         * ipa-inline-transform.c: Include tree-pass.h
3802         (inline_transform): Set TODO_update_ssa_only_virtuals.
3803         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
3804
3805 2011-06-11  Jan Hubicka  <jh@suse.cz>
3806
3807         PR middle-end/49378
3808         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
3809         aliases and thunks.
3810
3811 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
3812
3813         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
3814         Take number of iterations to peel into account for equally frequent
3815         misalignment values.
3816
3817 2011-06-11  Jan Hubicka  <jh@suse.cz>
3818
3819         * lto-streamer-out.c (produce_symtab): Stream out the newly
3820         represented aliases.
3821
3822 2011-06-11  Jan Hubicka  <jh@suse.cz>
3823
3824         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
3825         varying args.
3826         (ipa_update_after_lto_read): Likewise.
3827         (ipa_write_node_info): Do not sream call_with_var_arguments.
3828         (ipa_read_node_info): Likewise.
3829
3830 2011-06-11  Jan Hubicka  <jh@suse.cz>
3831
3832         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
3833
3834 2011-06-11  Jan Hubicka  <jh@suse.cz>
3835
3836         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
3837         (lto_symtab_resolve_can_prevail_p): Likewise.
3838         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
3839         * cgraph.c (same_body_aliases_done): New global var.
3840         (cgraph_same_body_alias_1): Rename to ...
3841         (cgraph_create_function_alias): ... this one; reorg to new
3842         representation.
3843         (cgraph_same_body_alias): Use cgraph_create_function_alias;
3844         record references when asked to.
3845         (cgraph_add_thunk): Fix formating.
3846         (cgraph_get_node): Kill same body alias code.
3847         (cgraph_node_for_asm): Likewise.
3848         (cgraph_remove_same_body_alias): Remove.
3849         (cgraph_remove_node): Kill same body alias code.
3850         (cgraph_mark_address_taken_node): Mark also the aliased function
3851         as having address taken.
3852         (dump_cgraph_node): Dump same body aliases.
3853         (cgraph_for_node_thunks_and_aliases): Update for new alias
3854         representation.
3855         (cgraph_for_node_and_aliases): Likewise.
3856         * cgraph.h (same_body): Kll pointer.
3857         (same_body_alias): Update comment.
3858         (same_body_aliases_done): Declare.
3859         (cgraph_remove_same_body_alias): Remove declaration.
3860         (cgraph_create_function_alias): Declare.
3861         (cgraph_process_same_body_aliases): Declare.
3862         (cgraph_function_with_gimple_body_p): Check for alias.
3863         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
3864         (cgraph_alias_aliased_node): New function.
3865         (cgraph_function_node): Update for new aliases.
3866         (cgraph_function_or_thunk_node): Likewise.
3867         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
3868         (inline_call): Remove dead aliases.
3869         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
3870         name hack for same body aliases.
3871         (clone_of_p): Look through aliases.
3872         (verify_cgraph_node): Verify aliases.
3873         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
3874         (cgraph_process_same_body_aliases): New function.
3875         (process_function_and_variable_attributes): Disable weakref warning on
3876         alias.
3877         (cgraph_analyze_functions): Handle aliases.
3878         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
3879         (assemble_thunks): Rename to ...
3880         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
3881         (cgraph_expand_function): Remove alias output code.
3882         (cgraph_output_in_order): Skip aliases.
3883         (cgraph_preserve_function_body_p): Aliases don't need preserving.
3884         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
3885         (ipa_record_reference): Do not assert on alias references.
3886         (ipa_ref_has_aliases_p): New function.
3887         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
3888         (ipa_ref_has_aliases_p): Declare.
3889         * lto-cgraph.c (lto_output_node): Handle aliases.
3890         (input_node): Likewise.
3891         * lto-streamer-out.c (lto_output): Skip aliases.
3892         (produce_symtab): Kill same_body_alias code.
3893         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
3894         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
3895         * ipa-inline.c (update_caller_keys): Walk aliases.
3896         (inline_small_functions): Fix thinko in previous patch.
3897         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
3898         (function_and_variable_visibility): Do not walk same body aliases.
3899         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
3900         (ipa_pta_execute): Use it.
3901
3902 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
3903
3904         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
3905         (*vec_dupv2df): Rename from vec_dupv2df.
3906         (vec_dupv2df): New expander.
3907
3908 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
3909
3910         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
3911
3912 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
3913
3914         * config/i386/i386.md: Use default value in "isa" attribute.
3915         * config/i386/sse.md: Ditto.
3916         * config/i386/mmx.md: Ditto.
3917
3918 2011-06-10  Wei Guozhi  <carrot@google.com>
3919
3920         PR target/45335
3921         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
3922         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
3923         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
3924         related peephole2.
3925         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
3926         related peephole2.
3927         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
3928         (arm_legitimate_ldrd_p): New prototype.
3929         (arm_output_ldrd): New prototype.
3930         * config/arm/arm.c (arm_check_ldrd_operands): New function.
3931         (arm_legitimate_ldrd_p): New function.
3932         (arm_output_ldrd): New function.
3933
3934 2011-06-10  David Li  <davidxl@google.com>
3935
3936         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
3937         * passes.c (passr_eq): New function.
3938         (create_pass_tab): New function.
3939         (pass_traverse): New function.
3940         (dump_one_pass): New function.
3941         (dump_pass_list): New function.
3942         (dump_passes): New function.
3943
3944 2011-06-10  Jan Hubicka  <jh@suse.cz>
3945
3946         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
3947         setting the nothrow flag.
3948         * ipa-reference.c (propagate): Skip aliases.
3949         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
3950         (propagate_nothrow): Skip aliases; do not update cgraph.
3951         (local_pure_const): Do not update cgraph.
3952         * tree-profile.c (tree_profiling): Do fixup_cfg.
3953
3954 2011-06-10  Jan Hubicka  <jh@suse.cz>
3955
3956         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
3957         (cgraph_local_node_p): ... here; handle aliases.
3958         (has_addr_references_p): Break out from ...;
3959         (cgraph_remove_unreachable_nodes) ... here.
3960
3961 2011-06-10  Jan Hubicka  <jh@suse.cz>
3962
3963         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
3964         * common.opt (flag_inline_functions_called_once): Do not
3965         initialize to 1.
3966
3967 2011-06-10  Jan Hubicka  <jh@suse.cz>
3968
3969         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
3970         (ipcp_initialize_node_lattices): Do not deal with aliases;
3971         Do not try to propagate through thunks.
3972         (ipcp_change_tops_to_bottom): Do not deal with aliases.
3973
3974 2011-06-10  Jan Hubicka  <jh@suse.cz>
3975
3976         * ipa-prop.c (ipa_write_node_info): Stream jump functions
3977         for indirect calls.
3978         (ipa_read_node_info): Likewise.
3979
3980 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3981
3982         PR lto/49302
3983         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
3984         (build_and_insert_call): Likewise.
3985         (build_and_insert_ref): New.
3986         (gimple_expand_builtin_pow): Minor cleanup.
3987         (gimple_expand_builtin_cabs): New.
3988         (execute_cse_sincos): Add case for BUILT_IN_CABS.
3989
3990 2011-06-10  Jan Hubicka  <jh@suse.cz>
3991
3992         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
3993         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
3994         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
3995         (ipcp_propagate_stage): Skip aliases when propagating.
3996         (ipcp_need_redirect_p): Skip aliases.
3997         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
3998         collect_callers_of_node.
3999         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
4000         for aliases.
4001         (ipa_compute_jump_functions): Look through aliases.
4002
4003 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4004
4005         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
4006
4007 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4008
4009         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
4010         Adjust comments.
4011         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
4012
4013 2011-06-10  Jan Hubicka  <jh@suse.cz>
4014
4015         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
4016         Update call of gimple_get_virt_method_for_binfo.
4017         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
4018         refuse_thunks parameter.
4019         (gimple_fold_call): Update.
4020         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
4021
4022 2011-06-10  Jan Hubicka  <jh@suse.cz>
4023
4024         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
4025         (not_all_callers_have_enough_arguments_p): ... this one; turn into
4026         worker for cgraph_for_node_and_aliases.
4027         (convert_callers_for_node): Break out from ...
4028         (convert_callers): ... here.
4029         (modify_function): Use collect_callers_of_node.
4030         (ipa_early_sra): Use cgraph_for_node_and_aliases.
4031
4032 2011-06-10  Richard Guenther  <rguenther@suse.de>
4033
4034         PR tree-optimization/49361
4035         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
4036         when not already in gimple form.
4037
4038 2011-06-10  Richard Guenther  <rguenther@suse.de>
4039
4040         PR bootstrap/49344
4041         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
4042         FOR_EACH_PHI_OR_STMT_USE.
4043
4044 2011-06-10  Jan Hubicka  <jh@suse.cz>
4045
4046         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
4047         (clone_inlined_nodes): ... here.
4048         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
4049         to real destination prior inlining.
4050         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
4051         can_early_inline_edge_p, want_early_inline_function_p,
4052         want_early_inline_function_p, want_inline_small_function_p,
4053         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
4054         edge_badness, update_all_callee_keys, lookup_recursive_calls,
4055         add_new_edges_to_heap, inline_small_functions, flatten_function,
4056         inline_always_inline_functions, early_inline_small_functions): Use
4057         cgraph_function_or_thunk_node.
4058         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
4059         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
4060         (do_estimate_edge_growth_1): Break out from ...
4061         (do_estimate_growth) ... here; walk aliases.
4062         (inline_generate_summary): Skip aliases.
4063
4064 2011-06-10  Richard Guenther  <rguenther@suse.de>
4065
4066         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
4067         forward when combining, visit inserted stmts when a stmt was changed.
4068
4069 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
4070
4071         * tree.h (error_operand_p): Add.
4072         * dbxout.c (dbxout_type_fields): Use the latter.
4073         * c-decl.c (add_stmt): Likewise.
4074         * gimplify.c (omp_add_variable, omp_notice_variable,
4075         gimplify_scan_omp_clauses): Likewise.
4076
4077 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
4078
4079         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
4080         when a value is actually passed in regs.
4081
4082 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
4083             Laurent Rougé  <laurent.rouge@menta.fr>
4084
4085         * doc/invoke.texi (SPARC options): Add -mflat.
4086         * config/sparc/sparc.opt: Likewise.
4087         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
4088         (sparc_flat_expand_prologue): Declare.
4089         (sparc_flat_expand_epilogue): Likewise.
4090         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
4091         (CPP_ENDIAN_SPEC): Replace with...
4092         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
4093         (CPP_SPEC): Adjust to above change.
4094         (EXTRA_SPECS): Likewise.
4095         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
4096         (INCOMING_REGNO): Likewise.
4097         (OUTGOING_REGNO): Likewise.
4098         (LOCAL_REGNO): Likewise.
4099         (SETUP_FRAME_ADDRESSES): Likewise.
4100         (FIXED_REGISTERS): Set 0 for %fp.
4101         (CALL_USED_REGISTERS): Likewise.
4102         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
4103         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
4104         (RETURN_ADDR_REGNUM): Define.
4105         (RETURN_ADDR_RTX): Use it.
4106         (INCOMING_RETURN_ADDR_REGNUM): Define.
4107         (INCOMING_RETURN_ADDR_RTX): Use it.
4108         (DWARF_FRAME_RETURN_COLUMN): Likewise.
4109         (EH_RETURN_REGNUM): Define.
4110         (EH_RETURN_STACKADJ_RTX): Use it.
4111         (EH_RETURN_HANDLER_RTX): Delete.
4112         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
4113         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
4114         Delete.
4115         (struct machine_function): Add frame_size, apparent_frame_size,
4116         frame_base_reg, frame_base_offset, n_global_fp_regs and
4117         save_local_in_regs_p fields.
4118         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
4119         sparc_frame_base_offset, sparc_n_global_fp_regs,
4120         sparc_save_local_in_regs_p): New macros.
4121         (sparc_option_override): Error out if -fcall-saved-REG is specified
4122         for Out registers.
4123         (eligible_for_restore_insn): Fix formatting.
4124         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
4125         (eligible_for_sibcall_delay): Likewise.
4126         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
4127         (sparc_legitimate_address_p): Adjust to above change.
4128         (save_global_or_fp_reg_p): New predicate.
4129         (return_addr_reg_needed_p): Likewise.
4130         (save_local_or_in_reg_p): Likewise.
4131         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
4132         (SORR_SAVE, SORR_RESTORE): Delete.
4133         (sorr_pred_t): New typedef.
4134         (sorr_act_t): New enum.
4135         (save_or_restore_regs): Rename to...
4136         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
4137         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
4138         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
4139         mechanism.  Add CFI information for double-word saves in 32-bit mode.
4140         (emit_adjust_base_to_offset): New function extracted from...
4141         (emit_save_or_restore_regs): ...this.  Rename the rest to...
4142         (emit_save_or_restore_regs_global_fp_regs): ...this.
4143         (emit_save_or_restore_regs_local_in_regs): New function.
4144         (gen_create_flat_frame_[123]): New functions.
4145         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
4146         (sparc_flat_expand_prologue): New function.
4147         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
4148         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
4149         (sparc_flat_expand_epilogue): New function.
4150         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
4151         (output_return): Likewise.
4152         (output_sibcall): Likewise.
4153         (sparc_output_mi_thunk): Likewise.
4154         (sparc_frame_pointer_required): Likewise.
4155         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
4156         function optimization.
4157         * config/sparc/sparc.md (flat): New attribute.
4158         (prologue): Add TARGET_FLAT handling.
4159         (save_register_window): Disable if TARGET_FLAT.
4160         (create_flat_frame_[123]): New patterns.
4161         (epilogue): Add TARGET_FLAT handling.
4162         (sibcall_epilogue): Likewise.
4163         (eh_return): New expander.
4164         (eh_return_internal): New insn and splitter.
4165         (return_internal): Add TARGET_FLAT handling.
4166         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
4167         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
4168         (nonlocal_goto): Add TARGET_FLAT handling.
4169         * config/sparc/t-elf: Add -mflat multilib.
4170         * config/sparc/t-leon: Likewise.
4171
4172 2011-06-10  Jan Hubicka  <jh@suse.cz>
4173
4174         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
4175         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
4176         (self_recursive_p): Use cgraph_function_node.
4177         (propagate_pure_const): Likewise.
4178         (propagate_nothrow): Likewise.
4179         * ipa-reference.c (ipa_reference_get_not_read_global): Use
4180         cgraph_function_node.
4181         (propagate_bits): Likewise.
4182         (propagate): Likewise.
4183
4184 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4185             Richard Earnshaw  <rearnsha@arm.com>
4186
4187         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
4188         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
4189         (*thumb2_movdi_vfp): Delete.
4190         (*arm_movdi_vfp_cortexa8): Delete.
4191         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
4192         (*movdi_vfp_cortexa8): Likewise.
4193
4194 2011-06-10  Richard Guenther  <rguenther@suse.de>
4195
4196         * stor-layout.c (initialize_sizetypes): Give names to all
4197         sizetype kinds.
4198
4199 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
4200
4201         PR tree-optimization/49318
4202         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
4203         irrelevant pattern statements.
4204
4205 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4206
4207         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
4208
4209         PR bootstrap/49354
4210         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
4211         to last assignment.
4212
4213 2011-06-09  Jan Hubicka  <jh@suse.cz>
4214
4215         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
4216         do not recompute reachable flag.
4217         (cgraph_finalize_function, cgraph_analyze_functions): Set
4218         redefined_extern_inline here.
4219
4220 2011-06-09  Jan Hubicka  <jh@suse.cz>
4221
4222         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
4223         (cgraph_only_called_directly_p): ... this one; bring offline.
4224         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
4225         varpool_used_from_object_file_p): Drop names from the declaratoin.
4226         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
4227         collect_callers_of_node): New.
4228         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
4229         (cgraph_edge_recursive_p): Use cgraph_function_node.
4230         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
4231         (cgraph_node_cannot_be_local_p_1): Break out from ...
4232         (cgraph_node_can_be_local_p): ... here; walk aliases.
4233         (cgraph_for_node_thunks_and_aliases): New function.
4234         (cgraph_for_node_and_aliases): New function.
4235         (cgraph_make_node_local_1): Break out from ...
4236         (cgraph_make_node_local) ... here; use
4237         cgraph_for_node_thunks_and_aliases.
4238         (cgraph_set_nothrow_flag_1): Break out from ...
4239         (cgraph_set_nothrow_flag) ... here;
4240         use cgraph_for_node_thunks_and_aliases.
4241         (cgraph_set_const_flag_1): Break out from ...
4242         (cgraph_set_const_flag) ... here;
4243         use cgraph_for_node_thunks_and_aliases.
4244         (cgraph_set_pure_flag_1): Break out from ...
4245         (cgraph_set_pure_flag) ... here;
4246         use cgraph_for_node_thunks_and_aliases.
4247         (cgraph_propagate_frequency_1): Break out from ...
4248         (cgraph_propagate_frequency) ... here; use
4249         cgraph_for_node_thunks_and_aliases.
4250         (cgraph_used_from_object_file_p): Do not care about aliases.
4251         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
4252         New functions.
4253         (collect_callers_of_node_1, collect_callers_of_node): New functions.
4254
4255 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4256
4257         PR rtl-optimization/49154
4258         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
4259         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
4260         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
4261         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
4262         * config/cris/cris.h (cris_register_move_cost): Remove
4263         !TARGET_V32 code.  Tweak comments.
4264
4265 2011-06-09  Jan Hubicka  <jh@suse.cz>
4266
4267         * cgraphbuild.c (record_eh_tables): Mark personality function as having
4268         address taken.
4269
4270 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4271
4272         PR rtl-optimization/49154
4273         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
4274         is a matching slot in the hashtable, assign it to classes_ptr.
4275
4276         PR rtl-optimization/49154
4277         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
4278         register classes.
4279         * doc/tm.texi: Regenerate.
4280
4281 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
4282
4283         PR target/49307
4284         * config/sh/sh.md (UNSPEC_CHKADD): New.
4285         (chk_guard_add): New define_insn_and_split.
4286         (symGOT_load): Use chk_guard_add instead of blockage.
4287
4288 2011-06-09  Kai Tietz  <ktietz@redhat.com>
4289
4290         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
4291
4292 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
4293
4294         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
4295
4296 2011-06-09  Wei Guozhi  <carrot@google.com>
4297
4298         PR target/46975
4299         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
4300         (peephole2 for conditional move): Generate 16 bit instructions.
4301
4302 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
4303
4304         * config/i386/i386.md (*movdi_internal_rex64): Merge
4305         alternatives 6 and 8.
4306
4307 2011-06-09  David Li  <davidxl@google.com>
4308
4309         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
4310         * passes.c (passr_eq): New function.
4311         (create_pass_tab): New function.
4312         (pass_traverse): New function.
4313         (dump_one_pass): New function.
4314         (dump_pass_list): New function.
4315         (dump_passes): New function.
4316
4317 2011-06-09  David Li  <davidxl@google.com>
4318
4319         * tree-complex.c (tree_lower_complex): Gate cleanup.
4320         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
4321         (execute_optimize_stdarg): Ditto.
4322         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
4323         (execute_cleanup_eh_1): Ditto.
4324         (execute_cleanup_eh): Ditto.
4325         * gcse.c (gate_rtl_pre): Ditto.
4326         (execute_rtl_pre): Ditto.
4327         * except.c (finish_eh_generation): Ditto.
4328         (convert_to_eh_region_ranges): Ditto.
4329         * cprop.c (one_cprop_pass): Ditto.
4330
4331 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
4332
4333         PR target/48673
4334         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
4335         in all basic blocks.
4336
4337 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4338
4339         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
4340         (HAVE_ENABLE_EXECUTE_STACK): Define.
4341         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
4342         (HAVE_ENABLE_EXECUTE_STACK): Define.
4343         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
4344         (HAVE_ENABLE_EXECUTE_STACK): Define.
4345         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
4346         (ENABLE_EXECUTE_STACK): Remove.
4347         (HAVE_ENABLE_EXECUTE_STACK): Define.
4348         [IN_LIBGCC2]: Don't include <windows.h>.
4349         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
4350         (HAVE_ENABLE_EXECUTE_STACK): Define.
4351         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
4352         (HAVE_ENABLE_EXECUTE_STACK): Define.
4353         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
4354         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
4355         (HAVE_ENABLE_EXECUTE_STACK): Define.
4356         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
4357         (HAVE_ENABLE_EXECUTE_STACK): Define.
4358         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
4359         (HAVE_ENABLE_EXECUTE_STACK): Define.
4360         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
4361         (HAVE_ENABLE_EXECUTE_STACK): Define.
4362         * config/alpha/alpha.c (alpha_trampoline_init): Test
4363         HAVE_ENABLE_EXECUTE_STACK.
4364         * config/i386/i386.c (ix86_trampoline_init): Likewise.
4365         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4366         (sparc64_initialize_trampoline): Likewise.
4367         * libgcc2.c [L_enable_execute_stack]: Remove.
4368         * system.h (ENABLE_EXECUTE_STACK): Poison.
4369         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
4370         * doc/tm.texi: Regenerate.
4371         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
4372
4373 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
4374
4375         PR middle-end/49308
4376         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
4377         variable.  After resetting and rescanning insn continue with previous
4378         statement.
4379
4380 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4381
4382         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
4383         (gcc_cv_ld_hidden): Likewise.
4384         * configure: Regenerate.
4385         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
4386         (ix86_stack_protect_fail): Mark unused.
4387         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
4388         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
4389         [TARGET_MACHO]: Don't define.
4390         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
4391         (TARGET_STACK_PROTECT_FAIL): Likewise.
4392         (rs6000_stack_protect_fail): Mark unused.
4393         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
4394         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
4395
4396 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4397
4398         * varasm.c (get_section): Print location of other conflict
4399         for section conflicts.
4400
4401 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4402
4403         * config/i386/driver-i386.c (host_detect_local_cpu):
4404         Add model 0x2d Intel CPU.
4405
4406 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4407
4408         * reginfo.c (global_regs_decl): Add.
4409         (globalize_reg): Add decl parameter. Compute location.  Pass location
4410         to warnings and add inform. Store decl in global_regs_decl.
4411         * rtl.h (globalize_reg): Update prototype.
4412         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
4413
4414 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
4415
4416         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
4417
4418 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4419
4420         PR target/49305
4421         * config/sh/predicates.md (general_movsrc_operand): Check
4422         mode for memory with indexed address for QI and HImode.
4423         (general_movdst_operand): Likewise.
4424
4425 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
4426
4427         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
4428
4429 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
4430
4431         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
4432         (num_ssa_operands): Likewise.
4433         (op_iter_init_phiuse): Forward-declare.
4434         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
4435
4436 2011-06-08  Nick Clifton  <nickc@redhat.com>
4437
4438         * doc/invoke.texi (ARM Options): Update description of
4439         -mthumb-interwork.
4440
4441 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
4442
4443         * config/i386/driver-i386.c (host_detect_local_cpu): Support
4444         unknown Intel family 0x6 CPUs.
4445
4446 2011-06-08  Martin Jambor  <mjambor@suse.cz>
4447
4448         * tree-sra.c (mark_rw_status): Removed.
4449         (analyze_access_subtree): New parameter parent instead of
4450         mark_read and mark_write, propagate from that.
4451
4452 2011-06-08  Julian Brown  <julian@codesourcery.com>
4453
4454         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
4455         for double-precision helper functions in hard-float mode if only
4456         single-precision arithmetic is supported in hardware.
4457
4458 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
4459
4460         PR rtl-optimization/49303
4461         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
4462         code_motion_path_driver returned 0 or 1.
4463         (sel_region_finish): Clear h_d_i_d.
4464
4465 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4466
4467         * config/sh/sh.c (prepare_move_operands): Set pic register
4468         appropriately for global and local dynamic tls models even
4469         if flag_pic is unset.
4470
4471 2011-06-07  Jason Merrill  <jason@redhat.com>
4472
4473         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
4474
4475 2011-06-07  Xinliang David Li  <davidxl@google.com>
4476         * passes.c (enable_disable_pass): Handle assembler name.
4477         (is_pass_explicitly_enabled_or_disabled): Ditto.
4478
4479 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4480
4481         PR tree-optimization/48497
4482         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
4483
4484 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4485
4486         PR tree-optimization/46728
4487         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
4488         to use gimple_val_nonnegative_real_p.
4489         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
4490         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
4491
4492 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
4493
4494         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
4495
4496 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
4497
4498         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
4499         constant vectors.
4500
4501 2011-06-07  Richard Guenther  <rguenther@suse.de>
4502
4503         * stor-layout.c (initialize_sizetypes): Initialize all
4504         sizetypes based on target definitions.
4505         (set_sizetype): Remove.
4506         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
4507         * tree.h (set_sizetype): Remove.
4508
4509 2011-06-07  Nick Clifton  <nickc@redhat.com>
4510
4511         * config.gcc: Unify V850 architecture options and add support for
4512         newer V850 architectures.
4513         * config/v850/t-v850e: Delete.
4514
4515 2011-06-07  Richard Guenther  <rguenther@suse.de>
4516
4517         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
4518         Call set_sizetype from here.
4519
4520 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
4521
4522         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
4523         (*maddhisi4tb, *maddhisi4tt): New define_insns.
4524
4525 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
4526             Andrew Stubbs  <ams@codesourcery.com>
4527
4528         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
4529         multiplies.
4530         * doc/md.texi (Canonicalization of Instructions): Document widening
4531         multiply canonicalization.
4532
4533 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
4534
4535         PR gcov-profile/49299
4536         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
4537
4538 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
4539
4540         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
4541         a pointer.
4542         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
4543         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
4544         vect_recog_pow_pattern): Likewise.
4545         (vect_pattern_recog_1): Remove declaration.
4546         (widened_name_p): Remove declaration.  Add new argument to specify
4547         whether to check that both types are either signed or unsigned.
4548         (vect_recog_widen_mult_pattern): Update documentation.  Handle
4549         unsigned patterns and multiplication by constants.
4550         (vect_pattern_recog_1): Update vect_recog_func references.  Use
4551         statement information from the statement returned from pattern
4552         detection functions.
4553         (vect_pattern_recog): Update vect_recog_func reference.
4554         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
4555         multiplication by a constant use the type of the other operand.
4556
4557 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
4558
4559         PR rtl-optimization/49145
4560         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
4561
4562 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
4563
4564         PR debug/49262
4565         * dwarf2out.c (native_encode_initializer): Decrement count in each
4566         iteration.
4567
4568         PR debug/49294
4569         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
4570         non-MODE_INT modes.
4571
4572         PR c++/49264
4573         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
4574         if stmt folded into nothing.
4575         * tree-inline.c (fold_marked_statements): If a builtin at the end of
4576         a bb folded into nothing, just update cgraph edges and move to next bb.
4577         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
4578         to be NULL.  Don't compute count and frequency if new_call is NULL.
4579
4580 2011-06-04  Diego Novillo  <dnovillo@google.com>
4581
4582         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
4583         (cgraph.o): Likewise.
4584         (cgraphunit.o): Likewise.
4585         * cgraphunit.c: Include lto-streamer.h
4586         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
4587         if LTO is enabled.
4588         * lto-streamer-in.c (unpack_value_fields): Call
4589         streamer_hooks.unpack_value_fields if set.
4590         (lto_materialize_tree): For unhandled nodes, first try to
4591         call lto_streamer_hooks.alloc_tree, if it exists.
4592         (lto_input_ts_decl_common_tree_pointers): Move reading of
4593         DECL_INITIAL to lto_streamer_read_tree.
4594         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
4595         (lto_streamer_read_tree): New.
4596         (lto_reader_init): Rename from lto_init_reader.
4597         Move initialization code to lto/lto.c.
4598         * lto-streamer-out.c (pack_value_fields): Call
4599         streamer_hooks.pack_value_fields if set.
4600         (lto_output_tree_ref): For tree nodes that are not normally indexable,
4601         call streamer_hooks.indexable_with_decls_p before giving up.
4602         (lto_output_ts_decl_common_tree_pointers): Move handling
4603         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
4604         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
4605         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
4606         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
4607         (lto_streamer_write_tree): New.
4608         (lto_output): Call lto_streamer_init directly.
4609         (lto_writer_init): Remove.
4610         * lto-streamer.c (streamer_hooks): New.
4611         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
4612         instead of lto_preload_common_nodes.
4613         (lto_is_streamable): Move from lto-streamer.h
4614         (lto_streamer_hooks_init): New.
4615         (streamer_hooks): New.
4616         (streamer_hooks_init): New.
4617         * lto-streamer.h (struct output_block): Forward declare.
4618         (struct lto_input_block): Likewise.
4619         (struct data_in): Likewise.
4620         (struct bitpack_d): Likewise.
4621         (struct streamer_hooks): Declare.
4622         (streamer_hooks): Declare.
4623         (lto_streamer_hooks_init): Declare.
4624         (lto_streamer_write_tree): Declare.
4625         (lto_streamer_read_tree): Declare.
4626         (streamer_hooks_init): Declare.
4627         (lto_is_streamable): Move to lto-streamer.c
4628
4629 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4630
4631         * longlong.h (smul_ppmm): The resulting register pair contains the
4632         higher order word first.
4633
4634 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4635
4636         PR tree-optimization/46728
4637         * builtins.c (powi_table): Remove.
4638         (powi_lookup_cost): Remove.
4639         (powi_cost): Remove.
4640         (expand_powi_1): Remove.
4641         (expand_powi): Remove.
4642         (expand_builtin_pow_root): Remove.
4643         (expand_builtin_pow): Remove.
4644         (expand_builtin_powi): Eliminate handling of constant exponent.
4645         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
4646
4647 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4648
4649         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
4650
4651 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4652
4653         * dce.c (reset_unmarked_insns_debug_uses): New.
4654         (delete_unmarked_insns): Skip debug insns.
4655         (prescan_insns_for_dce): Likewise.
4656         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
4657         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
4658         active reg can be found.
4659         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
4660         (convert_regs_1): Use it.
4661
4662 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4663
4664         * tree-pretty-print.c (dump_function_header): Add flags.
4665         Don't dump decl_uid with nouid.
4666         * tree-pretty-print.h (dump_function_header): Adjust.
4667         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
4668         * passes.c (pass_init_dump_file): Pass dump_flags on.
4669         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
4670
4671 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4672
4673         PR bootstrap/49270
4674         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
4675
4676 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
4677
4678         PR tree-optimization/49243
4679         * calls.c (setjmp_call_p): Also check if fndecl has the
4680         returns_twice attribute.
4681
4682 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4683
4684         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
4685         -ffast-math etc.
4686
4687 2011-06-06  Richard Henderson  <rth@redhat.com>
4688             Georg-Johann Lay  <avr@gjlay.de>
4689
4690         PR target/42210
4691         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
4692         New predicates.
4693         * config/avr/avr.md ("insv"): New insn expander.
4694         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
4695         "*insv.not.io", "*insv.reg"): New insns.
4696
4697 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
4698
4699         PR target/49285
4700         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
4701         to nonimmediate_operand from memory_operand for the operand that is to
4702         be forced to memory by the expander.  Lose the constraints.
4703
4704 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
4705
4706         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
4707         EH return when delayed branches are disabled.
4708
4709 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
4710
4711         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
4712         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
4713         calculation.
4714         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
4715         Simplify MODE_V1DF and MODE_V2SF handling.
4716         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
4717         Simplify MODE_SF handling.
4718
4719 2011-06-04  Jan Hubicka  <jh@suse.cz>
4720
4721         PR tree-optimization/48893
4722         PR tree-optimization/49091
4723         PR tree-optimization/49179
4724         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
4725         Bounds check.
4726
4727 2011-06-04  Jan Hubicka  <jh@suse.cz>
4728
4729         PR lto/48954
4730         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
4731         bitmaps.
4732
4733 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
4734
4735         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
4736
4737 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
4738
4739         PR target/49281
4740         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
4741         to be strictly smaller than 1 << shiftcount.
4742
4743 2011-06-04  Jan Hubicka  <jh@suse.cz>
4744
4745         PR tree-optimize/48929
4746         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
4747         of empty predicate.
4748
4749 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
4750
4751         PR debug/48333
4752         * calls.c (emit_call_1): Prefer the __builtin declaration of
4753         builtin functions.
4754
4755 2011-06-03   Diego Novillo  <dnovillo@google.com>
4756
4757         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
4758         (lto_input_tree_pointers): Likewise.
4759         * lto-streamer-out.c (pack_value_fields): Likewise.
4760         (lto_output_tree_pointers): Likewise.
4761         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
4762         and OPTIMIZATION_NODE.
4763
4764 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4765
4766         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
4767         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
4768         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
4769         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
4770         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
4771         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
4772         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
4773         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
4774         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
4775         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
4776         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
4777         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
4778         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
4779         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
4780         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
4781         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
4782         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
4783         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
4784         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
4785         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
4786         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
4787         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
4788         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
4789         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
4790         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
4791         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
4792         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
4793         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
4794         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
4795         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
4796         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
4797         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
4798         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
4799         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
4800         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
4801         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
4802         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
4803         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
4804         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
4805         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
4806         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
4807         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
4808         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
4809         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
4810         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
4811         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
4812         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
4813         * system.h (MD_UNWIND_SUPPORT): Poison.
4814         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
4815         * doc/tm.texi: Regenerate.
4816         * unwind-dw2.c: Include md-unwind-support.h instead of
4817         MD_UNWIND_SUPPORT.
4818         * config/ia64/unwind-ia64.c: Likewise.
4819         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4820
4821 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
4822
4823         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
4824
4825 2011-06-03  Richard Henderson  <rth@redhat.com>
4826             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4827
4828         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
4829         (sigill_hdlr): Correct insn, insn size.
4830         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
4831
4832 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4833
4834         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
4835         t-slibgcc-dummy.
4836         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
4837         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
4838         * config/mips/t-iris: Remove.
4839         * config/mips/t-irix6: New file.
4840         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
4841
4842 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4843
4844         * Makefile.in (LIB2ADDEHDEP): Remove.
4845         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
4846         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
4847         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
4848         * config/t-darwin (LIB2ADDEHDEP): Remove.
4849         * config/t-freebsd (LIB2ADDEHDEP): Remove.
4850         * config/t-linux (LIB2ADDEHDEP): Remove.
4851
4852 2011-06-03  Diego Novillo  <dnovillo@google.com>
4853
4854         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
4855         (lto_register_var_decl_in_symtab): Likewise.
4856         (lto_register_function_decl_in_symtab): Likewise.
4857         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
4858         logic to uniquify_nodes.
4859
4860 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4861
4862         * config/alpha/t-osf5: Remove.
4863         * config/alpha/t-osf-pthread: Remove.
4864         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
4865         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
4866
4867 2011-06-03  Julian Brown  <julian@codesourcery.com>
4868
4869         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
4870         (strongarm1110): Use strongarm tuning.
4871         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
4872         * config/arm/arm.c (arm_strongarm_tune): New.
4873         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
4874         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
4875         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
4876         setting, using previous defaults or 1 for Cortex-A5.
4877         (arm_option_override): Set max_insns_skipped from current tuning.
4878
4879 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
4880
4881         * doc/install.texi (Options specification): Document --with-specs.
4882
4883 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4884
4885         * config/arm/neon.md (orndi3_neon): Actually split it.
4886
4887 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
4888
4889         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
4890         * var-tracking.c (reverse_op): Limite recurse depth to 5.
4891
4892 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
4893
4894         PR debug/47590
4895         * target.def (delay_sched2, delay_vartrack): New.
4896         * doc/tm.texi.in: Update.
4897         * doc/tm.texi: Rebuild.
4898         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
4899         * var-tracking.c (gate_handle_var_tracking): Likewise.
4900         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
4901         (bfin_flag_var_tracking): Drop.
4902         (output_file_start): Don't save and override flag_var_tracking.
4903         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
4904         (bfin_reorg): Test original variables.
4905         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
4906         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
4907         (ia64_flag_var_tracking): Drop.
4908         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
4909         (ia64_file_start): Don't save and override flag_var_tracking.
4910         (ia64_override_options_after_change): Ditto
4911         flag_schedule_insns_after_reload.
4912         (ia64_reorg): Test original variables.
4913         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
4914         (picochip_flag_var_tracking): Drop.
4915         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
4916         (picochip_option_override): Don't save and override
4917         flag_schedule_insns_after_reload.
4918         (picochip_asm_file_start): Ditto flag_var_tracking.
4919         (picochip_reorg): Test original variables.
4920         * config/spu/spu.c (spu_flag_var_tracking): Drop.
4921         (TARGET_DELAY_VARTRACK): Define.
4922         (spu_var_tracking): New.
4923         (spu_machine_dependent_reorg): Call it.
4924         (asm_file_start): Don't save and override flag_var_tracking.
4925
4926 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
4927
4928         PR target/49163
4929         * config/sh/predicates.md (general_movsrc_operand): Return 0
4930         for memory and memory subreg of which address is an invalid
4931         indexed address for QI and HImode.
4932         (general_movdst_operand): Likewise.
4933
4934 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4935
4936         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
4937         edges only, when there is a non-local label in the function.
4938         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
4939
4940 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
4941
4942         * config/i386/constraints.md (Y3): New register constraint.
4943         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
4944         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
4945         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
4946         *sse2_interleave_lowv2df.
4947
4948 2011-06-02  Julian Brown  <julian@codesourcery.com>
4949
4950         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
4951         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
4952         (arm_cortex_a5_tune): New.
4953
4954 2011-06-02  Julian Brown  <julian@codesourcery.com>
4955
4956         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
4957         * config/arm/arm.c (arm_default_branch_cost): New.
4958         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
4959         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
4960         (arm_fa726_tune): Set branch_cost field using
4961         arm_default_branch_cost.
4962         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
4963         current_tune structure.
4964         * dojump.c (tm_p.h): Include file.
4965
4966 2011-06-02  Julian Brown  <julian@codesourcery.com>
4967
4968         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
4969         tuning.
4970         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
4971         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
4972         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
4973         field.
4974         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
4975         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
4976         (arm_fa726te_tune): Add prefer_constant_pool setting.
4977         (arm_v6t2_tune, arm_cortex_tune): New.
4978         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
4979         prefer_constant_pool setting.
4980
4981 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
4982
4983         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
4984         switch statement.
4985         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
4986         (*movdf_internal) <case 6,7,8>: Ditto.
4987
4988         * config/i386/constraints.md (Y4): New register constraint.
4989         * config/i386/sse.md (vec_set<mode>_0): Merge with
4990         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
4991         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
4992         *vec_extractv2di_1_sse.
4993         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
4994         and *vec_concatv2di_rex64_sse.
4995
4996 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
4997
4998         PR target/48807
4999         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
5000         of cgraph_local_info for null before attempting to use it.
5001
5002 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
5003
5004         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
5005         (current_function_dynamic_alloc_count): Delete.
5006         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
5007         (expand_builtin_nonlocal_goto): Remove obsolete comment.
5008         (expand_builtin_update_setjmp_buf): Remove dead code.
5009         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
5010         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
5011         support.
5012         * function.c (instantiate_virtual_regs): Likewise.
5013         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
5014         for a block with a single abnormal incoming edge.
5015         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
5016         (SETJMP_VIA_SAVE_AREA): Delete.
5017         * config/sparc/sparc-protos.h (load_got_register): Declare.
5018         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5019         (load_got_register): Make global.
5020         (sparc_frame_pointer_required): Add 'static'.
5021         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
5022         (sparc_builtin_setjmp_frame_value): New function.
5023         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
5024         (save_stack_nonlocal): New expander.
5025         (restore_stack_nonlocal): Likewise.
5026         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
5027         (nonlocal_goto_internal): New insn.
5028         (goto_handler_and_restore): Delete.
5029         (builtin_setjmp_setup): Likewise.
5030         (do_builtin_setjmp_setup): Likewise.
5031         (setjmp): Likewise.
5032         (builtin_setjmp_receiver): New expander.
5033
5034 2011-06-01  David Li  <davidxl@google.com>
5035
5036         PR middle-end/49261
5037         * tree-pretty-print.c (dump_function_header): Format cleanup.
5038
5039 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5040
5041         PR target/49238
5042         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
5043         needed when original operands are used for msw_skip comparison.
5044
5045 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
5046
5047         PR debug/49250
5048         * var-tracking.c (add_uses, add_stores): Don't call
5049         cselib_subst_to_values on ENTRY_VALUE.
5050
5051 2011-06-01  Diego Novillo  <dnovillo@google.com>
5052
5053         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
5054         output_record_start with LTO_null instead of output_zero.
5055         (lto_output_ts_binfo_tree_pointers): Likewise.
5056         (lto_output_tree): Likewise.
5057         (output_eh_try_list): Likewise.
5058         (output_eh_region): Likewise.
5059         (output_eh_lp): Likewise.
5060         (output_eh_regions): Likewise.
5061         (output_bb): Likewise.
5062         (output_function): Likewise.
5063         (output_unreferenced_globals): Likewise.
5064         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
5065         instead of NUM_TREE_CODES.
5066         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
5067         (lto_output_int_in_range): Change << to >> when shifting VAL.
5068
5069 2011-06-01  Diego Novillo  <dnovillo@google.com>
5070
5071         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
5072         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
5073
5074 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5075
5076         PR target/45074
5077         * optabs.h (valid_multiword_target_p): Declare.
5078         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
5079         doing multi-word operations.
5080         * optabs.c (expand_binop): Likewise.
5081         (expand_doubleword_bswap): Likewise.
5082         (expand_absneg_bit): Likewise.
5083         (expand_unop): Likewise.
5084         (expand_copysign_bit): Likewise.
5085         (multiword_target_p): New function.
5086
5087 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5088
5089         PR rtl-optimization/48830
5090         PR rtl-optimization/48808
5091         PR rtl-optimization/48792
5092         * reload.c (push_reload): Check contains_reg_of_mode.
5093         * reload1.c (strip_paradoxical_subreg): New function.
5094         (gen_reload_chain_without_interm_reg_p): Use it to handle
5095         paradoxical subregs.
5096         (emit_output_reload_insns, gen_reload): Likewise.
5097
5098 2011-06-01  David Li  <davidxl@google.com>
5099
5100         * predict.c : Change pass name
5101         * ipa.c: Ditto.
5102         * dce.c: Ditto.
5103         * tree-profile.c: Ditto.
5104         * except.c: Ditto.
5105
5106 2011-06-01  David Li  <davidxl@google.com>
5107
5108         * tree-pretty-print.c (dump_function_header): New function.
5109         * final.c (rest_of_clean_state): Use header dumper.
5110         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
5111         * passes.c (pass_init_dump_file): Use header dumper.
5112
5113 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
5114
5115         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
5116         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
5117         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
5118         New functions.
5119         (mem_loc_descriptor): Use them.
5120
5121         * var-tracking.c (create_entry_value): New function.
5122         (vt_add_function_parameter): Use it.
5123
5124 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5125
5126         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
5127         Include <signal.h>, <ucontext.h>.
5128         (sigill_caught): Define.
5129         (sigill_hdlr): New function.
5130         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
5131         insns can be executed.
5132         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
5133         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
5134
5135 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5136
5137         * config/t-slibgcc-darwin: Move to ...
5138         * config/t-slibgcc-dummy: ... this.  Clarify comments.
5139         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
5140         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
5141         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
5142         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
5143         Remove i386/t-crtstuff from tmake_file.
5144         (i[34567]86-*-solaris2*): Remove t-svr4,
5145         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
5146         t-slibgcc-dummy.
5147         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
5148         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
5149         sparc/t-crtfm from tmake_file.
5150         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
5151         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
5152         Remove extra_parts.
5153         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
5154         * config/i386/t-nwld (SHLIB_LINK): Remove.
5155         * config/i386/t-rtems-i386: Rename to ...
5156         * config/i386/t-rtems: ... this.
5157         ($(T)crti.o, $(T)crtn.o): Remove.
5158         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
5159         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
5160         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
5161         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
5162         EXTRA_MULTILIB_PARTS): Remove.
5163         * config/sparc/t-sol2-64: Likewise.
5164         * config/sparc/t-sol2: Remove.
5165         * config/sparc/t-crtin: Remove.
5166         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
5167         * config/i386/gmon-sol2.c: Remove.
5168         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
5169         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
5170         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
5171         * config/i386/sol2-gc1.asm: Remove.
5172         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
5173         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
5174         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
5175         * config/t-slibgcc-sld: Remove.
5176
5177 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
5178
5179         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
5180         base_type_for_mode with op_mode instead of mode.
5181
5182 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
5183
5184         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
5185         Cortex-A15.
5186         * config/arm/arm-tune.md: Regenerate.
5187         * config/arm/arm-tables.opt: Regenerate.
5188         * config/arm/arm.c (FL_DIV): Rename...
5189         (FL_THUMB_DIV): ... to this.
5190         (FL_ARM_DIV): Define.
5191         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
5192         (arm_arch_hwdiv): Remove.
5193         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
5194         (arm_issue_rate): Add cortexr5.
5195         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
5196         __ARM_ARCH_EXT_IDIV__.
5197         (TARGET_IDIV): Define.
5198         (arm_arch_hwdiv): Remove.
5199         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
5200         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
5201         (divsi3, udivsi3): New patterns.
5202         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
5203         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
5204
5205 2011-06-01  Martin Jambor  <mjambor@suse.cz>
5206
5207         * ipa-utils.c (ipa_dfs_info): New field scc_no.
5208         * ipa-utils.c (searchc): Set scc_no.
5209
5210 2011-06-01  Martin Jambor  <mjambor@suse.cz>
5211
5212         * ipa-utils.c (searchc_env): New field allow_overwritable.
5213         (searchc): do not ignore edges to overwritable nodes if indicated
5214         by env->allow_overwritable.
5215         (ipa_reduced_postorder): Set env.allow_overwritable.
5216
5217 2011-06-01  Richard Guenther  <rguenther@suse.de>
5218
5219         * tree.c (free_lang_data): Do not reset boolean_type_node nor
5220         char_type_node.
5221         * lto-streamer.c (lto_record_common_node): Take node pointer,
5222         do not register types.
5223         (lto_preload_common_nodes): Explicitly skip preloading nodes
5224         that differ between frontends.
5225
5226 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
5227
5228         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
5229         NON_FLOAT_REGS.
5230
5231 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
5232
5233         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
5234         parameter value for dump. Dump cost on outermost call only.
5235         (rs6000_memory_move_cost): Dump cost on outermost call only.
5236
5237 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
5238
5239         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
5240         DW_OP_GNU_convert ops.
5241
5242         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
5243         cselib_preserve_constants.
5244         (cselib_lookup_1): If cselib_preserve_constants,
5245         a new VALUE is being created for REG and there is a VALUE for the
5246         same register in wider mode, add another loc with lowpart SUBREG of
5247         the wider VALUE.
5248         (cselib_subst_to_values): Handle ENTRY_VALUE.
5249         * var-tracking.c  (replace_expr_with_values): Return NULL for
5250         ENTRY_VALUE too.
5251         * dwarf2out.c (convert_descriptor_to_signed): New function.
5252         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
5253         instead of two shifts.
5254         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
5255         the right mode if needed.
5256         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
5257         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
5258         convert_descriptor_to_signed.
5259         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
5260         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
5261
5262         PR target/48688
5263         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
5264
5265 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5266
5267         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
5268         of X87MODEI12 and SWI48x instead of SSEMODEI24.
5269         (SWI248x): New mode iterator, rename from X87MODEI.
5270         (X87MODEI): Remove mode iterator.
5271         (X87MODEI12): Ditto.
5272         (SSEMODEI24): Ditto.
5273
5274 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5275
5276         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
5277         * doc/invoke.texi: Document max-vartrack-expr-depth.
5278         * var-tracking.c (EXPR_DEPTH): New.
5279         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
5280
5281 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5282
5283         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
5284         * config/i386/sse.md: Add n to negated FMA pattern names.
5285
5286 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5287
5288         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
5289
5290 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5291
5292         * gengtype-state.c (read_state_params_structs): Initialize previous.
5293
5294 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5295
5296         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
5297         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
5298
5299 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5300
5301         * config/i386/i386.md (*movtf_internal): Avoid allocating general
5302         registers.  Penalize F*r->o alternative to prevent partial memory
5303         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
5304         CONST_DOUBLE immediates when optimizing function for size.  Do not move
5305         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
5306         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
5307         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
5308         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
5309         alternatives.
5310         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
5311
5312         (fp_register_operand splitters): Use fp_register_operand
5313         constraint.  Do not use FP_REG_P in insn condition.
5314         (any_fp_register_operand splitters): Use any_fp_register_operand
5315         constraint.  Do not use ANY_FP_REG_P in insn condition.
5316
5317 2011-05-31  Jan Hubicka  <jh@suse.cz>
5318
5319         * cgraph.h (cgraph_inline_failed_t): Give enum a name
5320         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
5321         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
5322         (lto_output_edge): Use output_enum and var_len_unsigned.
5323         (lto_output_varpool_node): Likewise.
5324         (input_overwrite_node): Do not take resolution parameter;
5325         extract it from a bitpack.
5326         (input_node): Do not read resolution; use input_enum and
5327         var_len_unsigned.
5328         (input_varpool_node): Likewise.
5329         (input_edge): Likewise.
5330         (input_cgraph_1): Likewise.
5331
5332 2011-05-31  Richard Guenther  <rguenther@suse.de>
5333
5334         * gimple.c (gimple_register_canonical_type): Do not register
5335         any types via gimple_register_type.
5336
5337 2011-05-31  Jan Hubicka  <jh@suse.cz>
5338
5339         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
5340         of thunks.
5341
5342 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
5343
5344         PR rtl-optimization/49235
5345         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
5346         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
5347
5348 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
5349
5350         PR tree-optimization/49093
5351         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
5352         data references.
5353
5354 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
5355
5356         PR debug/49047
5357         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
5358         for concrete functions containing the code of cloned functions.
5359
5360 2011-05-31  Richard Guenther  <rguenther@suse.de>
5361
5362         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
5363         to ...
5364         (forward_propagate_into_comparison_1): ... this.
5365         (forward_propagate_comparison): Rename to ...
5366         (forward_propagate_into_comparison): ... this.  Split out
5367         real forward propagation code to ...
5368         (forward_propagate_comparison): ... this.
5369         (forward_propagate_into_gimple_cond): Remove looping.
5370         (forward_propagate_into_cond): Likewise.
5371         (simplify_not_neg_expr): Return whether we have done something.
5372         (simplify_gimple_switch): Likewise.
5373         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
5374         (ssa_forward_propagate_and_combine): ... this.  Re-structure
5375         to do a forward forward-propagation walk on BBs and a backward
5376         stmt combining walk on BBs.  Consistently re-scan changed statements.
5377         (pass_forwprop): Adjust.
5378
5379 2011-05-30  Ian Lance Taylor  <iant@google.com>
5380
5381         * godump.c (go_format_type): Correct length of name added to
5382         obstack for anonymous field.
5383
5384 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5385
5386         PR target/49186
5387         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
5388         part of the second operand is 0.
5389
5390 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
5391
5392         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
5393         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
5394         to memory for !TARGET_MEMORY_MISMATCH_STALL.
5395         (*movdf_internal_rex64): Do not penalize F->r alternative.
5396         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
5397         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
5398         when optimizing function for size.  Do not move CONST_DOUBLEs
5399         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
5400         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
5401         SUBREGs.  Do not check for MEM_P operands in the insn condition,
5402         check for ANY_FP_REGNO_P instead.
5403         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
5404         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
5405         function for speed.
5406         * config/i386/i386.c (ix86_option_override_internal): Do not
5407         set TARGET_INTEGER_DFMODE_MOVES here.
5408
5409 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
5410
5411         PR target/49168
5412         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
5413
5414 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
5415
5416         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
5417         DW_TAG_rvalue_reference_type even for
5418         -gdwarf-4 -fno-debug-types-section.
5419
5420 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5421
5422         PR tree-optimization/46728
5423         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
5424         (build_and_insert_binop): New.
5425         (gimple_expand_builtin_pow): Reorder args for
5426         build_and_insert_call; use build_and_insert_binop; add more
5427         optimizations for fractional exponents.
5428
5429 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
5430
5431         PR bootstrap/49190
5432
5433         Revert:
5434         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5435
5436         * tree.h (struct tree_identifier): Inherit from tree_typed, not
5437         tree_common.
5438         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
5439         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
5440         TS_BASE instead of TS_COMMON.
5441         * varasm.c (assemble_name): Remove assert.
5442
5443 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
5444
5445         * config.gcc: Keep obselete list sorted.
5446
5447 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
5448             Eric Botcazou  <ebotcazou@adacore.com>
5449
5450         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
5451         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
5452         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
5453         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
5454         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
5455
5456 2011-05-30  Richard Guenther  <rguenther@suse.de>
5457
5458         * gimple.c (gimple_types_compatible_p_1): Compare record
5459         and union type members properly.
5460
5461 2011-05-30  Richard Guenther  <rguenther@suse.de>
5462
5463         PR tree-optimization/49210
5464         * ipa-split.c (split_function): Care for the case where the call
5465         result is not trivially convertible to the result holding variable.
5466
5467 2011-05-30  Richard Guenther  <rguenther@suse.de>
5468
5469         PR tree-optimization/49218
5470         * tree-vrp.c (adjust_range_with_scev): Properly check whether
5471         overflow occured.
5472
5473 2011-05-30  Richard Guenther  <rguenther@suse.de>
5474
5475         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
5476         New function split out from ...
5477         (forward_propagate_into_gimple_cond): ... here.  Adjust.
5478         (forward_propagate_into_cond): Likewise.
5479         (forward_propagate_comparison): Also propagate into
5480         comparisons on assignment RHS.  Change return value to
5481         behave similar to forward_propagate_into_cond.
5482         (tree_ssa_forward_propagate_single_use_vars): Handle
5483         strict-overflow warnings properly for forward_propagate_comparison.
5484
5485 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5486
5487         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
5488         from plugin linker.
5489         * configure: Regenerate.
5490
5491 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
5492
5493         PR tree-optimization/49199
5494         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
5495         non-reduction operands are either defined in the loop or by induction.
5496
5497 2011-05-29  Xinliang David Li  <davidxl@google.com>
5498
5499         * opts-global.c (handle_common_deferred_options): Handle new options.
5500         * passes.c (register_one_dump_file): Call register_pass_name.
5501         (execute_one_pass): Check explicit enable/disable flag.
5502         (passr_hash): New function.
5503         (passr_eq): Ditto.
5504         (register_pass_name): Ditto.
5505         (get_pass_by_name): Ditto.
5506         (pass_hash): Ditto.
5507         (pass_eq): Ditto.
5508         (enable_pass): Ditto.
5509         (disable_pass): Ditto.
5510         (is_pass_explicitly_enabled_or_disabled): Ditto.
5511
5512 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
5513
5514         * config/i386/i386.md (*movoi_internal_avx): Use
5515         standard_sse_constant_opcode for alternative 0.
5516         (*movti_internal_sse): Ditto.
5517         (*movti_internal_rex64): Use standard_sse_constant_opcode for
5518         alternative 2.
5519         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
5520         sselog1 type moves.
5521         (*movsi_internal): Ditto.
5522         (*movdi_internal): Ditto.  Add ssecvt type moves.
5523
5524 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5525
5526         PR target/48830
5527         * rtlanal.c (simplify_subreg_regno): Adjust comment.
5528
5529 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
5530
5531         PR rtl-optimization/49095
5532         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
5533         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
5534
5535 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
5536
5537         PR target/43995
5538         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
5539         recurse_p argument.  Only follow register copies if it is set,
5540         and prevent mips_find_pic_call_symbol from recursing.
5541         (mips_find_pic_call_symbol): Add a recurse_p argument.
5542         Pass it to mips_pic_call_symbol_from_set.
5543         (mips_annotate_pic_calls): Update accordingly.
5544
5545 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
5546
5547         * emit-rtl.c (try_split): Use a loop to search for
5548         NOTE_INSN_CALL_ARG_LOCATIONs.
5549
5550 2011-05-29  Richard Guenther  <rguenther@suse.de>
5551
5552         PR tree-optimization/49217
5553         * ipa-pure-const.c (propagate_pure_const): Fix typos.
5554
5555 2011-05-28  Jan Hubicka  <jh@suse.cz>
5556
5557         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
5558         length.
5559         (string_slot_free): Remove
5560         (create_output_block): Initialize obstack.
5561         (destroy_output_block): Free obstack.
5562         (lto_string_index): Add PERSISTENT parameter; do not duplicate
5563         the string unless it needs to be added into the hash.
5564         (lto_output_string_with_length): Add persistent attribute;
5565         handle NULL strings.
5566         (lto_output_string): Add PERSISTENT parameter.
5567         (output_string_cst, output_identifier): Simplify.
5568         (lto_output_location_bitpack): Update.
5569         (lto_output_builtin_tree): Update.
5570         * lto-streamer.h (struct output_block): Add obstack.
5571         (lto_output_string, lto_output_string_with_length): Remove
5572         declarations; functions are static now.
5573
5574 2011-05-28  Jan Hubicka  <jh@suse.cz>
5575
5576         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
5577         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
5578         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
5579         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
5580         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
5581         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
5582         unpack_ts_decl_with_vis_value_fields,
5583         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
5584         lto_get_builtin_tree): Use enum and variable length i/o.
5585         * basic-block.h (profile_status_d): Add PROFILE_LAST.
5586         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
5587         New functions.
5588         (bp_pack_enum, bp_unpack_enum): New macros.
5589
5590 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5591
5592         * genrecog.c: Remove redundant forward declarations.
5593
5594 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5595
5596         * config.gcc: Deprecate mips*-*-openbsd*.
5597
5598 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5599
5600         PR bootstrap/49195
5601         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
5602         for match_op_dup.
5603
5604 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
5605
5606         PR middle-end/48981
5607         * gengtype.c (vec_prefix_type): New function.
5608         (note_def_vec): Use vec_prefix_type and change the length
5609         attribute to be based on the prefix.
5610         * vec.c: Include coretypes.h before vec.h.
5611         (struct vec_prefix): Remove.
5612         (vec_gc_p_reserve): Change the offsetof to sizeof.
5613         (vec_gc_p_reserve_exact): Likewise.
5614         (vec_heap_p_reserve): Likewise.
5615         (vec_heap_p_reserve_exact): Likewise.
5616         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
5617         (vec_stack_p_reserve): Change the offsetof to sizeof.
5618         (vec_stack_p_reserve_exact): Likewise.
5619         * vec.h (struct vec_prefix): New struct definition.
5620         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
5621         (VEC_T_GTY(T,B)): Likewise.
5622         (DEF_VEC_FUNC_P(T)): Use prefix field.
5623         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
5624         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
5625
5626 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5627
5628         PR tree-optimization/46728
5629         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
5630         (powi_as_mults): Add gimple_set_location.
5631         (build_and_insert_call): New.
5632         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
5633         0.5, 0.25, 0.75, 1./3., or 1./6.
5634
5635 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
5636
5637         * doc/contrib.texi: Update copyright years.
5638         (Contributors): Add Zdenek Sojka.
5639
5640 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
5641
5642         * c-decl.c (c_push_function_context): Copy the current statement
5643         list stack.
5644         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
5645         (finish_struct): Call building_stmt_list_p instead of checking
5646         cur_stmt_list.
5647         * c-parser.c (c_parser_postfix_expression): Likewise.
5648         * c-typeck.c (c_end_compound_stmt): Likewise.
5649         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
5650         * tree-iterator.c (stmt_list_cache): Change to a VEC.
5651         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
5652         (free_stmt_list): Likewise.
5653         * tree.h (struct tree_statement_list): Include typed_tree instead
5654         of tree_common.
5655         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
5656         as TS_TYPED instead of TS_COMMON.
5657
5658 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5659             Uros Bizjak  <ubizjak@gmail.com>
5660
5661         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
5662         (HAVE_AS_IX86_TLSGDPTL): Define.
5663         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
5664         (HAVE_AS_IX86_TLSLDMPLT): Define.
5665         * configure: Regenerate.
5666         * config.in: Regenerate.
5667         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
5668         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
5669         TARGET_SUN_TLS, use @tlsgdplt or @plt.
5670         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
5671         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
5672         @tlsldmplt or @plt.
5673         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
5674
5675 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
5676
5677         * sched-int.h (struct _haifa_deps_insn_data): New members cond
5678         and reverse_cond.
5679         (INSN_COND, INSN_REVERSE_COND): New macros.
5680         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
5681         once.
5682         (sched_get_condition_with_rev): Cache the results, and look them up
5683         if possible.
5684         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
5685         are clobbered by the current insn.
5686         * target.def (exposed_pipline): New sched data hook.
5687         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
5688         * doc/tm.texi: Regenerate.
5689
5690 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5691
5692         PR tree-optimization/49170
5693         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
5694         sincos or cexp.
5695
5696 2011-05-27  Richard Guenther  <rguenther@suse.de>
5697
5698         PR middle-end/49189
5699         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
5700         of comparisons.
5701
5702 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
5703
5704         * haifa-sched.c (sched_scan_info): Remove.
5705         (schedule_block): Call sched_extend_luids rather than sched_init_luids
5706         with NULL args.
5707         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
5708         Remove functions.
5709         (sched_scan): Remove.
5710         (sched_extend_luids): Renamed from luids_extend_insn and no longer
5711         static.  All callers changed.
5712         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
5713         static.  All callers changed.
5714         (sched_init_luids): Remove all arguments except the first.  All
5715         callers changed.  Don't use sched_scan.
5716         (haifa_init_h_i_d): Likewise.
5717         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
5718         manually rather than using sched_init_luids.  Likewise with
5719         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
5720         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
5721         rather than sched_init_luids with NULL args.
5722         * sel-sched-ir.c (new_insns): Remove variable.
5723         (sched_scan): New static function, previously in haifa-sched.c.  Remove
5724         all arguments but the first two; all callers changed.
5725         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
5726         rather than sched_init_luids.
5727         (sel_init_bbs): Remove second argument.  All callers changed.
5728         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
5729         with NULL arguments.
5730         (create_insn_rtx_from_pattern): Likewise.
5731         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
5732         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
5733         (sched_init_insn_luid, sched_extend_luids): Declare.
5734         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
5735         declarations.
5736
5737 2011-05-27  Richard Guenther  <rguenther@suse.de>
5738
5739         PR middle-end/49177
5740         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
5741         A CMP B ? (T) true : (T) false for non-integral types T again.
5742
5743 2011-05-27  Jan Hubicka  <jh@suse.cz>
5744
5745         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
5746         so 0 means NULL string.
5747         (lto_output_string_with_length): ... here.
5748         (lto_output_string, output_string_cst, output_identifier): Update
5749         handling of NULL strings.
5750         (lto_output_location_bitpack): New function.
5751         (lto_output_location): Use it.
5752         (lto_output_tree_ref): Use output_record_start.
5753         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
5754         len values.
5755         * lto-streamer-in.c (string_for_index): Break out from ...; offset
5756         values by 1.
5757         (input_string_internal): ... here;
5758         (input_string_cst, input_identifier, lto_input_string): Update handling
5759         of NULL strings.
5760         (lto_input_location_bitpack): New function
5761         (lto_input_location): Use it.
5762         (unpack_ts_type_common_value_fields): Pack align & alias in var len
5763         values.
5764         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
5765         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
5766         (bp_pack_value): Sanity check the value range.
5767         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
5768         New functions.
5769         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
5770         New functions.
5771
5772 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
5773
5774         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
5775         call_arg_location instructions down the floor.
5776
5777 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
5778
5779         PR rtl-optimization/49154
5780         * ira.c (setup_pressure_classes): Process class without sublcasses
5781         as a candidate for pressure classes.
5782
5783 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
5784
5785         PR rtl-optimization/48575
5786         * genrecog.c (position_type): New enum.
5787         (position): New structure.
5788         (decision): Use position structure instead of a string.
5789         (root_pos, peep2_insn_pos_list): New variables.
5790         (next_position, compare_positions): New functions.
5791         (new_decision): Use position structures instead of strings.
5792         (maybe_both_true): Likewise.
5793         (change_state): Likewise.
5794         (write_tree): Likewise.
5795         (make_insn_sequence): Likewise.
5796
5797 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5798
5799         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
5800         TS_BASE instead of TS_COMMON.
5801         (find_decls_types_r): Check for TS_TYPED structure before looking at
5802         TREE_TYPE.
5803         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
5804         Add chain field.
5805         (BLOCK_CHAIN): Use new chain field.
5806
5807 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
5808
5809         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
5810         moves expensive on Power7 also.
5811
5812 2011-05-26  Richard Guenther  <rguenther@suse.de>
5813
5814         * fold-const.c (fold_unary_loc): Remove bogus code.
5815
5816 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5817
5818         * tree.h (struct tree_identifier): Inherit from tree_typed, not
5819         tree_common.
5820         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
5821         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
5822         TS_BASE instead of TS_COMMON.
5823         * varasm.c (assemble_name): Remove assert.
5824
5825 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
5826
5827         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
5828         substituted first.
5829         * libgcc-std.ver: Delete file.
5830
5831 2011-05-26  Richard Guenther  <rguenther@suse.de>
5832
5833         PR tree-optimization/48702
5834         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
5835         only when we know the base address is within bounds.
5836         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
5837         assume the base address of TARGET_MEM_REFs is in bounds.
5838
5839 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5840
5841         PR target/49099
5842         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
5843         declaration in TARGET_SOLARIS.
5844
5845 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
5846
5847         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
5848         The instruction is then expanded explicitly.
5849         (supported_compare): Callable instruction.
5850         (compare): Likewise.
5851
5852 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
5853
5854         PR c++/49165
5855         * gimplify.c (shortcut_cond_r): Don't special case
5856         COND_EXPRs if they have void type on one of their arms.
5857
5858 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
5859
5860         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
5861         to reduce duplication, and to achieve a slightly more logical order
5862         of operations.
5863
5864 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
5865
5866         PR tree-optimization/49161
5867         * tree-vrp.c (struct case_info): New type.
5868         (compare_case_labels): Sort case_info structs instead of
5869         trees, and not primarily by CASE_LABEL uids but by
5870         label_for_block indexes.
5871         (find_switch_asserts): Put case labels into struct case_info
5872         array instead of TREE_VEC, adjust sorting, compare label_for_block
5873         values instead of CASE_LABELs.
5874
5875 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5876
5877         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
5878         ("orndi3_neon"): Likewise.
5879         ("bic<mode>3_neon"): Likewise.
5880
5881 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
5882
5883         PR tree-optimization/49038
5884         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
5885         Ensure at least one epilogue iteration if required by data
5886         accesses with gaps.
5887         * tree-vectorizer.h (struct _loop_vec_info): Add new field
5888         to mark loops that require peeling for gaps.
5889         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
5890         (vect_get_known_peeling_cost): Take peeling for gaps into
5891         account.
5892         (vect_transform_loop): Generate epilogue if required by data
5893         access with gaps.
5894         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
5895         loop as requiring an epilogue if there are gaps in the end of
5896         the strided group.
5897
5898 2011-05-25  Ian Lance Taylor  <iant@google.com>
5899
5900         * godump.c (go_format_type): Output the first field with a usable
5901         Go type, if any.
5902
5903 2011-05-25  Ian Lance Taylor  <iant@google.com>
5904
5905         * godump.c (go_format_type): Check for invalid type names, pointer
5906         target types, and struct field types.
5907
5908 2011-05-25  Jason Merrill  <jason@redhat.com>
5909
5910         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
5911
5912 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
5913
5914         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
5915
5916 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5917
5918         * config/i386/i386.md (*movqi_extv_1)): Put back
5919         "register_operand" check in "type" calculation.
5920         (*movqi_extzv_2): Likewise.
5921
5922 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5923
5924         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
5925
5926 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
5927
5928         PR bootstrap/49160
5929         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
5930         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
5931         __divxc3, __divtc3): Wrap definitions in #ifndef.
5932
5933 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5934
5935         PR target/49142
5936         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
5937         "register_operand" check and replace q_regs_operand with
5938         QIreg_operand in "type" calculation.
5939         (*movqi_extv_1): Likewise.
5940         (*movqi_extzv_2_rex64): Likewise.
5941         (*movqi_extzv_2): Likewise.
5942
5943         * config/i386/predicates.md (QIreg_operand): New.
5944
5945 2011-05-25  Richard Guenther  <rguenther@suse.de>
5946
5947         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
5948         type-based offset disambiguation, streamline MEM_REF and
5949         TARGET_MEM_REF handling.
5950
5951 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5952
5953         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
5954         (bdesc_special_args): Add pause intrinsic.
5955
5956         * config/i386/i386.md (UNSPEC_PAUSE): New.
5957         (pause): Likewise.
5958         (*pause): Likewise.
5959         * config/i386/ia32intrin.h (__pause): Likewise.
5960
5961         * doc/extend.texi (X86 Built-in Functions): Add documentation for
5962         pause intrinsic.
5963
5964 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5965
5966         PR tree-optimization/46728
5967         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
5968         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
5969
5970 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
5971
5972         * tree.h (struct tree_exp): Inherit from struct tree_typed.
5973         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
5974         instead of TS_COMMON.
5975
5976 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
5977
5978         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
5979         LIBGCC2_GNU_PREFIX is defined.
5980         (__N): New macro.
5981         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
5982         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
5983         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
5984         __clz_tab): Define using __N.
5985         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
5986         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
5987         * target.def (libfunc_gnu_prefix): New hook.
5988         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
5989         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
5990         * doc/tm.texi: Regenerate.
5991         * system.h (LIBGCC2_GNU_PREFIX): Poison.
5992         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
5993         account.
5994         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
5995         (init_optabs): Likewise for the bswap libfuncs.
5996         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
5997         and divide.
5998         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
5999         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
6000         * libgcc-std.ver: Remove.
6001         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
6002         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
6003         libgcc-std.ver.
6004         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6005         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
6006         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
6007         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
6008         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
6009         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6010         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6011         * config/fixed-bit.h (FIXED_OP): Define differently depending on
6012         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
6013         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
6014
6015 2011-05-25  Jan Hubicka  <jh@suse.cz>
6016
6017         * lto-streamer-out.c (output_record_start): Use lto_output_enum
6018         (lto_output_tree): Use output_record_start.
6019         * lto-streamer-in.c (input_record_start): Use lto_input_enum
6020         (lto_get_pickled_tree): Use input_record_start.
6021         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
6022         (lto_value_range_error): New function.
6023         * lto-streamer.h (lto_value_range_error): Declare.
6024         (lto_output_int_in_range, lto_input_int_in_range): New functions.
6025         (lto_output_enum, lto_input_enum): New macros.
6026
6027 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6028
6029         * common.opt (flag_stack_usage_info): New variable.
6030         (-Wstack-usage): New option.
6031         * doc/invoke.texi (Warning options): Document -Wstack-usage.
6032         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
6033         <OPT_fstack_usage>: Likewise.
6034         * toplev.c (output_stack_usage): Handle -Wstack-usage.
6035         * calls.c (expand_call): Test flag_stack_usage_info variable instead
6036         of flag_stack_usage.
6037         (emit_library_call_value_1): Likewise.
6038         * explow.c (allocate_dynamic_stack_space): Likewise.
6039         * function.c (instantiate_virtual_regs ): Likewise.
6040         (prepare_function_start): Likewise.
6041         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
6042         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
6043         * config/arm/arm.c (arm_expand_prologue): Likewise.
6044         (thumb1_expand_prologue): Likewise.
6045         * config/avr/avr.c (expand_prologue): Likewise.
6046         * config/i386/i386.c (ix86_expand_prologue): Likewise.
6047         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
6048         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
6049         * config/mips/mips.c (mips_expand_prologue): Likewise.
6050         * config/pa/pa.c (hppa_expand_prologue): Likewise.
6051         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
6052         * config/s390/s390.c (s390_emit_prologue): Likewise.
6053         * config/sh/sh.c (sh_expand_prologue): Likewise.
6054         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
6055         * config/spu/spu.c (spu_expand_prologue): Likewise.
6056
6057 2011-05-25  Richard Guenther  <rguenther@suse.de>
6058
6059         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
6060         (gimple_canonical_types_compatible_p): Likewise.
6061
6062 2011-05-25  Jan Hubicka  <jh@suse.cz>
6063
6064         PR middle-end/49062
6065         * ipa.c (function_and_variable_visibility): Only add to same
6066         comdat group list if DECL_ONE_ONLY.
6067
6068 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
6069
6070         PR rtl-optimization/49014
6071         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
6072
6073 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
6074
6075         PR target/49128
6076         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
6077
6078 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
6079
6080         PR rtl-optimization/48757
6081         * ira-build.c (loop_with_eh_edge_p): Rename to
6082         loop_with_complex_edge_p, check edges on complexity, make function
6083         conditional.
6084         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
6085         conditional.
6086
6087 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
6088
6089         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
6090         force flag_ira_share_save_slots to 0.
6091
6092 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
6093
6094         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
6095         (vt_initialize): Set PROLOGUE_BB unconditionally.
6096         Add block comment about CFA_BASE_RTX machinery.
6097         Reset FP_CFA_OFFSET to -1 on all invalid paths.
6098         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
6099
6100 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
6101
6102         PR objc/48187
6103         * c-parser.c (c_parser_objc_class_instance_variables): More robust
6104         parsing of syntax error in ObjC instance variable lists.  In
6105         particular, avoid an infinite loop if there is a stray ']'.
6106         Updated error message.
6107
6108 2011-05-24  Ian Lance Taylor  <iant@google.com>
6109
6110         * godump.c (go_define): Don't accept a string immediately after
6111         another operand.
6112
6113 2011-05-24  Ian Lance Taylor  <iant@google.com>
6114
6115         * godump.c (struct godump_container): Add invalid_hash field.
6116         (go_format_type): Return false if type is found in invalid_hash.
6117         (go_output_typedef): Add invalid type to invalid_hash.
6118         (go_finish): Create and delete invalid_hash.
6119
6120 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6121
6122         PR tree-optimization/46728
6123         * tree-ssa-math-opts.c (powi_table): New.
6124         (powi_lookup_cost): New.
6125         (powi_cost): New.
6126         (powi_as_mults_1): New.
6127         (powi_as_mults): New.
6128         (gimple_expand_builtin_powi): New.
6129         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
6130         (gate_cse_sincos): Remove sincos/cexp restriction.
6131
6132 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6133
6134         PR target/3746
6135         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
6136         mips-tdump native.
6137         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
6138         * mips-tdump.c: Likewise.
6139
6140 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6141
6142         PR target/49128
6143         * config/i386/driver-i386.c (host_detect_local_cpu): Always
6144         add -mno-XXX.  Handle FMA.
6145
6146 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
6147
6148         PR rtl-optimization/48633
6149         * ira-build.c (loop_with_eh_edge_p): New function.
6150         (mark_loops_for_removal): Use it.
6151
6152 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
6153
6154         PR rtl-optimization/48971
6155         * ira.c (setup_pressure_classes): Don't check register move cost
6156         for classes with one registers.  Don't add pressure class if there
6157         is a pressure class with the same available hard registers.
6158         Check contains_reg_of_mode.  Fix a typo in collecting
6159         temp_hard_regset.  Ignore hard registers not belonging to a class.
6160
6161 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
6162
6163         PR target/49133
6164         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
6165
6166 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
6167             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6168
6169         PR gcov-profile/48845
6170         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
6171
6172 2011-05-24  Richard Guenther  <rguenther@suse.de>
6173
6174         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
6175         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
6176         (gimple_types_compatible_p_1): Adjust.
6177         (iterative_hash_canonical_type): Do not bother about complete vs.
6178         incomplete types.
6179         (gimple_canonical_types_compatible_p): Likewise.
6180
6181 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6182
6183         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
6184
6185 2011-05-24  Richard Guenther  <rguenther@suse.de>
6186
6187         PR bootstrap/49078
6188         * gimple.c (gimple_register_canonical_type): Revert
6189         previous change.
6190         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
6191         does not for a tree for the case where it matters.  Cache
6192         pointer-type alias-sets.
6193
6194 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
6195
6196         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
6197         (OBJS): Remove options.o, opts-common.o and prefix.o.
6198         (OBJS-libcommon-target): New.
6199         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
6200         (BACKEND): Include libcommon-target.a.
6201         (MOSTLYCLEANFILES): Include libcommon-target.a.
6202         (libcommon-target.a): New.
6203         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
6204         prefix.o.
6205
6206 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
6207
6208         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
6209         parts of output shared with the driver.
6210         * optc-gen.awk: Don't generate parts of output not shared with the
6211         driver.
6212         * opth-gen.awk: Remove GCC_DRIVER conditionals.
6213         * doc/options.texi (SourcerInclude): Mention options-save.c.
6214         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
6215         (OBJS): Add options-save.o.
6216         (options-save.c, options-save.o): New.
6217         (options.o): Update dependencies.
6218         (gcc-options.o): Remove.
6219         (mostlyclean): Remove options-save.c.
6220
6221 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
6222
6223         PR debug/49032
6224         * dbxout.c: Include cgraph.h.
6225         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
6226         and without value expr, return NULL if no varpool node exists for
6227         it or if it is not needed.
6228         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
6229
6230         PR c/49120
6231         * c-decl.c (start_decl): Convert expr to void_type_node.
6232
6233 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
6234
6235         PR rtl-optimization/48826
6236         * emit-rtl.c (try_split): When splitting a call that is followed
6237         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
6238
6239 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
6240
6241         * cfgexpand.c (expand_debug_expr): For unused non-addressable
6242         parameters passed in memory prefer using DECL_INCOMING_RTL over
6243         the pseudos it will be copied into.
6244
6245 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
6246
6247         PR target/47315
6248         * config/i386/i386.c (ix86_option_override_internal): Save the
6249         initial options after checking vzeroupper.
6250
6251 2011-05-23  David Li  <davidxl@google.com>
6252
6253         PR tree-optimization/48988
6254         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
6255         Initialize has_valid_pred for each pred chain.
6256
6257 2011-05-23  Richard Guenther  <rguenther@suse.de>
6258
6259         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
6260         (iterative_hash_gimple_type): Always hash type names.
6261
6262 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
6263
6264         * c-typeck.c (build_function_call_vec): Tweak call to
6265         check_function_arguments.
6266
6267 2011-05-23  Richard Guenther  <rguenther@suse.de>
6268
6269         PR tree-optimization/49115
6270         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
6271         is not necessarily carried out, do not claim it kills the ref.
6272         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
6273
6274 2011-05-23  Richard Guenther  <rguenther@suse.de>
6275
6276         PR middle-end/15419
6277         * builtins.c (fold_builtin_memory_op): Be less restrictive about
6278         what pointer types we accept for folding.
6279
6280 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6281
6282         * gthr-gnat.c: Remove.
6283         * gthr-gnat.h: Remove.
6284         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
6285         * config/t-freebsd (LIB2ADDEH): Likewise.
6286         * config/t-linux (LIB2ADDEH): Likewise.
6287         * config/t-sol2 (LIB2ADDEH): Likewise.
6288         * config/ia64/t-vms (LIB2ADDEH): Likewise.
6289         * configure.ac (target_thread_file): Remove gnat handling.
6290         * configure: Regenerate.
6291         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
6292
6293 2011-05-23  Tristan Gingold  <gingold@adacore.com>
6294             Eric Botcazou  <ebotcazou@adacore.com>
6295
6296         * gcov.c (create_file_names): If no object directory is specified,
6297         keep the directory of the file.
6298
6299 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6300
6301         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
6302         * configure: Regenerate.
6303
6304 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
6305
6306         PR middle-end/48973
6307         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
6308         failed and the comparison has a single bit signed type, use
6309         constm1_rtx instead of const1_rtx for true value.
6310         (do_store_flag): If ops->type is single bit signed type, disable
6311         signel bit test optimization and pass -1 instead of 1 as last
6312         parameter to emit_store_flag_force.
6313
6314 2011-05-23  Tom de Vries  <tom@codesourcery.com>
6315
6316         PR target/45098
6317         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
6318         function.
6319         (infer_loop_bounds_from_undefined): Use new function.
6320
6321 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
6322
6323         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
6324         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
6325         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
6326         and -O0 otherwise.
6327         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
6328
6329 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6330
6331         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
6332         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
6333         returns true.
6334
6335 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
6336
6337         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
6338
6339 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6340
6341         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
6342         UNSPEC_MOVE_PIC pattern.
6343
6344 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6345
6346         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
6347         (sparc-*-rtems*): Likewise.
6348         (sparc64-*-elf*): Likewise.
6349         (sparc64-*-rtems*): Likewise.
6350         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
6351         * config/sparc/t-crtin: New file.
6352         * config/sparc/t-sol2 (crti.o): Delete rule.
6353         (crtn.o): Likewise.
6354         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
6355         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
6356         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
6357         (ENDFILE_SPEC): Add crtn.o.
6358
6359 2011-05-22  Tom de Vries  <tom@codesourcery.com>
6360
6361         PR middle-end/48689
6362         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
6363         CODE_CONTAINS_STRUCT (TS_COMMON).
6364
6365 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
6366
6367         PR middle-end/49029
6368         * expmed.c (extract_fixed_bit_field): Test whether target can be used
6369         only after deciding which mode to use.
6370
6371 2011-05-22  Tom de Vries  <tom@codesourcery.com>
6372
6373         PR target/45098
6374         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
6375         for call to get_shiftadd_cost.
6376
6377 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
6378
6379         PR target/49104
6380         * config/i386/cpuid.h (bit_MMXEXT): New define.
6381
6382 2011-05-22  Nick Clifton  <nickc@redhat.com>
6383
6384         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
6385         initialisation of non-existant args[2] element.  Use args[] array
6386         not arg[] array to pass arguments to build_function_type_list.
6387
6388 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
6389
6390         PR tree-optimization/49087
6391         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
6392
6393 2011-05-21  Jason Merrill  <jason@redhat.com>
6394
6395         PR c++/49092
6396         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
6397         static storage duration.
6398
6399 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6400
6401         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
6402         frame pointer.
6403
6404 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6405
6406         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
6407         false if there are call-saved registers here...
6408         (sparc_can_use_return_insn_p): ...but here instead.
6409         (save_or_restore_regs): Fix thinko.
6410         (sparc_expand_prologue): Use current_function_is_leaf.
6411         (sparc_frame_pointer_required): Likewise.
6412
6413 2011-05-21  Nick Clifton  <nickc@redhat.com>
6414
6415         PR target/49098
6416         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
6417
6418 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
6419
6420         * gengtype.c (walk_type): Implemented "atomic" GTY option.
6421         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
6422
6423 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
6424
6425         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
6426         * optc-gen.awk: Move common code to opt-read.awk.
6427         * opth-gen.awk: Likewise.
6428         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
6429
6430 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
6431
6432         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
6433
6434 2011-05-20  Tom de Vries  <tom@codesourcery.com>
6435
6436         PR target/45098
6437         * tree-ssa-loop-ivopts.c: Include expmed.h.
6438         (get_shiftadd_cost): New function.
6439         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
6440
6441 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
6442
6443         PR bootstrap/49086
6444         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
6445         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
6446
6447 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
6448
6449         * Makefile.in: Update comment referring to $(OBJS-common).
6450
6451 2011-05-20  Ian Lance Taylor  <iant@google.com>
6452
6453         * godump.c (go_output_typedef): Put enum constants in the macro
6454         hash table to avoid duplicate Go const definitions.
6455
6456 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
6457
6458         * Makefile.in (LIBDEPS): Add libcommon.a.
6459         (LIBS): Likewise.
6460         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
6461         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
6462         pretty-print.o and version.o.
6463         (OBJS-libcommon): New.
6464         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
6465         (BACKEND): Add libcommon.a.
6466         (MOSTLYCLEANFILES): Likewise.
6467         (libcommon.a): New.
6468         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
6469         (cpp$(exeext)): Likewise.
6470         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
6471         pretty-print.o and input.o.
6472         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
6473         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
6474         (errors.o): Remove.
6475         (mips-tfile): Don't explicitly use version.o.
6476         (mips-tdump): Likewise.
6477         (gcov.o): Depend on $(DIAGNOSTIC_H).
6478         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
6479         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
6480         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
6481         * gcov-dump.c: Include intl.h and diagnostic.h.
6482         (main): Initialize diagnostics.
6483         * gcov.c: Include diagnostic.h.
6484         (fnotice): Remove.
6485         (main): Initialize diagnostics.
6486         * lto-wrapper.c: Include diagnostic.h.
6487         (main): Initialize diagnostics.
6488
6489 2011-05-20  Michael Matz  <matz@suse.de>
6490
6491         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
6492
6493 2011-05-20  Michael Matz  <matz@suse.de>
6494             Richard Guenther  <rguenther@suse.de>
6495
6496         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
6497         use lto_streamer_cache_append directly instead of returning a VEC.
6498         (preload_common_node): Remove.
6499         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
6500         track seen nodes.
6501         (lto_streamer_cache_create): Call lto_preload_common_nodes.
6502
6503 2011-05-20  Richard Guenther  <rguenther@suse.de>
6504
6505         PR tree-optimization/49079
6506         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
6507         MEM_REFs correctly for the trailing array access detection.
6508         Special case constants the same way as decls for overall size
6509         constraining.
6510
6511 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
6512
6513         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
6514         argument expansion.
6515
6516 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
6517
6518         PR tree-optimization/49073
6519         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
6520         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6521         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
6522
6523 2011-05-20  Richard Guenther  <rguenther@suse.de>
6524
6525         PR middle-end/48849
6526         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
6527         of pointer types the same way the middle-end does.
6528
6529 2011-05-20  Richard Guenther  <rguenther@suse.de>
6530
6531         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
6532         or pointer-to chains.  Delay all fixup to uniquify_nodes.
6533
6534 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
6535
6536         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
6537         (fma4_fmaddsub): Likewise
6538
6539 2011-05-19  Jan Hubicka  <jh@suse.cz>
6540
6541         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
6542         (GIMPLE_TYPE_PAIR_SIZE): New macro.
6543         (type_pair_cache): New static var.
6544         (lookup_type_pair): Use fixed sized custom hash; make inline.
6545         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
6546         calls of lookup_type_pair.
6547         (print_gimple_types_stats): Remove cache stats.
6548         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
6549         and gtc_ob.
6550
6551 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
6552
6553         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
6554         when TARGET_RDRND is active.
6555         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
6556         Generate dummy SImode target register when target is NULL.
6557
6558 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
6559
6560         * config/arm/arm-fpus.def: New.
6561         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
6562         arm-fpus.def.
6563         * config/arm/arm-tables.opt: Regenerate.
6564         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
6565         (arm_option_override): Don't decode FPU name to string here.
6566         * config/arm/arm.opt (mfpu=): Use Enum.
6567         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
6568         Update dependencies.
6569
6570 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
6571
6572         * collect2.c: Include diagnostic.h.
6573         (fatal_perror, fatal, error, fancy_abort): Remove.
6574         (main): Set progname.  Call xmalloc_set_program_name and
6575         diagnostic_initialize.
6576         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
6577         scan_libraries, resolve_lib_name): Call fatal_error instead of
6578         fatal and fatal_perror.
6579         * collect2.h (error, fatal, fatal_perror): Don't declare.
6580         * tlink.c: Include diagnostic-core.h.
6581         (recompile_files): Call fatal_error instead of fatal_perror.
6582         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
6583         pretty-print.o and input.o.
6584         (collect2.o, tlink.o): Update dependencies.
6585
6586 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6587
6588         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
6589
6590 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6591
6592         PR target/40483
6593         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
6594         COMDAT group syntax, both SPARC and x86 variants.
6595         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
6596         * configure: Regenerate.
6597         * config/sol2.h (TARGET_SOLARIS): Define.
6598         (PUSHSECTION_FORMAT): Remove.
6599         (SECTION_NAME_FORMAT): Define.
6600         * config/sol2.c: Include hashtab.h.
6601         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
6602         expansion, using SECTION_NAME_FORMAT.
6603         (solaris_comdat_htab): New variable.
6604         (struct comdat_entry): Define.
6605         (comdat_hash): New function.
6606         (comdat_eq): New function.
6607         (solaris_elf_asm_comdat_section): New function.
6608         (solaris_define_comdat_signature): New function.
6609         (solaris_code_end): New function.
6610         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
6611         (solaris_code_end): Declare.
6612         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
6613         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
6614         solaris_code_end.
6615         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
6616         Remove ATTRIBUTE_UNUSED.
6617         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
6618         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
6619         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
6620         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
6621         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
6622         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
6623         (PUSHSECTION_FORMAT): Remove.
6624         (SECTION_NAME_FORMAT): Redefine.
6625
6626 2011-05-19  Kai Tietz  <ktietz@redhat.com>
6627
6628         * tree-cfg.c (verify_gimple_assign_binary): Barf on
6629         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
6630         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
6631
6632 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
6633             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6634
6635         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
6636
6637 2011-05-19  Richard Guenther  <rguenther@suse.de>
6638
6639         PR middle-end/48985
6640         * tree-object-size.c (addr_object_size): If the pointed-to
6641         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
6642
6643 2011-05-19  Richard Guenther  <rguenther@suse.de>
6644
6645         * gimple.c (gimple_types_compatible_p_1): Compare names of
6646         the types themselves.
6647         (iterative_hash_gimple_type): And hash them that way.
6648         (gimple_register_type_1): If we register a main variant properly
6649         initialize the leader to ourselves.
6650
6651 2011-05-19  Tom de Vries  <tom@codesourcery.com>
6652
6653         PR target/45098
6654         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
6655         get_loop_invariant_expr_id.
6656         (get_loop_invariant_expr_id): Use get_expr_id.
6657         (parm_decl_cost): New function.
6658         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
6659         Improve bound cost estimation.  Use different inv_expr_id for elim and
6660         express cases.
6661
6662 2011-05-19  Tom de Vries  <tom@codesourcery.com>
6663
6664         PR target/45098
6665         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
6666         cost_base.cost == 0.
6667
6668 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
6669
6670         PR target/49002
6671         * config/i386/sse.md
6672         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
6673         load cast.
6674
6675 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
6676
6677         PR tree-optimization/49039
6678         * tree-vrp.c (extract_range_from_binary_expr): For
6679         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
6680         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
6681
6682 2011-05-18  Tom de Vries  <tom@codesourcery.com>
6683
6684         PR target/45098
6685         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
6686
6687 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
6688
6689         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
6690         (*tls_global_dynamic_64): Ditto.
6691         (*tls_local_dynamic_base_32_gnu): Ditto.
6692         (*tls_local_dynamic_base_64): Ditto.
6693         (tls_initial_exec_64_sun): Ditto.
6694
6695 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
6696
6697         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
6698         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
6699         bf592-none.
6700         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
6701         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
6702         * config/bfin/bfin.c (bfin_cpus): Add bf592.
6703         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
6704         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
6705         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
6706         * config/bfin/elf.h (LIB_SPEC): Add bf592.
6707
6708 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
6709
6710         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
6711         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
6712         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
6713         target_thread_pointer, arm_structure_size_boundary, struct
6714         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
6715         struct abi_name, arm_all_abis): Remove.
6716         (arm_option_override) Don't process most enumerated option values here.
6717         Don't process target_fpe_name here.  Work with integer not string for
6718         structure size boundary; use separate diagnostics for each case.
6719         * config/arm/arm.h (enum float_abi_type, enum
6720         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
6721         to arm-opts.h.
6722         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
6723         arm_structure_size_boundary): Remove.
6724         * config/arm/arm.opt (mabi=): Use Enum and Init.
6725         (arm_abi_type): New Enum and EnumValue entries.
6726         (mfloat-abi=): Use Enum and Init.
6727         (float_abi_type): New Enum and EnumValue entries.
6728         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
6729         (mfp16-format=): Use Enum and Init.
6730         (arm_fp16_format_type): New Enum and EnumValue entries.
6731         (mstructure-size-boundary=): Use UInteger and Init.
6732         (mtp=): Use Enum and Init.
6733         (arm_tp_type): New Enum and EnumValue entries.
6734
6735 2011-05-18  Richard Guenther  <rguenther@suse.de>
6736
6737         PR tree-optimization/49018
6738         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
6739         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
6740         gimple_has_side_effects.
6741
6742 2011-05-18  Richard Guenther  <rguenther@suse.de>
6743
6744         * gimple.c (gimple_register_type_1): New function, split out from ...
6745         (gimple_register_type): ... here.  Avoid infinite recursion.
6746
6747 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
6748
6749         PR tree-optimization/41881
6750         * tree-vectorizer.h (struct _loop_vec_info): Add new field
6751         reduction_chains along with a macro for its access.
6752         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
6753         (destroy_loop_vec_info): Free reduction chains.
6754         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
6755         (vect_is_slp_reduction): New function.
6756         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
6757         (vect_create_epilog_for_reduction): Support SLP reduction chains.
6758         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
6759         definition types for reduction chains.
6760         (vect_supported_load_permutation_p): Don't allow permutations for
6761         reduction chains.
6762         (vect_analyze_slp_instance): Support reduction chains.
6763         (vect_analyze_slp): Try to build SLP instance from reduction chains.
6764         (vect_get_constant_vectors):  Handle reduction chains.
6765         (vect_schedule_slp_instance): Mark the first statement of the
6766         reduction chain as reduction.
6767
6768 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
6769
6770         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
6771         names for group elements access.
6772         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
6773         reduction chains as well.  Remove data reference and interleaving
6774         related words from the fields names.
6775         * tree-vect-loop.c (vect_transform_loop): Use new names for group
6776         elements access.
6777         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
6778         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
6779         vect_update_interleaving_chain, vect_same_range_drs,
6780         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
6781         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
6782         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
6783         vect_analyze_group_access, vect_analyze_data_ref_access,
6784         vect_create_data_ref_ptr, vect_transform_strided_load,
6785         vect_record_strided_load_vectors): Likewise.
6786         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
6787         vect_model_load_cost, vectorizable_store, vectorizable_load,
6788         vect_remove_stores, new_stmt_vec_info): Likewise.
6789         * tree-vect-slp.c (vect_build_slp_tree,
6790         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
6791
6792 2011-05-18  Richard Guenther  <rguenther@suse.de>
6793
6794         PR middle-end/48989
6795         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
6796         operand verification.
6797         (verify_gimple_assign_binary): Likewise.
6798         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
6799         to non-1-precision BOOLEAN_TYPEs.
6800
6801 2011-05-18  Tom de Vries  <tom@codesourcery.com>
6802
6803         PR target/45098
6804         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
6805
6806 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
6807
6808         PR tree-optimization/49000
6809         * tree-ssa.c (execute_update_addresses_taken): Call
6810         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
6811         be rewritten and decl has been marked for renaming, reset
6812         the debug stmt.
6813
6814 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
6815
6816         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
6817         enum_opts_set when testing if attributes have set -mfpmath=.
6818
6819 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
6820
6821         * config/mips/mips.c (mips_handle_option): Remove unused variable.
6822
6823 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
6824
6825         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
6826         info->entry with 0
6827         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
6828         id.transform_lang_insert_block with NULL.
6829
6830 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
6831
6832         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
6833         (output_fp_compare): Change args 3 and 4 to bool.
6834         (ix86_expand_call): Change arg 6 to bool.
6835         (ix86_attr_length_immediate_default): Change arg 2 to bool.
6836         (ix86_attr_length_vex_default): Change arg 3 to bool.
6837         * config/i386/i386.md: Update all uses.
6838         * config/i386/i386.c: Ditto.
6839         (ix86_flags_dependent): Change return type to bool.
6840
6841 2011-05-17  Richard Guenther  <rguenther@suse.de>
6842
6843         * gimple.c (type_hash_pair_compare): Fix comparison.
6844
6845 2011-05-17  Richard Guenther  <rguenther@suse.de>
6846
6847         * gimple.c (iterative_hash_gimple_type): Simplify singleton
6848         case some more, fix final hash value of the non-singleton case.
6849
6850 2011-05-17  Richard Guenther  <rguenther@suse.de>
6851
6852         PR bootstrap/49013
6853         Revert
6854         2011-05-16  Richard Guenther  <rguenther@suse.de>
6855
6856         * gimple.c (gimple_types_compatible_p_1): Use names of the
6857         type itself, not its main variant.
6858         (iterative_hash_gimple_type): Likewise.
6859
6860 2011-05-17  Richard Guenther  <rguenther@suse.de>
6861
6862         * gimple.c (gimple_register_canonical_type): Use the main-variant
6863         leader for computing the canonical type.
6864
6865 2011-05-17  Nick Clifton  <nickc@redhat.com>
6866
6867         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
6868         moves.
6869
6870         * config/rx/rx.md: Add peephole to remove redundant extensions
6871         after loads.
6872         (bitset_in_memory): Use rx_restricted_mem_operand.
6873         (bitinvert_in_memory): Likewise.
6874         (bitclr_in_memory): Likewise.
6875
6876 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
6877             Nick Clifton  <nickc@redhat.com>
6878
6879         * config/rx/rx.md: Add peepholes to match a register move followed
6880         by a comparison of the moved register.  Replace these with an
6881         addition of zero that does both actions in one instruction.
6882
6883 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
6884
6885         PR target/48986
6886         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
6887         predicate to allow CONST_INT.
6888         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
6889
6890 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
6891
6892         * opts-common.c (opt_enum_arg_to_value): New.
6893         * opts.h (opt_enum_arg_to_value): Declare.
6894         * config/i386/i386.opt (fpmath): Remove.
6895         (mfpmath=): Use Enum, Init and Save.
6896         (fpmath_unit): New Enum and EnumValue entries.
6897         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
6898         name for function fpmath state.
6899         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
6900         * config/i386/i386.c: Include diagnostic.h.
6901         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
6902         (ix86_target_string): Take enum fpmath_unit value instead of string.
6903         (ix86_debug_options): Update call to ix86_target_string.
6904         (ix86_option_override_internal): Don't process fpmath strings here.
6905         (x86_function_specific_save, ix86_function_specific_restore):
6906         Don't handle fpmath state specially.
6907         (ix86_function_specific_print): Pass fpmath state to
6908         ix86_target_string instead of printing in this function.
6909         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
6910         Handle enum attributes.
6911         (IX86_ATTR_ENUM, ix86_opt_enum): New.
6912         (ix86_valid_target_attribute_tree): Update option_strings
6913         handling.  Handle fpmath as enum option.
6914         (ix86_can_inline_p): Update field names for function fpmath state.
6915         (ix86_expand_builtin): Update call to ix86_target_string.
6916         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
6917         (ix86_fpmath): Remove.
6918         * config/i386/t-i386 (i386.o): Update dependencies.
6919
6920 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
6921
6922         PR preprocessor/48677
6923         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
6924         from decoded_options[0], not from itself.
6925
6926 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
6927
6928         * config/i386/constraints.md (z): New constraint.
6929         * config/i386/i386.c (c): New mode attribute.
6930         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
6931         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
6932         constraint for operand 0.
6933         (*call_vzeroupper): Ditto.
6934         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
6935         (*call_rex64_ms_sysv_vzeroupper): Ditto.
6936         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
6937         Use "lzm" constraint for operand 0.
6938         (*call_pop_vzeroupper): Ditto.
6939         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
6940         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
6941         constraint for operand 0.
6942         (*sibcall_vzeroupper): Ditto.
6943         (*sibcall_rex64_ms_sysv): Ditto.
6944         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
6945         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
6946         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
6947         (*sibcall_pop_vzeroupper): Ditto.
6948         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
6949         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
6950         mode iterator.  Use "<c>zm" constraint for operand 1.
6951         (*call_value_vzeroupper): Ditto.
6952         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
6953         for operand 1.
6954         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
6955         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
6956         *call_value_pop_1.  Use "lzm" constraint for operand 1.
6957         (*call_value_pop_vzeroupper): Ditto.
6958         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
6959         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
6960         mode iterator.  Use "Uz" constraint for operand 1.
6961         (*sibcall_value_vzeroupper): Ditto.
6962         (*sibcall_value_rex64_ms_sysv): Ditto.
6963         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
6964         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
6965         constraint for operand 1.
6966         (*sibcall_value_pop_vzeroupper): Ditto.
6967         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
6968         and "z" constraint for operand 2.
6969         (*tls_global_dynamic_32_gnu): Ditto.
6970         (*tls_local_dynamic_base_32_gnu): Ditto.
6971         (*tls_local_dynamic_base_64): Ditto.
6972         (*tls_local_dynamic_32_once): Ditto.
6973         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
6974         Update all callers.
6975         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
6976
6977 2011-05-16  Richard Guenther  <rguenther@suse.de>
6978
6979         * gimple.c (gimple_types_compatible_p_1): Use names of the
6980         type itself, not its main variant.
6981         (iterative_hash_gimple_type): Likewise.
6982
6983 2011-05-16  Richard Guenther  <rguenther@suse.de>
6984
6985         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
6986         always visit pointer target and function result and argument types.
6987
6988 2011-05-16  Jason Merrill  <jason@redhat.com>
6989
6990         PR c++/48999
6991         * tree-inline.c (copy_statement_list): Put back recursion.
6992
6993 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
6994
6995         PR target/27663
6996         PR target/41076
6997         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
6998         * config/avr/avr.md ("*ior<mode>qi.byte0",
6999         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
7000
7001 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
7002
7003         PR target/45099
7004         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
7005         register is needed for a function argument.
7006
7007 2011-05-16  Richard Guenther  <rguenther@suse.de>
7008
7009         * gimple.c (struct type_hash_pair): New type.
7010         (type_hash_pair_compare): New function.
7011         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
7012
7013 2011-05-16  Revital Eres  <revital.eres@linaro.org>
7014
7015         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
7016
7017 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
7018
7019         * config/i386/i386.md (floating point move splitters): Fix
7020         usage of standard_80387_constant_p.
7021         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
7022
7023 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
7024
7025         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
7026
7027 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
7028
7029         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
7030         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
7031         (tree_ssa_lim_finalize): Likewise.
7032
7033 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
7034
7035         * config/i386/constraint.md (Yd, Yx): New register constraints.
7036         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
7037         Yd conditional register constraint.
7038         (*movtf_internal): Use standard_sse_constant_opcode.
7039         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
7040         Yx conditional register constraint.
7041         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
7042         Yd conditional register constraint.  Use standard_sse_constant_p to
7043         check for valid SSE constants and call standard_sse_constant_opcode to
7044         output SSE insn.
7045         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
7046         constants and call standard_sse_constant_opcode to output SSE insn.
7047         * config/i386/i386.c (ix86_option_ovverride_internal): Set
7048         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
7049         optimize_size is set.
7050         (standard_sse_constant_opcode): Output conditional AVX insn templates.
7051
7052 2011-05-14  Tobias Burnus  <burnus@net-b.de>
7053
7054         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
7055
7056 2011-05-13  Martin Jambor  <mjambor@suse.cz>
7057
7058         * ipa-prop.c (ipa_cst_from_jfunc): New function.
7059         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
7060         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
7061         (evaluate_conditions_for_ipcp_clone): Removed.
7062         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
7063         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
7064         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
7065
7066 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
7067
7068         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
7069         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
7070         lieu of MAY_HAVE_DEBUG_STMTS.
7071         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
7072         debug statements if !MAY_HAVE_DEBUG_STMTS.
7073
7074 2011-05-13  Martin Thuresson  <martint@google.com>
7075
7076         PR gcov-profile/47793
7077         * libgcov.c (gcov_exit): Support relative profile paths.
7078         * doc/invoke.texi (-fprofile-dir): Update for above change.
7079
7080 2011-05-13  Richard Guenther  <rguenther@suse.de>
7081
7082         * gimple.c (gimple_canonical_types_compatible_p): Do not use
7083         type-pair caching, do not compare hashes.
7084
7085 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
7086
7087         PR middle-end/48965
7088         * tree-cfg.c (edge_to_cases_cleanup): Return true.
7089         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
7090
7091 2011-05-13  Kai Tietz  <ktietz@redhat.com>
7092
7093         * gimplify.c (gimplify_expr): Make sure operand is boolified.
7094         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
7095         compatible type for TRUTH_NOT_EXPR.
7096
7097 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
7098
7099         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
7100         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
7101         can_create_pseudo_p ().
7102
7103 2011-05-13  Richard Guenther  <rguenther@suse.de>
7104
7105         PR lto/48978
7106         * gimple.c (iterative_hash_gimple_type): Revert change in
7107         pointer target and function result and argument hashing.
7108
7109 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
7110
7111         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
7112         (*movxf_internal_nointeger): Ditto.
7113         (*movdf_internal_rex64): Ditto.
7114         (*movdf_internal): Ditto.
7115         (*movdf_internal_nointeger): Ditto.
7116         (*movsf_internal): Ditto.
7117         (sincos splitters): Use can_create_pseudo ().
7118
7119 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
7120
7121         * config/i386/i386-opts.h: New.
7122         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
7123         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
7124         ix86_section_threshold): Remove.
7125         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
7126         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
7127         OPT_mbranch_cost_.
7128         (ix86_option_override_internal): Don't decode strings for options
7129         other than -march=, -mtune= and -mfpmath=.  Don't allow for
7130         __attribute__ uses in remaining diagnostics for options with
7131         string arguments.  Don't check for integer arguments being negative.
7132         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
7133         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7134         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
7135         ix86_branch_cost, ix86_section_threshold): Remove.
7136         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
7137         HeaderInclude.
7138         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
7139         but not Var.
7140         (masm=): Use Enum and Init.
7141         (asm_dialect): New Enum and EnumValue entries.
7142         (mbranch-cost=): Use UInteger.
7143         (mlarge-data-threshold=): Use UInteger and Init.
7144         (mcmodel=): Use Enum and Init.
7145         (cmodel): New Enum and EnumValue entries.
7146         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
7147         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
7148         mregparm=): Use UInteger.
7149         (mstringop-strategy=): Use Enum and Init.
7150         (stringop_alg): New Enum and EnumValue entries.
7151         (mtls-dialect=): Use Enum and Init.
7152         (tls_dialect): New Enum and EnumValue entries.
7153         (mabi=): Use Enum and Init.
7154         (calling_abi): New Enum and EnumValue entries.
7155         (mveclibabi=): Use Enum and Init.
7156         (ix86_veclibabi): New Enum and EnumValue entries.
7157
7158 2011-05-13  Nick Clifton  <nickc@redhat.com>
7159
7160         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
7161         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
7162
7163 2011-05-13  Kai Tietz  <ktietz@redhat.com>
7164
7165         PR middle-end/48984
7166         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
7167         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
7168         (gimple_boolify): Check for cast for boolean_type_node instead for
7169         BOOLEAN_TYPE.
7170
7171 2011-05-13  Richard Guenther  <rguenther@suse.de>
7172
7173         PR tree-optimization/48172
7174         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
7175         multiplying by number of iterations for equal step.
7176         (vect_create_cond_for_alias_checks): Likewise.
7177
7178 2011-05-13  Andreas Schwab  <schwab@redhat.com>
7179
7180         * configure.ac: Use AS_HELP_STRING throughout.
7181         * configure: Regenerate.
7182
7183 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
7184
7185         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
7186         (ix86_emit_restore_regs_using_mov): Likewise.
7187         (ix86_emit_restore_sse_regs_using_mov): Likewise.
7188
7189 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
7190
7191         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
7192         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
7193         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
7194         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
7195         RTX_OK_FOR_OLO10_P): ...here.
7196         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
7197         SYMBOLIC_CONST.
7198
7199 2011-05-12  Kai Tietz  <ktietz@redhat.com>
7200
7201         * gimplify.c (gimple_boolify): Re-boolify expression
7202         arguments even if expression type is of kind BOOLEAN_TYPE.
7203         (gimplify_boolean_expr): Removed.
7204         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
7205         and XOR. Additional take care that we keep expression's type.
7206         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
7207         of TRUTH_AND|OR|XOR_EXPR.
7208
7209 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
7210
7211         PR tree-optimization/48975
7212         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
7213         on all bbs here and free and clear ifc_bbs at the end.
7214
7215 2011-05-12  Richard Guenther  <rguenther@suse.de>
7216
7217         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
7218         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
7219         until after simple checks.
7220         (gimple_types_compatible_p): Likewise.
7221         (iterative_hash_gimple_type): Always hash pointer targets
7222         and function return and argument types.
7223         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
7224         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
7225         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
7226         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
7227         completely in the simple compare section.
7228         (gimple_register_canonical_type): Query the cache again after
7229         registering.
7230
7231 2011-05-12  Richard Guenther  <rguenther@suse.de>
7232
7233         PR tree-optimization/48172
7234         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
7235         the number of iterations from the segment size calculation.
7236         (vect_create_cond_for_alias_checks): Adjust.
7237
7238 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
7239
7240         PR debug/48967
7241         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
7242         if validate_subreg fails.
7243
7244 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
7245
7246         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
7247         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
7248         early.
7249
7250 2011-05-12  DJ Delorie  <dj@redhat.com>
7251
7252         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
7253         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
7254         created builtin into rx_builtins array.
7255         (rx_builtin_decl): New function.
7256         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
7257
7258 2011-05-12  DJ Delorie  <dj@redhat.com>
7259             Nick Clifton  <nickc@redhat.com>
7260
7261         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
7262         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
7263         (rx_is_legitimate_address): Add pre-decrement and post-increment
7264         addressing in HImode and QImode.  Fix test for out of range
7265         REG+INT addressing.
7266         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
7267         (rx_align_for_label): Test label before extracting its usage count.
7268         (rx_adjust_insn_lengths): Fix selection of insn codes.
7269         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
7270
7271 2011-05-11  Jason Merrill  <jason@redhat.com>
7272
7273         * tree.c (type_hash_canon): Use struct tree_type_non_common.
7274
7275 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
7276
7277         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
7278         reindent the subsequent block.
7279
7280 2011-05-11  Satoru Takabayashi  <satorux@google.com>
7281             Paul Pluzhnikov  <ppluzhnikov@google.com>
7282
7283         * doc/install.texi (Configuration): Document --with-linker-hash-style.
7284         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
7285         * config.in: Add LINKER_HASH_STYLE.
7286         * configure.ac: Add --with-linker-hash-style.
7287         * configure: Regenerate.
7288
7289 2011-05-11  Richard Guenther  <rguenther@suse.de>
7290
7291         PR middle-end/48964
7292         * gimple.c (iterative_hash_canonical_type): Fix typo.
7293
7294 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
7295
7296         * config/i386/i386.c (legitimize_tls_address)
7297         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
7298         expanders directly for TARGET_GNU2_TLS.  Determine pic and
7299         __tls_get_addr symbol reference here.  Update call to
7300         gen_tls_global_dynamic_{32,64} for added arguments.
7301         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
7302         expanders directly for TARGET_GNU2_TLS.  Determine
7303         __tls_get_addr symbol reference here.  Update call to
7304         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
7305         unique UNSPEC REG_EQUIV to libcall block.
7306         (ix86_tls_get_addr): Declare static.
7307         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
7308         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
7309         Do not determine pic and __tls_get_addr symbol reference here. Do not
7310         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
7311         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
7312         (tls_global_dynamic_64): Add operand 2.  Do not determine
7313         __tls_get_addr symbol reference here.  Do not call
7314         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
7315         (tls_local_dynamic_base64): Ditto for operand 1.
7316
7317 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
7318
7319         * function.c (expand_function_start): Initialize stack_check_probe_note
7320         only if the generic stack checking mechanism is used.
7321
7322 2011-05-11  Richard Guenther  <rguenther@suse.de>
7323
7324         PR tree-optimization/15256
7325         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
7326         (A & B) | C, combine (A op CST1) op CST2.
7327         (tree_ssa_forward_propagate_single_use_vars): Only bother to
7328         visit assigns that have uses.
7329
7330 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
7331
7332         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
7333         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
7334         (unpack_ts_type_common_value_fields): ...this.  Update comment.
7335         (unpack_value_fields): Adjust for renaming.
7336         (lto_input_ts_type_tree_pointers): Split into...
7337         (lto_input_ts_type_common_tree_pointer): ...this and...
7338         (lto_input_ts_type_non_common_tree_pointers): ...this.
7339         (lto_input_tree_pointers): Adjust for above split.
7340         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
7341         (pack_ts_type_common_value_fields): ...this.  Update comment.
7342         (lto_output_ts_type_tree_pointers): Split into...
7343         (lto_output_ts_type_common_tree_pointers): ...this and...
7344         (lto_output_ts_type_non_common_tree_pointers): ...this.
7345         (lto_output_tree_pointers): Adjust for above split.
7346         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
7347         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
7348         * stor-layout.c (vector_type_mode): Adjust location of mode field.
7349         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
7350         Define.
7351         (struct tree_type): Split into...
7352         (struct tree_type_common: ...this and...
7353         (struct tree_type_with_lang_specific): ...this and...
7354         (struct tree_type_non_common): ...this.  Adjust accessor macros
7355         accordingly.
7356         (TYPE_VALUES_RAW): Define.
7357         (union tree_node): Update for above changes.
7358         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
7359         TS_TYPE_NON_COMMON.
7360         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
7361         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
7362         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
7363         * treestructu.def (TS_TYPE): Remove.
7364         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
7365         Define.
7366
7367 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
7368
7369         PR debug/48159
7370         * tree-ssa.c (reset_debug_uses): New function.
7371         * tree-flow.h (reset_debug_uses): New prototype.
7372         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
7373         * tree-loop-distribution.c (generate_loops_for_partition): Call
7374         reset_debug_uses on the stmts that will be removed.  Keep around
7375         all debug stmts, don't count them as bits in partition bitmap.
7376         (generate_builtin): Don't count debug stmts or labels as bits in
7377         partition bitmap.
7378
7379 2011-05-11  Richard Guenther  <rguenther@suse.de>
7380
7381         * gimple.c (gimple_type_hash_1): Merge with ...
7382         (gimple_type_hash): ... this.
7383         (gtc_visit): Remove mode parameter and simplify accordingly.
7384         (gimple_types_compatible_p_1): Likewise.
7385         (gimple_types_compatible_p): Likewise.
7386         (iterative_hash_gimple_type): Likewise.
7387         (visit): Likewise.
7388         (gimple_type_eq): Adjust.
7389
7390 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7391
7392         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
7393         enters the branch create an anti edge in the opposite direction
7394         to prevent the creation of reg-moves.
7395         * modulo-sched.c: Adjust comment to reflect the fact we are
7396         scheduling closing branch.
7397         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
7398         (stage_count): New field in struct partial_schedule.
7399         (calculate_stage_count): New function.
7400         (normalize_sched_times): Rename to reset_sched_times and handle
7401         incrementing the sched time of the nodes by a constant value
7402         passed as parameter.
7403         (duplicate_insns_of_cycles): Skip closing branch.
7404         (sms_schedule_by_order): Schedule closing branch.
7405         (ps_insn_find_column): Handle closing branch.
7406         (sms_schedule): Call reset_sched_times and adjust the code to
7407         support scheduling of the closing branch.
7408         (ps_insert_empty_row): Update calls to normalize_sched_times
7409         and rotate_partial_schedule functions.
7410
7411 2011-05-11  Richard Guenther  <rguenther@suse.de>
7412
7413         PR middle-end/48953
7414         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
7415
7416 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
7417
7418         * opts.c (finish_options): Move warning settings from process_options.
7419         * toplev.c (process_options): Move warning settings to finish_options.
7420
7421 2011-05-11  Richard Guenther  <rguenther@suse.de>
7422
7423         PR tree-optimization/18041
7424         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
7425         (simplify_bitwise_binary): ... this.  Handle operand conversions
7426         by applying them to the result instead.
7427         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
7428
7429 2011-05-11  Richard Guenther  <rguenther@suse.de>
7430
7431         * gimple.c (gimple_canonical_types_compatible_p): Split out
7432         from gimple_types_compatible_p and friends.  Do not recurse
7433         to pointed-to types.
7434         (gimple_canonical_type_eq): Use it.
7435         (iterative_hash_canonical_type): Split out from
7436         iterative_hash_gimple_type and friends.  Do not recurse
7437         to pointed-to types.
7438         (gimple_canonical_type_hash): Use it, allocate the hash here.
7439
7440 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7441
7442         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
7443         recognizing doloop.
7444
7445 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7446
7447         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
7448         instead of PREV_INSN.
7449
7450 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7451
7452         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
7453         * loop-doloop.c (doloop_condition_get): Likewise.
7454         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
7455         (doloop_end): New.
7456         * config/arm/arm.md (*addsi3_compare0): Remove "*".
7457
7458 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
7459
7460         * tree.def (CASE_LABEL_EXPR): Add an operand.
7461         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
7462
7463 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7464
7465         * c-decl.c (c_override_global_bindings_to_false): Remove.
7466         (global_bindings_p): Don't check
7467         c_override_global_bindings_to_false.
7468         * c-tree.h (c_override_global_bindings_to_false): Remove.
7469         * c-typeck.c (composite_type): Don't set
7470         c_override_global_bindings_to_false.
7471
7472 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
7473
7474         PR target/48857, 48495
7475         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
7476         (VSX_MODE): Ditto.
7477         (VSX_MOVE_MODE): Ditto.
7478         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
7479         VSX vector types.  Add V2DImode.
7480         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
7481         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
7482         (MODES_TIEABLE_P): Ditto.
7483
7484         * config/rs6000/rs6000.c (rs6000_emit_move): Use
7485         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
7486         VSX_VECTOR_MODE.
7487         (init_cumulative_args): Ditto.
7488         (rs6000_function_arg_boundary): Ditto.
7489         (rs6000_function_arg_advance_1): Ditto.
7490         (rs6000_function_arg): Ditto.
7491         (rs6000_function_ok_for_sibcall): Ditto.
7492         (emit_frame_save): Ditto.
7493         (rs6000_function_value): Ditto.
7494         (rs6000_libcall_value): Ditto.
7495
7496 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7497
7498         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7499         i386/darwin-lib.h to $libgcc_tm_file.
7500         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
7501
7502 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7503
7504         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
7505
7506 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7507
7508         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
7509         * config/rs6000/rs6000-tables.opt: New file (generated).
7510         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
7511         rs6000/rs6000-tables.opt to extra_options.
7512         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
7513         * config/rs6000/rs6000.c (rs6000_select): Remove.
7514         (processor_target_table): Move contents to rs6000-cpus.def.
7515         (darwin_rs6000_override_options): Check
7516         global_options_set.x_rs6000_cpu_index instead of
7517         rs6000_select[1].string.
7518         (rs6000_option_override_internal): Likewise.
7519         (rs6000_handle_option): Don't assert that global structures are in
7520         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
7521         (rs6000_default_cpu): New variable.
7522         (rs6000_file_start): Set it instead of local default_cpu.  Check
7523         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
7524         global_options_set.x_rs6000_tune_index instead of rs6000_select.
7525         (rs6000_darwin_file_start): Check rs6000_default_cpu and
7526         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
7527         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
7528         rs6000_select): Remove.
7529         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
7530         Remove.
7531         (mcpu=, mtune=): Use Var, Init, Enum and Save.
7532         * config/rs6000/t-rs6000
7533         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
7534         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7535         global_options_set.x_rs6000_cpu_index instead of
7536         rs6000_select[1].string.
7537         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7538         global_options_set.x_rs6000_cpu_index instead of
7539         rs6000_select[1].string.
7540
7541 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7542
7543         * config.gcc (libgcc_tm_file): Define instead of including files
7544         from ../../libgcc/config/ in tm_file.
7545         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
7546         * configure: Regenerate.
7547         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
7548         libgcc_tm.h, cs-libgcc_tm.h): New.
7549         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
7550         (clean): Remove libgcc_tm.h.
7551         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
7552         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
7553         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
7554
7555 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
7556
7557         PR target/48896
7558         * config/avr/avr.c (avr_ret_register): Return unsigned int
7559         instead of int.
7560         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
7561         it to avr_libcall_value.
7562         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
7563         expand_expr.
7564         (avr_expand_binop_builtin): Ditto.
7565         (avr_expand_unop_builtin): Ditto.
7566
7567 2011-05-10  DJ Delorie  <dj@redhat.com>
7568
7569         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
7570         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
7571         * config/rx/rx.c (rx_align_for_label): Add label and
7572         uses_threshold parameters.  Do not align when the label is not
7573         used enough.
7574         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
7575
7576 2011-05-10  Richard Guenther  <rguenther@suse.de>
7577
7578         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
7579         a series of conversions and apply foldings similar to what
7580         fold-const does.
7581         (tree_ssa_forward_propagate_single_use_vars): Call it.
7582
7583 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
7584
7585         PR tree-optimization/48611
7586         PR tree-optimization/48794
7587         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
7588         referenced from RESX or EH_DISPATCH arguments.
7589
7590         PR debug/48928
7591         * dfp.c (decimal_to_decnumber): Handle conversion from
7592         dconst{1,2,m1,half}.
7593
7594 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7595
7596         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
7597         for !flag_prefer_avx128.
7598         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
7599
7600 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7601
7602         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
7603         (fold_ternary_loc): Use expr_location_or.
7604
7605 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7606
7607         PR debug/48853
7608         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
7609         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
7610         Pmode and mem_mode is not VOIDmode.
7611
7612 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
7613
7614         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
7615         TYPE_QUAL_RESTRICT): Convert to enum.
7616
7617 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7618
7619         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
7620         (const_pow2_1_to_8_operand): Ditto.
7621         (const_pow2_1_to_128_operand): Ditto.
7622         (const_pow2_1_to_32768_operand): Ditto.
7623         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
7624         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
7625         in insn constraint to check integer value of operand 3.
7626         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
7627
7628         (PINSR_MODE): New mode iterator.
7629         (sse2p4_1): New mode attribute.
7630         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
7631         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
7632         iterator.  Use const_int_operand instead of
7633         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
7634         exact_log2 in insn constraint to check integer value of operand 3.
7635
7636 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7637
7638         * config/i386/sse.md (blendbits): Remove mode attribute.
7639         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
7640         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
7641         Check integer value of operand 3 in insn constraint.
7642
7643 2011-05-09  Richard Guenther  <rguenther@suse.de>
7644
7645         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
7646         for diagnostics.
7647         (lto_symtab_merge): Likewise.  Do not register types here.
7648         (lto_symtab_merge_decls_2): Likewise.
7649         (lto_symtab_merge_decls_1): Likewise.
7650         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
7651         * gimple.c (enum gtc_mode): Declare.
7652         (gimple_types_compatible_p): Make static.
7653
7654 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7655
7656         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
7657         temporary register to match Pmode.
7658
7659 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7660
7661         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
7662         and *vec_concatv4si_1_avx.
7663
7664 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7665
7666         PR rtl-optimization/48927
7667         * ira-conflicts.c (commutative_constraint_p): Use
7668         recog_data.alternative_enabled_p to disable alternatives where
7669         "enabled" attribute is false.
7670         (get_dup_num): Ditto.
7671         * ira-lives.c (single_reg_class): Ditto.
7672         (ira_implicitly_set_insn_hard_regs): Ditto.
7673
7674 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7675
7676         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
7677         (dataflow_set_preserve_mem_locs): Likewise.
7678
7679 2011-05-09  Philipp Thomas  <pth@suse.de>
7680
7681         * config/mep/mep.c (mep_validate_vliw): Syntax description
7682         should not be translated.
7683
7684 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
7685
7686         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
7687         * config/mips/mips-tables.opt: New file (generated).
7688         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
7689         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
7690         MIPS_ARCH_OPTION_NATIVE): Define.
7691         * config/mips/mips.c (mips_cpu_info_table): Move contents to
7692         mips-cpus.def.
7693         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
7694         mips_parse_cpu): Remove.
7695         (mips_cpu_info_from_opt, mips_default_arch): New.
7696         (mips_handle_option): Don't assert that global structures are in
7697         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
7698         (mips_option_override): Use new variables and functions to set
7699         state of these options.  Use strcmp to check for individual CPU names.
7700         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
7701         definition.
7702         * config/mips/mips.opt (march=): Use ToLower and Enum.
7703         (mips): Use ToLower, Enum and Var.
7704         (mtune=): Use ToLower and Enum.
7705         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
7706
7707 2011-05-08  Jan Hubicka  <jh@suse.cz>
7708
7709         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
7710         Arrange type pairs to be UID ordered.
7711         (gimple_lookup_type_leader): Make inline.
7712
7713 2011-05-09  Nick Clifton  <nickc@redhat.com>
7714
7715         PR target/48899
7716         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
7717         PROCESSOR_DEFAULT.
7718
7719         PR target/48897
7720         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
7721         variable 's'.
7722
7723 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
7724
7725         * combine.c (simplify_comparison): Abstract out parts into...
7726         (simplify_compare_const): ... new function.
7727         (try_combine): Generalize parallel arithmetic/compare combining
7728         to call simplify_compare_const() and CANONICALIZE_COMPARE().
7729
7730 2011-05-08  Jan Hubicka  <jh@suse.cz>
7731
7732         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
7733         (cgraph_create_virtual_clone): Call hooks once virtual clone
7734         is finished.
7735         * cgraph.h (cgraph_clone_node): Update prototype.
7736         * ipa-cp.c (ipcp_estimate_growth): Use
7737         estimate_ipcp_clone_size_and_time.
7738         * ipa-inline-transform.c (clone_inlined_nodes): Update.
7739         * lto-cgraph.c (input_node): Update.
7740         * ipa-inline.c (recursive_inlining): Update.
7741         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
7742         (evaluate_conditions_for_known_args): Break out from ...
7743         (evaluate_conditions_for_edge): ... here.
7744         (evaluate_conditions_for_ipcp_clone): New function.
7745         (inline_node_duplication_hook): Update clone summary based
7746         on parameter map.
7747         (estimate_callee_size_and_time): Rename to ...
7748         (estimate_node_size_and_time): take NODE instead of EDGE;
7749         take POSSIBLE_TRUTHS as argument.
7750         (estimate_callee_size_and_time): Update.
7751         (estimate_ipcp_clone_size_and_time): New function.
7752         (do_estimate_edge_time): Update.
7753
7754 2011-05-08  Richard Guenther  <rguenther@suse.de>
7755
7756         PR middle-end/48908
7757         PR middle-end/48905
7758         * expmed.c (expand_shift_1): Compute adjusted constant shift
7759         amount manually.
7760
7761 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7762
7763         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
7764
7765 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7766
7767         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
7768
7769 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
7770
7771         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
7772
7773 2011-05-07  Jan Hubicka  <jh@suse.cz>
7774
7775         * ipa-inline-transform.c (inline_call): Account when program size
7776         decreases.
7777         * ipa-inline.c (relative_time_benefit): New function.
7778         (edge_badness): Reorganize to be power 2 based; fix thinko when
7779         computing badness for negative growth; update comments to match
7780         reality; better dumps.
7781
7782 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
7783
7784         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
7785         type to bool and adjust comment.
7786         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
7787         (fold_mathfn_compare): Remove calls to global_bindings_p.
7788         (fold_inf_compare): Likewise.
7789         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
7790         * c-tree.h (global_bindings_p): Adjust prototype.
7791         * c-decl.c (global_bindings_p): Return bool and simplify.
7792
7793 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
7794
7795         PR tree-optimization/48837
7796         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
7797         when accumulator transformation is performed.
7798
7799 2011-05-06  Jan Hubicka  <jh@suse.cz>
7800
7801         * i386.h (ix86_tune_indices): Add
7802         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
7803         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
7804         * i386.c (initial_ix86_tune_features): Add
7805         X86_SOFTARE_PREFETCHING_BENEFICIAL.
7806         (software_prefetching_beneficial_p): Remove predicate.
7807         (ix86_option_override_internal): Use new macro.
7808
7809 2011-05-06  Jan Hubicka  <jh@suse.cz>
7810
7811         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
7812
7813 2011-05-06  Jan Hubicka  <jh@suse.cz>
7814
7815         * cgraph.c (cgraph_add_thunk): Create real function node instead
7816         of alias node; finalize it and mark needed/reachale; arrange visibility
7817         to be right and add it into the corresponding same comdat group list.
7818         (dump_cgraph_node): Dump thunks.
7819         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
7820         cgraph_function_with_gimple_body_p,
7821         cgraph_first_function_with_gimple_body,
7822         cgraph_next_function_with_gimple_body): New functions.
7823         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
7824         New macros.
7825         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
7826         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
7827         * cgraphunit.c (cgraph_finalize_function): Only look into possible
7828         devirtualization when optimizing.
7829         (verify_cgraph_node): Verify thunks.
7830         (cgraph_analyze_function): Analyze thunks.
7831         (cgraph_mark_functions_to_output): Output thunks only in combination
7832         with function they are assigned to.
7833         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
7834         alias into normal node.
7835         (assemble_thunks): New functoin.
7836         (cgraph_expand_function): Use it.
7837         * lto-cgraph.c (lto_output_node): Stream thunks.
7838         (input_overwrite_node): Stream in thunks.
7839         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
7840         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
7841         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
7842         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
7843         (inline_analyze_function): Do not care about thunk jump functions.
7844         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
7845         * ipa-prop.c (ipa_prop_write_jump_functions): Use
7846         cgraph_function_with_gimple_body_p.
7847         * passes.c (do_per_function_toporder): Use
7848         cgraph_function_with_gimple_body_p.
7849         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
7850         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
7851         (function_called_by_processed_nodes_p): Likewise.
7852
7853 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
7854
7855         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
7856         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
7857         entries.
7858         (mabi=): Replace with separate entries for mabi=altivec,
7859         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
7860         mabi=ieeelongdouble and mabi=ibmlongdouble.
7861         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
7862         check for -mabi=spe without SPE ABI support here.
7863         (rs6000_handle_option): Replace OPT_mabi_ handling with
7864         OPT_mabi_altivec and OPT_mabi_spe handling.
7865
7866 2011-05-06  Cary Coutant  <ccoutant@google.com>
7867
7868         * dwarf2out.c (contains_subprogram_definition): New function.
7869         (should_move_die_to_comdat): Call it.
7870
7871 2011-05-06  Jeff Law  <law@redhat.com>
7872
7873         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
7874         remove_ctrl_stmt_and_useless_edges.
7875         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
7876         (fixup_template_block, thread_single_edge): Likewise.
7877         (mark_threaded_blocks): Use THREAD_TARGET.
7878
7879 2011-05-06  Alan Modra  <amodra@gmail.com>
7880
7881         PR target/48900
7882         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
7883         const0_rtx as the arg to the dummy __tls_get_addr libcall.
7884
7885 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
7886
7887         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
7888         constraint modifier to "r".
7889
7890 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
7891
7892         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
7893         fall through for OPT_mcmodel_.
7894
7895 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7896
7897         * config/s390/s390.c (s390_asm_trampoline_template): Comment
7898         instruction sizes.
7899         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
7900
7901 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7902
7903         PR target/47930
7904         * config/arm/arm.opt (marm): Document it.
7905         (mthumb): Reject negative variant.
7906
7907 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
7908
7909         PR target/48898
7910         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
7911         Fix typo in "ccvt" variable name.
7912
7913 2011-05-06  Tristan Gingold  <gingold@adacore.com>
7914
7915         PR target/48895
7916         * config/vms/vms-ar.c (main): Remove cwd variable.
7917
7918 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
7919
7920         PR debug/48902
7921         * var-tracking.c (prepare_call_arguments): Move else before #endif.
7922
7923 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
7924
7925         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
7926         * gimplify.c (gimplify_switch_expr): Likewise.
7927         * omp-low.c (expand_omp_sections): Likewise.
7928         * tree-eh.c (lower_try_finally_switch): Likewise.
7929         (lower_eh_dispatch): Likewise.
7930         * tree.h (build_case_label): Declare.
7931         * tree.c (build_case_label): Define.
7932
7933 2011-05-05  Jason Merrill  <jason@redhat.com>
7934
7935         PR c++/40975
7936         * tree-inline.c (copy_tree_r): Use copy_statement_list.
7937         (copy_statement_list): Don't recurse.
7938         * stor-layout.c (copy_self_referential_tree_r): Don't allow
7939         STATEMENT_LIST.
7940
7941 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
7942
7943         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
7944         through from -mfpu= handling.
7945         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
7946
7947 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
7948
7949         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
7950         POST_MODIFY.
7951
7952 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
7953
7954         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
7955         for 11.31.
7956         (hppa[12]*-*-hpux11*): Ditto.
7957         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
7958         * config/ia64/hpux-unix2003.h: New.
7959         * config/pa/pa-hpux1131.opt: New.
7960         * config/pa/pa-hpux1131.h: New.
7961         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
7962         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
7963         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
7964
7965 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
7966
7967         PR debug/48853
7968         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
7969         instead of mode as 3rd argument to recursive call.
7970         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
7971         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
7972         VOIDmode.
7973         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
7974         don't give up if mode is Pmode and mem_mode is not VOIDmode.
7975         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
7976         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
7977
7978 2011-05-05  Julian Brown  <julian@codesourcery.com>
7979
7980         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
7981         parenthesis in D-register case.
7982
7983 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
7984
7985         * opt-functions.awk (var_type_struct): Handle Enum options.
7986         * optc-gen.awk: Don't check range of variables of character type.
7987         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
7988         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
7989         rs6000_sdata_name, rs6000_explicit_options): Remove.
7990         (rs6000_option_override_internal): Check for -malign-power here.
7991         Use global_options_set instead of rs6000_explicit_options.
7992         (rs6000_parse_fpu_option): Remove.
7993         (rs6000_handle_option): Access variables via opts and opts_set
7994         pointers.  Use error_at and warning_at.  Add fall-through
7995         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
7996         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
7997         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
7998         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
7999         here.  Don't use rs6000_parse_fpu_option.
8000         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
8001         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
8002         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
8003         (mrecip=): Use Var.
8004         (mspe): Use Var and Save.
8005         (mtraceback=): Use Enum and Var.
8006         (rs6000_traceback_type): New Enum and EnumValue entries.
8007         (mfloat-gprs=): Use Enum, Var and Save.
8008         (rs6000_float_gprs): New Enum and EnumValue entries.
8009         (mlong-double-): use Var and Save.
8010         (msched-costly-dep=, minsert-sched-nops=): Use Var.
8011         (malign-): Use Enum and Var.
8012         (rs6000_alignment_flags): New Enum and EnumValue entries.
8013         (mfpu=): Use Enum.
8014         (fpu_type_t): New Enum and EnumValue entries.
8015         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8016         global_options_set instead of rs6000_explicit_options.
8017         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8018         global_options_set instead of rs6000_explicit_options.
8019         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8020         global_options_set instead of rs6000_explicit_options.
8021         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8022         global_options_set instead of rs6000_explicit_options.
8023         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
8024         global_options_set instead of rs6000_explicit_options.
8025         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8026         global_options_set instead of rs6000_explicit_options.
8027         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
8028         definition.
8029         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8030         global_options_set instead of rs6000_explicit_options.
8031         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
8032         (rs6000_cmodel): New Enum and EnumValue entries.
8033         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8034         global_options_set instead of rs6000_explicit_options.
8035         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
8036         (mtls-size=): Use Enum and Var.
8037         (rs6000_tls_size): New Enum and EnumValue entries.
8038
8039 2011-05-05  Michael Matz  <matz@suse.de>
8040
8041         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
8042         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
8043         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
8044         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
8045         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
8046         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
8047         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
8048         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
8049         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
8050         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
8051         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
8052         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
8053         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
8054         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
8055         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
8056         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
8057
8058 2011-05-05  Richard Guenther  <rguenther@suse.de>
8059
8060         * expmed.c (expand_variable_shift): Rename to ...
8061         (expand_shift_1): ... this.  Take an expanded shift amount.
8062         For rotates recurse directly not building trees for the shift amount.
8063         (expand_variable_shift): Wrap around expand_shift_1.
8064         (expand_shift): Adjust.
8065
8066 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
8067
8068         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
8069
8070 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
8071
8072         * tree.h (get_pending_sizes): Remove prototype.
8073         (put_pending_size): Likewise.
8074         (put_pending_sizes): Likewise.
8075         * stor-layout.c (pending_sizes): Delete.
8076         (get_pending_sizes): Likewise.
8077         (put_pending_size): Likewise.
8078         (put_pending_sizes): Likewise.
8079         (variable_size): Do not call put_pending_size and tidy up.
8080         * function.h (struct function): Remove dont_save_pending_sizes_p.
8081         * lto-streamer-in.c (input_function): Do not stream it.
8082         * lto-streamer-out.c (output_function): Likewise.
8083         * tree-inline.c (initialize_cfun): Do not copy it.
8084         * c-decl.c (store_parm_decls): Do not set it.
8085         * omp-low.c (create_task_copyfn): Likewise.
8086         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8087
8088 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
8089
8090         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
8091         conditions.
8092         (*movdf_internal): Ditto.
8093         (*movdf_internal_nointeger): Ditto.
8094         (*movsf_internal): Ditto.
8095
8096 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
8097
8098         * c-decl.c (finish_decl): Don't call get_pending_sizes.
8099         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
8100         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
8101         (c_variable_size): Remove.
8102         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
8103         call put_pending_sizes.
8104         (get_parm_info): Add parameter expr.  Use it to set
8105         arg_info->pending_sizes.
8106         (store_parm_decls): Use arg_info->pending_sizes instead or calling
8107         get_pending_sizes.
8108         * c-parser.c (c_parser_parms_declarator): Update call to
8109         c_parser_parms_list_declarator.
8110         (c_parser_parms_list_declarator): Take parameter expr.  Update
8111         call to push_parm_decl.  Update recursive call.  Don't call
8112         get_pending_sizes.  Update calls to get_parm_info.
8113         (c_parser_objc_method_definition): Update calls to
8114         c_parser_objc_method_decl and objc_start_method_definition.
8115         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
8116         (c_parser_objc_method_decl): Add parameter expr.  Update call to
8117         grokparm.
8118         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
8119         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
8120         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
8121
8122 2011-05-05  Michael Hope  <michael.hope@linaro.org>
8123
8124         PR pch/45979
8125         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
8126         __ARM_EABI__ hosts.
8127
8128 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8129
8130         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
8131         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
8132         (spu_output_mi_thunk): New function.
8133
8134 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8135
8136         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
8137         targetm.asm_out.print_operand.
8138         * config/sol2.c: Include target.h.
8139
8140 2011-05-04  Jan Hubicka  <jh@suse.cz>
8141
8142         * ipa-inline.c (reset_edge_caches): New function.
8143         (update_caller_keys): Add check_inlinablity_for; do not
8144         reset edge caches; remove now unnecesary loop.
8145         (update_callee_keys): Add comments; reset node_growth_cache of callee.
8146         (update_all_callee_keys): Likewise.
8147         (inline_small_functions): Sanity check cache; update code
8148         recomputing it.
8149
8150 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
8151
8152         PR rtl-optimization/47612
8153         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
8154         as the last insn of the sequence to be moved.
8155
8156 2011-05-04  Tobias Burnus  <burnus@net-b.de>
8157
8158         PR fortran/48864
8159         * doc/invoke.texi (Ofast): Document that it
8160         enables Fortran's -fno-protect-parens.
8161
8162 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
8163
8164         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
8165
8166 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
8167
8168         * stor-layout.c (variable_size): Do not issue errors.
8169
8170 2011-05-04  Richard Guenther  <rguenther@suse.de>
8171
8172         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
8173         for array-ref indices.
8174         (tree_coverage_counter_addr): Likewise.
8175         (build_fn_info_type): Use size_int for index types.
8176         (build_gcov_info): Likewise.
8177
8178 2011-05-04  Richard Guenther  <rguenther@suse.de>
8179
8180         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
8181         to build_int_cst.
8182         * c-typeck.c (really_start_incremental_init): Use bitsize_int
8183         for constructor indices.
8184         (push_init_level): Likewise.
8185
8186 2011-05-04  Richard Guenther  <rguenther@suse.de>
8187
8188         * explow.c (promote_mode): Move variable declarations before code.
8189
8190 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
8191
8192         * tree.h (build_function_type_array): Declare.
8193         (build_varargs_function_type_array): Declare.
8194         (build_function_type_vec, build_varargs_function_type_vec): Define.
8195         * tree.c (build_function_type_array_1): New function.
8196         (build_function_type_array): New function.
8197         (build_varargs_function_type_array): New function.
8198
8199 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
8200
8201         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
8202         before setting STMT_VINFO_TYPE.
8203
8204 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8205
8206         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
8207         instead of spu_pass_by_reference.
8208
8209 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8210
8211         * calls.c (emit_library_call_value_1): Invoke
8212         promote_function_mode hook on libcall arguments.
8213         * explow.c (promote_function_mode, promote_mode): Handle TYPE
8214         argument being NULL.
8215         * targhooks.c (default_promote_function_mode): Lisewise.
8216         * config/s390/s390.c (s390_promote_function_mode): Likewise.
8217         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
8218
8219         * doc/tm.texi: Document that TYPE argument might be NULL.
8220
8221 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8222
8223         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
8224
8225 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8226
8227         From Bernd Schmidt
8228         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
8229
8230 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8231
8232         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
8233         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
8234         Move ...
8235         * mips-tfile.c: ... here.
8236         Don't include coretypes.h, tm.h, filenames.h.
8237         (saber_stop): Remove definition and all calls.
8238         [__SABER__]: Remove.
8239         (__LINE__): Remove default.
8240         (Size_t, Ptrdiff_t): Remove definitions.
8241         Replace by size_t, ptrdiff_t.
8242         [!MIPS_DEBUGGING_INFO]: Remove.
8243         (SHASH_SIZE, THASH_SIZE): Remove defaults.
8244         (progname): Add const.
8245         (STATIC): Remove.
8246         Replace all uses by static.
8247         (ALIGN_SYMTABLE_OFFSET): Remove default.
8248         * mips-tdump.c: Don't include coretypes.h, tm.h.
8249         Remove !MIPS_IS_STAB guard.
8250         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
8251         $(TM_H), filenames.h dependencies.
8252         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
8253
8254 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8255
8256         From Jie Zhang
8257         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
8258         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
8259
8260 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8261
8262         From Bernd Schmidt
8263         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
8264         account and save/restore RETS.
8265         (PROFILE_BEFORE_PROLOGUE): Define.
8266         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
8267         the push insn to use predecrement.
8268
8269 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8270
8271         From Jie Zhang
8272         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
8273
8274 2011-05-04  Nick Clifton  <nickc@redhat.com>
8275
8276         * config/mn10300/mn10300.c: Include cfgloop.h.
8277         (DUMP): New macro.
8278         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
8279         Lcc or a FLcc insn into the instruction stream.
8280         (mn10300_block_contains_call): New function.  Returns true if the
8281         given basic block contains a CALL insn.
8282         (mn10300_loop_contains_call_insn): New function.  Returns true if
8283         the given loop contains a CALL insn.
8284         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
8285         to use the SETLB and Lcc or FLcc insns.
8286         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
8287         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
8288         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
8289         disable the SETLB optimization.
8290         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
8291         __SETLB__ or __NO_SETLB__.
8292         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
8293         (movsf_internal): Handle MDR register.
8294         (cmpsi): Make visible.
8295         (setlb): New pattern.
8296         (Lcc): New pattern.
8297         (FLcc): New pattern.
8298
8299 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
8300
8301         PR target/48860
8302         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
8303         for reg<->xmm moves.
8304         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
8305         (vec_concatv2di_rex64_sse): Ditto.
8306         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
8307         (*vec_extractv2di_1_rex64): Ditto.
8308
8309         Revert:
8310         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8311
8312         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
8313         reg<->xmm moves.
8314         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
8315
8316 2011-05-04  Richard Guenther  <rguenther@suse.de>
8317
8318         * tree.h (int_const_binop): Remove notrunc argument.
8319         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
8320         create integer constants that are properly truncated.
8321         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
8322         (const_binop): Remove zero notrunc argument to int_const_binop.
8323         (size_binop_loc): Likewise.
8324         (fold_div_compare): Likewise.
8325         (maybe_canonicalize_comparison_1): Likewise.
8326         (fold_comparison): Likewise.
8327         (fold_binary_loc): Likewise.
8328         (multiple_of_p): Likewise.
8329         * expr.c (store_constructor): Likewise.
8330         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
8331         (maybe_fold_stmt_addition): Likewise.
8332         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
8333         * stor-layout.c (layout_type): Likewise.
8334         * tree-data-ref.c (tree_fold_divides_p): Likewise.
8335         * tree-sra.c (build_ref_for_offset): Likewise.
8336         (build_user_friendly_ref_for_offset): Likewise.
8337         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
8338         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
8339         * tree-ssa-loop-niter.c (inverse): Likewise.
8340         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
8341         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
8342         * tree-switch-conversion.c (check_range): Likewise.
8343         (build_constructors): Likewise.
8344         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
8345         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
8346         (extract_range_from_assert): Likewise.
8347         (vrp_int_const_binop): Likewise.
8348         (extract_range_from_binary_expr): Likewise.
8349         (extract_range_from_unary_expr): Likewise.
8350         (check_array_ref): Likewise.
8351         (find_case_label_range): Likewise.
8352         (simplify_div_or_mod_using_ranges): Likewise.
8353         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
8354         comparing case labels for merging.
8355
8356 2011-05-03  Mark Wielaard  <mjw@redhat.com>
8357
8358         * dwarf2out.c (debug_str_hash_forced): Removed.
8359         (gen_label_for_indirect_string): Removed.
8360         (get_debug_string_label): Removed.
8361         (AT_string_form): Generate label directly.
8362         (output_indirect_string): Test indirect_string_node for
8363         DW_FORM_strp instead of checking label and refcount.
8364         (prune_indirect_string): Removed.
8365         (prune_unused_types): Don't check debug_str_hash_forced or
8366         call prune_indirect_string.
8367
8368 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
8369
8370         PR other/48093
8371         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
8372
8373 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
8374
8375         PR debug/47994
8376         PR debug/47919
8377         * combine.c (try_combine): Skip debug insns at m_split tests.
8378
8379 2011-04-26  Mark Wielaard  <mjw@redhat.com>
8380
8381         PR42288
8382         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
8383         when info_section_emitted.
8384
8385 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
8386
8387         * config/mips/mips-opts.h: New.
8388         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
8389         to mips-opts.h.
8390         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
8391         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
8392         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
8393         via opts pointer.
8394         * config/mips/mips.h (enum mips_code_readable_setting): Move to
8395         mips-opts.h.
8396         (mips_abi, mips_code_readable): Don't declare.
8397         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
8398         (mabi=): Use Enum and Var.
8399         (mips_abi): New Enum and EnumValue entries.
8400         (mcode-readable=): Use Enum and Var.
8401         (mips_code_readable_setting): New Enum and EnumValue entries.
8402         (mr10k-cache-barrier=): Use Enum and Var.
8403         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
8404
8405 2011-05-03  Jan Hubicka  <jh@suse.cz>
8406
8407         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
8408         replace hash by pointer map.
8409         (cgraph_node_set_element_def, cgraph_node_set_element,
8410         const_cgraph_node_set_element, varpool_node_set_element_def,
8411         varpool_node_set_element, const_varpool_node_set_element): Remove.
8412         (free_cgraph_node_set, free_varpool_node_set): New function.
8413         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
8414         * tree-emutls.c: Free varpool node set.
8415         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
8416         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
8417         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
8418         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
8419         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
8420         Move here from ipa.c; implement using pointer_map
8421         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
8422         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
8423         debug_cgraph_node_set, varpool_node_set_new,
8424         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
8425         dump_varpool_node_set, debug_varpool_node_set):
8426         Move to ipa-uitls.c.
8427         * passes.c (ipa_write_summaries): Update.
8428
8429 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8430
8431         From Mike Frysinger:
8432         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
8433         bf542/bf544/bf547/bf548/bf549.
8434
8435 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
8436
8437         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
8438
8439 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8440
8441         From Bernd Schmidt:
8442         * config/bfin/bfin.md (MOVCC): New mode_macro.
8443         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
8444         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
8445         comments from generated assembly.
8446
8447 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8448
8449         From Bernd Schmidt
8450         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
8451         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
8452         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
8453         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
8454         * config/bfin/lib1funcs.asm (___muldi3): New function.
8455
8456 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8457
8458         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
8459         build_function_type_list instead of build_function_type.
8460         Rearrange initialization of `args' to do so.
8461
8462 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8463
8464         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
8465         instead of build_function_type.
8466
8467 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8468
8469         * config/rs6000/rs6000.c (spe_init_builtins): Call
8470         build_function_type_list instead of build_function_type.
8471         (paired_init_builtins, altivec_init_builtins): Likewise.
8472         (builtin_function_type): Likewise.
8473
8474 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8475
8476         * config/sh/sh.c (sh_media_init_builtins): Call
8477         build_function_type_list instead of build_function_type.
8478
8479 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8480
8481         * config/sparc/sparc.c (sparc_file_end): Call
8482         build_function_type_list instead of build_function_type.
8483
8484 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8485
8486         * config/alpha/alpha.c (alpha_init_builtins): Call
8487         build_function_type_list instead of build_function_type.
8488
8489 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8490
8491         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
8492         build_function_type_list instead of build_function_type.
8493
8494 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8495
8496         * config/iq2000/i2000.c (iq2000_init_builtins): Call
8497         build_function_type_list instead of build_function_type.
8498         Delete `endlink' variable.
8499
8500 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8501
8502         * config/avr/avr.c (avr_init_builtins): Call
8503         build_function_type_list instead of build_function_type.
8504
8505 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8506
8507         * config/picochip/picochip.c (picochip_init_builtins): Call
8508         build_function_type_list instead of build_function_type.
8509         Delete `endlink' variable.
8510
8511 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8512
8513         * config/bfin/bfin.c (bfin_init_builtins): Call
8514         build_function_type_list instead of build_function_type.
8515
8516 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8517
8518         From Bernd Schmidt
8519         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
8520         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
8521
8522 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8523
8524         From Jie Zhang:
8525         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
8526         libbffastfp overrides libgcc when -mfast-fp.
8527
8528 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8529
8530         Originally from Bernd Schmidt
8531         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
8532         * config/bfin/bfin.c (override_options): Test it and error if
8533         TARGET_FDPIC.
8534
8535 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8536
8537         Originally From Bernd Schmidt
8538         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
8539         FD-PIC.
8540
8541 2011-05-03  Jeff Law  <law@redhat.com>
8542
8543         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
8544         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
8545         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
8546         than accessing AUX field directly.  Free the AUX field before
8547         clearing it.
8548         (thread_block, thread_through_loop_header): Likewise.
8549         (thread_single_edge, mark_threaded_blocks): Likewise.
8550         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
8551         (register_jump_thread): Do not attempt to thread to a NULL edge.
8552
8553 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
8554
8555         * function.c (init_function_start): Call decide_function_section.
8556         * varasm.c (decide_function_section): New function.
8557         (assemble_start_function): When not using
8558         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
8559         or first_function_block_is_cold.
8560         * rtl.h (decide_function_section): Declare.
8561
8562 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
8563             Jakub Jelinek  <jakub@redhat.com>
8564
8565         PR target/48774
8566         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
8567         only succeed if req_mode is the same as set_mode.
8568
8569 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
8570
8571         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
8572         * genemit.c (gen_exp): Handle RETURN.
8573         * emit-rtl.c (verify_rtx_sharing): Likewise.
8574         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
8575         * rtl.c (copy_rtx): RETURN is shared.
8576         * rtl.h (enum global_rtl_index): Add GR_RETURN.
8577         (ret_rtx): New.
8578         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
8579         * config/s390/s390.c (s390_emit_epilogue): Likewise.
8580         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
8581         * config/cris/cris.c (cris_expand_return): Likewise.
8582         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
8583         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
8584         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
8585         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
8586         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
8587         Likewise.
8588         * config/v850/v850.c (expand_epilogue): Likewise.
8589         * config/bfin/bfin.c (bfin_expand_call): Likewise.
8590         * config/arm/arm.md (epilogue): Likewise.
8591         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
8592         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
8593         variable to ret_reg.
8594
8595 2011-05-03  Richard Guenther  <rguenther@suse.de>
8596
8597         PR lto/48846
8598         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
8599         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
8600         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
8601
8602 2011-05-03  Richard Guenther  <rguenther@suse.de>
8603
8604         * c-decl.c (grokdeclarator): Instead of looking at
8605         TREE_OVERFLOW check if the constant fits in the index type.
8606
8607 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8608
8609         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
8610         (vec_store_lanes<mode><mode>): Likewise.
8611
8612 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8613
8614         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
8615         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
8616         convert_optab_index values.
8617         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
8618         * genopinit.c (optabs): Initialize the new optabs.
8619         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
8620         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
8621         (expand_STORE_LANES): New functions.
8622         * tree.h (build_array_type_nelts): Declare.
8623         * tree.c (build_array_type_nelts): New function.
8624         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
8625         (vect_model_load_cost): Likewise.
8626         (vect_store_lanes_supported, vect_load_lanes_supported)
8627         (vect_record_strided_load_vectors): Declare.
8628         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
8629         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
8630         (vect_transform_strided_load): Split out statement recording into...
8631         (vect_record_strided_load_vectors): ...this new function.
8632         * tree-vect-stmts.c (create_vector_array, read_vector_array)
8633         (write_vector_array, create_array_ref): New functions.
8634         (vect_model_store_cost): Add store_lanes_p argument.
8635         (vect_model_load_cost): Add load_lanes_p argument.
8636         (vectorizable_store): Try to use store-lanes functions for
8637         interleaved stores.
8638         (vectorizable_load): Likewise load-lanes and loads.
8639         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
8640         to vect_model_store_cost.
8641         (vect_build_slp_tree): Likewise vect_model_load_cost.
8642
8643 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8644
8645         * hooks.h (hook_bool_mode_uhwi_false): Declare.
8646         * hooks.c (hook_bool_mode_uhwi_false): New function.
8647         * target.def (array_mode_supported_p): New hook.
8648         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
8649         * doc/tm.texi: Regenerate.
8650         * stor-layout.c (mode_for_array): New function.
8651         (layout_type): Use it.
8652         * config/arm/arm.c (arm_array_mode_supported_p): New function.
8653         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
8654
8655 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
8656
8657         PR target/48723
8658         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
8659         for -fstack-check if the size to allocate is negative.
8660
8661 2011-05-02  Lawrence Crowl  <crowl@google.com>
8662
8663         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
8664         (timevar_cond_start): New for starting a timer only when it is not
8665         already running.
8666         (timevar_cond_stop): New for stopping a timer when it was not already
8667         running.
8668
8669         * timevar.c (timevar_stop): Enable start/stop timers to start again.
8670         (timevar_cond_start): New as above.
8671         (timevar_cond_stop): New as above.
8672
8673         * timevar.def: Add start/stop timers for compiler phases,
8674         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
8675         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
8676         and TV_PHASE_FINALIZE.
8677         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
8678         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
8679         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
8680         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
8681         Make unused TV_OVERLOAD into a start/stop timer.
8682
8683         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
8684         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
8685         to indicate that they are start/stop timers.
8686
8687         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
8688         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
8689         Move initialization to do_compile.
8690         (do_compile): Add initialization from above.
8691         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
8692
8693         * c-decl.c (c_write_global_declarations): Add start/stop of
8694         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
8695
8696         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
8697         or TV_PARSE_INLINE, as appropriate.
8698         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
8699         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
8700
8701 2011-05-02  Jason Merrill  <jason@redhat.com>
8702
8703         PR c++/40975
8704         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
8705
8706 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
8707
8708         PR c/35445
8709         * c-decl.c (finish_decl): Only create a composite if the types are
8710         compatible.
8711
8712 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
8713
8714         * config/fr30/fr30-protos.h (Mmode): Don't define.
8715         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
8716         definition where used.
8717         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
8718         define.  Expand definitions where used.
8719         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
8720         Expand definitions where used.
8721         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
8722         rx_function_arg, rx_function_arg_advance,
8723         rx_function_arg_boundary): Expand definitions of those macros.
8724         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
8725         definition where used.
8726
8727 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8728
8729         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
8730         reg<->xmm moves.
8731         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
8732         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
8733         with *movv2sf_internal_rex64_avx.
8734         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
8735         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
8736         Use %v prefix in insn mnemonic to handle TARGET_AVX.
8737         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
8738         "vex" in "prefix" attribute calculation.
8739         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
8740
8741 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
8742
8743         PR target/47951
8744         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
8745         inputs match the output.
8746
8747 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
8748
8749         PR target/47955
8750         * config/m68k/m68k.c (m68k_expand_prologue): Set
8751         current_function_static_stack_size.
8752
8753 2011-05-02   Jan Hubicka  <jh@suse.cz>
8754
8755         * lto-streamer.c (lto_streamer_cache_insert_1,
8756         lto_streamer_cache_lookup, lto_streamer_cache_create,
8757         lto_streamer_cache_delete): Use pointer map instead of hashtable.
8758         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
8759
8760 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
8761
8762         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
8763         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
8764         config/m68k/t-opts: New files.
8765         * config/m68k/m68k-tables.opt: New file (generated).
8766         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
8767         extra_options and m68k/t-opts to tmake_file.
8768         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
8769         (all_isas): Initialize using m68k-isas.def.
8770         (all_microarchs): Initialize using m68k-microarchs.def.
8771         (m68k_find_selection): Remove.
8772         (m68k_handle_option): Don't assert that global structures are in
8773         use.  Use error_at.  Access variables via opts pointer.  Don't
8774         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
8775         directly for -m68020-40 and -m68020-60.
8776         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
8777         m68k_tune_entry here.
8778         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
8779         to m68k-opts.h.
8780         (m68k_library_id_string): Remove declaration.
8781         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
8782         (m68k_library_id_string): New Variable.
8783         (march=, mcpu=, mtune=): Use Enum and Var.
8784
8785 2011-05-02  Richard Guenther  <rguenther@suse.de>
8786
8787         * varasm.c (output_constructor_regular_field): Compute zero-based
8788         index with double-ints.  Make sure to ICE instead of producing
8789         wrong code.
8790         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
8791         in asserts.  Properly use a signed type.
8792
8793 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8794
8795         * config/i386/sse.md (V): New mode iterator.
8796         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
8797         TARGET_SSE2.
8798         (V_256): Rename from AVX256MODE.
8799         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
8800         condition to all users.
8801         (VF1): Ditto.
8802         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
8803         condition to all users.
8804         (VF_128): Make V4SF mode unconditional.
8805         (VF_256): Rename from AVX256MODEF2P.
8806         (VI4F_128): Rename from SSEMODE4S.
8807         (VI8F_128): Rename from SSEMODE2D.
8808         (VI4F_256): Rename from AVX256MODE8P.
8809         (VI8F_256): Rename from AVX256MODE4P.
8810         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
8811         (ssescalarmodesuffix): Remove SF and DF modes.
8812         (SSEMODE124): Remove.
8813         (SSEMODE1248): Ditto.
8814         (SSEMODEF2P): Ditto.
8815         (AVXMODEF2P): Ditto.
8816         (AVXMODEFDP): Ditto.
8817         (AVXMODEFSP): Ditto.
8818         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
8819         unconditional.
8820         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
8821         unconditional.
8822         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
8823         xop_pcmov_<mode>256.  Use V mode iterator.
8824
8825         Adjust RTX patterns globally for renamed mode attributes.
8826
8827 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8828
8829         * haifa-sched.c (sched_emit_insn): Emit insn before first
8830         non-scheduled insn.  Inform back-end about new insn.  Add
8831         new insn to scheduled_insns list.
8832
8833 2011-05-02  Richard Guenther  <rguenther@suse.de>
8834
8835         PR tree-optimization/48822
8836         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
8837         (process_scc): Indicate which iteration we start.
8838
8839 2011-05-02  Jan Hubicka  <jh@suse.cz>
8840
8841         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
8842         (lto_section_overrun): New.
8843         * lto-section-out.c (append_block): Rename to ...
8844         (lto_append_block): ... this one; export.
8845         (lto_output_1_stream): Move lto lto-streamer.h
8846         (lto_output_data_stream): Update.
8847         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
8848         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
8849         functions.
8850
8851 2011-05-02  Richard Guenther  <rguenther@suse.de>
8852
8853         * tree.c (tree_code_counts): New global array.
8854         (record_node_allocation_statistics): Count individual tree codes.
8855         (dump_tree_statistics): Dump individual code stats.
8856
8857 2011-05-01  Jan Hubicka  <jh@suse.cz>
8858
8859         * ipa-inline.c (caller_growth_limits): Fix thinko when
8860         looking for largest stack frame.
8861         * ipa-inline.h (dump_inline_summary): Declare.
8862         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
8863         on stack usage.
8864         (dump_inline_summary): Export.
8865         (debug_inline_summary): Declare as DEBUG_FUNCTION.
8866
8867 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
8868
8869         * reginfo.c (memory_move_cost): Change rclass argument type form
8870         'enum reg_class' to reg_class_t.
8871         * reload.h (memory_move_cost): Update prototype.
8872         * postreload.c reload_cse_simplify_set): Change type dclass var to
8873         reg_class_t.
8874         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
8875         Update prototype.
8876         (ira_allocate_and_set_costs): Change aclass argument type form
8877         'enum reg_class' to reg_class_t.
8878         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
8879         Change aclass argument type to reg_class_t.
8880         (update_conflict_hard_reg_costs): Change type aclass and pref vars
8881         to reg_class_t.
8882         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
8883         memory_move_cost call.
8884
8885         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
8886         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
8887         Change type tmp var to reg_class_t.
8888
8889 2011-04-30  Jan Hubicka  <jh@suse.cz>
8890
8891         * ipa-inline.c (can_inline_edge_p): Disregard limits when
8892         inlining into function with flatten attribute.
8893         (want_inline_small_function_p): Be more realistic about inlining
8894         cold calls where callee size grows.
8895
8896 2011-04-30  Jan Hubicka  <jh@suse.cz>
8897
8898         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
8899         flags.
8900
8901 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
8902
8903         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
8904         PRINT_OPERAND_PUNCT_VALID_P): Remove.
8905         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
8906         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
8907         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
8908         (print_operand): Rename to...
8909         (sparc_print_operand): ...this. Make static. Adjust
8910         sparc_print_operand function call.
8911         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
8912         functions.
8913
8914 2011-04-30  Jan Hubicka  <jh@suse.cz>
8915
8916         PR middle-end/48752
8917         * ipa-inline.c (early_inliner): Disable when doing late
8918         addition of function.
8919
8920 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
8921
8922         * dwarf2out.c (get_address_mode): New inline.
8923         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
8924         if not dwarf_strict emit
8925         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
8926         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
8927         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
8928         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
8929         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
8930         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
8931         mem_loc_descriptor callers.
8932         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
8933         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
8934         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
8935         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
8936         (base_types): New variable.
8937         (get_base_type_offset, calc_base_type_die_sizes,
8938         base_type_for_mode, mark_base_types, base_type_cmp,
8939         move_marked_base_types): New functions.
8940         (calc_die_sizes): Assert that die_offset is 0 or equal to
8941         next_die_offset.
8942         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
8943         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
8944         callers.  If not dwarf_strict, call mem_loc_descriptor even for
8945         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
8946         (gen_subprogram_die): Don't give up on call site parameters
8947         with non-integral or large integral modes.  Adjust
8948         mem_loc_descriptor callers.
8949         (prune_unused_types): Call prune_unused_types_mark on base_types
8950         vector entries.
8951         (resolve_addr): Call mark_base_types.
8952         (dwarf2out_finish): Call move_marked_base_types.
8953
8954         PR tree-optimization/48809
8955         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
8956         type.
8957         (gen_inbound_check): Don't compute index_expr - range_min in utype
8958         again, instead reuse SSA_NAME initialized in build_arrays.
8959         Remove two useless gsi_for_stmt calls.
8960
8961 2011-04-29  Jeff Law  <law@redhat.com>
8962
8963         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
8964
8965 2011-04-29  Martin Jambor  <mjambor@suse.cz>
8966
8967         * cgraph.h (cgraph_postorder): Remove declaration.
8968         * ipa-utils.h (ipa_free_postorder_info): Declare.
8969         (ipa_reverse_postorder): Likewise.
8970         * cgraphunit.c: Include ipa-utils.h.
8971         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
8972         * ipa-inline.c: Include ipa-utils.h.
8973         (ipa_inline): Update call to ipa_reverse_postorder.
8974         * ipa-pure-const.c (propagate_pure_const): Update call to
8975         ipa_reduced_postorder and ipa_print_order.  Call
8976         ipa_free_postorder_info to clean up.
8977         (propagate_nothrow): Likewise.
8978         * ipa-reference.c (propagate): Removed a useless call to
8979         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
8980         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
8981         * ipa.c: Include ipa-utils.h.
8982         (ipa_profile): Update call to ipa_reverse_postorder.
8983         (cgraph_postorder): Moved to...
8984         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
8985         (ipa_utils_print_order): Renamed to ipa_print_order.
8986         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
8987         comments.
8988         (ipa_free_postorder_info): New function.
8989         * passes.c: Include ipa-utils.h.
8990         (do_per_function_toporder): Update call to ipa_reverse_postorder.
8991         (ipa_write_summaries): Likewise.
8992         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
8993         (cgraphunit.o): Likewise.
8994         (ipa.o): Likewise.
8995         (ipa-inline.o): Likewise.
8996
8997 2011-04-29  Jan Hubicka  <jh@suse.cz>
8998
8999         * gcc.dg/tree-ssa/inline-10.c: New testcase.
9000         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
9001         * ipa-inline.h (clause_t): Turn into unsigned int.
9002         * ipa-inline-analysis.c (add_clause): Do more simplification.
9003         (and_predicates): Shortcut more cases.
9004         (predicates_equal_p): Move forward; check that clauses are properly
9005         ordered.
9006         (or_predicates): Shortcut more cases.
9007         (edge_execution_predicate): Rewrite as...
9008         (set_cond_stmt_execution_predicate): ... this function; handle
9009         __builtin_constant_p.
9010         (set_switch_stmt_execution_predicate): New .
9011         (compute_bb_predicates): New.
9012         (will_be_nonconstant_predicate): Update TODO.
9013         (estimate_function_body_sizes): Use compute_bb_predicates
9014         and free them later, always try to estimate if stmt is constant.
9015         (estimate_time_after_inlining, estimate_size_after_inlining):
9016         Gracefully handle optimized out edges.
9017         (read_predicate): Fix off by one error.
9018
9019 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9020
9021         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
9022
9023 2011-04-27  Xinliang David Li  <davidxl@google.com>
9024
9025         * tree-profile.c (init_ic_make_global_vars): Set
9026         tls attribute on ic vars.
9027         * coverage.c (coverage_end_function): Initialize
9028         function_list with zero.
9029
9030 2011-04-29  Richard Guenther  <rguenther@suse.de>
9031
9032         * builtins.c (fold_builtin_classify_type): Use integer_type_node
9033         for the type of the result.
9034         (fold_builtin_isascii): Likewise.
9035         (fold_builtin_toascii): Use integer_type_node where appropriate.
9036         (fold_builtin_logb): Likewise.
9037         (fold_builtin_frexp): Likewise.
9038         (fold_builtin_strstr): Likewise.
9039         (fold_builtin_strpbrk): Likewise.
9040         (fold_builtin_fputs): Likewise.
9041         (fold_builtin_sprintf): Likewise.
9042         (fold_builtin_snprintf): Likewise.
9043         (fold_builtin_printf): Likewise.
9044         (do_mpfr_remquo): Use a proper type for the assigned constant.
9045         (do_mpfr_lgamma_r): Likewise.
9046         * dwarf2out.c (resolve_one_addr): Use size_int.
9047         * except.c (init_eh): Likewise.
9048         (assign_filter_values): Use integer_type_node for filter values.
9049         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
9050         indices.
9051         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
9052         for EH region numbers.
9053         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
9054         for the shift amount.
9055
9056 2011-04-29  Richard Guenther  <rguenther@suse.de>
9057
9058         * expr.h (expand_shift): Rename to ...
9059         (expand_variable_shift): ... this.
9060         (expand_shift): Take a constant shift amount.
9061         * expmed.c (expand_shift): Rename to ...
9062         (expand_variable_shift): ... this.
9063         (expand_shift): New wrapper around expand_variable_shift.
9064         * expr.c (convert_move, emit_group_load_1, emit_group_store,
9065         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
9066         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
9067         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
9068         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
9069         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
9070         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
9071         emit_store_flag_1, emit_store_flag): Likewise.
9072         * builtins.c (expand_builtin_signbit): Likewise.
9073         * calls.c (load_register_parameters): Likewise.
9074         * function.c (assign_parm_setup_block): Likewise.
9075         * lower-subreg.c (resolve_shift_zext): Likewise.
9076         * optabs.c (widen_bswap, expand_abs_nojump,
9077         expand_one_cmpl_abs_nojump, expand_float): Likewise.
9078         * spu/spu.c (spu_expand_extv): Likewise.
9079         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
9080
9081 2011-04-29  Richard Guenther  <rguenther@suse.de>
9082
9083         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
9084         for the remapped region number.
9085         * predict.c (build_predict_expr): Use integer_type_node for the
9086         predict kind.
9087         * fold-const.c (fold_binary_loc): Use integer_type_node for
9088         the shift amount.  Use a proper type for the PLUS_EXPR operand.
9089
9090 2011-04-29  Michael Matz  <matz@suse.de>
9091
9092         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
9093         other trees that just builtins.
9094         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
9095
9096 2011-04-29  Richard Guenther  <rguenther@suse.de>
9097
9098         * tree-nested.c (get_trampoline_type): Use size_int.
9099         (get_nl_goto_field): Likewise.
9100         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
9101         for all indexes.
9102         (lower_eh_constructs_2): Likewise.
9103         (lower_resx): Likewise.
9104         (lower_eh_dispatch): Likewise.
9105         * tree-mudflap.c (mf_build_string): Use size_int.
9106         (mudflap_register_call): Use integer_type_node for the flag.
9107         (mudflap_enqueue_constant): Use size_int.
9108         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
9109         instead of rebuilding it.
9110
9111 2011-04-29  Richard Guenther  <rguenther@suse.de>
9112
9113         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
9114         Handle OBJ_TYPE_REF.
9115         (find_func_aliases_for_call): Use it more consistently.
9116
9117 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
9118
9119         * haifa-sched.c (last_nondebug_scheduled_insn): New.
9120         (rank_for_schedule): Use it.
9121         (schedule_block): Set it.
9122
9123 2011-04-28  David Li  <davidxl@google.com>
9124
9125         * tree.c (crc32_string): Use crc32_byte.
9126         (crc32_byte): New function.
9127         * tree.h (crc32_byte): New function.
9128         * gcov.c (read_graph_file): Handle new cfg_cksum.
9129         (read_count_file): Ditto.
9130         * profile.c (instrument_values): Ditto.
9131         (get_exec_counts): Ditto.
9132         (read_profile_edge_counts): Ditto.
9133         (compute_branch_probabilities): Ditto.
9134         (compute_value_histograms): Ditto.
9135         (branch_prob): Ditto.
9136         (end_branch_prob): Ditto.
9137         * coverage.c (read_counts_file): Ditto.
9138         (get_coverage_counts): Ditto.
9139         (tree_coverage_counter_addr): Ditto.
9140         (coverage_checksum_string): Ditto.
9141         (coverage_begin_output): Ditto.
9142         (coverage_end_function): Ditto.
9143         (build_fn_info_type): Ditto.
9144         (build_fn_info_value): Ditto.
9145         * libgcov.c (gcov_exit): Ditto.
9146         * gcov-dump.c (tag_function): Ditto.
9147         (compute_checksum): Remove.
9148
9149 2011-04-29  Alan Modra  <amodra@gmail.com>
9150
9151         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
9152         unspec plus offset.  Tidy macho code.
9153
9154 2011-04-29  Martin Jambor  <mjambor@suse.cz>
9155
9156         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
9157         node instead of a decl.  Update all callers.
9158         * cgraph.h: Update declaration.
9159
9160 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
9161
9162         PR tree-optimization/48765
9163         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
9164         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
9165         to indicate if loop aware SLP is being used.  Scan the statements
9166         and update the vectorization factor according to the type of
9167         vectorization before statement analysis.
9168         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
9169         pass it to vect_analyze_loop_operations.
9170         (vectorizable_reduction): Set number of copies to 1 in case of pure
9171         SLP statement.
9172         * tree-vect-stmts.c (vectorizable_conversion,
9173         vectorizable_assignment, vectorizable_shift,
9174         vectorizable_operation, vectorizable_type_demotion,
9175         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
9176         Likewise.
9177         (vectorizable_condition): Move the check that it is not SLP
9178         vectorization before the number of copies check.
9179         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
9180         to vectorize the loop using SLP.
9181
9182 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
9183
9184         PR middle-end/48597
9185         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
9186         inline asm.
9187
9188 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
9189
9190         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
9191         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
9192         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
9193         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
9194         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
9195         linux*.h headers.
9196         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
9197         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9198         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9199         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9200         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9201         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
9202         REG_NAME.
9203         * config/i386/linux.h (REG_NAME): Don't define.
9204         * config/i386/linux64.h (REG_NAME): Don't define.
9205         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
9206         Undefine before defining.
9207
9208 2011-04-28  Jan Hubicka  <jh@suse.cz>
9209
9210         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
9211         nonconstant_names array.
9212         (estimate_function_body_sizes): Build nonconstant_names array; handle
9213         BUILT_IN_CONSTANT_P.
9214
9215 2011-04-28  Richard Guenther  <rguenther@suse.de>
9216
9217         PR bootstrap/48804
9218         Revert
9219         2011-04-28  Richard Guenther  <rguenther@suse.de>
9220
9221         * tree-ssa-structalias.c (solve_constraints): Build succ graph
9222         as late as possible.
9223
9224 2011-04-28  Richard Guenther  <rguenther@suse.de>
9225
9226         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
9227         (debug_constraint): Do it here.
9228         (dump_constraints): And here.
9229         (rewrite_constraints): And here.
9230         (dump_constraint_edge): Remove.
9231         (dump_constraint_graph): Rewrite to produce DOT output.
9232         (solve_constraints): Build succ graph as late as possible.
9233         Dump constraint graphs before and after solving.
9234
9235 2011-04-28  Richard Guenther  <rguenther@suse.de>
9236
9237         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
9238         New function split out from ...
9239         (find_func_aliases): ... here.  Call it.
9240         (find_func_aliases_for_call): Likewise.
9241
9242 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9243
9244         * internal-fn.h (internal_fn_name_array): Declare.
9245         (internal_fn_flags_array): Likewise.
9246
9247 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
9248
9249         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
9250         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
9251         Move from sse.md.
9252         (ssemodefsuffix): Remove.
9253         (ssevecmodesuffix): New mode attribute.
9254         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
9255         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
9256         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
9257         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
9258         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
9259         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
9260         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
9261         ssemodesuffix mode attribute.
9262         (float splitters): Use ssevecmodesuffix mode attribute.
9263         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
9264         (sseinsmode): Rename from avxvecmode.
9265         (avxsizesuffix): Rename from avxmodesuffix.
9266         (sseintvecmode): Rename from avxpermvecmode.
9267         (ssedoublevecmode): Rename from ssedoublesizemode.
9268         (ssehalfvecmode): Rename from avxhalfvecmode.
9269         (ssescalarmode): Rename from avxscalarmode.
9270         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
9271         templates for ssemodesuffix mode attribute.
9272         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
9273         mode attribute.
9274
9275         Adjust RTX patterns globally for renamed mode attributes.
9276
9277 2011-04-27  Jan Hubcika  <jh@suse.cz>
9278
9279         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
9280         * ipa-inline-analysis.c: Include alloc-pool.h.
9281         (edge_predicate_pool): New.
9282         (trye_predicate_p): New function
9283         (false_predicate_p): New function.
9284         (add_clause): Sanity check that false clauses are "optimized";
9285         never add clauses to predicate that is already known to be false.
9286         (and_predicate): Use flase_predicate_p.
9287         (evaulate_predicate): Rename to ...
9288         (evaluate_predicate): ... this one; update all callers; assert
9289         that false is not listed among possible truths.
9290         (dump_predicate): Use true_predicate_p.
9291         (account_size_time): Use false_predicate_p.
9292         (evaulate_conditions_for_edge): Rename to ...
9293         (evaluate_conditions_for_edge) ... this one.
9294         (edge_set_predicate): New function.
9295         (inline_edge_duplication_hook): Duplicate edge predicates.
9296         (inline_edge_removal_hook): Free edge predicates.
9297         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
9298         (dump_inline_summary): Update.
9299         (estimate_function_body_sizes): Set edge predicates.
9300         (estimate_calls_size_and_time): Handle predicates.
9301         (estimate_callee_size_and_time): Update.
9302         (remap_predicate): Add toplev_predicate; update comment.
9303         (remap_edge_predicates): New function.
9304         (inline_merge_summary): Compute toplev predicate; update.
9305         (read_predicate): New function.
9306         (read_inline_edge_summary): Use it.
9307         (inline_read_section): Likewise.
9308         (write_predicate): New function.
9309         (write_inline_edge_summary): Use it.
9310         (inline_write_summary): Likewise.
9311         (inline_free_summary): Free alloc pool and edge summary vec.
9312
9313 2011-04-27  Richard Guenther  <rguenther@suse.de>
9314
9315         * tree-ssa-structalias.c (changed_count): Remove.
9316         (changed): Use a bitmap.
9317         (unify_nodes): Adjust.
9318         (do_sd_constraint): Likewise.
9319         (do_ds_constraint): Likewise.
9320         (do_complex_constraint): Likewise.
9321         (solve_graph): Likewise.
9322
9323 2011-04-27  Jan Hubicka  <jh@suse.cz>
9324
9325         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
9326
9327 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
9328
9329         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
9330         (avx_vperm2f128_*_operand): Ditto.
9331         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
9332         Use avx_vpermilp_parallel in insn condition.
9333         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
9334         Use avx_vperm2f128_parallel in insn condition.
9335
9336 2011-04-27  Richard Guenther  <rguenther@suse.de>
9337
9338         * Makefile.in (tree-ssa-structalias.o): Remove
9339         gt-tree-ssa-structalias.h dependency.
9340         (GTFILES): Remove tree-ssa-structalias.c.
9341         * tree.c (allocate_decl_uid): New function.
9342         (make_node_stat): Use it.
9343         (copy_node_stat): Likewise.
9344         * tree.h (allocate_decl_uid): Declare.
9345         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
9346         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
9347         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
9348         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
9349         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
9350         (struct heapvar_map): Likewise.
9351         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
9352         heapvar_insert): Likewise.
9353         (make_heapvar_for): Rename to ...
9354         (make_heapvar): ... this.  Simplify.
9355         (fake_var_decl_obstack): New global var.
9356         (build_fake_var_decl): New function.
9357         (make_constraint_from_heapvar): Adjust.
9358         (handle_lhs_call): Likewise.
9359         (create_function_info_for): Likewise.
9360         (intra_create_variable_infos): Likewise.
9361         (init_alias_vars): Allocate fake_var_decl_obstack.
9362         (init_alias_heapvars, delete_alias_heapvars): Remove.
9363         (compute_points_to_sets): Do not call init_alias_heapvars.
9364         (ipa_pta_execute): Likewise.
9365         (delete_points_to_sets): Free fake_var_decl_obstack.
9366
9367 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9368
9369         * config/spu/divmovti4.c (union qword_UTItype): New data type.
9370         (si_from_UTItype, si_to_UTItype): New functions.
9371         (__udivmodti4): Use them to implement type-punning.
9372         * config/spu/multi3.c (union qword_TItype): New data type.
9373         (si_from_TItype, si_to_TItype): New functions.
9374         (__multi3): Use them to implement type-punning.
9375
9376 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9377
9378         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
9379
9380 2011-04-27  Jan Hubicka  <jh@suse.cz>
9381
9382         * ipa-prop.c (function_insertion_hook_holder): New holder.
9383         (ipa_add_new_function): New function.
9384         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
9385         Register/deregister holder.
9386
9387 2011-04-27  Richard Guenther  <rguenther@suse.de>
9388
9389         PR tree-optimization/48772
9390         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9391
9392 2011-04-27  Richard Guenther  <rguenther@suse.de>
9393
9394         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
9395         TARGET_MEM_REF handling.
9396
9397 2011-04-27  Nick Clifton  <nickc@redhat.com>
9398
9399         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
9400         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
9401         (REG_CLASS_NAMES): Likewise.
9402         (REG_CLASS_CONTENTS): Likewise.
9403         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
9404         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
9405         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
9406         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
9407         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
9408         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
9409         duplicate register classes.
9410         (frv_class_likely_spilled_p): Likewise.
9411         (frv_register_move_cost): Likewise.
9412
9413         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
9414         end of the regno_reg_class array.
9415
9416 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
9417
9418         PR c/48742
9419         * c-typeck.c (build_binary_op): Don't wrap arguments if
9420         int_operands is true.
9421
9422 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
9423
9424         PR target/48767
9425         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
9426         targetm.calls.must_pass_in_stack for void type.
9427
9428 2011-04-26  Jan Hubicka  <jh@suse.cz>
9429
9430         * cgraphbuild.c (build_cgraph_edges): Update call
9431         of cgraph_create_edge and cgraph_create_indirect_edge.
9432         * cgraph.c (cgraph_create_edge_including_clones,
9433         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
9434         cgraph_update_edges_for_call_stmt_node): Do not take nest
9435         argument; do not initialize call_stmt_size/time.
9436         (dump_cgraph_node): Do not dump nest.
9437         (cgraph_clone_edge): Do not take loop_nest argument;
9438         do not propagate it; do not clone call_stmt_size/time.
9439         (cgraph_clone_node): Likewise.
9440         (cgraph_create_virtual_clone): Update.
9441         * cgraph.h (struct cgraph_edge): Remove
9442         call_stmt_size/call_stmt_time/loop_nest.
9443         (cgraph_create_edge, cgraph_create_indirect_edge,
9444         cgraph_create_edge_including_clones, cgraph_clone_node): Update
9445         prototype.
9446         * tree-emutls.c (gen_emutls_addr): Update.
9447         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
9448         loop_nest; handle indirect calls, too.
9449         (clone_inlined_nodes): Do not care about updating inline summaries.
9450         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
9451         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
9452         stream call_stmt_size/call_stmt_time/loop_nest.
9453         * ipa-inline.c (edge_badness): Update.
9454         (ipa_inline): dump summaries after inlining.
9455         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
9456         New.
9457         (inline_edge_summary): New function.
9458         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
9459         (inline_edge_removal_hook): Handle edge summaries.
9460         (inline_edge_duplication_hook): New hook.
9461         (inline_summary_alloc): Alloc hooks.
9462         (initialize_growth_caches): Do not register removal hooks.
9463         (free_growth_caches); Do not free removal hook.
9464         (dump_inline_edge_summary): New function.
9465         (dump_inline_summary): Use it.
9466         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
9467         (inline_update_callee_summaries): New function.
9468         (inline_merge_summary): Use it.
9469         (do_estimate_edge_time, do_estimate_edge_growth): Update.
9470         (read_inline_edge_summary): New function.
9471         (inline_read_section): Use it.
9472         (write_inline_edge_summary): New function.
9473         (inline_write_summary): Use it.
9474         (inline_free_summary): Free edge new holders.
9475         * tree-inline.c (copy_bb): Update.
9476
9477 2011-04-26  Jason Merrill  <jason@redhat.com>
9478
9479         * tree-eh.c (lower_try_finally_switch): Create the label along with
9480         the CASE_LABEL_EXPR.
9481
9482 2011-04-26  David S. Miller  <davem@davemloft.net>
9483             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9484
9485         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
9486         * configure: Regenerate.
9487
9488 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9489
9490         PR target/48258
9491         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
9492         reduction.
9493         (VEC_reduc): New code iterator and splitters for vector reduction.
9494         (VEC_reduc_name): Ditto.
9495         (VEC_reduc_rtx): Ditto.
9496         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
9497         (reduc_<VEC_reduc_name>_v4sf): Ditto.
9498
9499         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
9500         support for extracting SF on VSX.
9501
9502         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
9503         generating xscvspdp.
9504         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
9505         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
9506         double add, minimum, maximum vector reduction.
9507         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
9508         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
9509         optimize double vector reduction.
9510         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
9511
9512 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
9513
9514         * config/fr30/fr30.h (inhibit_libc): Don't define.
9515         * config/m32r/m32r-protos.h: Correct comment.
9516         * config/v850/v850.h (GHS_default_section_names,
9517         GHS_current_section_names): Use tree, not union tree_node *.
9518
9519 2011-04-26  Xinliang David Li  <davidxl@google.com>
9520
9521         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
9522         * c-family/c-opts.c (c_common_handle_option): Set
9523         warn_maybe_uninitialized.
9524         * opts.c (common_handle_option): Ditto.
9525         * common.opt:  New option.
9526         * tree-ssa.c (warn_uninit): Add one more parameter.
9527         (warn_uninitialized_var): Pass warning code.
9528         * tree-flow.h: Interface change.
9529
9530 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9531
9532         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9533         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
9534         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
9535
9536 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9537
9538         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
9539         * config/mips/mips.opt (mmips-tfile): Remove.
9540
9541         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
9542         mips-tdump reference to ...
9543         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
9544         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
9545         reference by Tru64 UNIX.
9546
9547 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
9548
9549         PR debug/48768
9550         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
9551         is error_mark_node, set value to NULL.
9552
9553         PR tree-optimization/48734
9554         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
9555         if return value from maybe_fold_*_comparsions isn't something
9556         the code is prepared to handle.
9557
9558 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
9559
9560         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
9561         mode check.
9562         (ext_QIreg_nomode_operands): Remove.
9563         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
9564         (*andsi_1): Ditto.
9565         (*andhi_1): Ditto.
9566
9567 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
9568
9569         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
9570
9571 2011-04-26  Richard Guenther  <rguenther@suse.de>
9572
9573         * c-typeck.c (build_unary_op): Do not expand array-refs via
9574         pointer arithmetic.  Only adjust qualifiers for function types.
9575
9576 2011-04-26  Richard Guenther  <rguenther@suse.de>
9577
9578         PR middle-end/48694
9579         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
9580         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
9581         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
9582         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
9583
9584 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
9585
9586         * doc/extend.texi: Document __underlying_type.
9587
9588 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
9589
9590         * config/rs6000/titan.md (automata_option "progress"): Remove.
9591
9592 2011-04-25  Jeff Law  <law@redhat.com>
9593
9594         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
9595
9596 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
9597
9598         * system.h (ENUM_BITFIELD): Remove.
9599
9600 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
9601             Eric Botcazou  <ebotcazou@adacore.com>
9602
9603         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
9604         for STORE_FLAG_VALUE==-1 case.
9605
9606 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
9607
9608         PR target/43804
9609         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
9610         LEGITIMATE_PIC_OPERAND_P.
9611
9612 2011-04-24  Jan Hubicka  <jh@suse.cz>
9613
9614         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
9615         WPA hack.
9616         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
9617         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
9618         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
9619         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
9620         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
9621         Sanity check predicate length.
9622         (remap_predicate): Likewise; sanity check jump functions.
9623         (inline_read_section, inline_write_summary): Sanity check
9624         predicate length.
9625
9626 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
9627
9628         PR other/48748
9629         * doc/extend.texi (Type Traits): Document __is_standard_layout,
9630         __is_literal_type, and __is_trivial; update throughout about
9631         possibly cv-qualified void types.
9632
9633 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
9634
9635         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
9636         testsuite and make it version agnostic.
9637
9638 2011-04-22  Jan Hubicka  <jh@suse.cz>
9639
9640         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
9641
9642 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
9643
9644         PR c/48685
9645         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
9646         to VOID_TYPE even around MODIFY_EXPR.
9647
9648 2011-04-22  Mike Stump  <mikestump@comcast.net>
9649
9650         * gensupport.c (read_md_rtx): Fix typo in comment.
9651         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
9652         comment.
9653
9654 2011-04-22  Jan Hubicka  <jh@suse.cz>
9655
9656         * gengtype.c (open_base_files): Add ipa-inline.h include.
9657         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
9658         ipa-prop.c; update all uses.
9659         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
9660         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
9661         merge summary of inlined function into former caller.
9662         * ipa-inline.c (max_benefit): Remove.
9663         (edge_badness): Compensate for removal of benefits.
9664         (update_caller_keys): Use
9665         reset_node_growth_cache/reset_edge_growth_cache.
9666         (update_callee_keys): Likewise.
9667         (update_all_callee_keys): Likewise.
9668         (inline_small_functions): Do not collect max_benefit; do not reset
9669         estimated_growth; call free_growth_caches and initialize_growth_caches.
9670         * ipa-inline.h (struct condition, type clause_t, struct predicate,
9671         struct size_time_entry): New structures.
9672         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
9673         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
9674         and estimated_growth.
9675         (edge_growth_cache_entry): New structure.
9676         (node_growth_cache, edge_growth_cache): New global vars.
9677         (estimate_growth): Turn into inline.
9678         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
9679         initialize_growth_caches, free_growth_caches): Declare.
9680         (estimate_edge_growth): Rewrite.
9681         (estimate_edge_time): Implement as inline cache lookup.
9682         (reset_node_growth_cache, reset_edge_growth_cache): New inline
9683         functions.
9684         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
9685         (NUM_CONDITIONS): New constant.
9686         (predicate_conditions): New enum.
9687         (IS_NOT_CONSTANT): New constant.
9688         (edge_removal_hook_holder): New var.
9689         (node_growth_cache, edge_growth_cache): New global vars.
9690         (true_predicate, single_cond_predicate, false_predicate,
9691         not_inlined_predicate, add_condition, add_clause, and_predicates,
9692         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
9693         dump_clause, dump_predicate, account_size_time,
9694         evaulate_conditions_for_edge): New functions.
9695         (inline_summary_alloc): Move to heap.
9696         (inline_node_removal_hook): Clear condition and entry vectors.
9697         (inline_edge_removal_hook): New function.
9698         (initialize_growth_caches, free_growth_caches): New function.
9699         (dump_inline_summary): Update.
9700         (edge_execution_predicate): New function.
9701         (will_be_nonconstant_predicate): New function.
9702         (estimate_function_body_sizes): Compute BB and constantness predicates.
9703         (compute_inline_parameters): Do not clear estimated_growth.
9704         (estimate_edge_size_and_time): New function.
9705         (estimate_calls_size_and_time): New function.
9706         (estimate_callee_size_and_time): New function.
9707         (remap_predicate): New function.
9708         (inline_merge_summary): New function.
9709         (do_estimate_edge_time): New function based on...
9710         (estimate_edge_time): ... this one.
9711         (do_estimate_edge_growth): New function.
9712         (do_estimate_growth): New function based on....
9713         (estimate_growth): ... this one.
9714         (inline_analyze_function): Analyze after deciding on jump functions.
9715         (inline_read_section): New function.
9716         (inline_read_summary): Use it.
9717         (inline_write_summary): Write all the new data.
9718         * ipa-prop.c (ipa_get_param_decl_index): Export.
9719         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
9720         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
9721         Declare.
9722         (ipa_get_lattice): Move here from ipa-cp.c
9723         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
9724         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
9725         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
9726         cgraph_edge_inlinable_p): Remove.
9727         * cgraphunit.c: Include ipainline.h
9728         (cgraph_process_new_functions): Update call of
9729         compute_inline_parameters.
9730
9731 2011-04-22  Richard Guenther  <rguenther@suse.de>
9732
9733         * tree.c (build_int_cst): Properly create canonicalized integer
9734         constants.
9735         (build_int_cst_type): Remove scary comments.
9736
9737 2011-04-22  Xinliang David Li  <davidxl@google.com>
9738
9739         * toplev.c (process_options): Enable -Werror=coverage-mismatch
9740         by default when -Wno-error is not specified.
9741         * opts-global.c (decode_options): Remove call to
9742         control_warning_options.
9743
9744 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
9745
9746         PR tree-optimization/48717
9747         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
9748         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
9749
9750 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
9751
9752         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
9753         definition where used.
9754
9755 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
9756
9757         PR c/48716
9758         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
9759         TREE_STATIC variables declared inside of some OpenMP construct.
9760
9761 2011-04-22  Martin Jambor  <mjambor@suse.cz>
9762
9763         PR middle-end/48585
9764         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
9765
9766 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
9767
9768         PR c/36750
9769         * c-typeck.c (pop_init_level): Do not warn about initializing
9770         with ` = {0}'.
9771
9772 2011-04-22  Alan Modra  <amodra@gmail.com>
9773
9774         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
9775         when returning call_cookie.
9776         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
9777         pointers, to functions with no more vector args than the current
9778         function, and some non-local calls for ABI_V4.
9779         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
9780         sibcall_nonlocal_aix64): Combine to ..
9781         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
9782         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
9783         (sibcall_value_nonlocal_aix<mode>): ..likewise.
9784         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
9785         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
9786         operand.
9787         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
9788         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
9789         sibcall_value_symbolic_64): Delete.
9790
9791 2011-04-21  Xinliang David Li  <davidxl@google.com>
9792
9793         * cgraph.h: Remove pid.
9794         * cgraph.c: Remove pid.
9795         * value-prof.c (init_node_map): New function.
9796         (del_node_map): New function.
9797         (find_func_by_funcdef_no): New function.
9798         (gimple_ic_transform): Call new function.
9799         * cgraphunit.c (cgraph_finalize_function): Remove pid.
9800         * function.c (get_last_funcdef_no): New function.
9801         * function.h (get_last_funcdef_no): New function.
9802         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
9803         to libgcov function.
9804         (tree-profiling): Call node map init and delete function.
9805
9806 2011-04-21  Ian Lance Taylor  <iant@google.com>
9807
9808         * godump.c (go_format_type): Use exported Go name for anonymous
9809         field name.
9810
9811 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9812
9813         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
9814         Call builtin_function_type_list instead of builtin_function_type.
9815         (UNARY, BINARY, TRINARY, QUAD): Likewise.
9816
9817 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9818
9819         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
9820         build_function_type_list instead of build_function_type.
9821         Delete variable `endlink'.
9822
9823 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9824
9825         * config/s390/s390.c (s390_init_builtins): Call
9826         build_function_type_list instead of build_function_type.
9827
9828 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9829
9830         * config/ia64/ia64.c (ia64_init_builtins): Call
9831         build_function_type_list instead of builtin_function_type.
9832
9833 2011-04-21  Easwaran Raman  <eraman@google.com>
9834
9835         * cfgexpand.c (stack_var): Remove OFFSET...
9836         (add_stack_var): ...and its reference here...
9837         (expand_stack_vars): ...and here.
9838         (stack_var_cmp): Sort by descending order of size.
9839         (partition_stack_vars): Change heuristic.
9840         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
9841         (dump_stack_var_partition): Add newline after each partition.
9842
9843 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
9844             Jeff Law  <law@redhat.com>
9845
9846         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
9847         * gengtype.c (matching_file_name_substitute): Likewise.
9848
9849 2011-04-21  Richard Guenther  <rguenther@suse.de>
9850
9851         PR lto/48703
9852         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
9853
9854 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
9855
9856         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
9857
9858 2011-04-21  Richard Guenther  <rguenther@suse.de>
9859
9860         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
9861         file name.
9862
9863 2011-04-21  Richard Guenther  <rguenther@suse.de>
9864
9865         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
9866         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
9867         Use DECL_P, not SSA_VAR_P.
9868         (ptr_derefs_may_alias_p): Likewise.
9869         (ptr_deref_may_alias_ref_p_1): Likewise.
9870         (decl_refs_may_alias_p): Likewise.
9871         (refs_may_alias_p_1): Likewise.
9872         (ref_maybe_used_by_call_p_1): Likewise.
9873         (call_may_clobber_ref_p_1): Likewise.
9874         (indirect_ref_may_alias_decl_p): Assume indirect refrences
9875         are either MEM_REF or TARGET_MEM_REF.
9876         (indirect_refs_may_alias_p): Likewise.
9877         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
9878         for MEM_EXPR of indirect calls.
9879
9880 2011-04-21  Tristan Gingold  <gingold@adacore.com>
9881
9882         * vmsdbgout.c (write_srccorr): Compute file length from the string.
9883         (dst_file_info_struct): Remove flen field.
9884         (lookup_filename): Remove code that set flen field.
9885
9886 2011-04-21  Tristan Gingold  <gingold@adacore.com>
9887
9888         * config/ia64/ia64.c (ia64_start_function): Add a guard.
9889
9890 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
9891
9892         PR target/48708
9893         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
9894         vec_extract and vec_concat for non-SSE4_1 targets.
9895
9896 2011-04-21  Richard Guenther  <rguenther@suse.de>
9897
9898         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
9899         return statements.
9900
9901 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
9902
9903         * config/i386/cygming.h (union tree_node, TREE): Don't define or
9904         undefine.
9905         (FILE): Don't undefine.
9906
9907 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
9908
9909         * config/alpha/alpha.c (struct machine_function): Use rtx, not
9910         struct rtx_def *.
9911         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
9912         struct rtx_def *.
9913         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
9914         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
9915         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
9916         rtx_def *.
9917         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
9918         definitions where used.
9919         * config/microblaze/microblaze.h (struct microblaze_args): Use
9920         rtx, not struct rtx_def *.
9921         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
9922         rtx_def *.
9923         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
9924         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
9925         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
9926         not struct rtx_def *.
9927         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
9928         struct rtx_def *.
9929         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
9930         rtx_def *.
9931         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
9932
9933 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
9934
9935         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
9936         operand_equal_p to compare DR_BASE_ADDRESSes.
9937         (vect_check_interleaving): Likewise.
9938
9939 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
9940
9941         PR target/46329
9942         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
9943         for all Neon struct constants.
9944
9945 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
9946
9947         * target.def (legitimate_constant_p): New hook.
9948         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
9949         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
9950         * doc/tm.texi: Regenerate.
9951         * hooks.h (hook_bool_mode_rtx_true): Declare.
9952         * hooks.c (hook_bool_mode_rtx_true): Define.
9953         * system.h (LEGITIMATE_CONSTANT_P): Poison.
9954         * calls.c (precompute_register_parameters): Replace uses of
9955         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
9956         (emit_library_call_value_1): Likewise.
9957         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
9958         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
9959         * ira-costs.c (scan_one_insn): Likewise.
9960         * recog.c (general_operand, immediate_operand): Likewise.
9961         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
9962         * reload1.c (init_eliminable_invariants): Likewise.
9963
9964         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
9965         mode argument.
9966         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
9967         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
9968         argument.
9969         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9970         * config/alpha/predicates.md (input_operand): Update call to
9971         alpha_legitimate_constant_p.
9972
9973         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
9974         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
9975         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
9976         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9977         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
9978         (arm_legitimate_constant_p): New functions.
9979         (arm_cannot_force_const_mem): Make static.
9980
9981         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
9982
9983         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
9984         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
9985         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
9986         instead of bfin_legitimate_constant_p.
9987         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
9988         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9989
9990         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
9991
9992         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
9993
9994         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
9995         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
9996         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9997         (frv_legitimate_constant_p): Make static.  Add a mode argument.
9998
9999         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
10000         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
10001         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
10002
10003         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
10004         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
10005         * config/i386/i386.c (legitimate_constant_p): Rename to...
10006         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
10007         argument.
10008         (ix86_cannot_force_const_mem): Update accordingly.
10009         (ix86_legitimate_address_p): Likewise.
10010         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10011         * config/i386/i386.md: Update commentary.
10012
10013         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
10014         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
10015         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10016         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
10017
10018         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
10019
10020         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
10021         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
10022         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10023         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
10024
10025         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
10026         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
10027         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
10028
10029         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
10030         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10031         (m32r_legitimate_constant_p): New function.
10032
10033         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
10034         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
10035         LEGITIMATE_CONSTANT_P.
10036         (LEGITIMATE_CONSTANT_P): Delete.
10037         * config/m68k/m68k.c (m68k_expand_prologue): Call
10038         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
10039         (m68k_legitimate_constant_p): New function.
10040         * config/m68k/m68k.md: Update comments.
10041
10042         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
10043         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10044         (mcore_legitimate_constant_p): New function.
10045
10046         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
10047         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
10048         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
10049         Add a mode argument.
10050         (mep_legitimate_address): Update accordingly.
10051         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10052
10053         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
10054         Delete.
10055         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
10056         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
10057         static.  Check OP's mode for VOIDmode.
10058         (microblaze_legitimate_constant_p): New function.
10059         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10060
10061         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
10062         * config/mips/mips.c (mips_legitimate_constant_p): New function.
10063         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
10064         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10065         * config/mips/predicates.md: Update comments.
10066
10067         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
10068         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
10069         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10070         (mmix_legitimate_constant_p): Make static, return a bool, and take
10071         a mode argument.
10072         (mmix_print_operand_address): Update accordingly.
10073
10074         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
10075         Delete.
10076         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
10077         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
10078         static.  Add a mode argument.
10079         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10080
10081         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
10082
10083         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
10084         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10085         (pa_legitimate_constant_p): New function.
10086
10087         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
10088
10089         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
10090         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10091         (pdp11_legitimate_constant_p): New function.
10092
10093         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
10094         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10095         (rs6000_legitimate_constant_p): New function.
10096
10097         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
10098         (rx_legitimate_constant_p): ...this.
10099         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
10100         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
10101         (rx_legitimate_constant_p): ...this.
10102         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10103         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
10104
10105         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
10106         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
10107         * config/s390/s390.c (legitimate_constant_p): Rename to...
10108         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
10109         and add a mode argument.
10110         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10111
10112         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
10113
10114         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
10115         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10116         (sh_legitimate_constant_p): New function.
10117
10118         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
10119         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
10120         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10121         (legitimate_constant_p): Rename to...
10122         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
10123         argument.
10124         (constant_address_p): Update accordingly.
10125
10126         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
10127         argument and return a bool.
10128         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
10129         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10130         (spu_legitimate_constant_p): Add a mode argument and return a bool.
10131         (spu_rtx_costs): Update accordingly.
10132         * config/spu/predicates.md (vec_imm_operand): Likewise.
10133
10134         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
10135
10136         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
10137         * config/v850/v850.c (v850_legitimate_constant_p): New function.
10138         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10139
10140         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
10141         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
10142         * config/vax/vax.c (legitimate_constant_p): Likewise.
10143
10144         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
10145         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10146         (xtensa_legitimate_constant_p): New function.
10147
10148 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
10149
10150         * target.def (cannot_force_const_mem): Add a mode argument.
10151         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
10152         * doc/tm.texi: Regenerate.
10153         * hooks.h (hook_bool_mode_rtx_false): Declare.
10154         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
10155         (hook_bool_mode_const_rtx_true): Likewise.
10156         (hook_bool_mode_rtx_false): New function.
10157         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
10158         to be non-VOID.  Update call to cannot_force_const_mem.
10159         (find_reloads): Update accordingly.
10160         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
10161         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
10162         argument.
10163         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
10164         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
10165         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
10166         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
10167         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
10168         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
10169         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
10170         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
10171         (m68k_cannot_force_const_mem): ...this new function.
10172         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
10173         argument.
10174         (mips_const_insns, mips_legitimize_const_move): Update calls.
10175         (mips_secondary_reload_class): Likewise.
10176         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
10177         (pa_cannot_force_const_mem): ...this new function.
10178         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
10179         (rs6000_cannot_force_const_mem): ...this new function.
10180         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
10181         argument.
10182         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
10183         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
10184         to...
10185         (xtensa_cannot_force_const_mem): ...this new function.
10186
10187 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
10188
10189         * config/mips/mips.c (mips16_build_function_stub): Call
10190         build_function_type_list instead of build_function_type.
10191         (mips16_build_call_stub): Likewise.
10192
10193 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
10194
10195         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
10196         instead of build_function_type.
10197
10198 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
10199
10200         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
10201         instead of build_function_type.
10202
10203 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
10204
10205         PR target/48678
10206         * config/i386/i386.md (insv): Change operand 0 constraint to
10207         "register_operand".  Change operand 1 and 2 constraint to
10208         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
10209         * config/i386/sse.md (sse4_1_pinsrb): Export.
10210         (sse2_pinsrw): Ditto.
10211         (sse4_1_pinsrd): Ditto.
10212         (sse4_1_pinsrq): Ditto.
10213         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
10214         * config/i386/i386.c (ix86_expand_pinsr): New.
10215
10216 2011-04-20  Easwaran Raman  <eraman@google.com>
10217
10218         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
10219         containing union type only with -fstrict-aliasing.
10220
10221 2011-04-20  Jim Meyering  <meyering@redhat.com>
10222
10223         Remove useless if-before-free tests.
10224         * calls.c (expand_call, save_area): Likewise.
10225         * cfgcleanup.c (try_forward_edges): Likewise.
10226         * collect2.c (collect_execute): Likewise.
10227         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
10228         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
10229         * coverage.c (coverage_checksum_string): Likewise.
10230         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
10231         * cselib.c (cselib_init): Likewise.
10232         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
10233         (df_set_clean_cfg): Likewise.
10234         * function.c (free_after_compilation): Likewise.
10235         * gcc.c (do_spec_1, main): Likewise.
10236         * gcov.c (create_file_names): Likewise.
10237         * gensupport.c (identify_predicable_attribute): Likewise.
10238         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
10239         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
10240         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
10241         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
10242         * ipa-pure-const.c (local_pure_const): Likewise.
10243         * ipa-reference.c (propagate): Likewise.
10244         * ira-costs.c (free_ira_costs): Likewise.
10245         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
10246         * matrix-reorg.c (mat_free): Likewise.
10247         * prefix.c (get_key_value): Likewise.
10248         * profile.c (compute_value_histograms): Likewise.
10249         * reload1.c (free_reg_equiv): Likewise.
10250         * sched-deps.c (free_deps): Likewise.
10251         * sel-sched-ir.c (fence_clear): Likewise.
10252         * sese.c (set_rename, if_region_set_false_region): Likewise.
10253         * tree-data-ref.c (free_rdg): Likewise.
10254         * tree-eh.c (lower_try_finally): Likewise.
10255         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
10256         * tree-ssa-live.c (delete_var_map): Likewise.
10257         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
10258         * tree-ssa-pre.c (phi_trans_add): Likewise.
10259
10260 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
10261
10262         PR tree-optimization/48611
10263         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
10264         beyond ERT_MUST_NOT_THROW region.
10265
10266 2011-04-20  Catherine Moore  <clm@codesourcery.com>
10267
10268         * config/mips/mips.opt (mfix-24k): New.
10269         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
10270         * config/mips/mips.md (length): Increase by 4 for stores if
10271         fixing 24K errata.
10272         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
10273         all noreorder if fixing 24K errata.
10274         * doc/invoke.texi: Document mfix-24k.
10275
10276 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
10277
10278         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
10279         quad-word modes, reduce to 9-bit index range when above 1016 limit.
10280
10281 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
10282
10283         * config/arm/arm.c (arm_gen_constant): Move movw support ....
10284         (const_ok_for_op): ... to here.
10285
10286 2011-04-20  Kai Tietz  <ktietz@redhat.com>
10287
10288         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
10289         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
10290
10291 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
10292
10293         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
10294
10295 2011-04-20  Richard Guenther  <rguenther@suse.de>
10296
10297         PR tree-optimization/47892
10298         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
10299         are if-convertible.
10300
10301 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
10302
10303         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
10304
10305 2011-04-20  Tristan Gingold  <gingold@adacore.com>
10306
10307         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
10308
10309 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
10310
10311         PR target/18145
10312
10313         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
10314         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
10315         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
10316         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
10317         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
10318
10319         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
10320         New prototype.
10321
10322         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
10323         (avr_asm_named_section, avr_asm_output_aligned_common,
10324         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
10325         New functions to update...
10326         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
10327         (avr_asm_init_sections): Overwrite section callbacks for
10328         data_section, bss_section.
10329         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
10330         from here to...
10331         (avr_file_end): ...here.
10332
10333 2011-04-20  Richard Guenther  <rguenther@suse.de>
10334
10335         PR middle-end/48695
10336         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
10337         objects and types here.  Adjust for their offset before comparing.
10338
10339 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
10340
10341         * tree-vect-stmts.c (vectorizable_store): Only chain one related
10342         statement per copy.
10343
10344 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
10345
10346         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
10347         (GIMPLE_H): Include $(INTERNAL_FN_H).
10348         (OBJS-common): Add internal-fn.o.
10349         (internal-fn.o): New rule.
10350         * internal-fn.def: New file.
10351         * internal-fn.h: Likewise.
10352         * internal-fn.c: Likewise.
10353         * gimple.h: Include internal-fn.h.
10354         (GF_CALL_INTERNAL): New gf_mask.
10355         (gimple_statement_call): Put fntype into a union with a new
10356         internal_fn field.
10357         (gimple_build_call_internal): Declare.
10358         (gimple_build_call_internal_vec): Likewise.
10359         (gimple_call_same_target_p): Likewise.
10360         (gimple_call_internal_p): New function.
10361         (gimple_call_internal_fn): Likewise.
10362         (gimple_call_fntype): Return null for internal calls.
10363         (gimple_call_set_fntype): Assert that the function is not internal.
10364         (gimple_call_set_fn): Likewise.
10365         (gimple_call_set_fndecl): Likewise.
10366         (gimple_call_set_internal_fn): New function.
10367         (gimple_call_addr_fndecl): Handle null functions.
10368         (gimple_call_return_type): Likewise null types.
10369         * gimple.c (gimple_build_call_internal_1): New function.
10370         (gimple_build_call_internal): Likewise.
10371         (gimple_build_call_internal_vec): Likewise.
10372         (gimple_call_same_target_p): Likewise.
10373         (gimple_call_flags): Handle calls to internal functions.
10374         (gimple_call_fnspec): New function.
10375         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
10376         (gimple_has_side_effects): Handle null functions.
10377         (gimple_rhs_has_side_effects): Likewise.
10378         (gimple_call_copy_skip_args): Handle calls to internal functions.
10379         * cfgexpand.c (expand_call_stmt): Likewise.
10380         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
10381         * gimple-fold.c (gimple_fold_call): Handle null functions.
10382         (gimple_fold_stmt_to_constant_1): Don't fold
10383         calls to internal functions.
10384         * gimple-low.c (gimple_check_call_args): Handle calls to internal
10385         functions.
10386         * gimple-pretty-print.c (dump_gimple_call): Likewise.
10387         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
10388         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
10389         (do_warn_unused_result): Likewise.
10390         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
10391         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
10392         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
10393         the target of a call.
10394         (initialize_hash_element): Update accordingly.
10395         (hashable_expr_equal_p): Use gimple_call_same_target_p.
10396         (iterative_hash_hashable_expr): Handle calls to internal functions.
10397         (print_expr_hash_elt): Likewise.
10398         * tree-ssa-pre.c (can_value_number_call): Likewise.
10399         (eliminate): Handle null functions.
10400         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
10401         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
10402         (find_func_aliases): Likewise.
10403         * value-prof.c (gimple_ic_transform): Likewise.
10404         (gimple_indirect_call_to_profile): Likewise.
10405         * lto-streamer-in.c (input_gimple_stmt): Likewise.
10406         * lto-streamer-out.c (output_gimple_stmt): Likewise.
10407
10408 2011-04-19  Jan Hubicka  <jh@suse.cz>
10409
10410         * ipa-inline-transform.c (save_inline_function_body): Add comments.
10411         * ipa-inline.c (inline_small_functions): Compute summaries first,
10412         populate heap later.
10413
10414 2011-04-19  Jan Hubicka  <jh@suse.cz>
10415
10416         * cgraph.h (save_inline_function_body): Remove.
10417         * ipa-inline-transform.c: New file, broke out of...
10418         * ipa-inline.c: ... this one; Update toplevel comment.
10419         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
10420         make global.
10421         (update_noncloned_frequencies): Move to ipa-inline-transform.c
10422         (cgraph_mark_inline_edge): Rename to inline_call; move to
10423         ipa-inline-transform.c.
10424         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
10425         move to ipa-inline-transform.c
10426         (recursive_inlining, inline_small_functions, flatten_function,
10427         ipa_inline, inline_always_inline_functions,
10428         early_inline_small_functions): Update.
10429         (inline_transform): Move to ipa-inline-transform.c.
10430         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
10431         Declare.
10432         * Makefile.in (ipa-inline-transform.o): New file.
10433         * cgraphunit.c (save_inline_function_body): Move to
10434         ipa-inline-transform.c
10435
10436 2011-04-19  DJ Delorie  <dj@redhat.com>
10437
10438         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
10439         registers if we already know there aren't any.
10440         (m32c_emit_epilogue): Don't emit a barrier here.
10441         (m32c_emit_eh_epilogue): Likewise.
10442         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
10443         operands at expand time.
10444         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
10445         int" wchar type.
10446         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
10447         duplicates.  Provide aliases instead.
10448         * config/m32c/prologue.md (eh_return): Emit a barrier here.
10449         (eh_epilogue): Add a "(return)" here as a hint to other parts of
10450         the compiler.
10451
10452 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
10453
10454         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
10455         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
10456         (general_or_i64_p, sparc_register_move_cost): New function.
10457
10458 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10459
10460         * doc/install.texi (Configuration, --enable-threads): Remove mach.
10461         Add lynx, mipssde.  Sort table.
10462
10463 2011-04-19  Xinliang David Li  <davidxl@google.com>
10464
10465         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
10466         not negative.
10467
10468 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
10469
10470         PR target/48678
10471         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
10472         is a SUBREG with non-MODE_INT mode inside of it.
10473
10474 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10475
10476         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
10477         also according to actual contants.
10478         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
10479         (gimple_fold_call): Use it.
10480         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
10481
10482 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10483
10484         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
10485         non-pointer assignments.
10486
10487 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10488
10489         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
10490         account anc_offset and otr_type from the indirect edge info.
10491         * ipa-prop.c (get_ancestor_addr_info): New function.
10492         (compute_complex_ancestor_jump_func): Assignment analysis moved to
10493         get_ancestor_addr_info, call it.
10494         (ipa_note_param_call): Do not initialize information about polymorphic
10495         calls, return the indirect call graph edge.  Remove the last
10496         parameter, adjust all callers.
10497         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
10498         parameters.  Initialize polymorphic information in the indirect edge.
10499
10500 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10501
10502         PR lto/48148
10503         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
10504         the types if they have different enumeration identifiers.
10505
10506 2011-04-19  Jan Hubicka  <jh@suse.cz>
10507
10508         * cgraph.h (cgraph_optimize_for_size_p): Declare.
10509         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
10510         * predict.c (cgraph_optimize_for_size_p): Break out from ...
10511         (optimize_function_for_size_p) ... here.
10512
10513 2011-04-19  Richard Guenther  <rguenther@suse.de>
10514
10515         PR lto/48207
10516         * tree.c (free_lang_data): Do not reset the decl-assembler-name
10517         langhook.
10518
10519 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10520
10521         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
10522         if DECL_NO_INLINE_WARNING_P is set on the function.
10523
10524 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
10525
10526         PR fortran/47976
10527         * reload1.c (inc_for_reload): Return void. All callers changed.
10528         (emit_input_reload_insns): Don't try to delete previous output
10529         reloads to a register, or record spill_reg_store for autoincs.
10530
10531 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
10532
10533         * gengtype.h: Updated copyright year.
10534         (struct input_file_st): Add inpisplugin field.
10535         (type_fileloc): New function.
10536         * gengtype.c
10537         (write_typed_struct_alloc_def): Add gcc_assert.
10538         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
10539         (write_typed_alloc_defns): Don't output for plugin files.
10540         (input_file_by_name): Clear inpisplugin field.
10541         (main): Set inpisplugin field for plugin files.
10542
10543 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
10544
10545         * gengtype-state.c (string_eq): New.
10546         (read_state): Use string_eq instead of strcmp when creating the
10547         state_ident_tab.
10548
10549 2011-04-19  Wei Guozhi  <carrot@google.com>
10550
10551         PR target/47855
10552         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
10553         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
10554         linkage.
10555         * config/arm/constraints.md (Uu): New constraint.
10556         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
10557
10558 2011-04-19  Tristan Gingold  <gingold@adacore.com>
10559
10560         * config.gcc (-*-*-*vms): Added.
10561         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
10562         definitions moved.
10563         * config/vms/vms-ld.c: New file.
10564         * config/vms/vms-ar.c: New file.
10565         * config/vms/t-vmsnative: New file.
10566
10567 2011-04-18  Xinliang David Li  <davidxl@google.com>
10568
10569         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
10570
10571 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
10572
10573         PR middle-end/48661
10574         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
10575         if TREE_TYPE (v) is non-NULL.
10576
10577         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
10578         gimple_get_virt_mehtod_for_binfo.
10579         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
10580         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
10581         callers.
10582         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
10583
10584 2011-04-18  Michael Matz  <matz@suse.de>
10585             Steve Ellcey  <sje@cup.hp.com>
10586
10587         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
10588         use its mode as source mode if it isn't VOIDmode.
10589
10590 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
10591
10592         * doc/passes.texi: Fill crossref nodes.
10593
10594 2011-04-18  Jim Meyering  <meyering@redhat.com>
10595
10596         Fix doubled-word typos in comments and strings
10597         * config/alpha/vms-unwind.h: s/for for/for/
10598         * config/arm/unwind-arm.h: Likewise.
10599         * config/microblaze/microblaze.c: Likewise.
10600         * config/sh/constraints.md: s/in in/in/
10601         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
10602
10603 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
10604
10605         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
10606         (AVX_FLOAT_MODE_P): Ditto.
10607         (AVX128_VEC_FLOAT_MODE_P): Ditto.
10608         (AVX256_VEC_FLOAT_MODE_P): Ditto.
10609         (AVX_VEC_FLOAT_MODE_P): Ditto.
10610         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
10611         (UNSPEC_MASKSTORE): Ditto.
10612         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
10613         Merge from <sse>_movmsk<ssemodesuffix> and
10614         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
10615         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
10616         iterator.
10617         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
10618         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
10619         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
10620
10621 2011-04-18  Jan Hubicka  <jh@suse.cz>
10622
10623         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
10624
10625         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
10626         (want_inline_function_called_once_p): Break out the logic from
10627         ipa_inline.
10628         (edge_badness): Ensure that profile is not misupdated.
10629         (lookup_recursive_calls): Prioritize by call frequencies.
10630         (inline_small_functions): Move program size estimates here;
10631         actually process whole queue even when unit growth has been
10632         met. (to properly compute inline_failed reasons and for the
10633         case unit size decrease.) Revisit comments on recursive inlining.
10634         (ipa_inline): Remove unit summary code; first inline hot calls
10635         of functions called once, cold calls next.
10636         (order, nnodes): Remove unused variables.
10637         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
10638         (GTFILES): Remove ipa-inline.c
10639         * sel-sched.c (fill_insns): Silence uninitialized var warning.
10640
10641 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
10642
10643         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
10644
10645 2011-04-18  Jie Zhang  <jie@codesourcery.com>
10646             Richard Earnshaw  <rearnsha@arm.com>
10647
10648         * arm.c (neon_builtin_type_bits): Remove.
10649         (typedef enum neon_builtin_mode): New.
10650         (T_MAX): Don't define.
10651         (typedef enum neon_builtin_datum): Remove bits, codes[],
10652         num_vars and base_fcode.  Add mode, code and fcode.
10653         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
10654         VAR10): Change accordingly.
10655         (neon_builtin_data[]): Change accordingly
10656         (arm_init_neon_builtins): Change accordingly.
10657         (neon_builtin_compare): Remove.
10658         (locate_neon_builtin_icode): Remove.
10659         (arm_expand_neon_builtin): Change accordingly.
10660
10661         * arm.h (enum arm_builtins): Move to ...
10662         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
10663
10664         * arm.c (arm_builtin_decl): Declare.
10665         (TARGET_BUILTIN_DECL): Define.
10666         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
10667         (arm_builtin_decls[]): New.
10668         (arm_init_neon_builtins): Store builtin declarations in
10669         arm_builtin_decls[].
10670         (arm_init_tls_builtins): Likewise.
10671         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
10672         (arm_builtin_decl): New.
10673
10674 2011-04-18  Richard Guenther  <rguenther@suse.de>
10675
10676         * tree.c (upper_bound_in_type): Build properly canonicalized
10677         INTEGER_CSTs.
10678         (lower_bound_in_type): Likewise.
10679
10680 2011-04-18  Richard Guenther  <rguenther@suse.de>
10681
10682         * gimple.h (gimple_call_addr_fndecl): New function.
10683         (gimple_call_fndecl): Use it.
10684         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
10685         for direct calls.
10686         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
10687         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
10688
10689 2011-04-18  Richard Guenther  <rguenther@suse.de>
10690
10691         PR middle-end/48650
10692         * tree.c (build_string): STRING_CST is now derived from tree_typed.
10693
10694 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
10695
10696         PR lto/48492
10697         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
10698         DECL_IN_CONSTANT_POOL without RTL.
10699
10700 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
10701             Ira Rosen  <ira.rosen@linaro.org>
10702
10703         PR target/48252
10704         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
10705         to match neon_vzip/vuzp/vtrn_internal.
10706         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
10707         outputs explicitly dependent on both inputs.
10708         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
10709
10710 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
10711
10712         PR tree-optimization/48616
10713         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
10714         whether the shift is by scalar or vector based on whether all SLP
10715         scalar stmts have the same rhs.
10716
10717 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
10718
10719         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
10720         memory operands.
10721
10722 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
10723
10724         PR target/43700
10725         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
10726         registers.
10727
10728 2011-04-17  Jan Hubicka  <jh@suse.cz>
10729
10730         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
10731         * cgrpahunit.c (cgraph_finalize_function): Do not set
10732         finalized_by_frontend.
10733         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
10734         finalized_by_frontend.
10735
10736 2011-04-17  Jan Hubicka  <jh@suse.cz>
10737
10738         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
10739         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
10740         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
10741         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
10742         method.
10743         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
10744         gimple-fold.c
10745         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
10746
10747 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
10748
10749         PR lto/48538
10750         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
10751         is non-null before accessing it.
10752         (input_cgraph): Remove trailing spaces.
10753
10754 2011-04-17  Revital Eres  <revital.eres@linaro.org>
10755
10756         * params.def (sms-min-sc): New param flag.
10757         * modulo-sched.c (sms_schedule): Use it.
10758         * doc/invoke.texi (sms-min-sc): Document it.
10759
10760 2011-04-17  Jan Hubicka  <jh@suse.cz>
10761
10762         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
10763         present, also set gimple_call_set_cannot_inline.
10764         * ipa-inline.c: Update toplevel comment.
10765         (MAX_TIME): Remove.
10766         (cgraph_clone_inlined_nodes): Fix linebreaks.
10767         (cgraph_check_inline_limits): Restructure to ...
10768         (caller_growth_limits): ... this one; be more tolerant
10769         on growth in nested inline chains; add explanatory comment;
10770         fix stack accounting thinko introduced by previous patch.
10771         (cgraph_default_inline_p): Remove.
10772         (report_inline_failed_reason): New function.
10773         (can_inline_edge_p): New function.
10774         (can_early_inline_edge_p): New function.
10775         (leaf_node_p): Move upwards in file.
10776         (want_early_inline_function_p): New function.
10777         (want_inline_small_function_p): New function.
10778         (want_inline_self_recursive_call_p): New function.
10779         (cgraph_edge_badness): Rename to ...
10780         (edge_badness) ... this one; fix linebreaks.
10781         (update_edge_key): Update call of edge_baddness; add
10782         detailed dump about queue updates.
10783         (update_caller_keys): Use can_inline_edge_p and
10784         want_inline_small_function_p.
10785         (cgraph_decide_recursive_inlining): Rename to...
10786         (recursive_inlining): Use can_inline_edge_p and
10787         want_inline_self_recursive_call_p; simplify and remove no longer
10788         valid FIXME.
10789         (cgraph_set_inline_failed): Remove.
10790         (add_new_edges_to_heap): Use can_inline_edge_p and
10791         want_inline_small_function_p.
10792         (cgraph_decide_inlining_of_small_functions): Rename to ...
10793         (inline_small_functions): ... this one; cleanup; use
10794         can/want predicates; cleanup debug ouput; work edges till fibheap
10795         is exhausted and do not stop once unit growth is reached; remove
10796         later loop processing remaining edges.
10797         (cgraph_flatten): Rename to ...
10798         (flatten_function): ... this one; use can_inline_edge_p
10799         and can_early_inline_edge_p predicates.
10800         (cgraph_decide_inlining): Rename to ...
10801         (ipa_inline): ... this one; remove unreachable nodes before
10802         inlining functions called once; simplify the pass.
10803         (cgraph_perform_always_inlining): Rename to ...
10804         (inline_always_inline_functions): ... this one; use
10805         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
10806         (cgraph_decide_inlining_incrementally): Rename to ...
10807         (early_inline_small_functions): ... this one; simplify
10808         using new predicates; cleanup; make dumps prettier.
10809         (cgraph_early_inlining): Rename to ...
10810         (early_inliner): newer inline regular functions into always-inlines;
10811         fix updating of call stmt summaries.
10812         (pass_early_inline): Update for new names.
10813         (inline_transform): Fix formating.
10814         (gate_cgraph_decide_inlining): Rename to ...
10815         (pass_ipa_inline): ... this one.
10816         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
10817         * ipa-inline-analysis.c (dump_inline_summary): Update.
10818         (compute_inline_parameters): Do not compute disregard_inline_limits;
10819         look for mismatching arguments.
10820         (estimate_growth): Fix handlig of non-trivial self recursion.
10821         (inline_read_summary): Do not read info->disregard_inline_limits.
10822         (inline_write_summary): Do not write info->disregard_inline_limits.
10823         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
10824         and move all checks into can_inline_edge_p predicate; re-enable code
10825         comparing optimization levels.
10826         (expand_call_inline): Do not test inline_forbidden_into_p.
10827         * Makefile.in (ipa-inline.o): Update arguments.
10828
10829 2011-04-17  Revital Eres  <revital.eres@linaro.org>
10830
10831         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
10832
10833 2011-04-17  Revital Eres  <revital.eres@linaro.org>
10834
10835         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
10836
10837 2011-04-17  Michael Matz  <matz@suse.de>
10838
10839         PR tree-optimization/48622
10840         PR lto/48645
10841         * ipa-inline-analysis.c (inline_read_summary): Read size/time
10842         in same order as they're written.
10843
10844 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10845
10846         * config/pa/predicates.md: Reorganize and simplify predicates.
10847         Eliminate duplicate code checks.
10848         (arith_operand): Rename to arith14_operand
10849         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
10850         * config/pa/pa.md: Use renamed operands.
10851         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
10852         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
10853         arith11_operand, adddi3_operand, indexed_memory_operand,
10854         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
10855         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
10856         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
10857         move_dest_operand, move_src_operand, prefetch_cc_operand,
10858         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
10859         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
10860         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
10861         div_operand, int5_operand, movb_comparison_operator,
10862         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
10863         arith_double_operand, ireg_operand, lhs_lshift_operand,
10864         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
10865         integer_store_memory_operand): Likewise.
10866         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
10867         (integer_store_memory_operand, read_only_operand,
10868         function_label_operand, borx_reg_operand,
10869         non_hard_reg_operand): Likewise.
10870         (eq_neq_comparison_operator): Delete unused operator.
10871         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
10872         function_label_operand.
10873         (emit_move_sequence): Likewise.
10874
10875 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
10876
10877         * config/i386/sse.md (sseunpackmode): New mode attribute.
10878         (ssepackmode): Ditto.
10879         (vec_pack_trunc_<mode>): Macroize expander from
10880         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
10881         (vec_unpacks_lo_<mode>): Macroize expander from
10882         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
10883         (vec_unpacks_hi_<mode>): Macroize expander from
10884         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
10885         (vec_unpacku_lo_<mode>): Macroize expander from
10886         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
10887         (vec_unpacku_hi_<mode>): Macroize expander from
10888         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
10889         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
10890         ix86_expand_sse4_unpack.
10891         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
10892
10893 2011-04-16  Jan Hubicka  <jh@suse.cz>
10894
10895         * cgraphbuild.c: Include ipa-inline.h.
10896         (reset_inline_failed): Use initialize_inline_failed.
10897         * cgraph.c: Include ipa-inline.h.
10898         (cgraph_create_node_1): Do not initialize estimated_growth.
10899         (initialize_inline_failed): More to ipa-inline-analysis.c
10900         (dump_cgraph_node): Do not dump inline flags.
10901         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
10902         and disregard_inline_limits flags.
10903         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
10904         time, size, estimated_growth.
10905         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
10906         Update.
10907         * cgraphunit.c (cgraph_decide_is_function_needed): Use
10908         DECL_DISREGARD_INLINE_LIMITS.
10909         (cgraph_analyze_function): Do not initialize
10910         node->local.disregard_inline_limits.
10911         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
10912         inlinable, versionable and disregard_inline_limits.
10913         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
10914         cgraph_check_inline_limits, cgraph_default_inline_p,
10915         cgraph_edge_badness, update_caller_keys, update_callee_keys,
10916         add_new_edges_to_heap): Update.
10917         (cgraph_decide_inlining_of_small_function): Update; set
10918         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
10919         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
10920         cgraph_decide_inlining_incrementally): Update.
10921         * ipa-inline.h (inline_summary): Add inlinable, versionable,
10922         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
10923         time, size and estimated_growth parameters.
10924         (estimate_edge_growth): Update.
10925         (initialize_inline_failed): Declare.
10926         * ipa-split.c: Include ipa-inline.h
10927         (execute_split_functions): Update.
10928         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
10929         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
10930         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
10931         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
10932         estimated_growth to INT_MIN.
10933         (inline_node_duplication_hook): Likewise.
10934         (dump_inline_summary): Dump new fields.
10935         (compute_inline_parameters): Update.
10936         (estimate_edge_time, estimate_time_after_inlining,
10937         estimate_size_after_inlining, estimate_growth, inline_read_summary,
10938         inline_write_summary):
10939         (initialize_inline_failed): Move here from cgraph.c.
10940         * tree-sra.c: Include ipa-inline.h.
10941         (ipa_sra_preliminary_function_checks): Update.
10942         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
10943         ipa-inline.h.
10944
10945 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
10946
10947         * config/i386/sse.md (V16): New mode iterator.
10948         (VI1, VI8): Ditto.
10949         (AVXMODEQI, AVXMODEDI): Remove.
10950         (sse2, sse3): New mode attribute.
10951         (mov<mode>): Use V16 mode iterator.
10952         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
10953         (push<mode>1): Use V16 mode iterator.
10954         (movmisalign<mode>): Ditto.
10955         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
10956         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
10957         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
10958         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
10959         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
10960         avx_movdqu<avxmodesuffix>.
10961         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
10962         *avx_movdqu<avxmodesuffix>.
10963         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
10964         avx_lddqu<avxmodesuffix>.
10965         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
10966         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
10967         avx_movnt<AVXMODEDI:mode>.
10968         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
10969         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
10970
10971 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
10972
10973         PR target/48629
10974         * haifa-sched.c (prune_ready_list, schedule_block): Use
10975         sched_pressure_p rather than flag_sched_pressure.
10976
10977 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
10978
10979         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
10980         cgraph_get_node instead of cgraph_get_create_node.
10981
10982 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
10983
10984         * cfgexpand.c (expand_debug_expr): Use
10985         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
10986
10987 2011-04-15  Michael Matz  <matz@suse.de>
10988
10989         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
10990         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
10991         * function.c (gimplify_parameters): Ditto.
10992         * gimplify.c (gimplify_vla_decl): Ditto.
10993
10994         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
10995         (gimple_call_set_alloca_for_var): New inline function.
10996         (gimple_call_alloca_for_var_p): Ditto.
10997         * gimple.c (gimple_build_call_from_tree): Remember
10998         CALL_ALLOCA_FOR_VAR_P state.
10999         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
11000
11001         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
11002         calls if they were for VLA objects.
11003
11004 2011-04-15  Martin Jambor  <mjambor@suse.cz>
11005
11006         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
11007         of ADR_EXPRs.
11008
11009 2011-04-15  Martin Jambor  <mjambor@suse.cz>
11010
11011         PR middle-end/48601
11012         * tree-emutls.c (lower_emutls_function_body): Call
11013         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
11014         result is non-NULL.
11015
11016 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
11017
11018         * c-decl.c (detect_field_duplicates): Call
11019         objc_detect_field_duplicates instead of objc_get_interface_ivars.
11020
11021 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
11022
11023         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
11024         * gimple.c (gimple_asm_clobbers_memory_p): Define.
11025         * ipa-pure-const.c (check_stmt): Call it.
11026         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
11027
11028 2011-04-15  Richard Guenther  <rguenther@suse.de>
11029
11030         PR tree-optimization/48290
11031         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
11032         Properly decide inhibiting propagation based on the valueized
11033         operand.  Do loop-closed SSA form preserving here ...
11034         (init_copy_prop): ... not here.
11035
11036 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
11037
11038         PR target/48612
11039         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
11040         (*ieee_smax<mode>3): Likewise.
11041
11042 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11043
11044         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
11045         Replace match_operand with match_dup for the third operand in
11046         these expanders.
11047
11048 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
11049
11050         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
11051         to track processing of conditionals.  Update all callers.
11052         (try_combine, simplify_if_then_else): Update.
11053
11054 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
11055
11056         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
11057         -fsched-pressure.
11058
11059 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
11060
11061         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
11062         instead of match_operand for operand 3.
11063
11064 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
11065
11066         * recog.h (insn_operand_data): Add an "allows_mem" field.
11067         * genoutput.c (output_operand_data): Initialize it.
11068         * optabs.c (maybe_legitimize_operand_same_code): New function.
11069         (maybe_legitimize_operand): Use it when matching the original
11070         op->value.
11071
11072 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
11073
11074         * gimplify.c: Fix issues in comments throughout.
11075         (voidify_wrapper_expr): Fix long line.
11076         (build_stack_save_restore): Likewise.
11077         (gimplify_loop_expr): Likewise.
11078         (gimplify_compound_lval): Likewise.
11079         (gimplify_init_ctor_eval): Likewise.
11080         (gimplify_modify_expr_rhs): Likewise.
11081         (omp_notice_threadprivate_variable): Likewise.
11082
11083 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
11084
11085         * cfgexpand.c (expand_call_stmt): Convert the function type to the
11086         original one if this is not a builtin function.
11087
11088 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
11089
11090         PR target/48605
11091         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
11092         offset it as needed based on top 2 bits in operands[3], change
11093         MEM mode to SFmode and mask those 2 bits away from operands[3].
11094
11095 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
11096
11097         * c-parser.c (c_parser_objc_protocol_definition): Updated for
11098         change from objc_declare_protocols() to objc_declare_protocol().
11099
11100 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
11101
11102         * config/i386/sse.md (sse4_1): New mode attribute.
11103         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
11104         avx_blend<ssemodesuffix><avxmodesuffix> and
11105         sse4_1_blend<ssemodesuffix> using VF mode iterator.
11106         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
11107         avx_blendv<ssemodesuffix><avxmodesuffix> and
11108         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
11109         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
11110         avx_dp<ssemodesuffix><avxmodesuffix> and
11111         sse4_1_dp<ssemodesuffix> using VF mode iterator.
11112         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
11113         (sse4_1_packusdw): Merge with *avx_packusdw.
11114         (sse4_1_pblendvb): Merge with *avx_pblendvb.
11115         (sse4_1_pblendw): Merge with *avx_pblendw.
11116         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
11117         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
11118         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
11119         VF mode iterator.
11120         (sse4_1_round<ssescalarmodesuffix>): Merge with
11121         *avx_round<ssescalarmodesuffix>.
11122         (aesenc): Merge with *avx_aesenc.
11123         (aesenclast): Merge with *avx_aesenclast.
11124         (aesdec): Merge with *avx_aesdec.
11125         (aesdeclast): Merge with *avx_aesdeclast.
11126         (pclmulqdq): Merge with *pclmulqdq.
11127         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
11128         New predicate.
11129         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
11130
11131 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
11132
11133         PR middle-end/48608
11134         * cfgexpand.c (get_decl_align_unit): Renamed to ...
11135         (align_local_variable): This.  Update DECL_ALIGN.
11136         (add_stack_var): Updated.
11137         (expand_one_stack_var): Likewise.
11138
11139 2011-04-14  Richard Guenther  <rguenther@suse.de>
11140
11141         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
11142         Remove.
11143         (dse_initialize_block_local_data, dse_leave_block,
11144         record_voperand_set, get_stmt_uid): Likewise.
11145         (dse_possible_dead_store_p): Allow any kind of killing stmt.
11146         (dse_optimize_stmt): Remove voperand set handling code.
11147         Simplify and improve to handle any kind of killing stmt.
11148         (dse_record_phi): Remove.
11149         (dse_enter_block): Simplify.
11150         (tree_ssa_dse): Likewise.
11151         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
11152
11153 2011-04-14  Jan Hubicka  <jh@suse.cz>
11154
11155         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
11156         * cgraph.h (struct inline_summary): Move to ipa-inline.h
11157         (cgraph_local_info): Remove inline_summary.
11158         * ipa-cp.c: Include ipa-inline.h.
11159         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
11160         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
11161         accesor.
11162         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
11163         (input_overwrite_node): Do not set inline summary.
11164         (input_node): Do not stream inline summary.
11165         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
11166         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
11167         growth; we do not have inline parameters computed for that anyway.
11168         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
11169         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
11170         (inline_summary_t): New type and VECtor.
11171         (debug_inline_summary, dump_inline_summaries): Declare.
11172         (inline_summary): Use VOCtor.
11173         (estimate_edge_growth): Kill hack computing call stmt size directly.
11174         * lto-section-in.c (lto_section_name): Add inline section.
11175         * ipa-inline-analysis.c: Include lto-streamer.h
11176         (node_removal_hook_holder, node_duplication_hook_holder): New holders
11177         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
11178         (inline_summary_vec): Define.
11179         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
11180         dump_inline_summaries): New functions.
11181         (estimate_function_body_sizes): Properly compute size/time of outgoing
11182         calls.
11183         (compute_inline_parameters): Alloc inline_summary; do not compute
11184         size/time of incomming calls.
11185         (estimate_edge_time): Avoid missing time summary hack.
11186         (inline_read_summary): Read inline summary info.
11187         (inline_write_summary): Write inline summary info.
11188         (inline_free_summary): Free all hooks and inline summary vector.
11189         * lto-streamer.h: Add LTO_section_inline_summary section.
11190         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
11191         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
11192
11193 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11194
11195         * tree-vectorizer.h (vect_strided_store_supported): Add a
11196         HOST_WIDE_INT argument.
11197         (vect_strided_load_supported): Likewise.
11198         (vect_permute_store_chain): Return void.
11199         (vect_transform_strided_load): Likewise.
11200         (vect_permute_load_chain): Delete.
11201         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
11202         count argument.  Check that the count is a power of two.
11203         (vect_strided_load_supported): Likewise.
11204         (vect_permute_store_chain): Return void.  Update after above changes.
11205         Assert that the access is supported.
11206         (vect_permute_load_chain): Likewise.
11207         (vect_transform_strided_load): Return void.
11208         * tree-vect-stmts.c (vectorizable_store): Update calls after
11209         above interface changes.
11210         (vectorizable_load): Likewise.
11211         (vect_analyze_stmt): Don't check for strided powers of two here.
11212
11213 2011-04-14  Richard Guenther  <rguenther@suse.de>
11214
11215         PR tree-optimization/48590
11216         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
11217         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
11218         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
11219         BUILT_IN_STACK_SAVE.
11220         * tree-ssa-dce.c (propagate_necessity): Handle
11221         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
11222
11223 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
11224
11225         * c-parser.c (c_parser_objc_class_declaration): Updated call to
11226         objc_declare_class.
11227
11228 2011-04-14  Richard Guenther  <rguenther@suse.de>
11229
11230         * tree.h (get_object_alignment_1): Declare.
11231         * builtins.c (get_object_alignment_1): Split out worker from ...
11232         (get_object_alignment): ... here.
11233         * fold-const.c (get_pointer_modulus_and_residue): Use
11234         get_object_alignment_1.
11235
11236 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11237
11238         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
11239         type parameter.
11240         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
11241         parameter.  Generalise code to handle arrays as well as vectors.
11242         (vect_setup_realignment): Update accordingly.
11243         * tree-vect-stmts.c (vectorizable_store): Likewise.
11244         (vectorizable_load): Likewise.
11245
11246 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11247
11248         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
11249         within the per-copy loop.
11250
11251 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11252
11253         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
11254         in the dump file.
11255
11256 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11257
11258         * doc/options.texi (Negative): Explicitly mention that the
11259         Negative chain must be circular.
11260
11261 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
11262
11263         * function.h (block_chainon): Declare.
11264         * function.c (block_chainon): Define.
11265
11266 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
11267             Eric Weddington  <eric.weddington@atmel.com>
11268             Georg-Johann Lay  <avr@gjlay.de>
11269
11270         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
11271         New Includes
11272         (avr_init_builtins, avr_expand_builtin,
11273         avr_expand_delay_cycles, avr_expand_unop_builtin,
11274         avr_expand_binop_builtin ): New functions.
11275         (avr_builtin_id): New enum
11276         (struct avr_builtin_description): New struct
11277         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
11278         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
11279
11280         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
11281         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
11282         UNSPECV_DELAY_CYCLES): new enumeration values
11283         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
11284         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
11285         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
11286         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
11287         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
11288         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
11289         "fmulsu"): New insns
11290
11291         * config/avr/avr-c.c: fix line endings
11292         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
11293         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
11294         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
11295         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
11296         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
11297
11298         * doc/extend.texi (AVR Built-in Functions): New node
11299         (Target Builtins): Add documentation of AVR
11300         built-in functions.
11301
11302 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
11303
11304         PR target/44643
11305         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
11306         alone. Error if non-const data has attribute progmem.
11307
11308 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11309
11310         * tree.h (struct tree_constructor): Include tree_typed instead of
11311         tree_common.
11312         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
11313         TS_TYPED instead of TS_COMMON.
11314
11315 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
11316
11317         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
11318         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
11319         (sse2_psadbw): Merge with *avx_psadbw.
11320         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
11321         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
11322         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
11323         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
11324         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
11325         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
11326         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
11327         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
11328         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
11329         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
11330         (ssse3_palignrti): Merge with *avx_palignrti.
11331
11332 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11333
11334         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
11335         * tree-ssanames.c (fini_ssanames): VEC_free it.
11336         (make_ssa_name_fn): Update for VECness of free_ssanames.
11337         (release_ssa_name, release_dead_ssa_names): Likewise.
11338         * tree.h (struct tree_ssa_name): Include tree_typed instead of
11339         tree_common.
11340         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
11341         TS_TYPED instead of TS_COMMON.
11342
11343 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11344
11345         * postreload-gcse.c (gcse_after_reload_main): Add calls to
11346         statistics_counter_event.
11347         * tree-ssa-copyrename.c (stats): Define.
11348         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
11349         statistics_counter_event.
11350         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
11351         (bswap_stats, widen_mul_stats): Define.
11352         (insert_reciprocals): Increment rdivs_inserted.
11353         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
11354         rfuncs_inserted.  Add calls to statistics_counter_event.
11355         (execute_cse_sincos_1): Increment inserted.
11356         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
11357         statistics_counter_event.
11358         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
11359         of bswap_stats.  Add calls to statistics_counter_event.
11360         (convert_mult_to_widen): Increment widen_mults_inserted.
11361         (convert_plusminus_to_widen): Increment maccs_inserted.
11362         (convert_mult_to_fma): Increment fmas_inserted.
11363         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
11364         calls to statistics_counter_event.
11365
11366 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
11367
11368         PR rtl-optimization/48455
11369         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
11370         `temp_costs->mem_cost'.
11371
11372 2011-04-13  Jan Hubicka  <jh@suse.cz>
11373
11374         * ipa-inline.h: New file.
11375         * ipa-inline-analysis.c: New file. Broken out of ...
11376         * ipa-inline.c: ... this file; update toplevel comment;
11377         include ipa-inline.h
11378         (inline_summary): Move to ipa-inline.h
11379         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
11380         ipa-inline-analysis.c.
11381         (cgraph_estimate_time_after_inlining): Rename to
11382         estiamte_time_after_inlining; move to ipa-inline-analysis.c
11383         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
11384         to estimate_edge_growth.
11385         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
11386         rename to estimate_size_after_inlining.
11387         (cgraph_mark_inline_edge): Update for new naming convention.
11388         (cgraph_check_inline_limits): Likewise.
11389         (cgraph_edge_badness): Likewise.
11390         (cgraph_decide_recursive_inlining): Likewise.
11391         (cgraph_decide_inlining_of_small_functions): Likewise.
11392         (cgraph_decide_inlining_incrementally): Likewise.
11393         (cgraph_estimate_growth): Rename to estimate_growth; move to
11394         ipa-inline-analysis.c.
11395         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
11396         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
11397         (compute_inline_parameters): Likewise.
11398         (compute_inline_parameters_for_current): Likewise.
11399         (pass_inline_parameters): Likewise.
11400         (inline_indirect_intraprocedural_analysis): Likewise.
11401         (analyze_function): Rename to inline_analyze_function; likewise.
11402         (add_new_function): Move to ipa-inline-analysis.c.
11403         (inline_generate_summary): Likewise.
11404         (inline_read_summary): Likewise.
11405         (inline_write_summary): Likewise.
11406         * Makefile.in (ipa-inline-analysis.c): New file.
11407
11408 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11409
11410         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
11411         * configure: Regenerate.
11412
11413 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11414
11415         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
11416         instead of tree_common.
11417         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
11418         Likewise.
11419         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
11420         TS_TYPED rather than TS_COMMON.
11421         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
11422
11423 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
11424
11425         PR target/45263
11426         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
11427         r20 around calls of __tablejump_elpm__
11428
11429 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
11430
11431         PR middle-end/48591
11432         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
11433         NULL.
11434         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
11435
11436 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
11437
11438         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
11439         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
11440         (cfi_vec): New typedef.
11441         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
11442         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
11443         (cie_cfi_vec): New static variable.
11444         (cie_cfi_head): Delete.
11445         (add_cfi): Accept a cfi_vec * as first argument. All callers and
11446         declaration changed. Use vector rather than list operations.
11447         (new_cfi): Don't initialize the dw_cfi_next field.
11448         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
11449         rather than list operations.
11450         (lookup_cfa): Use vector rather than list operations.
11451         (output_cfis): New argument upto. Accept a cfi_vec rather than
11452         a dw_cfi_ref list head as argument. All callers changed.
11453         Iterate over the vector using upto as a maximum index.
11454         (output_all_cfis): New static function.
11455         (output_fde): Use vector rather than list operations. Use the
11456         new upto argument for output_cfis rather than manipulating a
11457         list.
11458         (dwarf2out_begin_prologue): Change initializations to match
11459         new struct members.
11460         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
11461         from the vector length rather than searching for the end of a list.
11462         Use output_all_cfis.
11463         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
11464
11465 2011-04-13  Nick Clifton  <nickc@redhat.com>
11466
11467         * config/rx/rx.md (movmemsi): Do not use this pattern when
11468         volatile pointers are involved.
11469
11470 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
11471
11472         * config/i386/sse.md (pinsrbits): Remove.
11473         (sse2_packsswb): Merge with *avx_packsswb.
11474         (sse2_packssdw): Merge with *avx_packssdw.
11475         (sse2_packuswb): Merge with *avx_packuswb.
11476         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
11477         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
11478         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
11479         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
11480         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
11481         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
11482         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
11483         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
11484         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
11485         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
11486         (sse2_loadld): Merge with *avx_loadld.
11487         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
11488         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
11489         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
11490         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
11491         (vec_concatv2di): Merge with *vec_concatv2di_avx.
11492
11493 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
11494
11495         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
11496         calling TREE_CHAIN.
11497         * print-tree.c (print_node): Likewise.
11498         * tree-inline.c (copy_tree_r): Likewise.
11499         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
11500         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
11501         instead of TS_COMMON.
11502         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
11503         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
11504         (copy_node_stat): Zero TREE_CHAIN only if necessary.
11505         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
11506         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
11507         ...and these...
11508         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
11509         * tree.h: ...here.
11510         (TREE_CHAIN): Check for a TS_COMMON structure.
11511         (TREE_TYPE): Check for a TS_TYPED structure.
11512
11513 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
11514
11515         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
11516         cgraph_get_create_node instead of cgraph_node.
11517
11518 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11519
11520         * c-parser.c (c_parser_initelt): Updated call to
11521         objc_build_message_expr.
11522         (c_parser_postfix_expression): Likewise.
11523
11524 2011-04-12  Kai Tietz  <ktietz@redhat.com>
11525
11526         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
11527         MASK_MS_BITFIELD_LAYOUT bit.
11528
11529 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11530
11531         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
11532         assert it is always true.
11533         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
11534         moves.
11535
11536 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11537
11538         * c-parser.c (c_lex_one_token): Rewritten conditional used when
11539         compiling Objective-C to be more efficient.
11540
11541 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
11542
11543         * opts-common.c (decode_cmdline_options_to_array): Remove variable
11544         argv_copied.
11545
11546 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11547
11548         * recog.h, genoutput.c, optabs.c: Revert last patch.
11549
11550 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11551
11552         PR target/48090
11553         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
11554
11555 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11556
11557         * recog.h (insn_operand_data): Add an "allows_mem" field.
11558         * genoutput.c (output_operand_data): Initialize it.
11559         * optabs.c (maybe_legitimize_operand_same_code): New function.
11560         (maybe_legitimize_operand): Use it when matching the original
11561         op->value.
11562
11563 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11564
11565         * genpreds.c (process_define_predicate): Move most processing
11566         to gensupport.c.  Continue to validate the expression.
11567         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
11568         (process_define_predicate): Move processing to gensupport.c.
11569         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
11570         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
11571         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
11572         argument.
11573         (valid_predicate_name_p): New function, split out from old
11574         genpreds.c:process_define_predicate.
11575         (process_define_predicate): New function, combining code from
11576         old genpreds.c and genrecog.c functions.
11577         (process_rtx): Call it for DEFINE_PREDICATE and
11578         DEFINE_SPECIAL_PREDICATE.
11579
11580 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11581
11582         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
11583         size of a '%A' memory reference.
11584         (T_DREG, T_QREG): New neon_builtin_type_bits.
11585         (arm_init_neon_builtins): Assert that the load and store operands
11586         are neon_struct_operands.
11587         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
11588         (NEON_ARG_MEMORY): New builtin_arg.
11589         (neon_dereference_pointer): New function.
11590         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
11591         Handle NEON_ARG_MEMORY.
11592         (arm_expand_neon_builtin): Update after above interface changes.
11593         Use NEON_ARG_MEMORY for loads and stores.
11594         * config/arm/predicates.md (neon_struct_operand): New predicate.
11595         * config/arm/iterators.md (V_two_elem): Tweak formatting.
11596         (V_three_elem): Use BLKmode for accesses that have no associated mode.
11597         (V_four_elem): Tweak formatting.
11598         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
11599         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
11600         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
11601         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
11602         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
11603         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
11604         (neon_vst4<mode>): Replace pointer operand with a memory operand.
11605         Use %A in the output template.
11606         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
11607         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
11608         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
11609         the width of the memory access.  Remove post-increment.
11610         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
11611
11612 2011-04-12  Nick Clifton  <nickc@redhat.com>
11613
11614         * config/v850/v850.c (expand_prologue): Do not use the CALLT
11615         instruction for interrupt handlers if the target is the basic V850
11616         architecture.
11617         (expand_epilogue): Likewise.
11618
11619 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11620
11621         PR rtl-optimization/48549
11622         * combine.c (propagate_for_debug): Also stop after BB_END of
11623         this_basic_block.  Process LAST and just stop processing after it.
11624         (combine_instructions): If last_combined_insn has been deleted,
11625         set last_combined_insn to its PREV_INSN.
11626
11627 2011-04-12  Richard Guenther  <rguenther@suse.de>
11628
11629         PR tree-optimization/46076
11630         * gimple.h (struct gimple_statement_call): Add fntype field.
11631         (gimple_call_fntype): Adjust.
11632         (gimple_call_set_fntype): New function.
11633         * gimple.c (gimple_build_call_1): Set the call function type.
11634         * gimplify.c (gimplify_call_expr): Preserve the function
11635         type the frontend used for the call.
11636         (gimplify_modify_expr): Likewise.
11637         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
11638         function type.
11639         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
11640         function type.
11641         * tree-ssa.c (useless_type_conversion_p): Function pointer
11642         conversions are useless.
11643
11644 2011-04-12  Martin Jambor  <mjambor@suse.cz>
11645
11646         * cgraph.h (cgraph_node): Remove function declaration.
11647         (cgraph_create_node): Declare.
11648         (cgraph_get_create_node): Likewise.
11649         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
11650         Updated all callers.
11651         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
11652         the decl does not already exist.  Call cgraph_get_create_node instead
11653         of cgraph_node.
11654         (cgraph_get_create_node): New function.
11655         (cgraph_same_body_alias): Update comment.
11656         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
11657         assert it does not return NULL.
11658         (cgraph_update_edges_for_call_stmt): Likewise.
11659         (cgraph_clone_edge): Likewise.
11660         (cgraph_create_virtual_clone): Likewise.
11661         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
11662         instead of cgraph_node.
11663         (cgraph_add_new_function): Call cgraph_create_node or
11664         cgraph_get_create_node instead of cgraph_node.
11665         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
11666         instead of cgraph_node.
11667         (record_eh_tables): Likewise.
11668         (mark_address): Likewise.
11669         (mark_load): Likewise.
11670         (build_cgraph_edges): Call cgraph_get_create_node instead
11671         of cgraph_node.
11672         (rebuild_cgraph_edges): Likewise.
11673         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
11674         instead of cgraph_node.
11675         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
11676         cgraph_node.
11677         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
11678         cgraph_create_node instead of cgraph_node.
11679         * c-decl.c (finish_function): Call cgraph_get_create_node instead
11680         of cgraph_node.
11681         * lto-cgraph.c (input_node): Likewise.
11682         * lto-streamer-in.c (input_function): Likewise.
11683         * varasm.c (mark_decl_referenced): Likewise.
11684         (assemble_alias): Likewise.
11685
11686 2011-04-12  Martin Jambor  <mjambor@suse.cz>
11687
11688         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
11689         instead of cgraph_node and assert it does not return NULL.
11690         * lto-streamer-in.c (lto_read_body): Likewise.
11691         * omp-low.c (new_omp_context): Likewise.
11692         (create_task_copyfn): Likewise.
11693         * tree-emutls.c (lower_emutls_function_body): Likewise.
11694         * matrix-reorg.c (transform_allocation_sites): Likewise.
11695
11696 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11697
11698         PR c/48552
11699         * c-typeck.c (build_asm_expr): Error out on attempts to use
11700         void type outputs or inputs for constraints that allow reg or
11701         don't allow memory.
11702
11703 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
11704             Richard Earnshaw  <rearnsha@arm.com>
11705
11706         PR target/48250
11707         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
11708         to use sign-magnitude offsets. Reject unsupported unaligned
11709         cases. Add detailed description in comments.
11710         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
11711         condition from TARGET_32BIT to TARGET_ARM.
11712
11713 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
11714
11715         * tree.h (struct typed_tree): New.
11716         (struct tree_common): Include it instead of tree_base.
11717         (TREE_TYPE): Update for new location of type field.
11718         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
11719         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
11720         (union tree_node): Add typed field.
11721         * treestruct.def (TS_TYPED): New.
11722         * lto-streamer.c (check_handled_ts_structures): Handle it.
11723         * tree.c (MARK_TS_TYPED): New macro.
11724         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
11725
11726 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
11727
11728         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
11729         (force_nonfallthru): Do not alter the loop nest if no basic block
11730         was created.
11731
11732 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
11733
11734         * config/i386/sse.md (VI): New mode iterator.
11735         (SSEMODEI): Remove.
11736         (AVX256MODEI): Ditto.
11737         (AVXMODEF4P): Ditto.
11738         (avxvecpsmode): Ditto.
11739         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
11740         (sse2_andnot<mode>3): New expander.
11741         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
11742         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
11743         (<any_logic:code><mode>3): Use VI mode iterator.
11744         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
11745         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
11746         (*andnottf3): Handle AVX three-operand constraints.
11747         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
11748
11749 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11750             Robert Millan  <rmh@gnu.org>
11751
11752         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
11753         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
11754         GNU_USER_DYNAMIC_LINKER64): Define.
11755         (REG_NAME): Don't undefine.
11756         (MD_UNWIND_SUPPORT): Undefine.
11757         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
11758         (REG_NAME): Don't undefine.
11759         (MD_UNWIND_SUPPORT): Undefine.
11760         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
11761
11762 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11763
11764         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
11765         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
11766
11767 2011-04-11  Xinliang David Li  <davidxl@google.com>
11768
11769         * value-profile.c (check_ic_target): New function.
11770         (gimple_ic_transform): Sanity check indirect call target.
11771         * gimple-low.c (gimple_check_call_args): Interface change.
11772         (gimple_check_call_matching_types): New function.
11773         * tree-inline.c (tree_can_inline_p): Call new function.
11774
11775 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
11776
11777         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
11778         tree-pretty-print.h & realmpfr.h.
11779
11780 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
11781
11782         PR middle-end/48464
11783         * ira.c (setup_pressure_classes): Fix typo in loop condition.
11784         (setup_allocno_and_important_classes): Ditto.
11785
11786 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11787
11788         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
11789         GNU_USER_DYNAMIC_LINKER.
11790         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
11791         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11792         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
11793         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11794         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11795         GNU_USER_TARGET_OS_CPP_BUILTINS.
11796         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
11797         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11798         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
11799         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11800         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
11801         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11802         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11803         GNU_USER_TARGET_OS_CPP_BUILTINS.
11804         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11805         GNU_USER_DYNAMIC_LINKER.
11806         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11807         GNU_USER_TARGET_OS_CPP_BUILTINS.
11808         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
11809         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11810         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
11811         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11812         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
11813         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
11814         GNU_USER_DYNAMIC_LINKER64): Remove.
11815         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
11816         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11817         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11818         GNU_USER_DYNAMIC_LINKER.
11819         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11820         GNU_USER_TARGET_OS_CPP_BUILTINS.
11821         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11822         GNU_USER_TARGET_OS_CPP_BUILTINS.
11823         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
11824         to GNU_USER_TARGET_OS_CPP_BUILTINS.
11825         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11826         GNU_USER_TARGET_OS_CPP_BUILTINS.
11827         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
11828         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
11829         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
11830         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
11831         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11832         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11833         GNU_USER_DYNAMIC_LINKER.
11834         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11835         GNU_USER_TARGET_OS_CPP_BUILTINS.
11836         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
11837         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11838         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11839         GNU_USER_DYNAMIC_LINKER.
11840         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
11841         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11842         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
11843         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11844         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11845         GNU_USER_DYNAMIC_LINKER.
11846         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
11847         GNU_USER_DYNAMIC_LINKERN32.
11848         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
11849         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
11850         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
11851         GNU_USER_DYNAMIC_LINKER32.
11852         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
11853         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11854         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11855         GNU_USER_DYNAMIC_LINKER.
11856         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
11857         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11858         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
11859         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11860         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11861         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
11862         GNU_USER_DYNAMIC_LINKER32.
11863         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
11864         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
11865         GNU_USER_DYNAMIC_LINKER.
11866         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
11867         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11868         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
11869         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
11870         GNU_USER_DYNAMIC_LINKER64.
11871         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
11872         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11873         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11874         GNU_USER_DYNAMIC_LINKER.
11875         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
11876         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11877         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11878         GNU_USER_DYNAMIC_LINKER.
11879         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
11880         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11881         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
11882         GNU_USER_DYNAMIC_LINKER32.
11883         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
11884         GNU_USER_DYNAMIC_LINKER64.
11885         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
11886         GNU_USER_DYNAMIC_LINKER64.
11887         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
11888         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11889         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
11890         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11891         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11892
11893 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11894
11895         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
11896         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
11897         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
11898         GNU_USER_DYNAMIC_LINKER.
11899         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
11900         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
11901         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
11902         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
11903         GNU_USER_DYNAMIC_LINKER64.
11904         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
11905         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
11906         GNU_USER_LINK_EMULATION.
11907         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
11908         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
11909         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
11910         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
11911         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
11912         CPP_SPEC, CC1_SPEC): Remove.
11913         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
11914         (GNU_USER_DYNAMIC_LINKER): Define.
11915         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
11916         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
11917         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
11918         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
11919         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
11920         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
11921         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
11922         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
11923         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
11924         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
11925         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
11926         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
11927         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
11928         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
11929         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
11930         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
11931         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
11932         GNU_USER_DYNAMIC_LINKER.
11933         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
11934         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
11935         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
11936         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
11937         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
11938         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
11939         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
11940         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
11941         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
11942         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
11943
11944 2011-04-11  Kai Tietz  <ktietz@redhat.com>
11945
11946         PR target/9601
11947         PR target/11772
11948         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
11949         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
11950         comment.
11951         (ix86_is_msabi_thiscall): Removed.
11952         (ix86_is_type_thiscall): Likewise.
11953         (ix86_get_callcvt): New function.
11954         (ix86_comp_type_attributes): Simplify check.
11955         (ix86_function_regparm): Use ix86_get_callcvt for calling
11956         convention attribute checks.
11957         (ix86_return_pops_args): Likewise.
11958         (ix86_static_chain): Likewise.
11959         (x86_this_parameter): Likewise.
11960         (x86_output_mi_thunk): Likewise.
11961         (ix86_function_type_abi): Optimize check for types without attributes.
11962         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
11963         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
11964         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
11965         by flag-values.
11966         (IX86_BASE_CALLCVT): Helper macro.
11967         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
11968         Use ix86_get_callcvt for calling convention attribute checks and avoid
11969         symbol-decoration for stdcall in TARGET_RTD case.
11970         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
11971         Likewise.
11972         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
11973         for declaration.
11974
11975 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
11976
11977         * config/i386/sse.md (VI_128): New mode iterator.
11978         (VI12_128): Rename from SSEMODE12.
11979         (VI14_128): Rename from SSEMODE14.
11980         (VI124_128): New mode iterator.
11981         (VI24_128): Rename from SSEMODE248.
11982         (VI248_128): Rename from SSEMODE248.
11983         (SSEMODE124C8): Remove.
11984         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
11985         (*sse2_<plusminus_insn><mode>3): Merge with
11986         *avx_<plusminus_insn><mode>3.
11987         (*mulv8hi3): Merge with *avx_mulv8hi3.
11988         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
11989         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
11990         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
11991         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
11992         (ashr<mode>3): Merge with *avx_ashr<mode>3.
11993         (lshr<mode>3): Merge with *avx_lshr<mode>3.
11994         (ashl<mode>3): Merge with *avx_ashl<mode>3.
11995         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
11996         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
11997         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
11998         (*<smaxmin:code>v8hi3): Ditto.
11999         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
12000         (*<smaxmin:code>v16qi3): Ditto.
12001         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
12002         (*sse2_eq<mode>3): Ditto.
12003         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
12004         (*sse2_gt<mode>3): Ditto.
12005         (vcondv2di): Split out of vcond<mode>.
12006         (vconduv2di): Split out of vcondu<mode>.
12007
12008 2011-04-11  Richard Guenther  <rguenther@suse.de>
12009
12010         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
12011         before calling tree_low_cst.
12012
12013 2011-04-11  Richard Guenther  <rguenther@suse.de>
12014
12015         * stor-layout.c (layout_type): Compute all array index size operations
12016         in the original type.
12017         (initialize_sizetypes): Add comment.
12018         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
12019
12020 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
12021
12022         * common.opt (Tbss=, Tdata=, Ttext=): New options.
12023
12024 2011-04-11  Martin Jambor  <mjambor@suse.cz>
12025
12026         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
12027         of cgraph_node, handle NULL return value.
12028         (cgraph_global_info): Likewise.
12029         (cgraph_rtl_info): Likewise.
12030         * tree-inline.c (estimate_num_insns): Likewise.
12031         * gimplify.c (unshare_body): Likewise.
12032         (unvisit_body): Likewise.
12033         (gimplify_body): Likewise.
12034         * predict.c (optimize_function_for_size_p): Likewise.
12035         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
12036         (call_may_clobber_ref_p_1): Likewise.
12037         * varasm.c (function_section_1): Likewise.
12038         (assemble_start_function): Likewise.
12039
12040 2011-04-11  Martin Jambor  <mjambor@suse.cz>
12041
12042         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
12043         of cgraph_node.
12044         * final.c (rest_of_clean_state): Likewise.
12045         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
12046         * passes.c (pass_init_dump_file): Likewise.
12047         (execute_all_ipa_transforms): Likewise.
12048         (function_called_by_processed_nodes_p): Likewise.
12049         * predict.c (maybe_hot_frequency_p): Likewise.
12050         (probably_never_executed_bb_p): Likewise.
12051         (compute_function_frequency): Likewise.
12052         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
12053         (unnest_nesting_tree_1): Likewise.
12054         (lower_nested_functions): Likewise.
12055         * tree-optimize.c (execute_fixup_cfg): Likewise.
12056         (tree_rest_of_compilation): Likewise.
12057         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
12058         * tree-sra.c (ipa_early_sra): Likewise.
12059         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
12060         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
12061         * ipa.c (record_cdtor_fn): Likewise.
12062         * ipa-inline.c (cgraph_early_inlining): Likewise.
12063         (compute_inline_parameters_for_current): Likewise.
12064         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
12065         * ipa-pure-const.c (local_pure_const): Likewise.
12066         * ipa-split.c (split_function): Likewise.
12067         (execute_split_functions): Likewise.
12068         * cgraphbuild.c (build_cgraph_edges): Likewise.
12069         (rebuild_cgraph_edges): Likewise.
12070         (cgraph_rebuild_references): Likewise.
12071         (remove_cgraph_callee_edges): Likewise.
12072         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
12073         (verify_cgraph_node): Likewise.
12074         (cgraph_analyze_functions): Likewise.
12075         (cgraph_preserve_function_body_p): Likewise.
12076         (save_inline_function_body): Likewise.
12077         (save_inline_function_body): Likewise.
12078         * tree-inline.c (copy_bb): Likewise.
12079         (optimize_inline_calls): Likewise.
12080
12081 2011-04-11  Martin Jambor  <mjambor@suse.cz>
12082
12083         PR tree-optimization/48195
12084         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
12085         ipa_check_create_edge_args.
12086         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
12087         ipa_check_create_edge_args.
12088         * ipa-inline.c (inline_generate_summary): Do not call
12089         ipa_check_create_node_params and ipa_check_create_edge_args.
12090         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
12091         ipa_check_create_edge_args.
12092
12093 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
12094
12095         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
12096         instead of loop.
12097         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
12098         * function.c (record_hard_reg_sets): Likewise.
12099         * ira.c (compute_regs_asm_clobbered): Likewise.
12100         * sched-deps.c (sched_analyze_1): Likewise.
12101         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
12102
12103 2011-04-09  Xinliang David Li  <davidxl@google.com>
12104
12105         PR tree-optimization/PR48484
12106         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
12107         has_valid_pred lazily
12108
12109 2011-04-09  Duncan Sands  <baldrick@free.fr>
12110
12111         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
12112
12113 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
12114
12115         * combine.c (combine_validate_cost): Adjust comments.  Set registered
12116         cost of I0 to zero at the end, if any.
12117
12118 2011-04-08  Xinliang David Li  <davidxl@google.com>
12119
12120         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
12121         to insane profile data.
12122
12123 2011-04-08  Xinliang David Li  <davidxl@google.com>
12124
12125         * ipa-cp.c (ipcp_update_profiling): Correct
12126          negative scale factor due to insane profile data.
12127
12128 2011-04-08  Xinliang David Li  <davidxl@google.com>
12129
12130         * final.c (dump_basic_block_info): New function.
12131         (final): Dump basic block.
12132         (final_scan_insn): Remove old dump.
12133
12134 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
12135
12136         PR target/47829
12137         * config.gcc (i386-*-freebsd): Disable unwind table generation for
12138         crtbegin/crtend.
12139
12140 2011-04-08  Michael Matz  <matz@suse.de>
12141
12142         PR middle-end/48389
12143         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
12144         functions.
12145         (rebuild_jump_labels): Call rebuild_jump_labels_1.
12146         * rtl.h (rebuild_jump_labels_chain): Declare.
12147         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
12148         insns inserted on edges.
12149
12150 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
12151
12152         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
12153         * config/arm/arm-arches.def: New.
12154         * config/arm/arm-opts.h: New.
12155         * config/arm/genopt.sh: New.
12156         * config/arm/arm-tables.opt: New (generated).
12157         * config/arm/arm.c (arm_handle_option, arm_target_help,
12158         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
12159         (all_architectures): Get most table contents from arm-arches.def.
12160         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
12161         arm_selected_tune here.
12162         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
12163         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
12164         (march=, mcpu=, mtune=): Use Enum and Var.
12165         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
12166         (arm.o): Update dependencies.
12167
12168 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
12169
12170         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
12171         of header_file.
12172         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
12173         (write_typed_alloc_defns): Likewise.
12174         (main): Calls write_typed_alloc_defns with output_header.
12175
12176 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
12177
12178         PR inline-asm/48435
12179         * ira-color.c (setup_profitable_hard_regs): Add comments.
12180         Don't take prohibited hard regs into account.
12181         (setup_conflict_profitable_regs): Rename to
12182         get_conflict_profitable_regs.
12183         (check_hard_reg_p): Check prohibited hard regs.
12184
12185 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
12186
12187         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
12188         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
12189         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
12190
12191 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12192
12193         PR target/48366
12194         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
12195         move from floating point to shift amount register.
12196         (emit_move_sequence): Remove secondary reload support for floating
12197         point to shift amount amount register copies.
12198         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
12199         amount register copies.
12200         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
12201         register, return false if mode isn't a scalar integer mode.
12202         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
12203
12204 2011-04-08  Richard Guenther  <rguenther@suse.de>
12205
12206         * gimple.c (gimple_call_flags): Remove kludge.
12207
12208 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12209
12210         * sel-sched.c (sel_region_init): Move call to
12211         sel_setup_region_sched_flags after setup_current_loop_nest.
12212
12213 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
12214
12215         PR rtl-optimization/48272
12216         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
12217         init_insn_reg_pressure_info.  Adjust a caller.
12218         * sched-int.h (init_insn_reg_pressure_info): Declare.
12219         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
12220         when sched-pressure is enabled.
12221
12222 2011-04-08  Richard Guenther  <rguenther@suse.de>
12223
12224         * gimple.c (gimple_set_modified): Do not queue calls to
12225         MODIFIED_NORETURN_CALLS here ...
12226         * tree-ssa-operands.c (update_stmt_operands): ... but here.
12227
12228 2011-04-08  Richard Guenther  <rguenther@suse.de>
12229
12230         PR lto/48467
12231         * toplev.c (lang_dependent_init): Do not open asm_out_file
12232         in WPA mode, nor perform debug machinery initialization.
12233         (finalize): Do not unlink asm_out_file in WPA mode.
12234
12235 2011-04-08  Richard Guenther  <rguenther@suse.de>
12236
12237         * gimple.h (gimple_call_fntype): New function.
12238         (gimple_call_return_type): Use it.
12239         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
12240         * gimple-low.c (gimple_check_call_args): Likewise.
12241         * gimple.c (gimple_call_flags): Likewise.
12242         (gimple_call_arg_flags): Likewise.
12243         (gimple_call_return_flags): Likewise.
12244         * tree-cfg.c (verify_gimple_call): Likewise.
12245         (do_warn_unused_result): Likewise.
12246         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
12247         * value-prof.c (gimple_ic_transform): Fix fndecl check.
12248
12249 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
12250
12251         PR rtl-optimization/48235
12252         * sel-sched.c (code_motion_process_successors): Recompute the last
12253         insn in basic block if control flow changed.
12254         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
12255         Update condition for ilist_remove.
12256
12257 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12258
12259         PR rtl-optimization/48302
12260         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
12261         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
12262         it to record added preheader blocks.
12263         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
12264         on to sel_add_loop_preheaders.
12265         (sel_region_init): Move call to setup_current_loop_nest after
12266         sel_init_bbs.
12267
12268 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12269
12270         PR target/48273
12271         * cfgloop.h (loop_has_exit_edges): New helper.
12272         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
12273         non-clonable.
12274         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
12275         that have no exit edges.
12276
12277 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12278
12279         PR rtl-optimization/48442
12280         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
12281         all callers.  Adjust assert.
12282
12283 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
12284
12285         PR tree-optimization/48377
12286         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
12287         is_packed to true even for types with smaller TYPE_ALIGN than
12288         TYPE_SIZE.
12289
12290 2011-04-08  Richard Guenther  <rguenther@suse.de>
12291
12292         PR bootstrap/48513
12293         * doc/tm.texi: Re-generate.
12294
12295 2011-04-08  Wei Guozhi  <carrot@google.com>
12296
12297         PR target/47855
12298         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
12299         * config/arm/arm.c (arm_attr_length_push_multi): New function.
12300         * config/arm/arm.md (*push_multi): Change the length computation to
12301         call a C function.
12302
12303 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
12304
12305         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
12306         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
12307         * doc/tm.texi: Regenerate.
12308         * system.h (ASM_OUTPUT_BSS): Poison.
12309         * varasm.c (asm_output_bss): Remove function.
12310         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
12311
12312         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
12313         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
12314         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
12315         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12316         Likewise.
12317         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12318         Likewise.
12319         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12320         Likewise.
12321         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
12322
12323 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
12324
12325         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
12326         EnumValue lines.
12327
12328 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
12329
12330         * config/m68k/m68k.c (m68k_handle_option): Don't handle
12331         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
12332         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
12333         OPT_mcpu32.
12334         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
12335         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
12336         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
12337         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
12338         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
12339         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
12340         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
12341         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
12342         options.  Don't map other m68k options manually.  Don't handle
12343         old-style options as canonical.
12344         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
12345         * doc/install.texi (m68k-*-*): Document binutils version requirement.
12346
12347 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
12348
12349         * basic-block.h (force_nonfallthru): Move to...
12350         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
12351         (force_nonfallthru): ...here.
12352         * cfghooks.c (force_nonfallthru): New function.
12353         * cfgrtl.c (force_nonfallthru): Rename into...
12354         (rtl_force_nonfallthru): ...this.
12355         (commit_one_edge_insertion): Do not set AUX field.
12356         (commit_edge_insertions): Do not discover new basic blocks.
12357         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
12358         (cfg_layout_rtl_cfg_hooks): Likewise.
12359         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
12360         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
12361         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
12362
12363 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
12364
12365         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12366         Remove macros.
12367
12368 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
12369
12370         * config/i386/sse.md: Update copyright year.
12371         (avxcvtvecmode): Remove.
12372         (sse_movhlps): Merge with *avx_movhlps.
12373         (sse_movlhps): Merge with *avx_movlhps.
12374         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
12375         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
12376         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
12377         (sse_loadhps): Merge with *avx_loadhps.
12378         (sse_storelps): Merge with *avx_storelps.
12379         (sse_loadlps): Merge with *avx_loadlps.
12380         (sse_movss): Merge with *avx_movss.
12381         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
12382         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
12383         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
12384         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
12385         (vec_set<mode>_0): Ditto.
12386         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
12387         (sse4_1_insertps): Merge with *avx_insertps.
12388         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
12389         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
12390         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
12391         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
12392         (sse2_storehpd): Merge with *avx_storehpd.
12393         (sse2_loadhpd): Merge with *avx_loadhpd.
12394         (sse2_loadlpd): Merge with *avx_loadlpd.
12395         (sse2_movsd): Merge with *avx_movsd.
12396         (*vec_concatv2df): Merge with *vec_concatv2df.
12397
12398 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
12399
12400         PR debug/48343
12401         * combine.c (combine_instructions): Add last_combined_insn,
12402         update it if insn is after it, pass it to all try_combine calls.
12403         (try_combine): Add last_combined_insn parameter, pass it instead of
12404         i3 to propagate_for_debug.
12405
12406 2011-04-07  Nick Clifton  <nickc@redhat.com>
12407
12408         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
12409         to handle MDR <-> data register transfers.
12410         (movhi_internal): Likewise.
12411
12412 2011-04-07  Alan Modra  <amodra@gmail.com>
12413
12414         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
12415         previous stack info.
12416
12417 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12418
12419         PR target/43920
12420         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
12421         flow_find_cross_jump.  Swap variables to implement backward replacement.
12422         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
12423
12424 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12425
12426         PR target/43920
12427         * cfgcleanup.c (walk_to_nondebug_insn): New function.
12428         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
12429         and bb2.
12430         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
12431         src1 or src2.  Redirect edges to the last basic block.  Update
12432         frequency and count on multiple basic blocks in case of fallthru.
12433
12434 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12435
12436         PR target/43920
12437         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
12438         function.
12439         (old_insns_match_p): Change return type.  Replace return false/true
12440         with return dir_none/dir_both.  Use can_replace_by.
12441         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
12442         direction from dir_p.  Register replacement direction in dir, last_dir
12443         and afterlast_dir.  Handle new return type of old_insns_match_p using
12444         merge_dir.  Return replacement direction in dir_p.
12445         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
12446         return type of old_insns_match_p.
12447         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
12448         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
12449         flow_find_cross_jump.
12450         * basic-block.h (enum replace_direction): New type.
12451         (flow_find_cross_jump): Add parameter to declaration.
12452
12453 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
12454
12455         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
12456         (AVXMODEDCVTPS2DQ): Ditto.
12457         (VEC_FLOAT_MODE): Ditto.
12458         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
12459         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
12460         (<any_logic:code><mode>3): Use VF mode iterator.
12461         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
12462         Use VF mode iterator.
12463         (copysign<mode>3): Use VF mode iterator.
12464         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
12465         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
12466         (*<any_logic:code><MODEF:mode>3): Merge with
12467         *avx_<any_logic:code><MODEF:mode>3.
12468         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
12469         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
12470         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
12471         (avx_cvtdq2ps<avxmodesuffix>): Remove.
12472         (sse2_cvtdq2ps): Use %v modifier.
12473         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
12474         (avx_cvtps2dq<avxmodesuffix>): Remove.
12475         (sse2_cvtps2dq): Use %v modifier.
12476         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
12477         (avx_cvttps2dq<avxmodesuffix>): Remove.
12478         (sse2_cvttps2dq): Use %v modifier.
12479         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
12480         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
12481         (sse2_cvtsd2siq): Fix insn template.
12482         (sse2_cvtsd2siq_2): Ditto.
12483         (sse2_cvttsd2siq): Ditto.
12484         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
12485         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
12486
12487 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
12488
12489         * gcov-io.c: Use GCC Runtime Library Exception.
12490
12491 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
12492
12493         PR debug/48466
12494         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
12495         as base_reg whatever register reg has been eliminated to, instead
12496         of hardcoding STACK_POINTER_REGNUM.
12497
12498 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
12499
12500         * doc/tm.texi.in: Document C target hooks as separate from general
12501         target hooks.
12502         * doc/tm.texi: Regenerate.
12503         * genhooks.c (struct hook_desc): Add docname field.
12504         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
12505         docname field.
12506         (hook_array): Include c-target.def.
12507         (emit_documentation): Use docname field in output.
12508         (emit_init_macros): Take docname argument.  Only emit definitions
12509         for hooks matching docname.
12510         (main): Expect additional arguments in all cases.  Pass argument
12511         to emit_init_macros.
12512         * target.def: Move initial macro definitions and comments to
12513         target-hooks-macros.h.
12514         (gcc_targetcm): Move to c-family/c-target.def.
12515         * target.h (targetcm): Move declaration to c-family/c-target.h.
12516         * targhooks.c (default_handle_c_option): Move to
12517         c-family/c-opts.c.
12518         * targhooks.h (default_handle_c_option): Move declaration to
12519         c-family/c-common.h.
12520         * target-hooks-macros.h: New file.
12521         * config.gcc (target_has_targetcm): Define and use to add to
12522         c_target_objs and cxx_target_objs.
12523         * config/default-c.c: New file.
12524         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
12525         of target.h and target-def.h.
12526         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
12527         (darwin_objc_construct_string, darwin_cfstring_ref_p,
12528         darwin_check_cfstring_format_arg): Make static.
12529         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
12530         TARGET_STRING_OBJECT_REF_TYPE_P,
12531         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
12532         * config/darwin-protos.h (darwin_objc_construct_string,
12533         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
12534         declare.
12535         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
12536         TARGET_STRING_OBJECT_REF_TYPE_P,
12537         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
12538         * config/t-darwin (darwin-c.o): Update dependencies.
12539         * system.h (TARGET_HAS_TARGETCM): Poison.
12540         * Makefile.in (TARGET_H): Update.
12541         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
12542         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
12543         (default-c.o): New target.
12544         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
12545         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
12546         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
12547         c-target.def.
12548         (build/genhooks.o): Update dependencies.
12549
12550 2011-04-06  Richard Guenther  <rguenther@suse.de>
12551
12552         * ipa-inline.c (enum inlining_mode): Remove.
12553         (cgraph_flatten): Use some other token.
12554         (cgraph_edge_early_inlinable_p): New function, split out from ...
12555         (cgraph_perform_always_inlining): New function, split out from ...
12556         (cgraph_decide_inlining_incrementally): ... here.
12557         (cgraph_mark_inline_edge): Adjust.
12558         (cgraph_early_inlining): Re-structure.
12559         (pass_early_inline): Require SSA form.
12560
12561 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
12562             Julian Brown  <julian@codesourcery.com>
12563             Mark Shinwell  <shinwell@codesourcery.com>
12564
12565         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
12566         LO_REGS only for Thumb-1.
12567         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
12568         be used in short instructions when optimising for size on Thumb-2.
12569
12570 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12571
12572         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
12573         associated with user returns to be preserved.
12574
12575 2011-04-06  Tristan Gingold  <gingold@adacore.com>
12576
12577         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
12578         symbol_queue_size, DBXOUT_DECR_NESTING,
12579         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
12580         if XCOFF_DEBUGGING_INFO.
12581
12582 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
12583
12584         * config/i386/i386.md (attribute isa): New.
12585         (attribute enabled): New.
12586         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
12587         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
12588         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
12589         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
12590         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
12591         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12592         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
12593         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
12594
12595         * config/i386/sse.md (VF): New mode iterator.
12596         (VF1): Ditto.
12597         (VF2): Ditto.
12598         (VF_128): Ditto.
12599         (SSEMODEF4): Remove.
12600         (attribute sse): Handle V8SF and V4DF modes.
12601         (<absneg:code><mode>2): Use VF mode iterator.
12602         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
12603         mode iterator.
12604         (<plusminus_insn><mode>3): Use VF mode iterator.
12605         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
12606         Use VF mode iterator.
12607         (<sse>_vm<plusminus_insn><mode>3): Merge with
12608         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
12609         (mul<mode>3): Use VF mode iterator.
12610         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
12611         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
12612         mode iterator.
12613         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
12614         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
12615         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
12616         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
12617         mode iterator.
12618         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
12619         Use VF1 mode iterator.
12620         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
12621         (sqrt<VF2:mode>2): New expander.
12622         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
12623         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
12624         and sqrtv2df2.  Use VF mode iterator.
12625         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
12626         mode iterator.
12627         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
12628         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
12629         Use VF1 mode iterator.
12630         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
12631         (<smaxmin:code><mode>3): Use VF mode iterator.
12632         (*<smaxmin:code><mode>3_finite): Merge with
12633         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
12634         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12635         (<sse>_vm<smaxmin:code><mode>2): Merge with
12636         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
12637         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
12638         mode iterator.
12639         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
12640         mode iterator.
12641         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
12642         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
12643         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
12644         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
12645         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
12646         VF mode iterator.
12647         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
12648         Use VF_128 mode iterator.
12649         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
12650         mode iterator.
12651         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
12652         VF_128 mode iterator.
12653         (vcond<mode>): Use VF mode iterator.
12654         * config/i386/predicates.md (sse_comparison_operator): Merge with
12655         avx_comparison_float_operator.  Do not declare as special_predicate.
12656         * config/i386/i386.c (struct builtin_description): Update for renamed
12657         compare patterns.
12658         (ix86_expand_args_builtin): Ditto.
12659         (ix86_expand_sse_compare_mask): Ditto.
12660
12661 2011-04-06  Richard Guenther  <rguenther@suse.de>
12662
12663         * tree-inline.c (estimate_num_insns): For calls simply account
12664         for all passed arguments and a used return value.
12665
12666 2011-04-06  Richard Guenther  <rguenther@suse.de>
12667
12668         PR tree-optimization/47663
12669         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
12670         call_stmt_time fields.
12671         (cgraph_edge_inlinable_p): Declare.
12672         (cgraph_edge_recursive_p): New inline function.
12673         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
12674         (cgraph_clone_edge): Copy it.
12675         * ipa-inline.c (cgraph_estimate_edge_time): New function.
12676         Account for call stmt time.
12677         (cgraph_estimate_time_after_inlining): Take edge argument.
12678         (cgraph_estimate_edge_growth): Account call stmt size.
12679         (cgraph_estimate_size_after_inlining): Take edge argument.
12680         (cgraph_mark_inline_edge): Adjust.
12681         (cgraph_check_inline_limits): Likewise.
12682         (cgraph_recursive_inlining_p): Remove.
12683         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
12684         (cgraph_decide_recursive_inlining): Take edge argument and
12685         adjust.
12686         (cgraph_decide_inlining_of_small_functions): Do not avoid
12687         diags for recursive inlining here.
12688         (cgraph_flatten): Adjust.
12689         (cgraph_decide_inlining_incrementally): Likewise.
12690         (estimate_function_body_sizes): Remove call cost handling.
12691         (compute_inline_parameters): Initialize caller edge call costs.
12692         (cgraph_estimate_edge_growth): New function.
12693         (cgraph_estimate_growth): Use it.
12694         (cgraph_edge_badness): Likewise.
12695         (cgraph_check_inline_limits): Take an edge argument.
12696         (cgraph_decide_inlining_of_small_functions): Adjust.
12697         (cgraph_decide_inlining): Likewise.
12698         * tree-inline.c (estimate_num_insns): Only account for call
12699         return value if it is used.
12700         (expand_call_inline): Avoid diagnostics on recursive inline
12701         functions here.
12702         * lto-cgraph.c (lto_output_edge): Output edge call costs.
12703         (input_edge): Input edge call costs.
12704
12705 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12706
12707         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
12708
12709 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
12710
12711         * doc/invoke.texi (Spec Files): Fix typo.
12712
12713 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12714
12715         * profile.c (branch_prob): Move declaration of local variable.  Remove
12716         obsolete ??? comment.  Expand the location explicitly instead of using
12717         the LOCATION_FILE and LOCATION_LINE macros.
12718
12719 2011-04-06  Wei Guozhi  <carrot@google.com>
12720
12721         PR target/47855
12722         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
12723         (arm_cond_branch): Likewise.
12724         (arm_cond_branch_reversed): Likewise.
12725         (arm_jump): Likewise.
12726         (push_multi): Likewise.
12727         * config/arm/constraints.md (Py): New constraint.
12728
12729 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12730
12731         PR bootstrap/48471
12732         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
12733         Move these...
12734         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
12735         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
12736         #ifdef DBX_DEBUGGING_INFO.
12737
12738 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
12739
12740         PR bootstrap/48403
12741         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
12742         if old and new states differ.
12743
12744 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
12745
12746         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
12747         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
12748         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
12749         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
12750         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
12751         mcfv4e): Use Alias.
12752         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
12753         ColdFire options to -mcpu= options.
12754
12755 2011-04-05  Jeff Law  <law@redhat.com>
12756
12757         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
12758         check if BB is a successor of LOOP->header and return
12759         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
12760
12761 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
12762
12763         * cprop.c (struct reg_use): Remove.
12764         (reg_use_table): Make an array of RTX.
12765         (find_used_regs, constprop_register, local_cprop_pass,
12766         bypass_block): Simplify users of reg_use_table.
12767         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
12768         on one of the uses found by find_used_regs.
12769
12770 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12771
12772         PR bootstrap/48469
12773         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
12774         declaration.
12775
12776 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12777
12778         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
12779         as an rtx.
12780         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
12781
12782 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
12783
12784         PR middle-end/48441
12785         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
12786
12787 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12788
12789         * combine.c: Include obstack.h.
12790         (struct insn_link): Define.
12791         (uid_log_links): Adjust type.
12792         (FOR_EACH_LOG_LINK): New macro.
12793         (insn_link_obstack): Declare.
12794         (alloc_insn_link): Define.
12795         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
12796         type of link variables.
12797         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
12798         (try_combine, record_promoted_values, distribute_notes): Likewise.
12799         (distribute_links): Likewise.  Tweak prototype.
12800         (clear_log_links): Delete.
12801         (adjust_for_new_dest): Call alloc_insn_link.
12802         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
12803
12804 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12805
12806         * gcse.c (modify_mem_list): Convert to an array of VECs.
12807         (canon_modify_mem_list, compute_transp): Tweak formatting.
12808         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
12809         (load_killed_in_block_p): Likewise.
12810         (record_last_mem_set_info): Likewise.
12811         (clear_modify_mem_tables): Likewise.
12812
12813 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12814
12815         PR middle-end/48461
12816         * function.c (emit_use_return_register_into_block): Only define if
12817         HAVE_return.
12818
12819 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
12820
12821         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
12822
12823 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
12824
12825         * config/rx/rx-opts.h: New.
12826         * config/rx/rx.c (rx_cpu_type): Remove.
12827         (rx_handle_option): Don't assert that global structures are in
12828         use.  Access variables via opts pointer.  Defer most handling of
12829         OPT_mint_register_.  Use error_at.
12830         (rx_option_override): Handle deferred OPT_mint_register_ here.
12831         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
12832         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
12833         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
12834         (rx_cpu_types): New Enum and EnumValue entries.
12835         (mint-register=): Use Defer and use Var accordingly.
12836
12837 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12838
12839         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
12840         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
12841         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
12842         Move these...
12843         (debug_free_queue, debug_nesting, symbol_queue_index):
12844         ...and these...
12845         * dbxout.c: ...to here.  Make static.
12846
12847 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12848
12849         * gcse.c (modify_pair): Define.  Define a VEC of it.
12850         (canon_modify_mem_list): Convert to an array of VECs.
12851         (free_insn_expr_list_list): Delete.
12852         (clear_modify_mem_tables): Call VEC_free instead.
12853         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
12854         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
12855         (canon_list_insert, compute_transp): Likewise.
12856
12857 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12858
12859         PR target/43920
12860         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
12861         for size.
12862
12863 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12864
12865         PR target/43920
12866         * function.c (emit_use_return_register_into_block): New function.
12867         (thread_prologue_and_epilogue_insns): Use
12868         emit_use_return_register_into_block.
12869
12870 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12871
12872         PR target/43920
12873         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
12874         insn.
12875
12876 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12877
12878         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
12879
12880 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
12881
12882         * config/arm/arm.md (define_constants for unspec): Replace with
12883         define_c_enum.
12884         (define_constants for unspecv): Replace with define_c_enum.
12885         * config/arm/neon.md (define_constants for unspec): Replace with
12886         define_c_enum.
12887
12888 2011-04-04  Richard Henderson  <rth@redhat.com>
12889
12890         PR bootstrap/48400
12891         * dwarf2out.c (output_line_info): Always emit line info from
12892         at least one section.
12893         (dwarf2out_init): Create text_section_line_info here ...
12894         (set_cur_line_info_table): ... not here.
12895
12896 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
12897
12898         PR target/48380
12899         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
12900         not called.
12901
12902         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
12903
12904 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
12905
12906         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
12907         (expr_equiv_p): Remove.
12908         (insert_set_in_table): Look at <dest, src> pair instead of expr.
12909         (hash_scan_set): Update call to insert_set_in_table.
12910         (dump_hash_table): Dump <dest, src> pair.
12911         (lookup_set): Simplify.  Lookup <dest, src> pair.
12912         (compute_transp): Remove, fold heavily simplified code into...
12913         (compute_local_properties): ...here.  Expect COMP and TRANSP
12914         unconditionally.
12915         (find_avail_set): Take set directly from struct expr.
12916         (find_bypass-set): Likewise.
12917         (bypass_block): Likewise.
12918         (cprop_insn): Likewise.  Remove redundant INSN_P test.
12919
12920         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
12921         checks on form of COND from find_implicit_sets to here.
12922         (find_implicit_sets): Cleanup control flow. Split critical edges
12923         if it exposes implicit sets.  Allocate/resize implicit_sets as
12924         necessary.
12925         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
12926         changed something.  Run df_analyze after find_implicit_sets if any
12927         edges were split.  Do not allocate implicit_sets here.
12928
12929         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
12930         (gcse_obstack): Renamed to cprop_obstack.
12931         (GNEW, GNEWVEC, GNEWVAR): Remove.
12932         (gmalloc): Remove.
12933         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
12934         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
12935         (gcse_alloc): Likewise, and rename to cprop_alloc.
12936         (alloc_gcse_men, free_gcse_mem): Remove.
12937         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
12938         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
12939         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
12940
12941         * cprop.c (oprs_not_set_p): Remove.
12942         (mark_set, mark_clobber): Remove.
12943         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
12944         (reg_not_set_p): New function.
12945         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
12946         (cprop_insn): Likewise.
12947         (cprop_jump): Use FOR_EACH_EDGE.
12948
12949 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
12950
12951         PR bootstrap/48403
12952         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
12953         (rank_for_schedule): Use scheduled_insns vector instead of
12954         last_scheduled_insn.
12955         (ok_for_early_queue_removal): Likewise.
12956         (queue_to_ready): Search forward in nonscheduled_insns_begin if
12957         we have a dbg_cnt.
12958         (choose_ready): Likewise.
12959         (commit_schedule): Use VEC_iterate.
12960         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
12961         a dbg_cnt, use it and ensure the first insn is in the ready list.
12962         (haifa_sched_init): Allocate scheduled_insns.
12963         (sched_extend_ready_list): Don't allocate it; reserve space.
12964         (haifa_sched_finish): Free it.
12965
12966 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
12967
12968         * optc-gen.awk: Always remove type from Variable entry before
12969         recording in var_seen.
12970
12971 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
12972
12973         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
12974         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
12975         call to tidy_fallthru_edges.
12976
12977 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
12978
12979         * doc/options.texi (ToLower): Document.
12980         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
12981         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
12982         * opts.h (cl_option): Add cl_tolower field.
12983         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
12984         arguments with lowercase strings.
12985         * config/rx/rx.opt (mcpu=): Add ToLower.
12986         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
12987         argument.
12988
12989 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
12990
12991         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
12992
12993 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
12994
12995         * config/vax/vax.c: Include reload.h.
12996
12997 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
12998
12999         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
13000         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13001         (sparc_preferred_reload_class): New function.
13002
13003 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
13004
13005         PR debug/48401
13006         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
13007         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
13008
13009 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
13010
13011         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
13012         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
13013
13014 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
13015
13016         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
13017         (ASM_OUTPUT_ALIGNED_BSS): Define.
13018
13019 2011-04-03  Michael Matz  <matz@suse.de>
13020
13021         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
13022         and next_slot members.
13023         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
13024         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
13025         (lto_streamer_cache_append): Declare.
13026         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
13027         unsigned index, remove offset parameter, ensure that we append
13028         or update existing entries.
13029         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
13030         parameter, update next_slot for append.
13031         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
13032         parameter.
13033         (lto_streamer_cache_insert_at): Likewise.
13034         (lto_streamer_cache_append): New function.
13035         (lto_streamer_cache_lookup): Use unsigned index.
13036         (lto_streamer_cache_get): Likewise.
13037         (lto_record_common_node): Don't test tree_node_can_be_shared.
13038         (preload_common_node): Adjust call to lto_streamer_cache_insert.
13039         (lto_streamer_cache_delete): Don't free offsets member.
13040         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
13041         (lto_output_string_with_length): Use lto_output_data_stream.
13042         (lto_output_tree_header): Remove ix parameter, don't write it.
13043         (lto_output_builtin_tree): Likewise.
13044         (lto_write_tree): Adjust callers to above, don't track and write
13045         offset, write unsigned index.
13046         (output_unreferenced_globals): Don't emit all global vars.
13047         (write_global_references): Use unsigned indices.
13048         (lto_output_decl_state_refs): Likewise.
13049         (write_symbol): Likewise.
13050         * lto-streamer-in.c (lto_input_chain): Move earlier.
13051         (input_function): Use unsigned index.
13052         (input_alias_pairs): Don't read and then ignore all global vars.
13053         (lto_materialize_tree): Remove ix_p parameter, don't read index,
13054         don't pass it back, use lto_streamer_cache_append.
13055         (lto_register_var_decl_in_symtab): Use unsigned index.
13056         (lto_register_function_decl_in_symtab): Likewise.
13057         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
13058         index.
13059         (lto_get_builtin_tree): Don't read index, use
13060         lto_streamer_cache_append.
13061         (lto_read_tree): Adjust call to lto_materialize_tree.
13062
13063         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
13064         don't use function calls in arguments to MIN.
13065
13066         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
13067         twice.
13068
13069         * gimple.c (gimple_type_leader_entry): Mark deletable.
13070
13071 2011-04-03  Alan Modra  <amodra@gmail.com>
13072
13073         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
13074
13075 2011-04-03  Michael Matz  <matz@suse.de>
13076
13077         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
13078         an integer.
13079         * tree.h (tree_decl_non_common.vindex): Adjust comment.
13080
13081 2011-04-03  Michael Matz  <matz@suse.de>
13082
13083         * cgraphbuild.c (record_reference): Canonicalize constructor values.
13084         * gimple-fold.c (canonicalize_constructor_val): Accept being called
13085         without function context.
13086         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
13087         current_function_decl and cfun.
13088
13089 2011-04-03  Michael Matz  <matz@suse.de>
13090
13091         * tree.c (decl_init_priority_insert): Don't create entry for
13092         default priority.
13093         (decl_fini_priority_insert): Ditto.
13094         (fields_compatible_p, find_compatible_field): Remove.
13095         * tree.h (fields_compatible_p, find_compatible_field): Remove.
13096         * gimple.c (gimple_compare_field_offset): Adjust block comment.
13097
13098 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
13099
13100         * combine.c (try_combine): Remove useless local variable.
13101
13102 2011-04-03  Richard Guenther  <rguenther@suse.de>
13103             Ira Rosen  <ira.rosen@linaro.org>
13104
13105         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
13106         non-variable offsets and compare the remaining bases of the two
13107         accesses instead of looking for exact same data-ref.
13108
13109 2011-04-02  Kai Tietz  <ktietz@redhat.com>
13110
13111         PR target/48416
13112         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
13113
13114         * i386.c (ix86_is_msabi_thiscall): New helper function.
13115         (ix86_is_type_thiscall): New helper function.
13116         (ix86_comp_type_attributes): Handle thiscall for method-functions
13117         special.
13118         (init_cumulative_args): Likewise.
13119         (find_drap_reg): Likewise.
13120         (ix86_static_chain): Likewise.
13121         (x86_this_parameter): Likewise.
13122         (x86_output_mi_thunk): Likewise.
13123
13124 2011-04-01  Olivier Hainque  <hainque@adacore.com>
13125             Nicolas Setton  <setton@adacore.com>
13126             Eric Botcazou  <ebotcazou@adacore.com>
13127
13128         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
13129         (add_gnat_descriptive_type_attribute): New function.
13130         (gen_array_type_die): Call it.
13131         (gen_enumeration_type_die): Likewise.
13132         (gen_struct_or_union_type_die): Likewise.
13133         (modified_type_die): Likewise.
13134         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
13135         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
13136         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
13137
13138 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
13139
13140         PR bootstrap/48148
13141         * dwarf2out.c (resolve_addr): Don't call force_decl_die
13142         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
13143
13144         Revert:
13145         2011-03-17  Richard Guenther  <rguenther@suse.de>
13146
13147         PR bootstrap/48148
13148         * lto-cgraph.c (input_overwrite_node): Clear the abstract
13149         origin for decls in other ltrans units.
13150         (input_varpool_node): Likewise.
13151
13152 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
13153
13154         PR middle-end/48335
13155         * expr.c (expand_assignment): Handle all possibilities
13156         if TO_RTX is CONCAT.
13157         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
13158         (store_split_bit_field): If SUBREG_REG (op0) or
13159         op0 itself has smaller mode than word, return it
13160         for offset 0 and const0_rtx for out-of-bounds stores.
13161         If word is const0_rtx, skip it.
13162
13163 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
13164
13165         * config/h8300/h8300.c (print_operand_address): Rename to...
13166         (h8300_print_operand_address): ...this. Make static. Adjust comments.
13167         Call h8300_print_operand and h8300_print_operand_address instead of
13168         print_operand and print_operand_address. Declare.
13169         (print_operand): Renake to...
13170         (h8300_print_operand): ...this. Make static. Adjust comments.
13171         Call h8300_print_operand instead of print_operand. Declare.
13172         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
13173         (h8300_register_move_cost): Likewise.
13174         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
13175         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
13176         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
13177         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
13178         * config/h8300/h8300-protos.h (print_operand): Delete.
13179         (print_operand_address): Delete.
13180
13181 2011-04-01  Richard Henderson  <rth@redhat.com>
13182
13183         PR 48400
13184         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
13185         in strict mode before dwarf4.  Re-order tests to early out
13186         before switching sections.
13187
13188 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
13189
13190         * config/h8300/constraints.md: New file.
13191         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
13192         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
13193         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
13194         * config/h8300/predicates.md (bit_operand): Likewise.
13195         (incdec_operand): Use satisfies_constraint_M and
13196         satisfies_constraint_O.  Don't use C code block.
13197         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
13198         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
13199         (compute_mov_length): Use satisfies_constraint_G.
13200         (fix_bit_operand): Use satisfies_constraint_U.
13201         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
13202         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
13203         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
13204         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
13205         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
13206         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
13207         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13208         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
13209         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
13210         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
13211         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
13212         (EXTRA_MEMORY_CONSTRAINT): Delete.
13213
13214 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
13215             Michael Meissner  <meissner@linux.vnet.ibm.com>
13216
13217         PR target/48262
13218         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
13219         operands, as per the specifications.
13220
13221         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
13222         (vec_extract_evenv4sf): Ditto.
13223         (vec_extract_evenv8hi): Ditto.
13224         (vec_extract_evenv16qi): Ditto.
13225         (vec_extract_oddv4si): Ditto.
13226
13227 2011-03-31  Mark Wielaard  <mjw@redhat.com>
13228
13229         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
13230         high_pc attribute if the CU has no associated code. Only output
13231         DW_AT_entry_pc for CU if not generating strict dwarf and
13232         dwarf_version < 4.
13233
13234 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
13235
13236         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
13237         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
13238         out of ...
13239         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
13240         * final.c (final_start_function): Call the new function rather
13241         than using a NULL argument for dwarf2out_frame_debug.
13242
13243         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
13244         that contains the prologue.
13245
13246         * haifa-sched.c (queue_insn): New arg REASON.  All callers
13247         changed.  Print it in debugging output.
13248
13249         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
13250
13251         * sched-ebb.c (begin_schedule_ready): Remove second argument.
13252         Split most of the code into...
13253         (begin_move_insn): ... here.  New function.
13254         (ebb_sched_info): Add a pointer to it.
13255         * haifa-sched.c (scheduled_insns): New static variable.
13256         (sched_extend_ready_list): Allocate it.
13257         (schedule_block): Use it to record the order of scheduled insns.
13258         Perform RTL changes to move insns only after all scheduling
13259         decisions have been made.
13260         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
13261         begin_move_insn field.
13262         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
13263         * sched-int.h (struct haifa_sched_info): Remove second argument
13264         from begin_schedule_ready hook.  Add new member begin_move_insn.
13265         * sched-rgn.c (begin_schedule_ready): Remove second argument.
13266         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
13267
13268         * haifa-sched.c (prune_ready_list): New function, broken out of
13269         schedule_block.
13270         (schedule_block): Use it.
13271
13272 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13273
13274         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
13275
13276 2011-04-01  Kai Tietz  <ktietz@redhat.com>
13277
13278         * config.gcc (*-*-mingw*): Allow as option the
13279         posix threading model.
13280         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
13281         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
13282         definition.
13283         (CPP_SPEC): Add pthread/no-pthread handling.
13284         (LIB_SPEC): Likewise.
13285         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
13286         (LIB_SPEC): Likewise.
13287         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
13288         flag to pass -pthread option for shared libgcc build.
13289         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
13290         for shared libgcc build.
13291         * config/i386/t-mingw-pthread: New file.
13292         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
13293         New define to enable use of library pthread by default.
13294         * config/i386/mingw.opt (pthread): New driver option.
13295         (no-pthread): New driver option.
13296         * config/i386/cygming.opt: Make sure trailing empty line is retained.
13297         * config/i386/mingw-w64.opt: Likewise.
13298
13299 2011-04-01  Gary Funck  <gary@intrepid.com>
13300
13301         * c-decl.c (grokdeclarator): Fix formatting.
13302
13303 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13304
13305         * expr.c (emit_block_move_via_movmem): Use n_generator_args
13306         instead of n_operands.
13307         (set_storage_via_setmem): Likewise.
13308         * optabs.c (maybe_gen_insn): Likewise.
13309         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
13310         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
13311         (mips_expand_builtin_direct): Likewise.
13312         * config/spu/spu.c (expand_builtin_args): Likewise.
13313
13314 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13315
13316         * recog.h (insn_data_d): Add n_generator_args.
13317         * genoutput.c (data): Likewise.
13318         (output_insn_data): Print it.
13319         (max_opno, num_dups): Delete.
13320         (scan_operands): Just fill in "d->operand[...]".
13321         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
13322
13323 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13324
13325         * gensupport.h (pattern_stats): New structure.
13326         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
13327         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
13328         (max_operand_1, max_operand_vec): Delete.
13329         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
13330
13331 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
13332
13333         * emit-rtl.c (emit_pattern_after_setloc): New function.
13334         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
13335         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
13336         (emit_pattern_after): New function.
13337         (emit_insn_after, emit_jump_insn_after): Call it.
13338         (emit_call_insn_after, emit_debug_insn_after): Likewise.
13339         (emit_pattern_before_setloc): New function.
13340         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
13341         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
13342         Likewise.
13343         (emit_pattern_before): New function.
13344         (emit_insn_before, emit_jump_insn_before): Call it.
13345         (emit_call_insn_before, emit_debug_insn_before): Likewise.
13346
13347 2011-03-31  Richard Henderson  <rth@redhat.com>
13348
13349         * dwarf2out.c (dw_separate_line_info_ref): Remove.
13350         (dw_separate_line_info_entry): Remove.
13351         (enum dw_line_info_opcode): New.
13352         (dw_line_info_entry): Use it.
13353         (dw_line_info_table, dw_line_info_table_p): New.
13354         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
13355         (line_info_table, line_info_label_num): Remove.
13356         (line_info_table_in_use): Remove.
13357         (separate_line_info_table): Remove.
13358         (separate_line_info_table_allocated): Remove.
13359         (separate_line_info_table_in_use): Remove.
13360         (LINE_INFO_TABLE_INCREMENT): Remove.
13361         (line_info_label_num): New.
13362         (cur_line_info_table): New.
13363         (text_section_line_info, cold_text_section_line_info): New.
13364         (separate_line_info): New.
13365         (SEPARATE_LINE_CODE_LABEL): Remove.
13366         (print_dwarf_line_table): Remove.
13367         (debug_dwarf): Don't dump it.
13368         (output_one_line_info_table): New.
13369         (output_line_info): Use it.
13370         (new_line_info_table): New.
13371         (set_cur_line_info_table): New.
13372         (dwarf2out_switch_text_section): Use it.
13373         (dwarf2out_begin_function): Likewise.
13374         (push_dw_line_info_entry): New.
13375         (dwarf2out_source_line): Rewrite for new line info tables.
13376         (dwarf2out_init): Remove dead initailizations.
13377
13378 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
13379
13380         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
13381         various flags.
13382         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
13383         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
13384         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
13385         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
13386         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
13387         * opt-functions.awk (flag_init, switch_bit_fields): New.
13388         (switch_flags): Don't handle flags moved to bit-fields.  Don't
13389         generate CL_MISSING_OK or CL_SAVE.
13390         * optc-gen.awk: Update to generate bit-field output as well as
13391         flags field.
13392         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
13393         bit-field instead of CL_REJECT_DRIVER flag.
13394         * opts-common.c (generate_canonical_option,
13395         decode_cmdline_option): Use bit-fields instead of CL_* flags.
13396         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
13397         instead of CL_REJECT_NEGATIVE flag.
13398         * toplev.c (print_switch_values): Use cl_report bit-field instead
13399         of CL_REPORT flag.
13400
13401 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
13402
13403         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
13404         a zero minimum index only if it is redundant.
13405
13406 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
13407
13408         PR rtl-optimization/48381
13409         * ira-color.c (assign_hard_reg): Use hard reg set intersection
13410         instead of ira_class_hard_reg_index for calculating conflicting
13411         hard registers.
13412
13413 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
13414
13415         * cprop.c: Clean up hash table building.
13416         (reg_avail_info): Remove.
13417         (oprs_available_p): Remove.
13418         (record_last_reg_set_info): Remove.
13419         (record_last_set_info): Remove.
13420         (reg_available_p): New function.
13421         (gcse_constant_p): Do not treat unfolded conditions as constants.
13422         (make_set_regs_unavailable): New function.
13423         (hash_scan_set): Simplify with new reg_available_p.
13424         (compute_hash_table_work): Traverse insns stream only once.
13425         Do not compute reg_avail_info. Traverse insns in reverse order.
13426         Record implicit sets after recording explicit sets from the block.
13427
13428 2011-03-31  Michael Matz  <matz@suse.de>
13429
13430         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
13431
13432 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
13433
13434         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
13435         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
13436         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13437         (h8300_mode_dependent_address_p): New function.
13438         (h8300_get_index): Make static.
13439
13440 2011-03-31  Jeff Law  <law@redhat.com>
13441
13442         * reload1.c (elimination_effects): Fix typo in recent change.
13443
13444         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
13445         typo potentially leading to null pointer dereference.
13446
13447         * caller-save.c (new_saved_hard_reg): Eliminate return value.
13448         (setup_save_areas): Corresponding changes to avoid useless
13449         assignments.
13450
13451         * jump.c (reversed_comparison_code_parts): Avoid successive return
13452         statements when REVERSE_CONDITION is defined.
13453
13454         * expr.c (expand_assignment): Avoid useless assignments.
13455         (expand_expr_real_1): Likewise.
13456         (expand_expr_real_2): Avoid useless statements.
13457
13458         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
13459
13460         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
13461
13462         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
13463         statements.
13464
13465         * stmt.c (expand_expr_stmt): Avoid useless assignment.
13466
13467 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
13468
13469         PR target/47109
13470         * doc/tm.texi.in (TARGET_VERSION): Remove.
13471         * doc/tm.texi: Regenerate.
13472         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
13473         * collect2.c (main): Don't use TARGET_VERSION.
13474         * mips-tdump.c (main): Don't use TARGET_VERSION.
13475         * mips-tfile.c (main): Don't use TARGET_VERSION.
13476         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
13477         * config/rs6000/vxworksae.h: Remove.
13478         * config/alpha/alpha.h (TARGET_VERSION): Remove.
13479         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
13480         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
13481         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
13482         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
13483         * config/arm/arm.h (TARGET_VERSION): Remove.
13484         * config/arm/coff.h (TARGET_VERSION): Remove.
13485         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
13486         * config/arm/elf.h (TARGET_VERSION): Remove.
13487         * config/arm/freebsd.h (TARGET_VERSION): Remove.
13488         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
13489         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
13490         * config/arm/pe.h (TARGET_VERSION): Remove.
13491         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
13492         * config/arm/semi.h (TARGET_VERSION): Remove.
13493         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
13494         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
13495         * config/arm/vxworks.h (TARGET_VERSION): Remove.
13496         * config/avr/avr.h (TARGET_VERSION): Remove.
13497         * config/bfin/bfin.h (TARGET_VERSION): Remove.
13498         * config/fr30/fr30.h (TARGET_VERSION): Remove.
13499         * config/frv/frv.h (TARGET_VERSION): Remove.
13500         * config/h8300/h8300.h (TARGET_VERSION): Remove.
13501         * config/i386/cygwin.h (TARGET_VERSION): Remove.
13502         * config/i386/darwin.h (TARGET_VERSION): Remove.
13503         * config/i386/darwin64.h (TARGET_VERSION): Remove.
13504         * config/i386/djgpp.h (TARGET_VERSION): Remove.
13505         * config/i386/freebsd.h (TARGET_VERSION): Remove.
13506         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
13507         * config/i386/gnu.h (TARGET_VERSION): Remove.
13508         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
13509         * config/i386/i386elf.h (TARGET_VERSION): Remove.
13510         * config/i386/linux.h (TARGET_VERSION): Remove.
13511         * config/i386/linux64.h (TARGET_VERSION): Remove.
13512         * config/i386/lynx.h (TARGET_VERSION): Remove.
13513         * config/i386/mingw32.h (TARGET_VERSION): Remove.
13514         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
13515         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
13516         * config/i386/netware.h (TARGET_VERSION): Remove.
13517         * config/i386/nto.h (TARGET_VERSION): Remove.
13518         * config/i386/openbsd.h (TARGET_VERSION): Remove.
13519         * config/i386/vxworks.h (TARGET_VERSION): Remove.
13520         * config/ia64/elf.h (TARGET_VERSION): Remove.
13521         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
13522         * config/ia64/hpux.h (TARGET_VERSION): Remove.
13523         * config/ia64/linux.h (TARGET_VERSION): Remove.
13524         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
13525         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
13526         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
13527         * config/lm32/lm32.h (TARGET_VERSION): Remove.
13528         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
13529         * config/m32c/m32c.h (TARGET_VERSION): Remove.
13530         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
13531         * config/m32r/m32r.h (TARGET_VERSION): Remove.
13532         * config/m68k/linux.h (TARGET_VERSION): Remove.
13533         * config/m68k/m68k.h (TARGET_VERSION): Remove.
13534         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
13535         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
13536         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
13537         * config/mep/mep.h (TARGET_VERSION): Remove.
13538         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
13539         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
13540         * config/mips/iris6.h (MACHINE_TYPE): Remove.
13541         * config/mips/linux.h (TARGET_VERSION): Remove.
13542         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
13543         * config/mips/vxworks.h (TARGET_VERSION): Remove.
13544         * config/mmix/mmix.h (TARGET_VERSION): Remove.
13545         * config/mn10300/linux.h (TARGET_VERSION): Remove.
13546         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
13547         * config/pa/pa.h (TARGET_VERSION): Remove.
13548         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
13549         * config/picochip/picochip.h (TARGET_VERSION): Remove.
13550         * config/rs6000/aix.h (TARGET_VERSION): Remove.
13551         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
13552         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
13553         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
13554         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
13555         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
13556         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
13557         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
13558         * config/rs6000/linux.h (TARGET_VERSION): Remove.
13559         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
13560         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
13561         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
13562         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
13563         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
13564         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
13565         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
13566         * config/s390/linux.h (TARGET_VERSION): Remove.
13567         * config/s390/s390.h (TARGET_VERSION): Remove.
13568         * config/s390/tpf.h (TARGET_VERSION): Remove.
13569         * config/score/score.h (TARGET_VERSION): Remove.
13570         * config/sh/linux.h (TARGET_VERSION): Remove.
13571         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
13572         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
13573         * config/sh/sh.h (TARGET_VERSION): Remove.
13574         * config/sh/sh64.h (TARGET_VERSION): Remove.
13575         * config/sh/superh.h (TARGET_VERSION): Remove.
13576         * config/sh/vxworks.h (TARGET_VERSION): Remove.
13577         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
13578         * config/sparc/linux.h (TARGET_VERSION): Remove.
13579         * config/sparc/linux64.h (TARGET_VERSION): Remove.
13580         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
13581         TARGET_NAME32, TARGET_NAME): Remove.
13582         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
13583         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
13584         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
13585         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
13586         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
13587         * config/spu/spu.h (TARGET_VERSION): Remove.
13588         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
13589         * config/v850/v850.h (TARGET_VERSION): Remove.
13590         * config/vax/linux.h (TARGET_VERSION): Remove.
13591         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
13592         * config/xtensa/elf.h (TARGET_VERSION): Remove.
13593         * config/xtensa/linux.h (TARGET_VERSION): Remove.
13594
13595 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
13596
13597         PR target/48142
13598         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
13599         frame-related from frame-unrelated adjustments to the stack pointer.
13600
13601 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
13602
13603         * common.opt (fdebug-types-section): Move earlier.
13604         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
13605
13606 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
13607
13608         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
13609         var.
13610
13611 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
13612
13613         * tree.h (CASE_CHAIN): Define.
13614         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
13615         (gimple_redirect_edge_and_branch): Likewise.
13616
13617 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13618
13619         PR middle-end/48367
13620         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
13621         calculation.
13622
13623 2011-03-30  Jeff Law  <law@redhat.com>
13624
13625         * PR bootstrap/48371
13626         * reload1.c (reload): Fix botch in last change.
13627
13628         * reload.h (struct reload): Fix typo introduced in last change.
13629
13630 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13631
13632         * config/arm/arm.opt (mhard-float, msoft-float): Mark
13633         Undocumented.  Remove help text.
13634         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
13635         -mhard-float.
13636
13637 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13638
13639         * doc/options.texi (NegativeAlias): Document.
13640         (Alias): Mention NegativeAlias.
13641         * opt-functions.awk: Handle NegativeAlias.
13642         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
13643         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
13644         * opts.h (CL_NEGATIVE_ALIAS): Define.
13645         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
13646         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
13647         OPT_mspe_.
13648         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
13649         Alias entries.
13650         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
13651         mno-spe and mno-isel instead of mspe=no and -misel=no.
13652
13653 2011-03-29  Mark Wielaard  <mjw@redhat.com>
13654
13655         * common.opt (fdebug-types-section): New flag.
13656         * doc/invoke.texi: Document new -fno-debug-types-section flag.
13657         * dwarf2out.c (use_debug_types): New define.
13658         (struct die_struct): Mark die_id with GTY desc use_debug_types.
13659         (print_die): Guard output of type unit signatures using
13660         use_debug_types.
13661         (build_abbrev_table): Replace assert of dwarf_version >= 4
13662         with assert on use_debug_types.
13663         (size_of_die): Likewise.
13664         (unmark_dies): Likewise.
13665         (value_format): Decide AT_ref_external form on use_debug_types.
13666         (output_die): Replace dwarf_version version check guard with
13667         use_debug_types where appropriate.
13668         (modified_type_die): Likewise.
13669         (gen_reference_type_die): Likewise.
13670         (dwarf2out_start_source_file): Likewise.
13671         (dwarf2out_end_source_file): Likewise.
13672         (prune_unused_types_walk_attribs): Likewise.
13673         (dwarf2out_finish): Likewise.
13674
13675 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13676
13677         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
13678
13679 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13680
13681         PR rtl-optimization/48332
13682         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
13683         mode of input operand N and modeN to its actual mode.
13684
13685 2011-03-30  Jeff Law  <law@redhat.com>
13686
13687         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
13688         define accessor macro.
13689         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
13690         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
13691         (reg_equiv_init): Likewise.
13692         (reg_equivs_size): New variable.
13693         (reg_equiv_init_size): Remove.
13694         (allocate_initial_values): Move prototype to here from....
13695         * integrate.h (allocate_initial_values): Remove prototype.
13696         * integrate.c: Include reload.h.
13697         (allocate_initial_values): Corresponding changes.
13698         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
13699         (fix_reg_equiv_init, no_equiv): Corresponding changes.
13700         (update_equiv_regs): Corresponding changes.
13701         (ira): Corresponding changes.
13702         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
13703         (push_secondary_reload): Corresponding changes.
13704         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
13705         (make_memloc, find_reloads_address): Corresponding changes.
13706         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
13707         (find_reloads_address_1): Corresponding changes.
13708         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
13709         (refers_to_regno_for_reload_p): Corresponding changes.
13710         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
13711         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
13712         * reload1.c: Include ggc.h.
13713         (grow_reg_equivs): New function.
13714         (replace_pseudos_in, reload): Corresponding changes.
13715         (calculate_needs_all_insns, alter_regs): Corresponding changes.
13716         (eliminate_regs_1, elimination_effects): Corresponding changes.
13717         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
13718         (delete_output_reload): Likewise.
13719         * caller-save.c (mark_referenced_regs): Corresponding changes.
13720         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
13721         * frv/predicates.md (frv_load_operand): Corresponding changes.
13722         * microblaze/microblaze.c (double_memory_operand): Corresponding
13723         changes.
13724         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
13725         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
13726         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
13727         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
13728         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
13729         changes.
13730         * pa/pa.c (emit_move_sequence): Corresponding changes.
13731         * vax/vax.c (nonindexed_address_p): Corresponding changes.
13732
13733 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13734
13735         PR target/47551
13736         * config/arm/arm.c (coproc_secondary_reload_class): Handle
13737         structure modes.  Don't check neon_vector_mem_operand for
13738         vector or structure modes.
13739
13740 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13741             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13742
13743         PR target/43590
13744         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
13745         operand 1 and reshuffle the operands to match.
13746         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
13747
13748 2011-03-30  Christian Schüler  <cschueler@gmx.de>
13749
13750         PR driver/48208
13751         * config/c.opt (F): Added 'Driver' to -F option.
13752
13753         PR driver/48260
13754         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
13755           handler function.
13756         * config/darwin.opt: Added '-arch' option.
13757
13758 2011-03-30  Nick Clifton  <nickc@redhat.com>
13759
13760         * config/rx/rx.md: Add peepholes and patterns to combine
13761         extending loads and simple arithmetic instructions.
13762         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
13763         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
13764         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
13765         modes to use pre-decrement and post-increment addressing.
13766         (rx_is_restricted_memory_address): Add range checking of REG+INT
13767         addresses.
13768         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
13769         (rx_memory_move_cost): Adjust cost of stores.
13770         (rx_adjust_insn_length): New function.
13771
13772 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
13773
13774         PR c/48305
13775         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
13776         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
13777         matching arg00/arg01 types.
13778
13779 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
13780
13781         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
13782         last_location to UNKNOWN_LOCATION.
13783
13784 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
13785
13786         PR target/48349
13787         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
13788         FLOAT_SSE_REGS.
13789
13790 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13791             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13792
13793         PR bootstrap/48337
13794         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
13795         Init(PROCESSOR_V7).
13796         (sparc_cpu): Likewise.
13797         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
13798         PROCESSOR_V7.
13799
13800 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13801
13802         PR target/48336
13803         PR middle-end/48342
13804         PR rtl-optimization/48345
13805         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
13806         hard regs for given mode from profitable regs when doing secondary
13807         allocation.
13808
13809 2011-03-29  Jeff Law  <law@redhat.com>
13810
13811         PR bootstrap/48327
13812         * tree-ssa-threadupdate.c (struct redirection_data): Remove
13813         do_not_duplicate field.
13814         (lookup_redirection_data): Corresponding changes.
13815         (create_duplicates): Always create a template block.
13816         (redirect_edges): Remove code which reused the original block
13817         when it was going to become unreachable code.
13818         (thread_block): Don't set do_not_duplicate field.
13819
13820 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
13821
13822         * lto-opts.c (register_user_option_p, lto_register_user_option):
13823         Make type argument unsigned.
13824         * lto-streamer.h (lto_register_user_option): Make type argument
13825         unsigned.
13826         * opth-gen.awk: Make CL_* macros unsigned.
13827         * opts-common.c (find_opt): Make lang_mask argument unsigned.
13828         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
13829         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
13830         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
13831         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
13832         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
13833         (find_opt): Make lang_mask argument unsigned.
13834
13835 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13836
13837         PR rtl-optimization/48331
13838         PR rtl-optimization/48334
13839         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
13840         for any used algorithm.
13841
13842 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13843
13844         * ira-conflicts.c (build_object_conflicts): Add unused attribute
13845         to parent_max.
13846
13847 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
13848
13849         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
13850         (alpha_option_override): Don't set alpha_sr_alias_set.
13851         (emit_frame_store_1): Use gen_frame_mem rather than calling
13852         set_mem_alias_set.
13853         (alpha_expand_epilogue): Ditto.
13854
13855 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
13856
13857         PR tree-optimization/48290
13858         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
13859         vectorization, check that relevant phis in the basic block after
13860         the inner loop are really inner loop's exit phis.
13861
13862 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
13863
13864         PR debug/48190
13865         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
13866         (cached_dw_loc_list_def): New structure.
13867         (cached_dw_loc_list): New typedef.
13868         (cached_dw_loc_list_table): New variable.
13869         (cached_dw_loc_list_table_hash): New function.
13870         (cached_dw_loc_list_table_eq): Likewise.
13871         (add_location_or_const_value_attribute): Take a bool cache_p.
13872         Cache the list when the parameter is true.
13873         (gen_formal_parameter_die): Update caller.
13874         (gen_variable_die): Likewise.
13875         (dwarf2out_finish): Likewise.
13876         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
13877         while generating debug info for the decl.
13878         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
13879         (dwarf2out_init): Initialize cached_dw_loc_list_table.
13880         (resolve_addr): Cache the result of resolving a chain of
13881         location lists.
13882
13883 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
13884
13885         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
13886         conflict object hard regset nodes have intersecting hard reg sets.
13887
13888         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
13889         after regstat_init_n_sets_and_refs.
13890
13891         * ira.c: Add more comments at the top.
13892         (setup_stack_reg_pressure_class, setup_pressure_classes):
13893         Add comments how we compute the register pressure classes.
13894         (setup_allocno_and_important_classes): Add more comments.
13895         (setup_class_translate_array, reorder_important_classes)
13896         (setup_reg_class_relations): Add comments.
13897
13898         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
13899         start of the file.
13900
13901         * ira-color.c: Add 2011 to the Copyright line.
13902         (assign_hard_reg):  Add more comments.
13903         (improve_allocation): Ditto.
13904
13905         * ira-costs.c: Add 2011 to the Copyright line.
13906         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
13907         comments.
13908         (setup_regno_cost_classes_by_mode): Ditto.
13909
13910         Initial patches from ira-improv branch:
13911
13912         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
13913
13914         * ira-build.c (ira_create_object): Remove initialization of
13915         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
13916         (ira_create_allocno): Remove initialization of
13917         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
13918         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
13919         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
13920         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
13921         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
13922         Initialize ALLOCNO_ADD_DATA.
13923         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
13924         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
13925         ALLOCNO_REG.
13926         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
13927         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
13928
13929         * ira.c (ira_reallocate): Remove.
13930         (setup_pressure_classes): Call
13931         ira_init_register_move_cost_if_necessary.  Use
13932         ira_register_move_cost instead of ira_get_register_move_cost.
13933         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
13934         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
13935
13936         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
13937         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
13938         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
13939         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
13940         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
13941         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
13942         Fix formatting.
13943         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
13944         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
13945         (struct allocno_color_data): New.
13946         (allocno_color_data_t): New typedef.
13947         (allocno_color_data): New definition.
13948         (ALLOCNO_COLOR_DATA): New macro.
13949         (struct object_color_data): New.
13950         (object_color_data_t): New typedef.
13951         (object_color_data): New definition.
13952         (OBJECT_COLOR_DATA): New macro.
13953         (update_copy_costs, calculate_allocno_spill_cost): Call
13954         ira_init_register_move_cost_if_necessary.  Use
13955         ira_register_move_cost instead of ira_get_register_move_cost.
13956         (move_spill_restore, update_curr_costs): Ditto.
13957         (allocno_spill_priority): Make it inline.
13958         (color_pass): Allocate and free allocno_color_dat and object_color_data.
13959         (struct coalesce_data, coalesce_data_t): New.
13960         (allocno_coalesce_data): New definition.
13961         (ALLOCNO_COALESCE_DATA): New macro.
13962         (merge_allocnos, coalesced_allocno_conflict_p): Use
13963         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
13964         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
13965         (coalesce_allocnos): Ditto.
13966         (setup_coalesced_allocno_costs_and_nums): Ditto.
13967         (collect_spilled_coalesced_allocnos): Ditto.
13968         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
13969         (setup_slot_coalesced_allocno_live_ranges): Ditto.
13970         (coalesce_spill_slots): Ditto.
13971         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
13972         free allocno_coalesce_data.
13973
13974         * ira-conflicts.c: Fix formatting.
13975         (process_regs_for_copy): Call
13976         ira_init_register_move_cost_if_necessary.  Use
13977         ira_register_move_cost instead of ira_get_register_move_cost.
13978         (build_object_conflicts): Optimize.
13979
13980         * ira-costs.c (record_reg_classes): Optimize.  Call
13981         ira_init_register_move_cost_if_necessary.  Use
13982         ira_register_move_cost, ira_may_move_in_cost, and
13983         ira_may_move_out_cost instead of ira_get_register_move_cost and
13984         ira_get_may_move_cost.
13985         (record_address_regs): Ditto.
13986         (scan_one_insn): Optimize.
13987         (find_costs_and_classes): Optimize.
13988         (process_bb_node_for_hard_reg_moves): Call
13989         ira_init_register_move_cost_if_necessary.  Use
13990         ira_register_move_cost instead of ira_get_register_move_cost.
13991
13992         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
13993         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
13994         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
13995         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
13996         definitions.
13997         (ira_initiate_emit_data, ira_finish_emit_data)
13998         (create_new_allocno): New functions.
13999         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
14000         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
14001         Use ira_register_move_cost instead of ira_get_register_move_cost.
14002
14003         * ira-int.h: Fix some comments.
14004         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
14005         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
14006         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
14007         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
14008         add_data.
14009         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
14010         bitfield after mode.  Make hard_regno a short int.  Make
14011         hard_regno short.  Remove first_coalesced_allocno and
14012         next_coalesced_allocno.  Move mem_optimized_dest_p,
14013         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
14014         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
14015         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
14016         temp, colorable_p.  Add new member add_data.
14017         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
14018         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
14019         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
14020         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
14021         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
14022         (ALLOCNO_ADD_DATA): New macro.
14023         (ira_emit_data_t): New typedef.
14024         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
14025         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
14026         from struct ira_allocno.
14027         (ALLOCNO_EMIT_DATA): New macro.
14028         (ira_allocno_emit_data, allocno_emit_reg): New.
14029         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
14030         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
14031         (OBJECT_ADD_DATA): New macro.
14032         (ira_reallocate): Remove.
14033         (ira_initiate_emit_data, ira_finish_emit_data): New.
14034         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
14035         (ira_init_register_move_cost_if_necessary): New.
14036         (ira_object_conflict_iter_next): Merge into
14037         ira_object_conflict_iter_cond.
14038         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
14039
14040         * ira-live.c (process_single_reg_class_operands): Call
14041         ira_init_register_move_cost_if_necessary.  Use
14042         ira_register_move_cost instead of ira_get_register_move_cost.
14043
14044         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
14045
14046         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
14047
14048         * ira-costs.c: Fix formatting.
14049         (cost_classes, cost_classes_num): Remove.
14050         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
14051         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
14052         (cost_classes_del, cost_classes_htab): New.
14053         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
14054         (initiate_regno_cost_classes, setup_cost_classes): New.
14055         (setup_regno_cost_classes_by_aclass): New.
14056         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
14057         (record_reg_classes): Use regno_cost_classes instead of
14058         cost_classes.  Move checking opposite operand up.
14059         (record_address_regs): Use regno_cost_classes
14060         instead of cost_classes.
14061         (scan_one_insn): Ditto.  Use always general register.
14062         (print_allocno_costs): Use regno_cost_classes instead of
14063         cost_classes.
14064         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
14065         (find_costs_and_classes): Set up cost classes for each registers.
14066         Use also their mode for this.  Use regno_cost_classes instead of
14067         cost_classes.
14068         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
14069         cost_classes.
14070         (free_ira_costs, ira_init_costs): Don't use cost_classes.
14071         (ira_costs, ira_set_pseudo_classes): Call
14072         initiate_regno_cost_classes and finish_regno_cost_classes.
14073
14074         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
14075
14076         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
14077
14078         * target.def (ira_cover_classes): Remove.
14079
14080         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
14081
14082         * doc/tm.texi.in: Ditto.
14083
14084         * ira-conflicts.c: Remove mentioning cover classes from the file.
14085         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
14086         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
14087
14088         * targhooks.c (default_ira_cover_classes): Remove.
14089
14090         * targhooks.h (default_ira_cover_classes): Ditto.
14091
14092         * haifa-sched.c: Remove mentioning cover classes from the file.
14093         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
14094         ira_pressure_classes and ira_pressure_classes_num instead of
14095         ira_reg_class_cover_size and ira_reg_class_cover.  Use
14096         sched_regno_pressure_class instead of sched_regno_cover_class.
14097         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
14098         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14099
14100         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
14101         classes from the file.
14102         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
14103         (struct object_hard_regs, struct object_hard_regs_node): New.
14104         (struct ira_object): New members profitable_hard_regs,
14105         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
14106         (struct ira_allocno): Rename cover_class to aclass.  Rename
14107         cover_class_cost and updated_cover_class_cost to class_cost and
14108         updated_class_cost.  Remove splay_removed_p and
14109         left_conflict_size.  Add new members colorable_p.
14110         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
14111         (ALLOCNO_COLORABLE_P): New macro.
14112         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
14113         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
14114         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
14115         (OBJECT_...): Rename parameter C to O.
14116         (OBJECT_PROFITABLE_HARD_REGS): New macro.
14117         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
14118         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
14119         (struct target_ira_int): New members x_ira_max_memory_move_cost,
14120         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
14121         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
14122         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
14123         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
14124         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
14125         x_ira_reg_class_subunion.
14126         (ira_max_memory_move_cost, ira_max_register_move_cost)
14127         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
14128         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
14129         (ira_important_class_nums, ira_reg_class_superunion): New macros.
14130         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
14131         (ira_reg_class_union): Rename to ira_reg_class_subunion.
14132         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
14133         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
14134         (ira_tune_allocno_costs_and_cover_classes): Rename to
14135         ira_tune_allocno_costs.
14136         (ira_debug_hard_regs_forest): New.
14137         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
14138         (ira_object_conflict_iter_next): Fix comments.
14139         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
14140         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
14141         cover_class to aclass.
14142         (ira_allocate_and_accumulate_costs): Ditto.
14143         (ira_allocate_and_set_or_copy_costs): Ditto.
14144
14145         * opts.c (decode_options): Remove ira_cover_class check.
14146
14147         * ira-color.c: Remove mentioning cover classes from the file.  Use
14148         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
14149         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
14150         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
14151         (splay-tree.h): Remove include.
14152         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
14153         before copy_freq_compare_func.
14154         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
14155         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
14156         New definitions.
14157         (hard_regs_roots, hard_regs_node_vec): Ditto.
14158         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
14159         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
14160         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
14161         (create_new_object_hard_regs_node): Ditto.
14162         (add_new_object_hard_regs_node_to_forest): Ditto.
14163         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
14164         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
14165         Ditto.
14166         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
14167         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
14168         (remove_unused_object_hard_regs_nodes): Ditto.
14169         (enumerate_object_hard_regs_nodes): Ditto.
14170         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
14171         (object_hard_regs_subnode_t): Ditto.
14172         (struct object_hard_regs_subnode): Ditto.
14173         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
14174         (setup_object_hard_regs_subnode_index): Ditto.
14175         (get_object_hard_regs_subnodes_num): Ditto.
14176         (form_object_hard_regs_nodes_forest): Ditto.
14177         (finish_object_hard_regs_nodes_tree): Ditto.
14178         (finish_object_hard_regs_nodes_forest): Ditto.
14179         (allocnos_have_intersected_live_ranges_p): Rename to
14180         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
14181         (pseudos_have_intersected_live_ranges_p): Rename to
14182         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
14183         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
14184         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
14185         (update_copy_costs): Remove assert.  Skip cost update if the hard
14186         reg does not belong the class.
14187         (assign_hard_reg): Process only profitable hard regs.
14188         (uncolorable_allocnos_num): Make it scalar.
14189         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
14190         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
14191         and ira_reg_class_max_nregs.
14192         (bucket_allocno_compare_func): Check frequency first.
14193         (sort_bucket): Add compare function as a parameter.
14194         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
14195         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
14196         (push_allocno_to_stack): Rewrite for checking new allocno
14197         colorability.
14198         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
14199         (push_only_colorable): Pass new parameter to sort_bucket.
14200         (push_allocno_to_spill): Remove.
14201         (allocno_spill_priority_compare): Make it inline and rewrite.
14202         (splay_tree_allocate, splay_tree_free): Remove.
14203         (allocno_spill_sort_compare): New function.
14204         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
14205         build and use splay tree.  Choose first allocno in uncolorable
14206         allocno bucket to spill.  Remove setting spill cost.
14207         (all_conflicting_hard_regs): Remove.
14208         (setup_allocno_available_regs_num): Check only profitable hard
14209         regs.  Print info about hard regs nodes.
14210         (setup_allocno_left_conflicts_size): Remove.
14211         (put_allocno_into_bucket): Don't call
14212         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
14213         (improve_allocation): New.
14214         (color_allocnos): Call setup_profitable_hard_regs,
14215         form_object_hard_regs_nodes_forest, improve_allocation,
14216         finish_object_hard_regs_nodes_forest.  Setup spill cost.
14217         (print_loop_title): Use pressure classes.
14218         (color_allocnso): Ditto.
14219         (do_coloring): Remove allocation and freeing splay_tree_node_pool
14220         and allocnos_for_spilling.
14221         (ira_sort_regnos_for_alter_reg): Don't setup members
14222         {first,next}_coalesced_allocno.
14223         (color): Remove allocating and freeing removed_splay_allocno_vec.
14224         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
14225         prohibited_class_mode_regs.
14226
14227         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
14228         formatting.
14229         (update_allocno_pressure_excess_length): Use pressure classes.
14230         (inc_register_pressure, dec_register_pressure): Check for pressure
14231         class.
14232         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
14233         pressure class.  Use ira_reg_class_nregs instead of
14234         ira_reg_class_max_nregs.
14235         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
14236         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
14237         (single_reg_class): Use ira_reg_class_nregs instead of
14238         ira_reg_class_max_nregs.
14239         (process_bb_node_lives): Use pressure classes.
14240
14241         * ira-emit.c: Remove mentioning cover classes from the file.  Use
14242         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
14243         (change_loop): Use pressure classes.
14244         (modify_move_list): Call ira_set_allocno_class instead of
14245         ira_set_allocno_cover_class.
14246
14247         * ira-build.c: Remove mentioning cover classes from the file.  Use
14248         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
14249         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
14250         ALLOCNO_UPDATED_CLASS_COST instead of
14251         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
14252         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
14253         (ira_create_allocno): Remove initialization of
14254         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
14255         ALLOCNO_COLORABLE_P.
14256         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
14257         Update conflict regs for the objects.
14258         (create_cap_allocno): Remove assert.  Don't propagate
14259         ALLOCNO_AVAILABLE_REGS_NUM.
14260         (ira_free_allocno_costs): New function.
14261         (finish_allocno): Change a part of code into call of
14262         ira_free_allocno_costs.
14263         (low_pressure_loop_node_p): Use pressure classes.
14264         (object_range_compare_func): Don't compare classes.
14265         (setup_min_max_conflict_allocno_ids): Ditto.
14266
14267         * loop-invariant.c: Remove mentioning cover classes from the file.
14268         Use ira_pressure_classes and ira_pressure_classes_num instead of
14269         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
14270         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
14271         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14272         Use reg_allocno_class instead of reg_cover_class.
14273         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
14274         STACK_REG_COVER_CLASS.
14275         (get_regno_cover_class): Rename to get_regno_pressure_class.
14276         (move_loop_invariants): Initialize and finalize regstat.
14277
14278         * ira.c: Remove mentioning cover classes from the file.  Add
14279         comments about coloring without cover classes.  Use ALLOCNO_CLASS
14280         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
14281         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
14282         setup_class_subset_and_memory_move_costs.
14283         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
14284         (setup_cover_and_important_classes): Rename to
14285         setup_allocno_and_important_classes.
14286         (setup_class_translate_array): New.
14287         (setup_class_translate): Call it for allocno and pressure classes.
14288         (cover_class_order): Rename to allocno_class_order.
14289         (comp_reg_classes_func): Use ira_allocno_class_translate instead
14290         of ira_class_translate.
14291         (reorder_important_classes): Set up ira_important_class_nums.
14292         (setup_reg_class_relations): Set up ira_reg_class_superunion.
14293         (print_class_cover): Rename to print_classes.  Add parameter.
14294         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
14295         Print pressure classes too.
14296         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
14297         setup_reg_subclasses.
14298         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
14299         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
14300         (setup_prohibited_class_mode_regs): Use
14301         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
14302         (clarify_prohibited_class_mode_regs): New function.
14303         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
14304         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
14305         (ira_init_once): Initialize them.
14306         (free_register_move_costs): Process them.
14307         (ira_init): Move calls of find_reg_classes and
14308         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
14309         Call clarify_prohibited_class_mode_regs.
14310         (ira_no_alloc_reg): Remove.
14311         (too_high_register_pressure_p): Use pressure classes.
14312
14313         * sched-deps.c: Remove mentioning cover classes from the file.
14314         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
14315         ira_pressure_classes and ira_pressure_classes_num instead of
14316         ira_reg_class_cover_size and ira_reg_class_cover.
14317         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
14318         sched_regno_pressure_class instead of sched_regno_cover_class.
14319         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
14320         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14321
14322         * ira.h: Add 2010 to Copyright.
14323         (ira_no_alloc_reg): Remove external.
14324         (struct target_ira): Rename x_ira_hard_regno_cover_class,
14325         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
14326         x_ira_class_translate to x_ira_hard_regno_allocno_class,
14327         x_ira_allocno_classes_num, x_ira_allocno_classes, and
14328         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
14329         x_ira_pressure_classes, x_ira_pressure_class_translate, and
14330         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
14331         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
14332         x_ira_no_alloc_regs.
14333         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
14334         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
14335         ira_allocno_classes_num and ira_allocno_classes.
14336         (ira_class_translate): Rename to ira_allocno_class_translate.
14337         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
14338         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
14339         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
14340         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
14341         (ira_no_alloc_regs): New.
14342
14343         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
14344         classes from the file.  Use ALLOCNO_CLASS instead of
14345         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
14346         ALLOCNO_COVER_CLASS_COST.
14347         (regno_cover_class): Rename to regno_aclass.
14348         (record_reg_classes): Use ira_reg_class_subunion instead of
14349         ira_reg_class_union.
14350         (record_address_regs): Check overflow.
14351         (scan_one_insn): Ditto.
14352         (print_allocno_costs): Print total mem cost fore regional allocation.
14353         (print_pseudo_costs): Use REG_N_REFS.
14354         (find_costs_and_classes): Use classes intersected with them on the
14355         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
14356         ira_reg_class_union.  Use ira_allocno_class_translate and
14357         regno_aclass instead of ira_class_translate and regno_cover_class.
14358         Modify code for finding regno_aclass.  Setup preferred classes for
14359         the next pass.
14360         (setup_allocno_cover_class_and_costs): Rename to
14361         setup_allocno_class_and_costs.  Use regno_aclass instead of
14362         regno_cover_class.  Use ira_set_allocno_class instead of
14363         ira_set_allocno_cover_class.
14364         (init_costs, finish_costs): Use regno_aclass instead of
14365         regno_cover_class.
14366         (ira_costs): Use setup_allocno_class_and_costs instead of
14367         setup_allocno_cover_class_and_costs.
14368         (ira_tune_allocno_costs_and_cover_classes): Rename to
14369         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
14370         by processing objects.  Use ira_reg_class_max_nregs instead of
14371         ira_reg_class_nregs.
14372
14373         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
14374
14375         * sched-int.h: Remove mentioning cover classes from the file.
14376         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
14377
14378         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
14379         classes from the file.
14380         (struct reg_pref): Rename coverclass into allocnoclass.
14381         (reg_cover_class): Rename to reg_allocno_class.
14382
14383         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
14384
14385         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
14386
14387         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
14388
14389         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
14390
14391         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
14392
14393         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
14394
14395         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
14396
14397         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
14398
14399         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
14400
14401         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
14402
14403         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
14404         (i386_ira_cover_classes): Ditto.
14405
14406         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
14407
14408         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
14409
14410         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
14411
14412         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
14413
14414         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
14415
14416         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
14417
14418         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
14419         (mips_ira_cover_classes): Ditto.
14420
14421         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
14422
14423         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
14424
14425         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
14426
14427         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
14428
14429         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
14430
14431         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
14432         (IRA_COVER_CLASSES_VSX): Ditto.
14433
14434         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
14435         (rs6000_ira_cover_classes): Ditto.
14436
14437         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
14438
14439         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
14440
14441         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
14442
14443         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
14444
14445         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
14446
14447         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
14448
14449         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
14450
14451         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
14452
14453         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
14454
14455         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
14456
14457 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
14458
14459         PR debug/48253
14460         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
14461         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
14462         dw_fde_unlikely_section_end_label, cold_in_std_section,
14463         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
14464         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
14465         fields.
14466         (output_fde): Use dw_fde_second_{begin,end} if second is
14467         true, otherwise dw_fde_{begin,end}.
14468         (output_call_frame_info): Test dw_fde_second_begin != NULL
14469         instead of dw_fde_switched_sections.
14470         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
14471         fields, initialize new fields.  Initialize in_std_section
14472         unconditionally from the first partition.
14473         (dwarf2out_end_epilogue): Don't override dw_fde_end when
14474         dw_fde_second_begin is non-NULL.
14475         (dwarf2out_switch_text_section): Stop initializing removed
14476         dw_fde_struct fields, initialize new fields, initialize
14477         also dw_fde_end here.  Set dw_fde_switch_cfi even when
14478         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
14479         (struct var_loc_list_def): Add last_before_switch field.
14480         (arange_table, arange_table_allocated, arange_table_in_use,
14481         ARANGE_TABLE_INCREMENT, add_arange): Removed.
14482         (size_of_aranges): Count !in_std_section and !second_in_std_section
14483         hunks in fdes, instead of looking at arange_table_in_use.
14484         (output_aranges): Add aranges_length argument, don't call
14485         size_of_aranges here.  Instead of using aranges_table*
14486         emit ranges for fdes when !in_std_section resp.
14487         !second_in_std_section.
14488         (dw_loc_list): Break ranges crossing section switch.
14489         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
14490         use dw_fde_second_end instead of dw_fde_end as end of last range.
14491         (gen_subprogram_die): Don't call add_arange.  Use
14492         dw_fde_{begin,end} for first partition and if switched
14493         section dw_fde_second_{begin,end} for the second.
14494         (var_location_switch_text_section_1,
14495         var_location_switch_text_section): New functions.
14496         (dwarf2out_begin_function): Initialize cold_text_section even
14497         when function_section () isn't text_section.
14498         (prune_unused_types): Don't walk arange_table.
14499         (dwarf2out_finish): Don't needlessly test
14500         flag_reorder_blocks_and_partition when testing cold_text_section_used.
14501         If info_section_emitted, call size_of_aranges and if it indicates
14502         non-empty .debug_aranges, call output_aranges with the computed
14503         size.  Stop using removed dw_fde_struct fields, use
14504         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
14505         for second.
14506
14507         PR debug/48203
14508         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
14509         create ENTRY_VALUE if incoming or address of incoming's MEM
14510         is a hard REG.
14511         * dwarf2out.c (mem_loc_descriptor): Don't emit
14512         DW_OP_GNU_entry_value of DW_OP_fbreg.
14513         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
14514         on ENTRY_VALUE is able to find the canonical parameter VALUE.
14515         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
14516         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
14517         ENTRY_VALUE_EXPs.
14518         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
14519         is a REG_P or MEM_P with REG_P address, compute hash directly
14520         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
14521         (preserve_only_constants): Don't clear VALUES forwaring
14522         ENTRY_VALUE to some other VALUE.
14523
14524 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
14525
14526         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
14527         instead of GEN_INT.
14528
14529 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
14530
14531         * cfgexpand.c (expand_gimple_cond): Always set the source location and
14532         block before expanding the statement.
14533         (expand_gimple_stmt_1): Likewise.  Set them here...
14534         (expand_gimple_stmt): ...and not here.  Tidy.
14535         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
14536         unknown.
14537
14538 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
14539
14540         * Makefile.in: New rule for cprop.o.
14541         * gcse.c: Move constant/copy propagation to cprop.c.
14542         (compute_local_properties): Only handle expression tables.
14543         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
14544         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
14545         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
14546         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
14547         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
14548         compute_cprop_data, find_used_regs, try_replace_reg,
14549         find_avail_set, cprop_jump, constprop_register, cprop_insn,
14550         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
14551         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
14552         find_bypass_set, reg_killed_on_edge, bypass_block,
14553         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
14554         execute_rtl_cprop, pass_rtl_cprop): Move to...
14555         * cprop.c: ...here.  New file, constant/copy propagation for RTL
14556         moved from gcse.c to here with minor cleanups in duplicated code.
14557
14558 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
14559
14560         * config/i386/i386.c (flag_opts): Fix a typo in
14561         -mavx256-split-unaligned-store.
14562
14563 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
14564
14565         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
14566         LIBCALL_VALUE): Remove macros.
14567         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14568         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14569         (h8300_function_value, h8300_libcall_value,
14570         h8300_function_value_regno_p): New functions.
14571
14572 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
14573
14574         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
14575
14576 2011-03-28  Jeff Law  <law@redhat.com>
14577
14578         * tree-ssa-threadupdate.c (redirect_edges): Call
14579         create_edge_and_update_destination_phis as needed.
14580         (create_edge_and_update_destination_phis): Accept new BB argument.
14581         All callers updated.
14582         (thread_block): Do not update the profile when threading around
14583         intermediate blocks.
14584         (thread_single_edge): Likewise.
14585         (determine_bb_domination_status): If BB is not a successor of the
14586         loop header, return NONDOMINATING.
14587         (register_jump_thread): Note when we register a jump thread around
14588         an intermediate block.
14589         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
14590         (thread_across_edge): Use it.
14591
14592 2011-03-28  Tristan Gingold  <gingold@adacore.com>
14593
14594         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
14595         when for_return is 2.
14596
14597 2011-03-28  Jeff Law  <law@redhat.com>
14598
14599         * var-tracking.c (canonicalize_values_mark): Delete unused
14600         lhs assignment.
14601         (canonicalize_values_star, set_variable_part): Likewise.
14602         (clobber_variable_part, delete_variable_part): Likewise.
14603
14604 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
14605
14606         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
14607
14608 2011-03-28  Martin Jambor  <mjambor@suse.cz>
14609
14610         * tree-inline.c (expand_call_inline): Do not check that destination
14611         node is analyzed.
14612         (optimize_inline_calls): Assert that destination node is analyzed.
14613         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
14614         not call tree_lowering_passes.
14615         * cgraph.h (cgraph_analyze_function): Declare.
14616         * cgraphunit.c (cgraph_analyze_function): Make public.
14617
14618 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
14619
14620         * config/sparc/sparc-opts.h: New.
14621         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
14622         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
14623         (sparc_option_override): Store processor_type enumeration rather
14624         than string in cpu_default.  Remove name and enumeration from
14625         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
14626         without using sparc_select.  Use target_flags_explicit instead of
14627         fpu_option_set.
14628         * config/sparc/sparc.h (enum processor_type): Move to
14629         sparc-opts.h.
14630         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
14631         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
14632         HeaderInclude entry.
14633         (mcpu=, mtune=): Use Var and Enum.
14634         (sparc_processor_type): New Enum and EnumValue entries.
14635
14636 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14637             Iain Sandoe  <iains@gcc.gnu.org>
14638
14639         PR target/48245
14640         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
14641
14642 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
14643
14644         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
14645         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
14646         Insert new statements at it in lieu of STMT.
14647         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
14648         * tree-vect-stmts.c (vectorizable_store): Likewise.
14649         (vectorizable_load): Likewise.
14650
14651 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
14652
14653         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
14654         (divtf3): Ditto.
14655         (multf3): Ditto.
14656         (subtf3): Ditto.
14657
14658 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14659
14660         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
14661         unaligned 256bit load/store.
14662         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
14663         (*avx_movdqu<avxmodesuffix>): Likewise.
14664
14665 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14666
14667         PR target/48288
14668         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
14669         * config/pa/pa.md (iordi3): Use new predicate in expander.
14670         (iorsi3): Likewise.
14671
14672 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
14673
14674         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
14675         FUNCTION_VALUE_REGNO_P): Remove macros.
14676         * config/mips/mips-protos.h (mips_function_value): Remove.
14677         * config/mips/mips.c (mips_function_value): Rename to...
14678         (mips_function_value_1): ... this. Make static.  Handle receiving
14679         the function type in 'fn_decl_or_type' argument.
14680         (mips_function_value, mips_libcall_value,
14681         mips_function_value_regno_p): New function.
14682         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14683         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14684
14685 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14686
14687         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
14688         and -mavx256-split-unaligned-store.
14689         (ix86_option_override_internal): Split 32-byte AVX unaligned
14690         load/store by default.
14691         (ix86_avx256_split_vector_move_misalign): New.
14692         (ix86_expand_vector_move_misalign): Use it.
14693
14694         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
14695         -mavx256-split-unaligned-store.
14696
14697         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
14698         256bit load/store.  Generate unaligned store on misaligned memory
14699         operand.
14700         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
14701         256bit load/store.
14702         (*avx_movdqu<avxmodesuffix>): Likewise.
14703
14704         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
14705         -mavx256-split-unaligned-store.
14706
14707 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
14708
14709         PR target/38598
14710         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
14711         Update commentary.
14712
14713 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
14714
14715         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
14716         opno arguments with an expand_operand.  Use create_input_operand.
14717         (mips_prepare_builtin_target): Delete.
14718         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
14719         functions.
14720         (mips_expand_builtin_direct): Use create_output_operand and
14721         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
14722         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
14723         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
14724
14725 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
14726
14727         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
14728         function.
14729         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
14730
14731 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
14732
14733         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
14734         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
14735         basic blocks and call commit_edge_insertions directly.
14736         (fixup_abnormal_edges): Move from here to...
14737         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
14738         on the edges and return whether some have actually been inserted.
14739         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
14740         compensation code.
14741
14742 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
14743
14744         PR rtl-optimization/48144
14745         * sel-sched-ir.c (merge_history_vect): Factor out from ...
14746         (merge_expr_data): ... here.
14747         (av_set_intersect): Rename to av_set_code_motion_filter.
14748         Update all callers.  Call merge_history_vect when an expression
14749         is found in both sets.
14750         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
14751
14752 2011-03-26  Alan Modra  <amodra@gmail.com>
14753
14754         * config/rs6000/predicates.md (word_offset_memref_op): Handle
14755         cmodel medium addresses.
14756         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
14757         64-bit gpr loads and stores.
14758         (rs6000_secondary_reload_ppc64): New function.
14759         * config/rs6000/rs6000-protos.h: Declare it.
14760         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
14761
14762 2011-03-26  Alan Modra  <amodra@gmail.com>
14763
14764         PR target/47487
14765         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
14766         GNU Go in traceback table.
14767
14768 2011-03-25  Richard Henderson  <rth@redhat.com>
14769
14770         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
14771         if there are exactly 6 operands.
14772         (set_storage_via_setmem): Similarly.
14773
14774 2011-03-25  Kai Tietz  <ktietz@redhat.com>
14775
14776         * collect2.c (write_c_file_stat): Handle backslash
14777         as right-hand directory separator.
14778         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
14779         checking just for slash.
14780         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
14781         instead of checking for trailing slash.
14782         * gcc.c (record_temp_file): Use filename_cmp instead
14783         of strcmp.
14784         (do_spec_1): Likewise.
14785         (replace_outfile_spec_function): Likewise.
14786         (is_directory): Use filename_ncmp instead of strncmp.
14787         (print_multilib_info): Likewise.
14788         * gcov.c (find_source): Use filename_cmp instead
14789         instead of strcmp.
14790         (make_gcov_file_name): Fix order of slash/backslash
14791         checks.
14792         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
14793         (add_standard_paths): Likewise.
14794         * mips-tfile.c (saber_stop): Handle backslash.
14795         * prefix.c (update_path): Use filename_ncmp instead of
14796         strncmp.
14797         * profile.c (output_location): Use filename_cmp instead
14798         of strcmp.
14799         * read-md.c (handle_toplevel_file): Handle backslash.
14800         * tlink.c (frob_extension):  Likewise.
14801         * tree-cfg.c (same_line_p): Use filename_cmp instead of
14802         strcmp.
14803         * tree-dump.c (dequeue_and_dump): Handle backslash.
14804         * tree.c (get_file_function_name): Likewise.
14805         * gengtype.c (read_input_list): Likewise.
14806         (get_file_realbasename): Likewise.
14807         (get_output_file_with_visibility): Use filename_cmp
14808         instead of strcmp.
14809
14810 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
14811
14812         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
14813         case to VFPv1.
14814
14815 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
14816
14817         * fold-const.c (expr_location_or): New function.
14818         (fold_truth_not_expr): Call it.
14819
14820 2011-03-25  Jeff Law  <law@redhat.com>
14821
14822         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
14823         va_end.
14824         * c-family/c-common.c (def_fn_type): Likewise.
14825         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
14826         * emit-rtl.c (gen_rtvec): Likewise.
14827         * lto/lto-lang.c (def_fn_type): Likewise.
14828
14829 2011-03-25  Richard Guenther  <rguenther@suse.de>
14830
14831         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
14832         also generate copies.
14833         (fini_copy_prop): Handle constant values properly.
14834
14835 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
14836
14837         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
14838         mode size instead of bitsize with DWARF2_ADDR_SIZE.
14839         (hash_loc_operands, compare_loc_operands): Handle
14840         DW_OP_GNU_entry_value.
14841
14842 2011-03-25  Kai Tietz  <ktietz@redhat.com>
14843
14844         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
14845         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
14846         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
14847         comment and use macro TARGET_64BIT_MS_ABI instead.
14848         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
14849         and change default behavior for 32-bit MS_ABI.
14850         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
14851         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
14852         32-bit, too.
14853         (ix86_cfun_abi): Likewise.
14854         (ix86_maybe_switch_abi): Adjust comment.
14855         (init_cumulative_args): Check for bit-ness in MS_ABI case.
14856         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
14857         instead of checking for SYSV_ABI.
14858         (ix86_nsaved_sseregs): Likewise.
14859         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
14860         to 16 bytes.
14861         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
14862         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
14863         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
14864         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
14865         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
14866
14867 2011-03-25  Richard Guenther  <rguenther@suse.de>
14868
14869         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
14870         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
14871         (verify_gimple): Remove.
14872         * tree-cfg.c (verify_gimple_call): Merge verification
14873         from verify_stmts.
14874         (verify_gimple_phi): Merge verification from verify_stmts.
14875         (verify_gimple_label): New function.
14876         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
14877         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
14878         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
14879         (verify_stmts): Rename to verify_gimple_in_cfg.
14880         (verify_gimple_in_cfg): New function.
14881         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
14882         * tree-ssa.c (verify_ssa): Likewise.
14883         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
14884
14885 2011-03-25  Richard Guenther  <rguenther@suse.de>
14886
14887         * passes.c (init_optimization_passes): Add FRE pass after
14888         early SRA.
14889
14890 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
14891             Andrew Stubbs  <ams@codesourcery.com>
14892
14893         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
14894         for Cortex-A8.
14895         (arm_movdi_vfp_cortexa8): New pattern.
14896         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
14897         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
14898         instructions when tuning for Cortex-A8.  Set attribute "arch".
14899         * config/arm/arm.md: Move include arm-tune.md up a bit.
14900         (define_attr "arch"): Add "onlya8" and "nota8" values.
14901         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
14902
14903 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
14904
14905         PR bootstrap/48282
14906         Revert:
14907         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
14908
14909         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
14910         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
14911         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
14912         * passes.c (init_optimization_passes): Move
14913         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
14914
14915 2011-03-25  Kai Tietz  <ktietz@redhat.com>
14916
14917         * c-typeck.c (comptypes_internal): Replace target
14918         hook call of comp_type_attributes by version in tree.c file.
14919         * gimple.c (gimple_types_compatible_p_1): Likewise.
14920         * tree-ssa.c (useless_type_conversion_p): Likewise.
14921         * tree.c (build_type_attribute_qual_variant): Likewise.
14922         (attribute_value_equal): New static helper function.
14923         (comp_type_attributes): New function.
14924         (merge_attributes): Use attribute_value_equal for comparison.
14925         (attribute_list_contained): Likewise.
14926         * tree.h (comp_type_attributes): New prototype.
14927
14928 2011-03-25  Richard Guenther  <rguenther@suse.de>
14929
14930         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
14931         of complex types at -O0.
14932         (verify_gimple_assign_binary): Likewise.
14933         (verify_gimple_assign_ternary): Likewise.
14934
14935 2011-03-24  Mark Wielaard  <mjw@redhat.com>
14936
14937         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
14938         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
14939
14940 2011-03-24  Mark Wielaard  <mjw@redhat.com>
14941
14942         PR debug/48041
14943         * dwarf2out.c (output_abbrev_section): Only write table when
14944         abbrev_die_table_in_use > 1.
14945
14946 2011-02-24  Richard Henderson  <rth@redhat.com>
14947
14948         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
14949         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
14950         (alpha_expand_unaligned_load_words): Use extql.
14951         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
14952         (emit_insxl): Handle all modes for consistency.
14953
14954 2011-02-24  Richard Henderson  <rth@redhat.com>
14955
14956         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
14957         (alpha_expand_unaligned_load): Likewise.
14958         (alpha_expand_unaligned_store): Likewise.
14959         (alpha_expand_unaligned_load_words): Likewise.
14960         (alpha_expand_unaligned_store_words): Likewise.
14961         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
14962         (alpha_split_lock_test_and_set_12): Likewise.
14963         (print_operand, alpha_fold_builtin_extxx): Likewise.
14964         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
14965         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
14966         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
14967         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
14968         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
14969         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
14970         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
14971         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
14972         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
14973         (extwl, extll, extql): Similarly.
14974         (inswh, inslh, insqh): Similarly.
14975         (mskbl, mskwl, mskll, mskql): Similarly.
14976         (mskwh, msklh, mskqh): Similarly.
14977
14978 2011-02-24  Richard Henderson  <rth@redhat.com>
14979
14980         * config/alpha/alpha.md (attribute isa): Add er, ner.
14981         (attribute enabled): Handle them.
14982         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
14983
14984 2011-02-24  Richard Henderson  <rth@redhat.com>
14985
14986         * config/alpha/alpha.md (attribute isa): Add vms.
14987         (attribute enabled): Handle it.
14988         (*movsf): Merge *movsf_{nofix,fix,nofp}.
14989         (*movdf): Merge *movdf_{nofix,fix,nofp}.
14990         (*movtf): Rename from *movtf_internal for consistency.
14991         (*movsi): Merge with *movsi_nt_vms.
14992         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
14993         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
14994         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
14995         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
14996
14997 2011-02-24  Richard Henderson  <rth@redhat.com>
14998
14999         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
15000         (extendqisi2, extendhisi2): Likewise.
15001         (extendqidi2): Simplify BWX/non-BWX expansions.
15002         (extendhidi2): Similarly.
15003
15004 2011-02-24  Richard Henderson  <rth@redhat.com>
15005
15006         * config/alpha/alpha.md (attribute isa): New.
15007         (attribute enabled): New.
15008         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
15009         (zero_extendqisi2, zero_extendqidi2): Similarly.
15010         (zero_extendhisi2, zero_extendhidi2): Similarly.
15011         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
15012
15013 2011-02-24  Richard Henderson  <rth@redhat.com>
15014
15015         * config/alpha/predicates.md (input_operand): Revert last change;
15016         update comment to mention 32-bit VMS rather than Windows.
15017
15018 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15019
15020         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
15021         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
15022         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
15023         * passes.c (init_optimization_passes): Move
15024         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
15025
15026 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
15027
15028         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
15029
15030 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
15031
15032         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
15033         correctly.
15034
15035 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
15036
15037         PR debug/48204
15038         * simplify-rtx.c (simplify_const_unary_operation): Call
15039         real_convert when changing mode class with FLOAT_EXTEND.
15040
15041 2011-03-24  Nick Clifton  <nickc@redhat.com>
15042
15043         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
15044         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
15045         * config/rx/rx.c (rx_option_override): Set align_jumps,
15046         align_loops and align_labels if not set by the user.
15047         (rx_align_for_label): New function.
15048         (rx_max_skip_for_label): New function.
15049         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
15050         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
15051         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
15052         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
15053         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
15054
15055 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
15056
15057         PR rtl-optimization/48263
15058         * optabs.c (expand_binop_directly): Reinstate convert_modes code
15059         and original commutative_p handling.  Use maybe_gen_insn.
15060
15061 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15062
15063         * reload.c (find_reloads_subreg_address): Add address_reloaded
15064         parameter and return true there if the full address has been
15065         reloaded.
15066         (find_reloads_toplev): Pass address_reloaded flag.
15067         (find_reloads_address_1): Don't use address_reloaded parameter.
15068
15069 2011-03-24  Jeff Law  <law@redhat.com>
15070
15071         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
15072         unused variable "ann".
15073         (remove_unused_locals): Likewise.
15074
15075         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
15076         statement.
15077
15078         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
15079         after it is freed.
15080
15081 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15082
15083         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
15084         for invalid symbolic addresses.
15085         (s390_secondary_reload): Don't use s390_check_symref_alignment for
15086         larl operands.
15087
15088 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
15089
15090         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
15091         the argument in calls to fold_truth_not_expr.
15092
15093 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15094
15095         * tree.c (record_node_allocation_statistics): New function.
15096         (make_node_stat, copy_node_stat, build_string): Call it.
15097         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
15098         (build1_stat, build_omp_clause): Likewise.
15099
15100 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
15101
15102         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
15103         last commit.
15104
15105 2011-03-24  Richard Guenther  <rguenther@suse.de>
15106
15107         PR tree-optimization/48271
15108         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
15109         blocks that still exist.
15110
15111 2011-03-24  Richard Guenther  <rguenther@suse.de>
15112
15113         PR tree-optimization/48270
15114         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
15115         not free datarefs before ddrs.
15116
15117 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
15118
15119         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
15120         from the address built for a reference with variable offset.
15121
15122 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
15123
15124         PR target/48237
15125         * config/i386/i386.md (*movdf_internal_rex64): Do not split
15126         alternatives that can be handled with movq or movabsq insn.
15127         (*movdf_internal): Disable for !TARGET_64BIT.
15128         (*movdf_internal_nointeger): Ditto.
15129         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
15130
15131 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15132
15133         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
15134         (FUNCTION_ARG_ADVANCE): Likewise.
15135         * tm.texi.in: Change references to them to hook references.
15136         * tm.texi: Regenerate.
15137         * targhooks.c (default_function_arg): Eliminate check for target macro.
15138         (default_function_incoming_arg): Likewise.
15139         (default_function_arg_advance): Likewise.
15140         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
15141         (function_arg_advance): Likewise.
15142         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
15143
15144 2011-03-24  Richard Guenther  <rguenther@suse.de>
15145
15146         PR middle-end/48269
15147         * tree-object-size.c (addr_object_size): Do not double-account
15148         for MEM_REF offsets.
15149
15150 2011-03-24  Diego Novillo  <dnovillo@google.com>
15151
15152         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
15153         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
15154         (lto_input_data_block): Move from lto-opts.c.  Make extern.
15155         Update all users.
15156         (lto_input_string): Rename from input_string.  Make extern.
15157         Update all users.
15158         * lto-streamer-out.c (lto_output_string_with_length): Rename from
15159         output_string_with_length.
15160         Output 0 to indicate a non-NULL string.  Update all callers to
15161         not emit 0.
15162         (lto_output_string): Rename from output_string.  Make extern.
15163         Update all users.
15164         (lto_output_decl_state_streams): Make extern.
15165         (lto_output_decl_state_refs): Make extern.
15166         * lto-streamer.h (lto_input_string): Declare.
15167         (lto_input_data_block): Declare.
15168         (lto_output_string): Declare.
15169         (lto_output_string_with_length): Declare.
15170         (lto_output_decl_state_streams): Declare.
15171         (lto_output_decl_state_refs): Declare.
15172
15173 2011-03-24  Richard Guenther  <rguenther@suse.de>
15174
15175         PR tree-optimization/46562
15176         * tree.c (build_invariant_address): New function.
15177         * tree.h (build_invariant_address): Declare.
15178         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
15179         a renamed function moved ...
15180         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
15181         Take valueization callback parameter.
15182         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
15183         * gimple-fold.h: New file.
15184         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
15185         (ccp_fold, fold_const_aggregate_ref,
15186         fold_ctor_reference, fold_nonarray_ctor_reference,
15187         fold_array_ctor_reference, fold_string_cst_ctor_reference,
15188         get_base_constructor): Move ...
15189         * gimple-fold.c: ... here.
15190         (gimple_fold_stmt_to_constant_1): New function
15191         split out from ccp_fold.  Take a valueization callback parameter.
15192         Valueize all operands.
15193         (gimple_fold_stmt_to_constant): New wrapper function.
15194         (fold_const_aggregate_ref_1): New function split out from
15195         fold_const_aggregate_ref.  Take a valueization callback parameter.
15196         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
15197         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
15198         invariant POINTER_PLUS_EXPRs to invariant form.
15199         (vn_valueize): New function.
15200         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
15201         * tree-vrp.c (vrp_valueize): New function.
15202         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
15203         to fold statements to constants.
15204         * tree-ssa-pre.c (eliminate): Properly guard propagation of
15205         function declarations.
15206         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
15207         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
15208
15209 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
15210
15211         * config/h8300/predicates.md (jump_address_operand): Fix register
15212         mode check.
15213
15214 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
15215
15216         * doc/invoke.texi (max-stores-to-sink): Document.
15217         * params.h (MAX_STORES_TO_SINK): Define.
15218         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
15219         if either vectorization or if-conversion is disabled.
15220         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
15221         tree-vect-data-refs.c vect_equal_offsets.
15222         (dr_equal_offsets_p): New function.
15223         (find_data_references_in_bb): Remove static.
15224         * tree-data-ref.h (find_data_references_in_bb): Declare.
15225         (dr_equal_offsets_p): Likewise.
15226         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
15227         (vect_drs_dependent_in_basic_block): Update calls to
15228         vect_equal_offsets.
15229         (vect_check_interleaving): Likewise.
15230         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
15231         (cond_if_else_store_replacement): Rename to...
15232         (cond_if_else_store_replacement_1): ... this.  Change arguments and
15233         documentation.
15234         (cond_if_else_store_replacement): New function.
15235         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
15236         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
15237
15238 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
15239
15240         PR target/46934
15241         * config/arm/arm.md (casesi): Use the gen_int_mode() function
15242         to subtract lower bound instead of GEN_INT().
15243
15244 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
15245
15246         PR other/48179
15247         PR other/48221
15248         PR other/48234
15249         * doc/extend.texi (Alignment): Move section to match order in TOC.
15250         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
15251         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
15252
15253 2011-03-23  Jeff Law  <law@redhat.com>
15254
15255         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
15256         before removing the edge.
15257
15258         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
15259         it may have been freed by redirect_branch_edge or
15260         redirect_edge_succ_nodup.
15261
15262 2011-03-23  Richard Guenther  <rguenther@suse.de>
15263
15264         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
15265         (check_va_list_escapes): Likewise.
15266         (check_all_va_list_escapes): Likewise.
15267
15268 2011-03-23  Richard Guenther  <rguenther@suse.de>
15269
15270         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
15271         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
15272         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
15273         (alias.o): Likewise.
15274         (ipa-type-escape.o): Remove.
15275         (ipa-struct-reorg.o): Likewise.
15276         (GTFILES): Remove ipa-struct-reorg.c.
15277         * alias.c: Do not include ipa-type-escape.h.
15278         * tree-ssa-alias.c: Likewise.
15279         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
15280         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
15281         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
15282         and ipa-type-escape passes.
15283         * tree-pass.h (pass_ipa_type_escape): Remove.
15284         (pass_ipa_struct_reorg): Likewise.
15285         * ipa-struct-reorg.h: Remove.
15286         * ipa-struct-reorg.c: Likewise.
15287         * ipa-type-escape.h: Likewise.
15288         * ipa-type-escape.c: Likewise.
15289         * doc/invoke.texi (-fipa-struct-reorg): Remove.
15290         (--param struct-reorg-cold-struct-ratio): Likewise.
15291         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
15292         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
15293         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
15294
15295 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15296
15297         * config/s390/2084.md: Enable all insn reservations also for z9_ec
15298         cpu attribute value.
15299         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
15300         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
15301         * config/s390/s390.c (processor_flags_table): New constant array.
15302         (s390_handle_arch_option): Remove.
15303         (s390_handle_option): Remove s390_handle_arch_option invocations
15304         and OPT_mwarn_framesize_ handling.
15305         (s390_option_override): Remove s390_handle_arch_option invocation.
15306         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
15307         warnings.
15308         * config/s390/s390.md (cpu attribute): Add z9_ec value.
15309         * config/s390/s390.opt (s390_tune, s390_arch)
15310         (march=): Replace s390_arch_option enum and values with
15311         processor_type.  Set variable name to s390_arch.  Set
15312         initialization value.
15313         (mtune=): Replace s390_arch_option with processor_type.  Set
15314         variable name to s390_tune.  Set initialization value.
15315
15316 2011-03-23  Julian Brown  <julian@codesourcery.com>
15317
15318         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
15319         accesses which are not naturally aligned.
15320
15321 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
15322
15323         PR target/47553
15324         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
15325
15326 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
15327
15328         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
15329         parameter from "int" to "enum insn_code".
15330         (expand_operand_type): New enum.
15331         (expand_operand): New structure.
15332         (create_expand_operand): New function.
15333         (create_fixed_operand, create_output_operand): Likewise
15334         (create_input_operand, create_convert_operand_to): Likewise.
15335         (create_convert_operand_from, create_address_operand): Likewise.
15336         (create_integer_operand): Likewise.
15337         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
15338         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
15339         (expand_insn, expand_jump_insn): Likewise.
15340         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
15341         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
15342         (expand_movstr, expand_builtin___clear_cache): Likewise.
15343         (expand_builtin_lock_release): Likewise.
15344         * explow.c (allocate_dynamic_stack_space): Likewise.
15345         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
15346         and use the default handling in that case.
15347         * expmed.c (check_predicate_volatile_ok): Delete.
15348         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
15349         (emit_cstore): Likewise.
15350         * expr.c (emit_block_move_via_movmem): Likewise.
15351         (set_storage_via_setmem, expand_assignment): Likewise.
15352         (emit_storent_insn, try_casesi): Likewise.
15353         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
15354         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
15355         (expand_vec_shift_expr, expand_binop_directly): Likewise.
15356         (expand_twoval_unop, expand_twoval_binop): Likewise.
15357         (expand_unop_direct, emit_indirect_jump): Likewise.
15358         (emit_conditional_move, vector_compare_rtx): Likewise.
15359         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
15360         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
15361         (expand_sync_lock_test_and_set): Likewise.
15362         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
15363         (emit_unop_insn): Likewise.
15364         (expand_copysign_absneg): Change icode to an insn_code.
15365         (create_convert_operand_from_type): New function.
15366         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
15367         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
15368         (expand_insn, expand_jump_insn): Likewise.
15369         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
15370         than const_int_operand for operand 2.
15371
15372 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15373
15374         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
15375         if possible.
15376
15377 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15378
15379         * emit-rtl.c (emit_pattern_before_noloc): New function.
15380         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
15381         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
15382         (emit_pattern_after_noloc): New function.
15383         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
15384         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
15385
15386 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15387
15388         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
15389         (__ffsDI2): Likewise.
15390
15391 2011-03-22  Richard Henderson  <rth@redhat.com>
15392
15393         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
15394         of !TARGET_ABI_OPEN_VMS.
15395         (alpha_trampoline_init, alpha_start_function): Likewise.
15396         (alpha_expand_epilogue, alpha_file_start): Likewise.
15397         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
15398         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
15399         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
15400         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
15401         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
15402
15403 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15404
15405         * config/s390/s390-opts.h: New.
15406         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
15407         s390_arch_flags, s390_warn_framesize, s390_stack_size,
15408         s390_stack_guard): Remove.
15409         (s390_handle_arch_option): Return void.  Take enum
15410         s390_arch_option value instead of string and searching array.
15411         (s390_handle_option): Don't assert that global structures are in
15412         use.  Access variables via opts pointer.  Use error_at.  Don't use
15413         sscanf for -mstack-guard= or -mstack-size=.  Update call to
15414         s390_handle_arch_option.
15415         (s390_option_override): Update call to s390_handle_arch_option.
15416         (s390_emit_prologue): Use %d format for s390_stack_size in
15417         diagnostic.  Use %wd for HOST_WIDE_INT.
15418         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
15419         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
15420         * config/s390/s390.opt (config/s390/s390-opts.h): New
15421         HeaderInclude entry.
15422         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
15423         s390_arch_flags, s390_warn_framesize): New Variable entries.
15424         (s390_arch_option): New Enum and EnumValue entries.
15425         (march=): Use Enum instead of Var.
15426         (mstack-guard=, mstack-size=): Use UInteger and Var.
15427         (mtune=): Use Enum.
15428
15429 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15430
15431         * config/score/score.c (score_handle_option): Don't assert that
15432         global structures are in use.  Access target_flags via opts
15433         pointer.  Use value of -march= option to determine target_flags
15434         settings.
15435         * config/score/score.opt (march=): Use Enum.
15436         (score_arch): New Enum and EnumValue entries.
15437
15438 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15439
15440         * config/mep/mep.c (option_mtiny_specified): Remove.
15441         (mep_option_override): Move register handling for -mivc2 from
15442         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
15443         instead of option_mtiny_specified.
15444         (mep_handle_option): Access target_flags via opts pointer.  Don't
15445         assert that global structures are in use.  Defer part of -mivc2
15446         handling and move it to mep_option_override.
15447         * config/mep/mep.opt (IVC2): New Mask entry.
15448         (mivc2): Use Var and Defer instead of Mask.
15449
15450 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15451
15452         * config/v850/v850-opts.h: New.
15453         * config/v850/v850.c (small_memory): Replace with
15454         small_memory_physical_max array.  Make that array static const.
15455         (v850_handle_memory_option): Take integer value of argument.  Take
15456         gcc_options pointer, option text and location.  Return void.
15457         Update for changes to small memory structures.
15458         (v850_handle_option): Access target_flags via opts pointer.  Don't
15459         assert that global structures are in use.  Update calls to
15460         v850_handle_memory_option.
15461         (v850_encode_data_area): Update references to small memory settings.
15462         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
15463         (enum small_memory_type): Move to v850-opts.h.
15464         * config/v850/v850.opt (config/v850/v850-opts.h): New
15465         HeaderInclude entry.
15466         (small_memory_max): New Variable entry.
15467         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
15468         (mtda, mzda): Likewise.
15469
15470 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15471
15472         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
15473         pointer.  Don't assert that global structures are in use.
15474
15475 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15476
15477         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
15478         via opts pointer.  Don't assert that global structures are in use.
15479
15480 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15481
15482         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
15483         (munix=93): Use Var.
15484         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
15485         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
15486         * config/pa/pa-opts.h: New.
15487         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
15488         (pa_handle_option): Don't assert that global structures are in
15489         use.  Access target_flags via opts pointer.  Don't handle
15490         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
15491         OPT_munix_98 here.
15492         (pa_option_override): Handle deferred OPT_mfixed_range_.
15493
15494 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15495
15496         * config/mn10300/mn10300-opts.h: New.
15497         * config/mn10300/mn10300.c (mn10300_processor,
15498         mn10300_tune_string): Remove.
15499         (mn10300_handle_option): Don't assert that global structures are
15500         in use.  Access mn10300_processor via opts pointer.  Don't handle
15501         OPT_mtune_ here.
15502         * config/mn10300/mn10300.h (enum processor_type): Move to
15503         mn10300-opts.h.
15504         (mn10300_processor): Remove.
15505         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
15506         HeaderInclude entry.
15507         (mn10300_processor): New Variable entry.
15508         (mtune=): Use Var.
15509
15510 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15511
15512         * config/microblaze/microblaze.c: Don't include opts.h.
15513         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
15514         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
15515         (mno-clearbss): Use Var and Warn.
15516
15517 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15518
15519         * config/m32r/m32r-opts.h: New.
15520         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
15521         (m32r_handle_option): Don't assert that global structures are in
15522         use.  Access target_flags and m32r_cache_flush_func via opts
15523         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
15524         OPT_mno_flush_trap here.
15525         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
15526         include of m32r-opts.h.
15527         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
15528         HeaderInclude entry.
15529         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
15530         (mmodel=): Use Enum and Var.
15531         (m32r_model): New Enum and EnumValue entries.
15532         (mno-flush-trap): Use Var.
15533         (msdata=): Use Enum and Var.
15534         (m32r_sdata): New Enum and EnumValue entries.
15535
15536 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15537
15538         * config/m32c/m32c.c: Don't include opts.h.
15539         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
15540         m32c_handle_option): Remove.
15541         (m32c_option_override): Check global_options_set.x_target_memregs
15542         instead of target_memregs_set.
15543         * config/m32c/m32c.h (target_memregs): Remove.
15544         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
15545         variable.
15546
15547 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15548
15549         * config/iq2000/iq2000-opts.h: New.
15550         * config/iq2000/iq2000.c: Don't include opts.h.
15551         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
15552         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
15553         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
15554         HeaderInclude entry.
15555         (iq2000_tune): New Variable entry.
15556         (march=): Add comment.  Use Enum.
15557         (iq2000_arch): New Enum and EnumValue entries.
15558         (mcpu=): Use Enum and Var.
15559         (iq2000_tune): New Enum and EnumValue entries.
15560
15561 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15562
15563         * config/ia64/ia64-opts.h: New.
15564         * config/ia64/ia64.c (ia64_tune): Remove.
15565         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
15566         here.  Use error_at.
15567         (ia64_option_override): Handle deferred OPT_mfixed_range_.
15568         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
15569         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
15570         HeaderInclude entry.
15571         (ia64_tune): New Variable entry.
15572         (mfixed-range=): Use Defer and Var.
15573         (mtune=): Use Enum and Var.
15574         (ia64_tune): New Enum and EnumValue entries.
15575
15576 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15577
15578         * config/frv/frv-opts.h: New.
15579         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
15580         frv-opts.h.
15581         (frv_cpu_type): Remove.
15582         * config/frv/frv.c: Don't include opts.h.
15583         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
15584         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
15585         (frv_cpu_type): New Variable entry.
15586         (frv_cpu): New Enum and EnumValue entries.
15587
15588 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15589
15590         * config/cris/cris.c (cris_handle_option): Access target_flags via
15591         opts pointer.  Don't assert that global structures are in use.
15592         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
15593         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
15594
15595 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15596
15597         * config/bfin/bfin-opts.h: New.
15598         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
15599         bfin_si_revision, bfin_workarounds): Remove.
15600         (bfin_cpus): Make static const.
15601         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
15602         not bfin_lib_id_given.
15603         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
15604         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
15605         pointer. Use error_at.  Don't assert that global structures are in use.
15606         * config/bfin/bfin.h: Include bfin-opts.h.
15607         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
15608         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
15609         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
15610         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
15611         entries.
15612
15613 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15614
15615         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
15616         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
15617         or -msoft-float here.
15618         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
15619         -msoft-float and -mhard-float.
15620         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
15621         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
15622         msoft-float.
15623         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
15624         -msoft-float.
15625         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
15626         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
15627         not mhard-float.
15628         (LIBGCC_SPEC): Don't handle -msoft-float.
15629         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
15630         -mhard-float.
15631         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
15632         msoft-float.
15633         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
15634         -mfloat-abi=*, not -msoft-float and -mhard-float.
15635         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
15636         -msoft-float.
15637         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
15638         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
15639         mhard-float and msoft-float.
15640         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
15641         mfloat-abi=soft in comments, not mhard-float and msoft-float.
15642         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15643         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
15644         mhard-float.
15645         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
15646         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
15647         msoft-float.
15648         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
15649         not mhard-float.
15650         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
15651         not msoft-float.
15652
15653 2011-03-22  Richard Henderson  <rth@redhat.com>
15654
15655         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
15656         TARGET_ABI_WINDOWS_NT.
15657         (alpha_output_function_end_prologue): Likewise.
15658         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
15659         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
15660         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
15661         (trap, *movsi_nt_vms): Likewise.
15662         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
15663         (*tablejump_osf_nt_internal): Remove.
15664         * config/alpha/predicates.md (input_operand): Only test Pmode.
15665
15666 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15667
15668         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
15669         via opts pointer.  Use error_at.  Don't assert that global
15670         structures are in use.
15671
15672 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15673
15674         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
15675         (ix86_handle_option): Access ix86_isa_flags and
15676         ix86_isa_flags_explicit via opts pointer.  Don't assert that
15677         global structures are in use.
15678         (ix86_function_specific_save, ix86_function_specific_restore):
15679         Update ix86_isa_flags_explicit field name.
15680         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
15681         (ix86_isa_flags_explicit): Rename TargetSave entry to
15682         x_ix86_isa_flags_explicit.
15683
15684 2011-03-22  Richard Henderson  <rth@redhat.com>
15685
15686         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
15687         (alpha_option_override, direct_return): Likewise.
15688         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
15689         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
15690         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
15691         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
15692         (alpha_expand_epilogue, alpha_end_function): Likewise.
15693         (alpha_init_libfuncs): Likewise.
15694         (struct machine_function): Remove unicosmk members.
15695         (print_operand) ['t']: Remove.
15696         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
15697         unicosmk_output_module_name, unicosmk_output_common,
15698         current_section_align, unicosmk_output_text_section_asm_op,
15699         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
15700         unicosmk_section_type_flags, unicosmk_unique_section,
15701         unicosmk_asm_named_section, unicosmk_insert_attributes,
15702         unicosmk_output_align, unicosmk_defer_case_vector,
15703         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
15704         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
15705         unicosmk_output_ssib, unicosmk_add_call_info_word,
15706         unicosmk_extern_head, unicosmk_output_default_externs,
15707         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
15708         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
15709         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
15710         * config/alpha/alpha-protos.h: Update.
15711         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
15712         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
15713         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
15714         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
15715         (*mulsi_se, mulvsi3): Likewise.
15716         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
15717         (*divmodsi_internal, call, call_value, realign): Likewise.
15718         (moddi3, umoddi3): Likewise; remove duplicate expander.
15719         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
15720         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
15721         (*movdi_nofix): Remove r/U alternative.
15722         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
15723         * config/alpha/constraints.md ("U"): Remove.
15724         * config/alpha/predicates.md (call_operand"): Don't test
15725         TARGET_ABI_UNICOSMK.
15726
15727 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15728
15729         * target.def (handle_option): Take gcc_options and
15730         cl_decoded_option pointers and location_t.
15731         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
15732         * doc/tm.texi: Regenerate.
15733         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
15734         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
15735         * lto-opts.c (lto_reissue_options): Generate option structure for
15736         targetm.handle_option call.
15737         * opts.c (target_handle_option): Update call to
15738         targetm.handle_option.  Remove assertions about values now passed
15739         down to hook.
15740         * targhooks.c (default_target_handle_option): New.
15741         * targhooks.h (default_target_handle_option): Declare.
15742         * config/alpha/alpha.c: Include opts.h.
15743         (alpha_handle_option): Update to new hook interface.
15744         * config/arm/arm.c: Include opts.h.
15745         (arm_handle_option): Update to new hook interface.
15746         * config/arm/t-arm (arm.o): Update dependencies.
15747         * config/bfin/bfin.c: Include opts.h.
15748         (bfin_handle_option): Update to new hook interface.
15749         * config/cris/cris.c: Include opts.h.
15750         (cris_handle_option): Update to new hook interface.
15751         * config/frv/frv.c: Include opts.h.
15752         (frv_handle_option): Update to new hook interface.
15753         * config/i386/i386.c: Include opts.h.
15754         (ix86_handle_option): Update to new hook interface.
15755         (ix86_valid_target_attribute_inner_p): Generate option structure
15756         for call to ix86_handle_option.
15757         * config/i386/t-i386 (i386.o): Update dependencies.
15758         * config/ia64/ia64.c: Include opts.h.
15759         (ia64_handle_option): Update to new hook interface.
15760         * config/ia64/t-ia64 (ia64.o): Update dependencies.
15761         * config/iq2000/iq2000.c: Include opts.h.
15762         (iq2000_handle_option): Update to new hook interface.
15763         * config/m32c/m32c.c: Include opts.h.
15764         (m32c_handle_option): Update to new hook interface.
15765         * config/m32r/m32r.c: Include opts.h.
15766         (m32r_handle_option): Update to new hook interface.
15767         * config/m68k/m68k.c: Include opts.h.
15768         (m68k_handle_option): Update to new hook interface.
15769         * config/mep/mep.c: Include opts.h.
15770         (mep_handle_option): Update to new hook interface.
15771         * config/microblaze/microblaze.c: Include opts.h.
15772         (microblaze_handle_option): Update to new hook interface.
15773         * config/mips/mips.c: Include opts.h.
15774         (mips_handle_option): Update to new hook interface.
15775         * config/mn10300/mn10300.c: Include opts.h.
15776         (mn10300_handle_option): Update to new hook interface.
15777         * config/pa/pa.c: Include opts.h.
15778         (pa_handle_option): Update to new hook interface.
15779         * config/pdp11/pdp11.c: Include opts.h.
15780         (pdp11_handle_option): Update to new hook interface.
15781         * config/rs6000/rs6000.c: Include opts.h.
15782         (rs6000_handle_option): Update to new hook interface.
15783         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
15784         * config/rx/rx.c: Include opts.h.
15785         (rx_handle_option): Update to new hook interface.
15786         * config/s390/s390.c: Include opts.h.
15787         (s390_handle_option): Update to new hook interface.
15788         * config/score/score.c: Include opts.h.
15789         (score_handle_option): Update to new hook interface.
15790         * config/sh/sh.c: Include opts.h.
15791         (sh_handle_option): Update to new hook interface.
15792         * config/sparc/sparc.c: Include opts.h.
15793         (sparc_handle_option): Update to new hook interface.
15794         * config/v850/v850.c: Include opts.h.
15795         (v850_handle_option): Update to new hook interface.
15796
15797 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15798
15799         * gcc.c (driver_unknown_option_callback): Only permit and save
15800         unknown -Wno- options.
15801         (driver_wrong_lang_callback): Save options directly instead of via
15802         driver_unknown_option_callback.
15803
15804 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
15805
15806         * combine.c (simplify_set): Try harder to find the best CC mode when
15807         simplifying a nested COMPARE on the RHS.
15808
15809 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15810
15811         * config/alpha/gnu.h: Remove.
15812         * config/arc: Remove directory.
15813         * config/arm/netbsd.h: Remove.
15814         * config/arm/t-pe: Remove.
15815         * config/crx: Remove directory.
15816         * config/i386/netbsd.h: Remove.
15817         * config/m68hc11: Remove directory.
15818         * config/m68k/uclinux-oldabi.h: Remove.
15819         * config/mcore/mcore-pe.h: Remove.
15820         * config/mcore/t-mcore-pe: Remove.
15821         * config/netbsd-aout.h: Remove.
15822         * config/rs6000/gnu.h: Remove.
15823         * config/sh/sh-symbian.h: Remove.
15824         * config/sh/symbian-base.c: Remove.
15825         * config/sh/symbian-c.c: Remove.
15826         * config/sh/symbian-cxx.c: Remove.
15827         * config/sh/symbian-post.h: Remove.
15828         * config/sh/symbian-pre.h: Remove.
15829         * config/sh/t-symbian: Remove.
15830         * config/svr3.h: Remove.
15831         * config/vax/netbsd.h: Remove.
15832         * config.build: Don't handle i[34567]86-*-pe.
15833         * config.gcc: Remove handling of deprecations for most deprecated
15834         targets.
15835         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
15836         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
15837         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
15838         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
15839         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
15840         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
15841         Remove cases.
15842         * config.host: Don't handle i[34567]86-*-pe.
15843         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
15844         (ASM_SPEC32): Don't handle -mcall-gnu.
15845         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
15846         -mcall-gnu.
15847         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
15848         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
15849         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
15850         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
15851         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
15852         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
15853         conditional on SYMBIAN.
15854         * configure.ac: Don't handle powerpc*-*-gnu*.
15855         * configure: Regenerate.
15856         * doc/extend.texi (interrupt attribute): Don't mention CRX.
15857         * doc/install-old.texi (m6811, m6812): Don't mention.
15858         * doc/install.texi (arc-*-elf*): Don't document multilib option.
15859         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
15860         (m68k-uclinuxoldabi): Don't mention.
15861         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
15862         Remove.
15863         (-mcall-gnu): Remove.
15864         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
15865         families): Remove constraint documentation.
15866
15867 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
15868
15869         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
15870         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
15871         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
15872
15873 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
15874
15875         PR target/48226
15876         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
15877         vector when peeking at the next token for vector, don't expand the
15878         keywords.
15879
15880 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
15881
15882         * config/avr/avr-protos.h (expand_epilogue): Change prototype
15883         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
15884         * config/avr/avr.c (init_cumulative_args)
15885         (avr_function_arg_advance): Use it.
15886         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
15887         sibcall epilogues.
15888         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
15889         (avr_function_ok_for_sibcall): ...this new function.
15890         (avr_lookup_function_attribute1): New static Function.
15891         (avr_naked_function_p, interrupt_function_p)
15892         (signal_function_p, avr_OS_task_function_p)
15893         (avr_OS_main_function_p): Use it.
15894         * config/avr/avr.md ("sibcall", "sibcall_value")
15895         ("sibcall_epilogue"): New expander.
15896         ("*call_insn", "*call_value_insn"): New insn.
15897         ("call_insn", "call_value_insn"): Remove
15898         ("call", "call_value", "epilogue"): Change expander to handle
15899         sibling calls.
15900
15901 2011-03-21  Nick Clifton  <nickc@redhat.com>
15902
15903         * doc/invoke.texi (Overall Options): Move closing brace to end of
15904         options list.
15905         (Optimization Options): Add missing @gol.
15906         (Directory Options): Likewise.
15907         (i386 and x86-64 Options): Likewise.
15908         (RS6000 and PowerPC Options): Likewise.
15909         (i386 and x86-64 Windows Options): Likewise.
15910         (V850 Options): Add text missing from descriptions.
15911
15912 2011-03-22  Richard Henderson  <rth@redhat.com>
15913
15914         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
15915         (avr_incoming_return_addr_rtx): New.
15916         (emit_push_byte): New.
15917         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
15918         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
15919         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
15920         (emit_pop_byte): New.
15921         (expand_epilogue): Use it.  Pop frame pointer by bytes.
15922         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
15923         (INCOMING_RETURN_ADDR_RTX): New.
15924         (INCOMING_FRAME_SP_OFFSET): New.
15925         (ARG_POINTER_CFA_OFFSET): New.
15926         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
15927         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
15928         (pophi): Remove.
15929
15930         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
15931
15932 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15933
15934         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
15935         (FUNCTION_ARG_ADVANCE): Likewise.
15936         * tm.texi.in: Change references to them to hook references.
15937         * tm.texi: Regenerate.
15938         * targhooks.c (default_function_arg): Eliminate check for target
15939         macro.
15940         (default_function_incoming_arg): Likewise.
15941         (default_function_arg_advance): Likewise.
15942         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
15943         (function_arg_advance): Likewise.
15944         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
15945
15946 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15947
15948         * tree.c (build_call_1): New function.
15949         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
15950
15951 2011-03-22  Richard Guenther  <rguenther@suse.de>
15952
15953         PR tree-optimization/48228
15954         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
15955         for single-arg PHIs.
15956
15957 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
15958
15959         PR rtl-optimization/48143
15960         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
15961         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
15962         sse2_cvtps2pd): Likewise.
15963
15964 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15965
15966         * recog.c (canonicalize_change_group): Use validate_unshare_change.
15967
15968 2011-03-22  Richard Guenther  <rguenther@suse.de>
15969
15970         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
15971         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
15972         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
15973         and REALIGN_LOAD_EXPR.
15974         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
15975         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
15976         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
15977         DOT_PROD_EXPR case ...
15978         (expand_expr_real_2): ... here.
15979         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
15980         and REALIGN_LOAD_EXPR.
15981         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
15982         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
15983         (vect_create_epilog_for_reduction): Likewise.
15984         (vectorizable_reduction): Likewise.
15985         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
15986         * tree-vect-stmts.c (vectorizable_load): Likewise.
15987
15988 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
15989
15990         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
15991
15992 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15993
15994         * config/s390/s390.c (s390_delegitimize_address): Fix offset
15995         handling for PLTOFF/GOTOFF.
15996
15997 2011-03-22  Nick Clifton  <nickc@redhat.com>
15998
15999         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
16000         trailing backslash from the end of the macro definition.
16001
16002 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16003
16004         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
16005         and PLT unspecs.
16006
16007 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
16008
16009         * expr.h (prepare_operand): Move to...
16010         * optabs.h (prepare_operand): ...here and change the insn code
16011         parameter from "int" to "enum insn_code".
16012         (insn_operand_matches): Declare.
16013         * expr.c (init_expr_target): Use insn_operand_matches.
16014         (compress_float_constant): Likewise.
16015         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
16016         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
16017         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
16018         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
16019         Likewise.
16020         (gen_cond_trap): Likewise.
16021         (prepare_operand): Likewise.  Change icode to an insn_code.
16022         (insn_operand_matches): New function.
16023         * reload.c (find_reloads_address_1): Use insn_operand_matches.
16024         * reload1.c (gen_reload): Likewise.
16025         * targhooks.c (default_secondary_reload): Likewise.
16026
16027 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
16028
16029         * config/alpha/alpha.md (unspec): New define_c_enum.
16030         (unspecv): Ditto.
16031
16032 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
16033
16034         PR debug/48214
16035         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
16036         between a call and its CALL_ARG_LOCATION note.
16037
16038 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
16039
16040         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
16041
16042 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
16043
16044         PR c/42544
16045         PR c/48197
16046         * c-common.c (shorten_compare): If primopN is first sign-extended
16047         to opN and then zero-extended to result type, set primopN to opN.
16048
16049 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
16050
16051         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
16052         for barrier handlers.
16053
16054 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
16055
16056         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
16057         UNSPEC constants to be in the unspec enumeration, and redefine
16058         all UNSPECV constants to be in the unspecv enumeration, so that
16059         dumps print which unspec/unspec_volatile this is.
16060         * config/rs6000/vector.md (UNSPEC_*): Ditto.
16061         * config/rs6000/paired.md (UNSPEC_*): Ditto.
16062         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
16063         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
16064         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
16065
16066         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
16067         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
16068         UNSPECV_LWSYNC, since these are used as unspec_volatile.
16069         * config/rs6000/sync.md (isync, lwsync): Ditto.
16070
16071 2011-03-21  Richard Guenther  <rguenther@suse.de>
16072
16073         * params.def (lto-min-partition): Fix typo.
16074
16075 2011-03-21  Richard Guenther  <rguenther@suse.de>
16076
16077         PR c/47939
16078         * c-decl.c (grokdeclarator): Drop to the main variant only
16079         for array types.  Drop flag_gen_aux_info check.
16080
16081 2011-03-21  Richard Guenther  <rguenther@suse.de>
16082
16083         PR translation/47911
16084         * params.def (lto-partitions): Fix typo.
16085         (lto-min-partition): Fix wording.
16086
16087 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
16088
16089         * config/rs6000/t-freebsd: Remove duplication from file.
16090
16091 2011-03-21  Richard Guenther  <rguenther@suse.de>
16092
16093         PR middle-end/47661
16094         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
16095
16096 2011-03-21  Richard Guenther  <rguenther@suse.de>
16097
16098         PR lto/48210
16099         * params.def (lto-partitions): Require at least 1 partition.
16100
16101 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16102
16103         * gthr-solaris.h: Remove.
16104         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
16105         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
16106         (LIB_SPEC): Likewise.
16107         * config/sol2.opt (threads): Remove.
16108         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
16109         (sparc*-*-solaris2*): Likewise.
16110         * configure.ac (enable_threads): Enable solaris support.
16111         * configure: Regenerate.
16112         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
16113         * doc/install.texi (Configuration, --enable-threads=lib): Remove
16114         solaris.
16115
16116 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16117
16118         * config.gcc: Obsolete *-*-solaris2.8*.
16119         * doc/install.texi (Specific, *-*-solaris2*): Document it.
16120
16121 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16122
16123         PR bootstrap/48135
16124         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
16125         reference.  Solaris 8 perl works.
16126
16127 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16128
16129         PR bootstrap/48135
16130         * doc/install.texi (Prerequisites): Move jar etc. up.
16131         Explain support library version requirements.
16132
16133 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16134
16135         PR bootstrap/48135
16136         * doc/install.texi (Prerequisites): Move Perl to build
16137         requirements.  Always necessary on Solaris 2 with Sun ld.
16138
16139 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16140
16141         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
16142         binutils 2.21.
16143         (Specific, i?86-*-solaris2.[89]): Likewise.
16144         (Specific, i?86-*-solaris2.10): Likewise.
16145         (Specific, mips-sgi-irix6): Likewise.
16146         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
16147         Update for binutils 2.21.
16148
16149 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16150
16151         * configure.ac (gcc_cv_lto_plugin): Fix typo.
16152         Allow -fuse-linker-plugin for non-default plugin linker.
16153         * configure: Regenerate.
16154
16155 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
16156
16157         PR bootstrap/48167
16158         * gengtype.c (files_rules): Added rule for cp/parser.h.
16159
16160 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
16161
16162         PR target/48213
16163         * config/s390/s390.c (s390_delegitimize_address): Don't call
16164         lowpart_subreg if orig_x has BLKmode.
16165
16166 2011-03-21  Kai Tietz  <ktietz@redhat.com>
16167
16168         PR target/12171
16169         * doc/plugins.texi: Adjust documentation for plugin register_callback.
16170         * tree.h (attribute_spec): Add new member affects_type_identity.
16171         * attribs.c (empty_attribute_table): Adjust attribute_spec
16172         initializers.
16173         * config/alpha/alpha.c: Likewise.
16174         * config/arc/arc.c: Likewise.
16175         * config/arm/arm.c: Likewise.
16176         * config/avr/avr.c: Likewise.
16177         * config/bfin/bfin.c: Likewise.
16178         * config/crx/crx.c: Likewise.
16179         * config/darwin.h: Likewise.
16180         * config/h8300/h8300.c: Likewise.
16181         * config/i386/cygming.h: Likewise.
16182         * config/i386/i386.c: Likewise.
16183         * config/ia64/ia64.c: Likewise.
16184         * config/m32c/m32c.c: Likewise.
16185         * config/m32r/m32r.c: Likewise.
16186         * config/m68hc11/m68hc11.c: Likewise.
16187         * config/m68k/m68k.c: Likewise.
16188         * config/mcore/mcore.c: Likewise.
16189         * config/mep/mep.c: Likewise.
16190         * config/microblaze/microblaze.c: Likewise.
16191         * config/mips/mips.c: Likewise.
16192         * config/rs6000/rs6000.c: Likewise.
16193         * config/rx/rx.c: Likewise.
16194         * config/sh/sh.c: Likewise.
16195         * config/sol2.h: Likewise.
16196         * config/sparc/sparc.c: Likewise.
16197         * config/spu/spu.c: Likewise.
16198         * config/stormy16/stormy16.c: Likewise.
16199         * config/v850/v850.c: Likewise.
16200
16201 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
16202
16203         * simplify-rtx.c (simplify_binary_operation_1): Handle
16204         (xor (and A B) C) case when B and C are both constants.
16205
16206 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
16207
16208         * tree-dfa.c (add_referenced_var): Fix typo in comment.
16209
16210 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
16211
16212         PR bootstrap/48168
16213         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
16214
16215 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
16216
16217         PR rtl-optimization/48156
16218         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
16219         assume df and df_lr are not NULL.
16220
16221 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16222
16223         PR debug/48023
16224         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
16225         between a call and its CALL_ARG_LOCATION note.
16226
16227 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
16228
16229         PR debug/48178
16230         * config/sh/sh.c (find_barrier): Don't emit a constant pool
16231         between a call and its corresponding CALL_ARG_LOCATION note.
16232
16233 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
16234
16235         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
16236         instead of loop. Use HARD_REGISTER_NUM_P predicate.
16237         * haifa-sched.c (setup_ref_regs): Ditto.
16238         * caller-save.c (add_used_regs_1): Ditto.
16239         * dse.c (look_for_hardregs): Ditto.
16240         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
16241         * sched-rgn.c (check_live_1): Ditto.
16242
16243 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
16244
16245         * c-decl.c (diagnose_mismatched_decls): Give an error for
16246         redefining a typedef with variably modified type.
16247
16248 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
16249
16250         * c-decl.c (grokfield): Don't allow typedefs for structures or
16251         unions with no tag by default.
16252         * doc/extend.texi (Unnamed Fields): Update.
16253
16254 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
16255
16256         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
16257         Rewrite using indirect functions.
16258         (lwp_slwpcb): Ditto.
16259         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
16260         (avx_vinsertf128<mode>): Ditto.
16261
16262 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16263
16264         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
16265         unspecs.
16266
16267 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16268
16269         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
16270         splitting between a call and its corresponding CALL_ARG_LOCATION note.
16271
16272 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16273
16274         PR rtl-optimization/48170
16275         * gcse.c (hoist_code): Remove bogus asserts.
16276
16277 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
16278
16279         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
16280         computation for prologue/epilogue.
16281
16282 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16283
16284         * Makefile.in (check-consistency): Remove.
16285
16286 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
16287
16288         PR debug/48176
16289         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
16290         arange_table_in_use is 0, but either text_section_used or
16291         cold_text_section_used is true.  Don't call it if
16292         !info_section_emitted.
16293
16294 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
16295
16296         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
16297         FUNCTION_VALUE_REGNO_P): Remove.
16298         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
16299         Remove.
16300         * config/avr/avr.c (avr_ret_register): Make static inline.
16301         (avr_function_value_regno_p): New function.
16302         (avr_libcall_value): Make static. Add 'func' argument.
16303         (avr_function_value): Make static. Rename 'func' argument to
16304         'fn_decl_or_type', forward it to avr_libcall_value. Call
16305         avr_ret_register function instead of RET_REGISTER macro.
16306         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
16307
16308 2011-03-18  Jason Merrill  <jason@redhat.com>
16309
16310         PR c++/23372
16311         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
16312
16313 2011-03-18  Richard Guenther  <rguenther@suse.de>
16314
16315         * doc/install.texi (--enable-gold): Remove.
16316         (--with-plugin-ld): Document.
16317         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
16318
16319 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
16320
16321         PR middle-end/47790
16322         * expr.c (optimize_bitfield_assignment_op): Revamp to work
16323         again after expansion changes.
16324
16325 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
16326
16327         * combine.c (try_combine): Do simplification only call of
16328         subst() on i2 even when i1 is present. Update comments.
16329
16330 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16331
16332         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
16333         and UNSPEC_PCREL_SYMOFF.
16334
16335 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16336
16337         * config/s390/s390.md: Use define_c_enum for the unspec constant
16338         definitions.
16339
16340 2011-03-18  Richard Henderson  <rth@redhat.com>
16341             Jakub Jelinek  <jakub@redhat.com>
16342
16343         PR bootstrap/48161
16344         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
16345         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
16346
16347 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16348
16349         PR middle-end/47725
16350         * combine.c (cant_combine_insn_p): Don't check zero/sign
16351         extended hard registers.
16352
16353 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16354
16355         PR middle-end/47725
16356         * combine.c (cant_combine_insn_p): Check zero/sign extended
16357         hard registers.
16358
16359 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
16360
16361         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16362         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
16363         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
16364         Change return type to bool.
16365         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16366
16367 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16368
16369         PR debug/48163
16370         * var-tracking.c (prepare_call_arguments): If CALL target
16371         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
16372         pc instead of looking it up using cselib_lookup and use
16373         Pmode for it if x has VOIDmode.
16374         * dwarf2out.c (gen_subprogram_die): If also both first and
16375         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
16376
16377         PR debug/48163
16378         * function.c (assign_parms): For data.passed_pointer parms
16379         use MEM of data.entry_parm instead of data.entry_parm itself
16380         as DECL_INCOMING_RTL.
16381         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
16382         also when passed and declared mode is the same, DECL_RTL
16383         is a MEM with pseudo as address and DECL_INCOMING_RTL is
16384         a MEM too.
16385
16386 2011-03-16  Jeff Law  <law@redhat.com>
16387
16388         PR rtl-optimization/37273
16389         * ira-costs.c (scan_one_insn): Detect constants living in memory and
16390         handle them like argument loads from stack slots.  Do not double
16391         count memory for memory constants and argument loads from stack slots.
16392
16393 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16394
16395         PR debug/48160
16396         * var-tracking.c (prepare_call_arguments): Check SUBREG.
16397
16398 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16399
16400         PR target/48171
16401         * config/i386/i386.opt: Add Save to -mavx and -mfma.
16402
16403 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16404
16405         PR bootstrap/48153
16406         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
16407         if dwarf_strict.
16408         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
16409         Clear call_arg_locations and call_arg_loc_last always.
16410
16411         PR middle-end/48152
16412         * var-tracking.c (prepare_call_arguments): If argument needs to be
16413         passed by reference, adjust argtype and mode.
16414
16415 2011-03-17  Richard Guenther  <rguenther@suse.de>
16416
16417         PR middle-end/48134
16418         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
16419         a value make sure to fold the statement.
16420
16421 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
16422
16423         PR target/43872
16424         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
16425         return condition with !cfun->calls_alloca.
16426
16427 2011-03-17  Richard Guenther  <rguenther@suse.de>
16428
16429         PR bootstrap/48148
16430         * lto-cgraph.c (input_overwrite_node): Clear the abstract
16431         origin for decls in other ltrans units.
16432         (input_varpool_node): Likewise.
16433
16434 2011-03-17  Richard Guenther  <rguenther@suse.de>
16435
16436         PR middle-end/48165
16437         * tree-object-size.c (compute_object_offset): Properly return
16438         the offset operand of MEM_REFs as sizetype.
16439
16440 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16441
16442         PR rtl-optimization/48141
16443         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
16444         * dse.c: Include params.h.
16445         (active_local_stores_len): New variable.
16446         (add_wild_read, dse_step1): Clear it when setting active_local_stores
16447         to NULL.
16448         (record_store, check_mem_read_rtx): Decrease it when removing
16449         from the chain.
16450         (scan_insn): Likewise.  Increase it when adding to chain, if it
16451         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
16452         set active_local_stores to NULL before the addition.
16453         * Makefile.in (dse.o): Depend on $(PARAMS_H).
16454
16455         PR rtl-optimization/48141
16456         * dse.c (record_store): If no positions are needed in an insn
16457         that cannot be deleted, at least unchain it from active_local_stores.
16458
16459 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
16460
16461         PR debug/47510
16462         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
16463         (lookup_type_die_strip_naming_typedef): ... here.
16464         (get_context_die): Use it.
16465         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
16466         the anonymous struct named by the naming typedef.
16467
16468 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
16469
16470         PR target/48154
16471         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
16472         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
16473
16474 2011-03-16  Jeff Law  <law@redhat.com>
16475
16476         * tree-vrp.c (identify_jump_threads): Slightly simplify type
16477         check for operands of conditional.  Allow type to be a pointer.
16478
16479 2011-03-16  Richard Guenther  <rguenther@suse.de>
16480
16481         PR tree-optimization/48149
16482         * fold-const.c (fold_binary_loc): Fold
16483         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
16484
16485 2011-03-16  Richard Guenther  <rguenther@suse.de>
16486
16487         PR tree-optimization/26134
16488         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
16489         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
16490         (non_rewritable_mem_ref_base): Handle complex type component
16491         accesses, constrain offsets for vector and complex extracts
16492         more properly.
16493
16494 2011-03-16  Richard Guenther  <rguenther@suse.de>
16495
16496         PR tree-optimization/48146
16497         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
16498         operands avoiding the need for renaming.
16499
16500 2011-03-16  Richard Guenther  <rguenther@suse.de>
16501
16502         * gimple-fold.c (maybe_fold_reference): Open-code relevant
16503         constant folding.  Move MEM_REF canonicalization first.
16504         Rely on fold_const_aggregate_ref for initializer folding.
16505         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
16506
16507 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
16508
16509         PR middle-end/48136
16510         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16511         arg0/arg1 or their arguments are always fold converted to matching
16512         types.
16513
16514         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
16515         to nargs.
16516
16517 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16518
16519         PR lto/46944
16520         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
16521         Handle in-tree gold.
16522         (ld_vers): Extract binutils version for gold.
16523         (gcc_cv_ld_hidden): Handle gold here.
16524         (gcc_cv_lto_plugin): Determine level of linker plugin support.
16525         * configure: Regenerate.
16526         * config.in: Regenerate.
16527         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
16528         -fuse-linker-plugin otherwise.
16529         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
16530         (LINK_COMMAND_SPEC): Use it.
16531         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
16532
16533 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
16534
16535         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
16536         * calls.c: Remove debug.h include.
16537         (emit_call_1): Don't call virtual_call_token debug hook.
16538         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
16539         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
16540         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
16541         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
16542         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
16543         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
16544         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
16545         dwarf2out_virtual_call): Remove.
16546         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
16547         copy_call_info and virtual_call hooks.
16548         (dwarf2out_init): Don't initialize vcall_insn_table,
16549         debug_dcall_section and debug_vcall_section.
16550         (prune_unused_types): Don't mark nodes from dcall_table.
16551         (dwarf2out_finish): Don't output dcall or vcall tables.
16552         * final.c (final_scan_insn): Don't call direct_call or
16553         virtual_call debug hooks.
16554         * debug.h (struct gcc_debug_hooks): Remove direct_call,
16555         virtual_call_token, copy_call_info and virtual_call hooks.
16556         (debug_nothing_uid): Remove prototype.
16557         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
16558         copy_call_info and virtual_call hooks.
16559         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
16560         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
16561         * debug.c (do_nothing_debug_hooks): Likewise.
16562         (debug_nothing_uid): Remove.
16563         * doc/invoke.texi (-fenable-icf-debug): Remove.
16564         * common.opt (-fenable-icf-debug): Likewise.
16565
16566         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
16567         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
16568         call's MEM.  Handle functions returning aggregate through a hidden
16569         first pointer.  For virtual calls add clobbered pc to call arguments
16570         chain.
16571         * dwarf2out.c (gen_subprogram_die): Emit
16572         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
16573         can't be emitted.
16574
16575         PR debug/45882
16576         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
16577         * rtl.h (ENTRY_VALUE_EXP): Define.
16578         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
16579         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
16580         * print-rtl.c (print_rtx): Likewise.
16581         * gengtype.c (adjust_field_rtx_def): Likewise.
16582         * var-tracking.c (vt_add_function_parameter): Adjust
16583         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
16584         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
16585         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
16586         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
16587         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
16588
16589         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
16590         Call var_location debug hook even on CALL_INSNs.
16591         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
16592         * rtl.def (ENTRY_VALUE): New.
16593         * dwarf2out.c: Include cfglayout.h.
16594         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
16595         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
16596         (struct call_arg_loc_node): New type.
16597         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
16598         tail_call_site_count): New variables.
16599         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
16600         DW_TAG_GNU_call_site_parameter.
16601         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
16602         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
16603         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
16604         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
16605         and DW_AT_GNU_all_source_call_sites.
16606         (mem_loc_descriptor): Handle ENTRY_VALUE.
16607         (add_src_coords_attributes): Don't add enything if
16608         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
16609         (dwarf2out_abstract_function): Save and clear call_arg_location,
16610         call_site_count and tail_call_site_count around dwarf2out_decl call.
16611         (gen_call_site_die): New function.
16612         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
16613         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
16614         (dwarf2out_function_decl): Clear call_arg_locations,
16615         call_arg_loc_last, set call_site_count and tail_call_site_count
16616         to -1 and free block_map.
16617         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
16618         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
16619         followed by any real instructions.
16620         (dwarf2out_begin_function): Set call_site_count and
16621         tail_call_site_count to 0.
16622         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
16623         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
16624         attempt to force a DIE for it and worst case remove the attribute.
16625         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
16626         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
16627         the decl itself.
16628         * var-tracking.c: Include tm_p.h.
16629         (vt_stack_adjustments): For calls call note_register_arguments.
16630         (argument_reg_set): New variable.
16631         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
16632         ensure the VALUE is resolved.
16633         (call_arguments): New variable.
16634         (prepare_call_arguments): New function.
16635         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
16636         (struct expand_loc_callback_data): Add ignore_cur_loc field.
16637         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
16638         always use the best expression.
16639         (vt_expand_loc): Add ignore_cur_loc argument.
16640         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
16641         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
16642         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
16643         note for all calls.
16644         (vt_add_function_parameter): Use cselib_lookup_from_insn.
16645         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
16646         argument.  Don't call cselib_preserve_only_values and
16647         cselib_reset_table.
16648         (note_register_arguments): New function.
16649         (vt_initialize): Compute argument_reg_set.  Call
16650         vt_add_function_parameters before processing basic blocks instead of
16651         afterwards.  For calls call prepare_call_arguments before calling
16652         cselib_process_insn.
16653         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
16654         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
16655         (var-tracking.o): Depend on $(TM_P_H).
16656         * cfglayout.h (insn_scope): New prototype.
16657         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
16658         * cfglayout.c (insn_scope): No longer static.
16659         * insn-notes.def (CALL_ARG_LOCATION): New.
16660         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
16661         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
16662         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
16663         nothing for DECL_EXTERNAL BLOCK_VARS.
16664
16665 2011-03-16  Alan Modra  <amodra@gmail.com>
16666
16667         PR target/45844
16668         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
16669         create invalid offset address for vsx splat insn.
16670         * config/rs6000/predicates.md (splat_input_operand): New.
16671         * config/rs6000/vsx.md (vsx_splat_*): Use it.
16672
16673 2011-03-15  Xinliang David Li  <davidxl@google.com>
16674
16675         PR c/47837
16676         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
16677         (normalize_preds): New function.
16678         (is_use_properly_guarded): Normalize def predicates.
16679
16680 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16681
16682         PR target/46788
16683         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
16684         in the output template.
16685
16686 2011-03-15  Richard Guenther  <rguenther@suse.de>
16687
16688         PR middle-end/47650
16689         * tree-pretty-print.c (dump_function_declaration): Properly
16690         dump unprototyped and varargs function types.
16691
16692 2011-03-15  Richard Guenther  <rguenther@suse.de>
16693
16694         PR tree-optimization/13954
16695         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
16696         and friends.
16697
16698 2011-03-15  Richard Guenther  <rguenther@suse.de>
16699
16700         PR tree-optimization/48037
16701         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
16702         selects into BIT_FIELD_REFs.
16703         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
16704         vector select.
16705
16706 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
16707
16708         PR tree-optimization/48129
16709         * builtins.c (fold_builtin_snprintf): Convert to type of
16710         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
16711         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
16712
16713 2011-03-15  Richard Guenther  <rguenther@suse.de>
16714
16715         PR tree-optimization/41490
16716         * tree-ssa-dce.c (propagate_necessity): Handle returns without
16717         value but with VUSE.
16718         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
16719         return statements.
16720         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
16721         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
16722         * tree-tailcall.c (find_tail_calls): Ignore returns.
16723
16724 2011-03-15  Richard Guenther  <rguenther@suse.de>
16725
16726         PR middle-end/48031
16727         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
16728         or variable-indexed array accesses when in gimple form.
16729
16730 2011-03-15  Richard Guenther  <rguenther@suse.de>
16731
16732         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
16733
16734 2011-03-15  Alan Modra  <amodra@gmail.com>
16735
16736         PR target/48032
16737         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
16738         presume symbol_refs without a symbol_ref_decl are suitably
16739         aligned, nor other trees we may see here.  Handle anchor symbols.
16740         (legitimate_constant_pool_address_p): Comment.  Add mode param.
16741         Check cmodel=medium addresses.  Adjust all calls.
16742         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
16743         creating cmodel=medium optimized access to locals.
16744         * config/rs6000/constraints.md (R): Pass QImode to
16745         legitimate_constant_pool_address_p.
16746         * config/rs6000/predicates.md (input_operand): Pass mode to
16747         legitimate_constant_pool_address_p.
16748         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
16749         Update prototype.
16750
16751 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16752
16753         PR target/48053
16754         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
16755         64-bit constants being loaded into registers other than GPRs such
16756         as loading 0 into a VSX register.
16757
16758 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16759
16760         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
16761
16762 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16763
16764         PR middle-end/47917
16765         * builtins.c (fold_builtin_snprintf): New function.
16766         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
16767         (fold_builtin_4): Likewise.
16768
16769         PR middle-end/38878
16770         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
16771         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
16772         and C - X == X also strip nops from +/-/p+ operand.
16773         When optimizing -X == C, fold C to arg0's type.
16774
16775         PR debug/47946
16776         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
16777         emit it as add_AT_int instead of add_AT_unsigned.
16778
16779 2011-03-14  Tom Tromey  <tromey@redhat.com>
16780
16781         * unwind-dw2.c: Include sys/sdt.h if it exists.
16782         (_Unwind_DebugHook): Use STAP_PROBE2.
16783         * config.in, configure: Rebuild.
16784         * configure.ac: Check for sys/sdt.h.
16785
16786 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
16787
16788         * config/i386/i386.md (ROUND_FLOOR): New constant.
16789         (ROUND_CEIL): Ditto.
16790         (ROUND_TRUNC): Ditto.
16791         (ROUND_MXCSR): Ditto.
16792         (ROUND_NO_EXC): Ditto.
16793         (rint<mode>2): Use new defines instead of numerical constants.
16794         (floor<mode>2): Ditto.
16795         (ceil<mode>2): Ditto.
16796         (btrunc<mode>2): Ditto.
16797         * config/i386/i386-builtin-types.def: Define ROUND function type
16798         aliases.
16799         * config/i386/i386.c (enum ix86_builtins): Add
16800         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
16801         (struct builtin_description): Add
16802         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
16803         (ix86_expand_sse_round): New static function.
16804         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
16805         function types.
16806         (ix86_builtin_vectorized_function): Handle
16807         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
16808
16809 2011-03-14  Tom Tromey  <tromey@redhat.com>
16810
16811         * c-parser.c (c_parser_asm_string_literal): Clear
16812         warn_overlength_strings.
16813
16814 2011-03-14  Tom Tromey  <tromey@redhat.com>
16815
16816         * c-parser.c (disable_extension_diagnostics): Save
16817         warn_overlength_strings.
16818         (restore_extension_diagnostics): Restore warn_overlength_strings.
16819
16820 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16821
16822         * BASE-VER: Change to 4.7.0.
16823
16824 2011-03-14  Richard Guenther  <rguenther@suse.de>
16825
16826         PR middle-end/48098
16827         * tree.c (build_vector_from_val): Adjust assert to requirements
16828         and reality.
16829
16830 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16831
16832         PR bootstrap/48102
16833         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
16834
16835 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
16836
16837         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
16838         terms of target_flags_explicit. Adjust copyright year.
16839
16840         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
16841         * config/rs6000/t-freebsd: New file. Add override for
16842         LIB2FUNCS_EXTRA.
16843
16844 2011-03-13  Chris Demetriou  <cgd@google.com>
16845
16846         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
16847         (-fno-diagnostics-show-option): this, to reflect current default.
16848         (-Werror=): Update text about -fno-diagnostics-show-option.
16849
16850 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
16851
16852         PR target/48053
16853         * config/rs6000/predicates.md (easy_vector_constant_add_self,
16854         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
16855         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
16856         mode is not V2DImode or V2DFmode.
16857         (vspltis_constant): Do not handle V2DImode and V2DFmode.
16858         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
16859         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
16860         registers to 0.
16861         (movdi_internal64): Likewise.
16862
16863 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
16864
16865         PR tree-optimization/47127
16866         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
16867         parameter.
16868         (set_cloog_options): Same.
16869         (scop_to_clast): Same.
16870         (print_clast_stmt): Do not call cloog_state_malloc and
16871         cloog_state_free.
16872         (print_generated_program): Same.
16873         (gloog): Same.
16874         * graphite-clast-to-gimple.h (cloog_state): Declared.
16875         (scop_to_clast): Adjust declaration.
16876         * graphite.c (cloog_state): Defined here.
16877         (graphite_initialize): Call cloog_state_malloc.
16878         (graphite_finalize): Call cloog_state_free.
16879
16880 2011-03-11  Jason Merrill  <jason@redhat.com>
16881
16882         * attribs.c (lookup_attribute_spec): Take const_tree.
16883         * tree.h: Adjust.
16884
16885 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
16886
16887         * config/sparc/sparc.c (sparc_option_override): Use
16888         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
16889
16890 2011-03-11  Richard Guenther  <rguenther@suse.de>
16891
16892         PR tree-optimization/48067
16893         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
16894         multiplication result will be only used once on the target
16895         stmt.
16896
16897 2011-03-11  Richard Guenther  <rguenther@suse.de>
16898
16899         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
16900
16901 2011-03-11  Richard Guenther  <rguenther@suse.de>
16902
16903         PR lto/48073
16904         * tree.c (find_decls_types_r): Do not walk types only reachable
16905         from IDENTIFIER_NODEs.
16906
16907 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
16908
16909         PR middle-end/48044
16910         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
16911         all vnode->force_output nodes as needed.
16912
16913 2011-03-11  Jason Merrill  <jason@redhat.com>
16914
16915         PR c++/48069
16916         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
16917         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
16918
16919 2011-03-11  Martin Jambor  <mjambor@suse.cz>
16920
16921         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
16922         cgraph_node.
16923
16924 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
16925
16926         PR tree-optimization/48063
16927         * ipa-inline.c (cgraph_decide_inlining): Don't try to
16928         inline functions called once if !tree_can_inline_p (node->callers).
16929
16930 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
16931
16932         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
16933         extra_objs.
16934         * config/score/score3.c: Delete.
16935         * config/score/score3.h: Delete.
16936         * config/score/mul-div.S: Delete.
16937         * config/score/sfp-machine.h: Add new file.
16938         * config/score/constraints.md: Add new file.
16939         * config/score/t-score-softfp: Add new file.
16940         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
16941         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
16942         (score7_extra_constraint): Delete.
16943         (score7_option_override): Remove unused code.
16944         * config/score/score.c: Remove score3 and score5 define and code.
16945         * config/score/score.h: Remove score3 and score5 define and code.
16946         * config/score/score.md: Remove score3 template and unusual insn.
16947         * config/score/score.opt: Remove score3 and score5 options.
16948
16949 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16950
16951         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
16952         when _HPUX_SOURCE is defined.
16953         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
16954
16955 2011-03-10  Jason Merrill  <jason@redhat.com>
16956
16957         PR c++/48029
16958         * stor-layout.c (layout_type): Don't set structural equality
16959         on arrays of incomplete type.
16960         * tree.c (type_hash_eq): Handle comparing them properly.
16961
16962 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
16963
16964         PR debug/48043
16965         * config/s390/s390.c (s390_delegitimize_address): Make sure the
16966         result mode matches original rtl mode.
16967
16968 2011-03-10  Nick Clifton  <nickc@redhat.com>
16969
16970         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
16971         (andsi3, andsi3_flags): Fix timings for three operand alternative.
16972
16973 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
16974
16975         PR rtl-optimization/47866
16976         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
16977         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
16978         if target wasn't scalar.
16979         * function.c (assign_stack_temp_for_type): Assert that neither
16980         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
16981         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
16982         macro.
16983         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
16984
16985 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16986
16987         * config/s390/s390-protos.h (s390_label_align): New prototype.
16988         * config/s390/s390.c (s390_label_align): New function.
16989         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
16990
16991 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
16992
16993         PR target/47755
16994         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
16995         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
16996         (output_vec_const_move): Ditto.
16997
16998 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
16999
17000         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
17001         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
17002         * config/mips/mips.c (mips_preferred_reload_class): Make static.
17003         Change 'rclass' argument and result type to reg_class_t.
17004         (TARGET_PREFERRED_RELOAD_CLASS): Define.
17005
17006 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
17007
17008         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
17009         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
17010         (TARGET_MEMORY_MOVE_COST): Define.
17011         (avr_register_move_cost, avr_memory_move_cost): New Functions.
17012
17013 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
17014
17015         PR debug/47881
17016         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
17017         removed anything.
17018
17019         PR tree-optimization/48022
17020         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
17021         for EQ/NE_EXPR.
17022
17023 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
17024
17025         PR debug/47991
17026         * var-tracking.c (find_use_val): Return NULL for
17027         cui->sets && cui->store_p BLKmode MEMs.
17028
17029 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
17030
17031         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
17032         Remove.
17033         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
17034         xstormy16_print_operand_address): Remove.
17035         * config/stormy16/stormy16.c (xstormy16_print_operand,
17036         xstormy16_print_operand_address): Make static.
17037         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17038
17039 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
17040
17041         PR target/47862
17042         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
17043         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
17044         before definition.
17045
17046 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
17047
17048         PR bootstrap/48000
17049         * cfgloopmanip.c (fix_bb_placements): Return immediately
17050         if FROM is BASE_LOOP's header.
17051
17052 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
17053
17054         * gimplify.c (gimplify_function_tree): Fix building calls
17055         to __builtin_return_address.
17056
17057 2011-03-07  Alan Modra  <amodra@gmail.com>
17058
17059         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
17060         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
17061         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
17062         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
17063         return_mode args.
17064         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
17065         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
17066         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
17067         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
17068         * config/rs6000/rs6000.c
17069         (rs6000_elf_end_indicate_exec_stack): Rename to..
17070         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
17071         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
17072         (rs6000_file_start): ..here.
17073         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
17074         file scope variables.
17075         (call_ABI_of_interest): New function.
17076         (init_cumulative_args): Set above vars when function return value
17077         is a float, vector, or small struct.
17078         (rs6000_function_arg_advance_1): Likewise for function args.
17079         (rs6000_va_start): Set rs6000_passes_float if variable arg function
17080         references float args.
17081
17082 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
17083
17084         * doc/cfg.texi: Remove "See" before @ref.
17085         * doc/invoke.texi: Likewise.
17086
17087 2011-03-05  Jason Merrill  <jason@redhat.com>
17088
17089         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
17090
17091 2011-03-05  Anthony Green  <green@moxielogic.com>
17092
17093         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
17094
17095 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
17096
17097         PR rtl-optimization/47899
17098         * cfgloopmanip.c (fix_bb_placements): Fix first argument
17099         to flow_loop_nested_p when moving the loop upward.
17100
17101 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
17102
17103         PR target/47719
17104         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
17105
17106 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
17107
17108         PR tree-optimization/47967
17109         * ipa-cp.c (build_const_val): Return NULL instead of creating
17110         VIEW_CONVERT_EXPR for mismatching sizes.
17111         (ipcp_create_replace_map): Return NULL if build_const_val failed.
17112         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
17113         give up on versioning.
17114
17115 2011-03-05  Alan Modra  <amodra@gmail.com>
17116
17117         PR target/47986
17118         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
17119         full cmodel medium/large lo_sum + high addresses.
17120
17121 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17122
17123         * config/s390/s390.c (s390_decompose_address): Reject non-literal
17124         pool references in UNSPEC_LTREL_OFFSET.
17125
17126 2011-03-04  Jan Hubicka  <jh@suse.cz>
17127
17128         PR lto/47497
17129         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
17130         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
17131         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
17132         Add node pointers.
17133         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
17134         cgraph_add_thunk): Add node pointers.
17135         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
17136         associated to right node.
17137         (input_node): Update use of cgraph_same_body_alias
17138         and cgraph_add_thunk.
17139
17140 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
17141
17142         * config/i386/i386.opt (mprefer-avx128): New flag.
17143         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
17144         modes when the flag -mprefer-avx128 is on.
17145
17146 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
17147
17148         * dwarf2out.c (compare_loc_operands): Fix address handling.
17149
17150 2011-03-04  Alan Modra  <amodra@gmail.com>
17151
17152         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
17153
17154 2011-03-04  Richard Guenther  <rguenther@suse.de>
17155
17156         PR middle-end/47968
17157         * expmed.c (extract_bit_field_1): Prefer vector modes that
17158         vec_extract patterns can handle.
17159
17160 2011-03-04  Richard Guenther  <rguenther@suse.de>
17161
17162         PR middle-end/47975
17163         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
17164
17165 2011-03-04  Richard Henderson  <rth@redhat.com>
17166
17167         * explow.c (emit_stack_save): Remove 'after' parameter.
17168         (emit_stack_restore): Likewise.
17169         * expr.h: Update to match.
17170         * builtins.c, calls.c, stmt.c: Likewise.
17171         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
17172         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
17173         * function.c (expand_function_end): Insert the emit_stack_save
17174         sequence before parm_birth_insn instead of after.
17175
17176 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
17177
17178         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
17179         (ssse3_pmaddubsw128): Ditto.
17180         (ssse3_pmaddubsw): Ditto.
17181
17182 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
17183
17184         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
17185
17186 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
17187
17188         PR c/47963
17189         * gimplify.c (omp_add_variable): Only call omp_notice_variable
17190         on TYPE_SIZE_UNIT if it is a DECL.
17191
17192         PR debug/47283
17193         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
17194         first operand is not is_gimple_mem_ref_addr, try to fold it.
17195         If the operand still isn't is_gimple_mem_ref_addr, clear
17196         MEM_EXPR on op0.
17197
17198 2011-03-03  Richard Guenther  <rguenther@suse.de>
17199
17200         PR middle-end/47283
17201         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
17202         match comment.
17203         (refs_may_alias_p_1): For release branches return true if
17204         we are confused by our input.
17205
17206 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17207
17208         * config/s390/s390.c (s390_function_value): Rename to ...
17209         (s390_function_and_libcall_value): ... this.
17210         (s390_function_value): New function.
17211         (s390_libcall_value): New function.
17212         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
17213         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
17214         target macro definitions.
17215         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
17216
17217 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
17218
17219         * config/i386/freebsd64.h (CC1_SPEC): Define.
17220         * config/i386/linux64.h (CC1_SPEC): Define.
17221         * config/i386/x86-64.h (CC1_SPEC): Don't define.
17222
17223 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
17224
17225         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17226         Remove.
17227         * config/stormy16/stormy16.c: Include reload.h.
17228         (xstormy16_memory_move_cost): New function.
17229         (TARGET_MEMORY_MOVE_COST): Define.
17230
17231 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
17232
17233         PR rtl-optimization/47925
17234         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
17235         with side effects.  Remove the more-specific check for volatile asms.
17236
17237 2011-03-02  Alan Modra  <amodra@gmail.com>
17238
17239         PR target/47935
17240         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
17241         toc relative addresses for valid offsets.
17242
17243 2011-03-01  Richard Guenther  <rguenther@suse.de>
17244
17245         PR tree-optimization/47890
17246         * tree-vect-loop.c (get_initial_def_for_induction): Set
17247         related stmt properly.
17248
17249 2011-03-01  Richard Guenther  <rguenther@suse.de>
17250
17251         PR lto/47924
17252         * lto-streamer.c (lto_record_common_node): Also register
17253         the canonical type.
17254
17255 2011-03-01  Richard Guenther  <rguenther@suse.de>
17256
17257         PR lto/46911
17258         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
17259         Do not stream DECL_ABSTRACT_ORIGIN.
17260         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
17261         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
17262         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
17263         Do not stream DECL_ABSTRACT_ORIGIN.
17264         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
17265         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
17266
17267 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
17268
17269         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
17270         FUNCTION_VALUE_REGNO_P): Remove.
17271         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
17272         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
17273         Add 'outgoing' argument.
17274         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
17275         function.
17276         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17277         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17278
17279 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
17280
17281         PR debug/28047
17282         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
17283         (lookup_filename): Likewise.
17284         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
17285
17286 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
17287             Jakub Jelinek  <jakub@redhat.com>
17288
17289         PR middle-end/47893
17290         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
17291         (assign_stack_local_1): Change last argument type to int.
17292         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
17293         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
17294         don't record padding space into frame_space_list nor use those areas.
17295         (assign_stack_local): Adjust caller.
17296         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
17297         of assign_stack_local, pass 0 as last argument.
17298         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
17299         callers.
17300
17301 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
17302
17303         PR debug/47283
17304         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
17305         Use target address_mode and pointer_mode hooks instead of hardcoded
17306         Pmode and ptr_mode.  Handle some simple cases of extending if
17307         POINTERS_EXTEND_UNSIGNED < 0.
17308         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
17309         Call convert_debug_memory_address.
17310         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
17311         convert_debug_memory_address.
17312
17313         PR middle-end/46790
17314         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
17315         * configure: Regenerated.
17316         * config.in: Regenerated.
17317         * varasm.c (default_function_section): Return NULL
17318         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
17319
17320 2011-02-28  Martin Jambor  <mjambor@suse.cz>
17321
17322         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
17323         the description to match the printed values.
17324
17325 2011-02-28  Richard Guenther  <rguenther@suse.de>
17326
17327         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
17328         of the copied scope tree.
17329
17330 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17331
17332         * doc/extend.texi (Function Attributes): Avoid deeply (and
17333         wrongly) nested tables.
17334
17335 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
17336
17337         PR middle-end/47903
17338         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
17339         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
17340         r isn't op0 nor op1.
17341
17342 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
17343
17344         * config/avr/avr.md: Remove magic comment for emacs.
17345
17346 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
17347
17348         PR target/45261
17349         * config/avr/avr.c (avr_option_override): Use error on bad options.
17350         (avr_help): New function.
17351         (TARGET_HELP): Define.
17352
17353 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
17354
17355         PR target/42240
17356         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
17357         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
17358
17359 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
17360
17361         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
17362         (ARM Options): Ditto.
17363         (i386 and x86-64 Options): Ditto.
17364         (RX Options): Ditto.
17365         (SPARC Options): Ditto.
17366
17367 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
17368
17369         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
17370         FreeBSD 6 and later.  Generally use cpu generic.
17371
17372 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
17373
17374         * doc/cpp.texi: Update copyright years.
17375
17376 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
17377
17378         PR target/46898
17379         * config/lm32/lm32.md (ashrsi3): Added needed variable.
17380
17381 2011-02-25  Jon Beniston  <jon@beniston.com>
17382
17383         PR target/46898
17384         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
17385         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
17386         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
17387         (lm32_block_move_inline): Add type cast to remove warning.
17388         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
17389         (gen_int_relational): Move declarations to start of function.
17390
17391 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
17392
17393         PR tree-optimization/45470
17394         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
17395         can throw internally only.
17396         * tree-vect-stmts.c (vectorizable_call): Likewise.
17397
17398 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
17399
17400         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
17401         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
17402         * config/stormy16/stormy16-protos.h
17403         (xstormy16_preferred_reload_class): Remove.
17404         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
17405         static. Change 'rclass' argument and return type to reg_class_t.
17406         (TARGET_PREFERRED_RELOAD_CLASS,
17407         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
17408
17409 2011-02-24  Richard Guenther  <rguenther@suse.de>
17410
17411         * lto-streamer-in.c (input_bb): Do not find referenced vars
17412         in debug statements.
17413
17414 2011-02-23  Jason Merrill  <jason@redhat.com>
17415
17416         * common.opt (fabi-version): Document v5 and v6.
17417
17418 2011-02-23  Richard Guenther  <rguenther@suse.de>
17419
17420         PR tree-optimization/47849
17421         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
17422
17423 2011-02-23  Jie Zhang  <jie@codesourcery.com>
17424
17425         * opts-common.c (decode_cmdline_option): Print empty string
17426         argument as "" in decoded->orig_option_with_args_text.
17427         * gcc.c (execute): Print empty string argument as ""
17428         in the verbose output.
17429         (do_spec_1): Keep empty string argument.
17430
17431 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
17432
17433         * config.gcc: Declare score-* and crx-* obsolete.
17434
17435 2011-02-23  Jie Zhang  <jie@codesourcery.com>
17436
17437         PR rtl-optimization/47763
17438         * web.c (web_main): Ignore naked clobber when replacing register.
17439
17440 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
17441
17442         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
17443         Remove.
17444
17445 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
17446
17447         PR doc/47848
17448         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
17449
17450 2011-02-22  Mike Stump  <mikestump@comcast.net>
17451
17452         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
17453         assembler.
17454         * configure: Regenerate.
17455
17456 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
17457
17458         PR rtl-optimization/46002
17459         * ira-color.c (update_copy_costs): Change class intersection
17460         test to reg_class_contents[] test of 'hard_regno'.
17461
17462 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
17463
17464         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
17465         than Driver option.
17466         * config/hpux11.opt (mt): Likewise.
17467         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
17468         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
17469         * config/vax/elf.opt (mno-asm-pic): Likewise.
17470         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
17471
17472 2011-02-21  Mike Stump  <mikestump@comcast.net>
17473
17474         PR target/47822
17475         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
17476         tree so we can get save the type.
17477         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
17478         for CFString instead of trying to use past the end of the builtins.
17479         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
17480         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
17481         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
17482         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
17483         Rename to darwin_builtin_cfstring.
17484         (darwin_init_cfstring_builtins): Return the built type.
17485
17486 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
17487
17488         PR target/47840
17489         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
17490         (_mm256_insert_epi64): Use _mm_insert_epi64.
17491
17492 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
17493
17494         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17495         * config/stormy16/stormy16-protos.h
17496         (xstormy16_mode_dependent_address_p): Remove.
17497         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
17498         Make static. Change return type to bool. Change argument type to
17499         const_rtx. Remove dead code.
17500         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17501
17502 2011-02-21  Richard Guenther  <rguenther@suse.de>
17503
17504         PR lto/47820
17505         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
17506         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
17507         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
17508         TUs context.
17509         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
17510         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
17511
17512 2011-02-20  Richard Guenther  <rguenther@suse.de>
17513
17514         PR lto/47822
17515         * tree.c (free_lang_data_in_decl): Clean builtins from
17516         the TU decl BLOCK_VARS.
17517
17518 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
17519
17520         PR debug/47620
17521         PR debug/47630
17522         * haifa-sched.c (fix_tick_ready): Skip tick computation
17523         for debug insns.
17524
17525 2011-02-19  Richard Guenther  <rguenther@suse.de>
17526
17527         PR lto/47647
17528         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
17529         Remove lazy BLOCK_VARS streaming.
17530         (lto_input_ts_block_tree_pointers): Likewise.
17531         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
17532
17533 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
17534
17535         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
17536
17537 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
17538
17539         * config/i386/biarch32.h, config/i386/mach.h,
17540         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
17541
17542 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
17543
17544         PR target/47800
17545         * config/i386/i386.md (peephole2 for shift and plus): Use
17546         operands[1] original mode in the first insn.
17547
17548 2011-02-18  Mike Stump  <mikestump@comcast.net>
17549
17550         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
17551
17552 2011-02-18  Jan Hubicka  <jh@suse.cz>
17553
17554         PR middle-end/47788
17555         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
17556         to zero when the function is not inlinable at all.
17557
17558 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17559
17560         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
17561         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
17562         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
17563         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
17564         * config/pa/t-pa64: Likewise.
17565         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
17566
17567 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
17568
17569         PR driver/47787
17570         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
17571
17572 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17573
17574         PR target/47792
17575         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
17576
17577 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
17578
17579         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
17580         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
17581         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
17582         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
17583         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
17584         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
17585         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
17586         m32r_load_postinc_p, m32r_store_preinc_predec_p,
17587         m32r_legitimate_address_p): New functions.
17588         * config/m32r/constraints.md (constraint "S"): Don't use
17589         STORE_PREINC_PREDEC_P.
17590         (constraint "U"): Don't use LOAD_POSTINC_P.
17591
17592 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
17593
17594         PR rtl-optimization/46178
17595         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
17596         compute ira_hard_regno_cover_class[].
17597
17598 2011-02-18  Richard Guenther  <rguenther@suse.de>
17599
17600         PR lto/47798
17601         * lto-streamer.h (lto_global_var_decls): Declare.
17602         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
17603         statics for global var processing.
17604
17605 2011-02-18  Richard Guenther  <rguenther@suse.de>
17606
17607         PR tree-optimization/47737
17608         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
17609         edge dominance check.
17610
17611 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
17612
17613         PR debug/47780
17614         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
17615         avoid invalid rtx sharing.
17616
17617 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
17618
17619         * doc/cpp.texi (Obsolete Features): Add background on the
17620         origin of assertions.
17621
17622 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
17623
17624         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
17625         objc_abi == 2.
17626         * config/darwin.c (output_objc_section_asm_op): Added support for
17627         ABI v1 and v2.
17628         (is_objc_metadata): New.
17629         (darwin_objc2_section): New.
17630         (darwin_objc1_section): New.
17631         (machopic_select_section): Added support for ABI v1 and v2.
17632         (darwin_emit_objc_zeroed): New.
17633         (darwin_output_aligned_bss): Detect objc metadata and treat it
17634         appropriately.
17635         (darwin_asm_output_aligned_decl_common): Same.
17636         (darwin_asm_output_aligned_decl_local): Same.
17637         * config/darwin-sections.def: Updated for ABI v1 and v2.
17638         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
17639         compiling Objective-C code for the NeXT runtime, default to using
17640         ABI version 0 for 32-bit, and version 2 for 64-bit.
17641
17642 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17643
17644         * common.opt (optimize_fast): New Variable.
17645         * opts.c (default_options_optimization): Use opts->x_optimize_fast
17646         instead of local variable ofast.
17647
17648 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
17649
17650         * doc/invoke.texi (fobjc-abi-version): Documented.
17651         (fobjc-nilcheck): Documented.
17652         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
17653         version.
17654
17655 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17656
17657         PR driver/47390
17658         * common.opt (export-dynamic): New Driver option.
17659         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
17660
17661 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17662
17663         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
17664
17665 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
17666             Jan Hubicka  <jh@suse.cz>
17667
17668         PR debug/47106
17669         PR debug/47402
17670         * cfgexpand.c (account_used_vars_for_block): Remove.
17671         (estimated_stack_frame_size): Use referenced vars.
17672         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
17673         that were referenced in the original function.  Test src_fn
17674         rather than cfun.  Drop redundant get_var_ann.
17675         (setup_one_parameter): Drop redundant get_var_ann.
17676         (declare_return_variable): Likewise.
17677         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
17678         (copy_arguments_for_versioning): Drop redundant get_var_ann.
17679         * ipa-inline.c (compute_inline_parameters): Do not compute
17680         disregard_inline_limits here.
17681         (compute_inlinable_for_current, pass_inlinable): New.
17682         (pass_inline_parameters): Require PROP_referenced_vars.
17683         * cgraphunit.c (cgraph_process_new_functions): Don't run
17684         compute_inline_parameters explicitly unless function is in SSA form.
17685         (cgraph_analyze_function): Set .disregard_inline_limits.
17686         * tree-sra.c (convert_callers): Compute inliner parameters
17687         only for functions already in SSA form.
17688
17689 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17690
17691         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
17692         -mlittle-endian-data.
17693
17694 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17695
17696         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
17697         -mno-fpu, not -fpu and -no-fpu.
17698         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
17699         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
17700
17701 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
17702
17703         PR target/43653
17704         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
17705         input reload with PLUS RTX.
17706
17707 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17708
17709         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
17710         of InverseVar(MDMX).
17711
17712 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17713
17714         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
17715         --m4-340.
17716
17717 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17718
17719         * config/mn10300/mn10300.opt (mno-crt0): New.
17720
17721 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17722
17723         * config/m68k/uclinux.opt (static-libc): New Driver option.
17724
17725 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17726
17727         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
17728
17729 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17730
17731         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
17732         %{muser-extend-enabled}.
17733
17734 2011-02-16  Richard Guenther  <rguenther@suse.de>
17735
17736         PR tree-optimization/47738
17737         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
17738         the TODO from tree_predictive_commoning.
17739
17740 2011-02-15  Jeff Law  <law@redhat.com>
17741
17742         Revert
17743         2011-01-25  Jeff Law  <law@redhat.com>
17744
17745         PR rtl-optimization/37273
17746         * ira-costs.c (scan_one_insn): Detect constants living in memory and
17747         handle them like argument loads from stack slots.  Do not double
17748         count memory for memory constants and argument loads from stack slots.
17749
17750 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
17751
17752         PR middle-end/47725
17753         * combine.c (cant_combine_insn_p): Revert the last change.
17754
17755 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
17756
17757         PR target/47755
17758         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
17759         mode for vector constants.  Remove code that checks for TImode.
17760
17761 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17762
17763         PR debug/47106
17764         PR debug/47402
17765         * cgraph.h (compute_inline_parameters): Return void.
17766         * ipa-inline.c (compute_inline_parameters): Adjust.
17767
17768 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17769
17770         PR debug/47106
17771         PR debug/47402
17772         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
17773         rather than decl.
17774         * cfgexpand.c (estimated_stack_frame_size): Likewise.
17775         * ipa-inline.c (compute_inline_parameters): Adjust.
17776
17777 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17778
17779         PR debug/47106
17780         PR debug/47402
17781         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
17782         Adjust all users.  Pass FN to...
17783         * tree-flow-inline.h (first_referenced_var): ... this.  Add
17784         fn argument.
17785         * ipa-struct-reorg.c: Adjust.
17786         * tree-dfa.c: Adjust.
17787         * tree-into-ssa.c: Adjust.
17788         * tree-sra.c: Adjust.
17789         * tree-ssa-alias.c: Adjust.
17790         * tree-ssa-live.c: Adjust.
17791         * tree-ssa.c: Adjust.
17792         * tree-ssanames.c: Adjust.
17793         * tree-tailcall.c: Adjust.
17794
17795 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17796
17797         PR debug/47106
17798         PR debug/47402
17799         * tree-flow.h (referenced_var_lookup): Add fn parameter.
17800         Adjust all callers.
17801         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
17802         * tree-flow-inline.h: Adjust.
17803         * gimple-pretty-print.c: Adjust.
17804         * tree-into-ssa.c: Adjust.
17805         * tree-ssa.c: Adjust.
17806         * cfgexpand.c: Adjust.
17807
17808 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
17809
17810         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
17811         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17812         (EXTRA_CONSTRAINT): Delete.
17813         * config/iq2000/constraints.md: New file.
17814         * config/iq2000/iq2000.md: Include it.
17815         (define_insn ""): Delete.
17816         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
17817         unsupported constraint letters from patterns.
17818         (call_value, call_value_internal1): Likewise.
17819         (call_value_multiple_internal1): Likewise.
17820
17821 2011-02-15  Nick Clifton  <nickc@redhat.com>
17822
17823         * config/mn10300/mn10300.c: Include tm-constrs.h.
17824         (struct liw_data): New data structure describing an LIW candidate
17825         instruction.
17826         (extract_bundle): Use struct liw_data.  Allow small integer
17827         operands for some instructions.
17828         (check_liw_constraints): Use struct liw_data.  Remove swapped
17829         parameter.  Add comments describing the checks.  Fix bug when
17830         assigning the source of liw1 to the source of liw2.
17831         (liw_candidate): Delete.  Code moved into extract_bundle.
17832         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
17833         before swapping.
17834         * config/mn10300/predicates.md (liw_operand): New predicate.
17835         Allows registers and small integer constants.
17836         * config/mn10300/constraints.md (O): New constraint.  Accetps
17837         integers in the range -8 to +7 inclusive.
17838         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
17839         for moving a small integer into a register.  Give this alternative
17840         LIW attributes.
17841         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
17842         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
17843         using the J,K,L and M constraints,
17844         (liw): Remove SI mode on second operands to allow for HI and QI
17845         mode values.
17846         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
17847         instruction.
17848
17849 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
17850
17851         PR middle-end/47725
17852         * combine.c (cant_combine_insn_p): Check zero/sign extended
17853         hard registers.
17854
17855 2011-02-15  Richard Guenther  <rguenther@suse.de>
17856
17857         PR tree-optimization/47743
17858         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
17859         for a non-type-compatible VN lookup bail out.
17860
17861 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
17862
17863         * config/fr30/constraints.md: New file.
17864         * config/fr30/fr30.md: Include it.
17865         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
17866         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17867         (EXTRA_CONSTRAINT): Delete.
17868
17869 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
17870
17871         * config/frv/constraints.md: New file.
17872         * config/frv/predicates.md: Include it.
17873         * config/frv/frv.c (reg_class_from_letter): Delete.
17874         (frv_option_override): Don't initialize it.
17875         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
17876         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
17877         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
17878         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
17879         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
17880         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17881         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
17882         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
17883         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
17884         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
17885         (REG_CLASS_FROM_CONSTRAINT): Delete.
17886
17887 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
17888
17889         PR middle-end/47581
17890         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
17891         if frame size is 0 in a leaf function.
17892
17893 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17894
17895         PR pch/14940
17896         * config/alpha/host-osf.c: New file.
17897         * config/alpha/x-osf: New file.
17898         * config.host (alpha*-dec-osf*): Use it.
17899
17900 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
17901
17902         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17903         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
17904         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
17905         (rx_mode_dependent_address_p): ...this. Make static. Change argument
17906         type to const_rtx.
17907         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17908
17909 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
17910
17911         * config/stormy16/constraints.md: New file.
17912         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
17913         Use satisfies_constraint_Q and satisfies_constraint_R.
17914         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
17915         Delete.
17916         (xstormy16_legitiamte_address_p): Declare.
17917         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
17918         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17919         (EXTRA_CONSTRAINT): Delete.
17920         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
17921         Un-staticize.
17922         (xstormy16_extra_constraint_p): Delete.
17923
17924 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
17925
17926         PR tree-optimization/46494
17927         * loop-unroll.c (split_edge_and_insert): Adjust comment.
17928         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
17929         (pass_rtl_loop_done): Add TODO_verify_flow.
17930         * fwprop.c (pass_rtl_fwprop): Likewise.
17931         * modulo-sched.c (pass_sms): Likewise.
17932         * tree-ssa-dom.c (pass_dominator): Likewise.
17933         * tree-ssa-loop-ch.c (pass_ch): Likewise.
17934         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
17935         (pass_tree_loop_done): Likewise.
17936         * tree-ssa-pre.c (execute_pre): Likewise.
17937         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
17938         * tree-ssa-sink.c (pass_sink_code): Likewise.
17939         * tree-vrp.c (pass_vrp): Likewise.
17940
17941 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
17942
17943         * config/v850/constraints.md: New file.
17944         * config/v850/v850.md: Include it.
17945         * config/v850/predicates.md (reg_or_0_operand): Use
17946         satisfies_constraint_G.
17947         (special_symbolref_operand): Use satisfies_constraint_K.
17948         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
17949         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
17950         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
17951         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
17952         (EXTRA_CONSTRAINT): Delete.
17953         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
17954         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
17955         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
17956
17957 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
17958
17959         PR target/47696
17960         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
17961         description.
17962
17963 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
17964
17965         * config/mcore/constraints.md: New file.
17966         * config/mcore/mcore.md: Include it.
17967         * config/mcore/mcore.c (reg_class_from_letter): Delete.
17968         * config/mcore/mcore.h (reg_class_from_letter): Delete.
17969         (REG_CLASS_FROM_LETTER): Delete.
17970         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
17971         insn_const_int_ok_for_constraint.
17972         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
17973         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
17974         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17975         (EXTRA_CONSTRAINT): Delete.
17976
17977 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17978
17979         PR ada/41929
17980         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
17981         (IS_SIGHANDLER): Define.
17982         (sparc64_is_sighandler): New function, split off from
17983         sparc64_fallback_frame_state.
17984         (sparc_is_sighandler): New function, split off from
17985         sparc_fallback_frame_state.
17986         (sparc64_fallback_frame_state): Merge with ...
17987         (sparc_fallback_frame_state): ... this into ...
17988         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
17989         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
17990         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
17991         stack instead of hardcoded offsets.
17992
17993 2011-02-14  Andriy Gapon  <avg@freebsd.org>
17994
17995         PR target/45808
17996         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
17997
17998 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17999
18000         * configure: Regenerate.
18001
18002 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
18003
18004         PR driver/45731
18005         * gcc.c (asm_options): Correct spec matching --target-help.
18006
18007 2011-02-12  Martin Jambor  <mjambor@suse.cz>
18008
18009         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
18010         to gimple call error.
18011
18012 2011-02-12  Mike Stump  <mikestump@comcast.net>
18013
18014         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
18015         comments in backslash regions.
18016
18017 2011-02-12  Mike Stump  <mikestump@comcast.net>
18018             Jakub Jelinek  <jakub@redhat.com>
18019             Iain Sandoe  <iains@gcc.gnu.org>
18020
18021         PR target/47324
18022         * dwarf2out.c (output_cfa_loc): When required, apply the
18023         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
18024         (output_loc_sequence): Likewise.
18025         (output_loc_operands_raw): Likewise.
18026         (output_loc_sequence_raw): Likewise.
18027         (output_cfa_loc): Likewise.
18028         (output_loc_list): Suppress register number adjustment when
18029         calling output_loc_sequence()
18030         (output_die): Likewise.
18031
18032 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
18033
18034         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18035         Remove macros.
18036         * config/xtensa/xtensa.c (xtensa_register_move_cost,
18037         xtensa_memory_move_cost): New functions.
18038         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
18039
18040 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
18041
18042         PR lto/47225
18043         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
18044         in the current directory.
18045         * configure: Rebuilt.
18046
18047 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
18048
18049         * config/darwin.c (darwin_override_options): Add a hunk missed
18050         from the commit of r168571.  Trim comment line lengths and
18051         correct indents of the preceding block.
18052
18053 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
18054
18055         * gcc.c (driver_handle_option): Concatenate the argument to -F with
18056         the switch.
18057
18058 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
18059
18060         * common.opt (nostartfiles): New Driver option.
18061
18062 2011-02-11  Xinliang David Li  <davidxl@google.com>
18063
18064         PR tree-optimization/47707
18065         * tree-chrec.c (convert_affine_scev): Keep type precision.
18066
18067 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
18068
18069         PR tree-optimization/47420
18070         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
18071
18072 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
18073
18074         PR rtl-optimization/47614
18075         * rtl.h (check_for_inc_dec): Declare.
18076         * dse.c (check_for_inc_dec): Externalize...
18077         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
18078         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
18079
18080 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
18081
18082         PR driver/47678
18083         * gcc.c (main): Do not compile inputs if there were errors in
18084         option handling.
18085         * opts-common.c (read_cmdline_option): Check for wrong language
18086         after other error checks.
18087
18088 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
18089
18090         * cgraph.c: Fix comment typos.
18091         * cgraph.h: Likewise.
18092         * cgraphunit.c: Likewise.
18093         * ipa-cp.c: Likewise.
18094         * ipa-inline.c: Likewise.
18095         * ipa-prop.c: Likewise.
18096         * ipa-pure-const.c: Likewise.
18097         * ipa-ref.c: Likewise.
18098         * ipa-reference.c: Likewise.
18099
18100 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
18101
18102         PR debug/47684
18103         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
18104
18105 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18106
18107         PR testsuite/47400
18108         * doc/sourcebuild.texi (Require Support): Document
18109         dg-require-ascii-locale.
18110
18111 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
18112
18113         * doc/lto.texi (Write summary): Fix missing parentheses.
18114
18115 2011-02-10  DJ Delorie  <dj@redhat.com>
18116
18117         * config/m32c/m32c.c (m32c_option_override): Disable
18118         -fcombine-stack-adjustments until flag value tracking and compare
18119         optimization can be rewritten.
18120
18121 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
18122
18123         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
18124         PROCESSOR_POWER7.
18125         (PROCESSOR_DEFAULT64): Likewise.
18126
18127 2011-02-10  Richard Henderson  <rth@redhat.com>
18128
18129         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
18130         change from 2011-02-03.
18131         * config/rx/rx.c (flags_from_code): Likewise.
18132         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
18133         is valid, n/pz otherwise.
18134         (rx_select_cc_mode): Return CCmode if Y is not zero.
18135
18136 2011-02-10  Richard Guenther  <rguenther@suse.de>
18137
18138         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
18139
18140 2011-02-10  Richard Guenther  <rguenther@suse.de>
18141
18142         PR tree-optimization/47677
18143         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
18144
18145 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
18146
18147         PR target/47665
18148         * combine.c (make_compound_operation): Only change shifts into
18149         multiplication for SCALAR_INT_MODE_P.
18150
18151 2011-02-10  Jie Zhang  <jie@codesourcery.com>
18152
18153         PR testsuite/47622
18154         Revert
18155         2011-02-05  Jie Zhang  <jie@codesourcery.com>
18156         PR debug/42631
18157         * web.c (entry_register): Don't clobber the number of the
18158         first uninitialized reference in used[].
18159
18160 2011-02-09  Richard Guenther  <rguenther@suse.de>
18161
18162         PR tree-optimization/47664
18163         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
18164         all edges again.
18165
18166 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
18167
18168         PR target/46481
18169         PR target/47032
18170         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
18171         PROCESSOR_POWER7.
18172         (PROCESSOR_DEFAULT64): Same.
18173         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
18174
18175 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18176
18177         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
18178
18179 2011-02-09  Martin Jambor  <mjambor@suse.cz>
18180
18181         PR middle-end/45505
18182         * tree-sra.c (struct access): New flags grp_scalar_read and
18183         grp_scalar_write.  Changed description of assignment read and write
18184         flags.
18185         (dump_access): Dump new flags, reorder all of them.
18186         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
18187         to detect multiple scalar reads.
18188         (analyze_access_subtree): Use the new scalar read write flags instead
18189         of the old flags.  Adjusted comments.
18190
18191 2011-02-08  DJ Delorie  <dj@redhat.com>
18192
18193         PR target/47548
18194         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
18195         patterns.
18196
18197 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18198
18199         * config/m68k/uclinux.opt: New.
18200         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
18201
18202 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18203
18204         * config/cris/elf.opt (sim): New Driver option.
18205
18206 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18207
18208         * config/xtensa/elf.opt: New.
18209         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
18210
18211 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18212
18213         * config/vax/elf.opt: New.
18214         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
18215
18216 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18217
18218         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
18219
18220 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18221
18222         * config/gnu-user.opt: New.
18223         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
18224         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
18225         *-*-uclinux*): Use gnu-user.opt.
18226
18227 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
18228
18229         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
18230         * config/i386/gnu.h (CPP_SPEC): Likewise.
18231
18232 2011-02-08  Ian Lance Taylor  <iant@google.com>
18233
18234         * common.opt (fcx-limited-range): Add SetByCombined flag.
18235         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
18236         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
18237         (fassociative-math, freciprocal-math): Likewise.
18238         (funsafe-math-optimizations): Likewise.
18239         * opth-gen.awk: Handle SetByCombined.
18240         * optc-gen.awk: Likewise.
18241         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
18242         (set_unsafe_math_optimizations_flags): Likewise.
18243         * doc/options.texi (Option properties): Document SetByCombined.
18244
18245 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18246
18247         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
18248         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
18249         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
18250         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
18251         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
18252
18253 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
18254
18255         PR tree-optimization/46834
18256         PR tree-optimization/46994
18257         PR tree-optimization/46995
18258         * graphite-sese-to-poly.c (used_outside_reduction): New.
18259         (detect_commutative_reduction): Call used_outside_reduction.
18260         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
18261         translate_scalar_reduction_to_array only when at least one
18262         loop-phi/close-phi tuple has been detected.
18263
18264 2011-02-08  Richard Guenther  <rguenther@suse.de>
18265
18266         PR middle-end/47639
18267         * tree-vect-generic.c (expand_vector_operations_1): Update
18268         stmts here ...
18269         (expand_vector_operations): ... not here.  Cleanup EH info
18270         and the CFG if required.
18271
18272 2011-02-08  Richard Guenther  <rguenther@suse.de>
18273
18274         PR tree-optimization/47641
18275         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
18276         require type compatibility.
18277
18278 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18279
18280         * gimple-low.c (lower_function_body): Don't remove the location of
18281         the return statement here.
18282         (lower_gimple_return): Do it here instead but only if the return
18283         statement is actually used twice.
18284
18285 2011-02-08  Richard Guenther  <rguenther@suse.de>
18286
18287         PR tree-optimization/47632
18288         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
18289         unused up_to_stmt parameter, return whether cfg-cleanup is
18290         necessary, remove EH info properly.
18291         (forward_propagate_into_gimple_cond): Adjust caller.
18292         (forward_propagate_into_cond): Likewise.
18293         (forward_propagate_comparison): Likewise.
18294         (tree_ssa_forward_propagate_single_use_vars): Make
18295         forward_propagate_comparison case similar to the two others.
18296
18297 2011-02-08  Nick Clifton  <nickc@redhat.com>
18298
18299         * config/mn10300/mn10300.opt (mliw): New command line option.
18300         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
18301         (liw_bundling): New automaton.
18302         (liw): New attribute.
18303         (liw_op): New attribute.
18304         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
18305         (movsi_internal): Add LIW attributes.
18306         (andsi3): Likewise.
18307         (iorsi3): Likewise.
18308         (xorsi3): Likewise.
18309         (addsi3): Separate register and immediate alternatives.
18310         Add LIW attributes.
18311         (subsi3): Likewise.
18312         (cmpsi): Likewise.
18313         (aslsi3): Likewise.
18314         (lshrsi3): Likewise.
18315         (ashrsi3): Likewise.
18316         (liw): New pattern.
18317         * config/mn10300/mn10300.c (liw_op_names): New
18318         (mn10300_print_operand): Handle 'W' operand descriptor.
18319         (extract_bundle): New function.
18320         (check_liw_constraints): New function.
18321         (liw_candidate): New function.
18322         (mn10300_bundle_liw): New function.
18323         (mn10300_reorg): New function.
18324         (TARGET_MACHINE_DEPENDENT_REORG): Define.
18325         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
18326         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
18327         __LIW__ or __NO_LIW__.
18328         * doc/invoke.texi: Describe the -mliw command line option.
18329
18330 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18331
18332         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
18333         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
18334         pthread_mutex_unlock): Remove.
18335         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
18336         * config/pa/t-pa64: Likewise.
18337         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
18338         shared libc if not linking against libpthread.
18339         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
18340
18341 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
18342
18343         PR target/47558
18344         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
18345         on 10.6 and later to ensure that we always use the unwinder from
18346         the system.  Only add -no_compact_unwind when tarteting darwin
18347         10.6 or later.
18348
18349 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
18350
18351         PR target/46997
18352         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
18353         (vec_interleave_lowv2sf): Ditto.
18354         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
18355         (vec_extract_oddv2sf): Ditto.
18356
18357 2011-02-07  Mike Stump  <mikestump@comcast.net>
18358
18359         PR target/42333
18360         Add __ieee_divdc3 entry point.
18361         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
18362         entry point.
18363         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
18364         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
18365         * config/darwin.c (darwin_rename_builtins): Add.
18366         * config/darwin-protos.h (darwin_rename_builtins): Add.
18367
18368 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
18369
18370         PR target/47636
18371         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
18372         for the condition.
18373
18374 2011-02-07  Mike Stump  <mikestump@comcast.net>
18375
18376         * config/darwin.opt (mmacosx-version-min): Update default OS version.
18377
18378 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
18379
18380         PR target/47534
18381         * config/avr/libgcc.S (exit): Move .endfunc
18382
18383 2011-02-07  Richard Guenther  <rguenther@suse.de>
18384
18385         PR tree-optimization/47615
18386         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
18387         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
18388         (run_scc_vn): Initialize it.
18389         (visit_reference_op_load): Use it.
18390         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
18391
18392 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18393
18394         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
18395         DImode trapping arithmetic libfuncs.
18396
18397 2011-02-07  Richard Guenther  <rguenther@suse.de>
18398
18399         PR tree-optimization/47621
18400         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
18401         two duplicates ...
18402         (execute_update_addresses_taken): ... here.  Make it more
18403         conservative in what we accept.
18404
18405 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
18406
18407         * config/sparc/freebsd.h (ASM_SPEC): Define.
18408         * config/sparc/vxworks.h (ASM_SPEC): Define.
18409
18410 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
18411
18412         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
18413
18414 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
18415
18416         * doc/invoke.texi: Remove reference to compiler internals from
18417         user documentation.
18418
18419         * reg-notes.def: Remove REG_VALUE_PROFILE.
18420         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
18421
18422 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
18423
18424         PR middle-end/47610
18425         * varasm.c (default_section_type_flags): If decl is NULL,
18426         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
18427
18428 2011-02-05  Jie Zhang  <jie@codesourcery.com>
18429
18430         PR debug/42631
18431         * web.c (entry_register): Don't clobber the number of the
18432         first uninitialized reference in used[].
18433
18434 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
18435
18436         PR tree-optimization/46194
18437         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
18438         (build_classic_dist_vector_1): Do not represent classic distance
18439         vectors when the access functions are variating in different loops.
18440
18441 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18442
18443         * config/mips/iris6.opt: New.
18444         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
18445
18446 2011-02-04  Richard Henderson  <rth@redhat.com>
18447             Steve Ellcey  <sje@cup.hp.com>
18448
18449         PR target/46997
18450         * config/ia64/predicates.md (mux1_brcst_element): New.
18451         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
18452         * config/ia64/ia64.c (ia64_unpack_assemble): New.
18453         (ia64_unpack_sign): New.
18454         (ia64_expand_unpack): Rewrite using new routines.
18455         (ia64_expand_widen_sum): Ditto.
18456         (ia64_expand_dot_prod_v8qi): Ditto.
18457         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
18458         routines, add endian check.
18459         (pmpy2_even): Rename from pmpy2_r, add endian check.
18460         (pmpy2_odd): Rename from pmpy2_l, add endian check.
18461         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
18462         (vec_widen_smult_hi_v4hi): Ditto.
18463         (vec_widen_umult_lo_v4hi): Ditto.
18464         (vec_widen_umult_hi_v4hi): Ditto.
18465         (mulv2si3): Change endian checks.
18466         (sdot_prodv4hi): Rewrite with new calls.
18467         (udot_prodv4hi): New.
18468         (vec_pack_ssat_v4hi): Add endian check.
18469         (vec_pack_usat_v4hi): Ditto.
18470         (vec_pack_ssat_v2si): Ditto.
18471         (max1_even): Rename from max1_r, add endian check.
18472         (max1_odd): Rename from max1_l, add endian check.
18473         (*mux1_rev): Format change.
18474         (*mux1_mix): Ditto.
18475         (*mux1_shuf): Ditto.
18476         (*mux1_alt): Ditto.
18477         (*mux1_brcst_v8qi): Use new predicate.
18478         (vec_extract_evenv8qi): Remove endian check.
18479         (vec_extract_oddv8qi): Ditto.
18480         (vec_interleave_lowv4hi): Format change.
18481         (vec_interleave_highv4hi): Ditto.
18482         (mix2_even): Rename from mix2_r, add endian check.
18483         (mix2_odd): Rename from mux2_l, add endian check.
18484         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
18485         (vec_extract_evenodd_helper): Format change.
18486         (vec_extract_evenv4hi): Remove endian check.
18487         (vec_extract_oddv4hi): Remove endian check.
18488         (vec_interleave_lowv2si): Format change.
18489         (vec_interleave_highv2si): Format change.
18490         (vec_initv2si): Remove endian check.
18491         (vecinit_v2si): Add endian check.
18492         (reduc_splus_v2sf): Add endian check.
18493         (reduc_smax_v2sf): Ditto.
18494         (reduc_smin_v2sf): Ditto.
18495         (vec_initv2sf): Remove endian check.
18496         (fpack): Add endian check.
18497         (fswap): Add endian check.
18498         (vec_interleave_highv2sf): Add endian check.
18499         (vec_interleave_lowv2sf): Add endian check.
18500         (fmix_lr): Add endian check.
18501         (vec_setv2sf): Format change.
18502         (*vec_extractv2sf_0_be): Use shift to extract operand.
18503         (*vec_extractv2sf_1_be): New.
18504         (vec_pack_trunc_v4hi): Add endian check.
18505         (vec_pack_trunc_v2si): Format change.
18506
18507 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
18508
18509         PR inline-asm/23200
18510         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
18511         do bb, locus and block comparison and disallow loads if it is not set.
18512         (stmt_is_replaceable_p): New function.
18513         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
18514         callers.
18515         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
18516         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
18517         SSA_NAME_DEF_STMT.
18518         * tree-flow.h (stmt_is_replaceable_p): New prototype.
18519
18520 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18521
18522         * config/rs6000/xilinx.opt: New.
18523         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
18524
18525 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18526
18527         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
18528
18529 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
18530
18531         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
18532         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
18533         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
18534         secondary_reload_info, xtensa_secondary_reload): Remove.
18535         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
18536         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
18537         (xtensa_preferred_reload_class): Make static. Change return and
18538         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
18539         Use CONST_DOUBLE_P predicate.
18540         (xtensa_preferred_output_reload_class): New function.
18541         (xtensa_secondary_reload): Make static.
18542
18543 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
18544
18545         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
18546         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
18547         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
18548
18549 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18550
18551         PR middle-end/31490
18552         * output.h (SECTION_RELRO): Define.
18553         (SECTION_MACH_DEP): Adjust.
18554         (get_variable_section): New prototype.
18555         * varpool.c (varpool_finalize_named_section_flags): New function.
18556         (varpool_assemble_pending_decls): Call it.
18557         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
18558         * cgraphunit.c (cgraph_output_in_order): Call
18559         varpool_finalize_named_section_flags.
18560         * varasm.c (get_section): Allow section flags conflicts between
18561         relro and read-only sections if the section hasn't been declared yet.
18562         Set SECTION_OVERRIDE after diagnosing section type conflict.
18563         (get_variable_section): No longer static.
18564         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
18565         readonly sections that need relocations.
18566         (decl_readonly_section_1): New function.
18567         (decl_readonly_section): Use it.
18568
18569         Revert:
18570         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
18571                     Steve Ellcey  <sje@cup.hp.com>
18572
18573         PR middle-end/31490
18574         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
18575         if section attribute used.
18576
18577 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18578
18579         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
18580         * config/darwin.c (SECTION_NO_ANCHOR): Define.
18581         (darwin_init_sections): Remove assertion.
18582
18583 2011-02-03  Nick Clifton  <nickc@redhat.com>
18584
18585         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
18586         lt and ge.
18587         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
18588         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
18589         instead of "n" and "pz".
18590         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
18591         CC_FLAG_S.
18592
18593 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18594
18595         PR target/47312
18596         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
18597         fma, expand FMA_EXPR as fma{,f,l} call.
18598
18599         PR lto/47274
18600         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
18601         copy them into a unsigned char variable and pass address of it to
18602         lto_output_data_stream.
18603
18604         PR target/47564
18605         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
18606         around backend_init_target and lang_dependent_init_target calls.
18607         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
18608         (verify_cgraph_node): Don't call set_cfun here.  Use
18609         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
18610         Set error_found for incorrectly represented calls to thunks.
18611
18612 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
18613
18614         PR debug/43092
18615         PR rtl-optimization/43494
18616         * rtl.h (for_each_inc_dec_fn): New type.
18617         (for_each_inc_dec): Declare.
18618         * rtlanal.c (struct for_each_inc_dec_ops): New type.
18619         (for_each_inc_dec_find_inc_dec): New fn.
18620         (for_each_inc_dec_find_mem): New fn.
18621         (for_each_inc_dec): New fn.
18622         * dse.c (struct insn_size): Remove.
18623         (replace_inc_dec, replace_inc_dec_mem): Remove.
18624         (emit_inc_dec_insn_before): New fn.
18625         (check_for_inc_dec): Use it, along with for_each_inc_dec.
18626         (canon_address): Pass mem modes to cselib_lookup.
18627         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
18628         (cselib_lookup_from_insn): Likewise.
18629         (cselib_subst_to_values): Likewise.
18630         * cselib.c (find_slot_memmode): New var.
18631         (cselib_find_slot): New fn.  Use it instead of
18632         htab_find_slot_with_hash everywhere.
18633         (entry_and_rtx_equal_p): Use find_slot_memmode.
18634         (autoinc_split): New fn.
18635         (rtx_equal_for_cselib_p): Rename and implement in terms of...
18636         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
18637         Deal with autoinc.  Special-case recursion into MEMs.
18638         (cselib_hash_rtx): Likewise.
18639         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
18640         address and MEM modes.
18641         (cselib_subst_to_values): Add memmode, pass it on.
18642         Deal with autoinc.
18643         (cselib_lookup): Add memmode argument, pass it on.
18644         (cselib_lookup_from_insn): Add memmode.
18645         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
18646         (struct cselib_record_autoinc_data): New.
18647         (cselib_record_autoinc_cb): New fn.
18648         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
18649         mode to cselib_lookup.  Reset autoinced REGs here instead of...
18650         (cselib_process_insn): ... here.
18651         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
18652         to cselib_lookup.
18653         (add_uses): Likewise, also to cselib_subst_to_values.
18654         (add_stores): Likewise.
18655         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
18656         cselib_subst_to_values.
18657         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
18658         * gcse.c (do_local_cprop): Adjusted.
18659         * postreload.c (reload_cse_simplify_set): Adjusted.
18660         (reload_cse_simplify_operands): Adjusted.
18661         * sel-sched-dump (debug_mem_addr_value): Pass mode.
18662
18663 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
18664
18665         PR tree-optimization/45122
18666         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
18667         unsafe assumptions when there's more than one loop exit.
18668
18669 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
18670
18671         PR target/47272
18672         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
18673         Document using vector double with the load/store builtins, and
18674         that the load/store builtins always use Altivec instructions.
18675
18676         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
18677         to use altivec memory instructions, even on VSX.
18678         (vector_altivec_store_<mode>): Ditto.
18679
18680         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
18681         function.
18682
18683         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
18684         V2DF, V2DI support to load/store overloaded builtins.
18685
18686         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
18687         altivec load/store builtins for V2DF/V2DI types.
18688
18689         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
18690         set avoid indexed addresses on power6 if -maltivec.
18691         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
18692         vector_altivec_load/vector_altivec_store builtins.
18693         (altivec_expand_st_builtin): Ditto.
18694         (altivec_expand_builtin): Add VSX memory builtins.
18695         (rs6000_init_builtins): Add V2DI types to internal types.
18696         (altivec_init_builtins): Add support for V2DF/V2DI altivec
18697         load/store builtins.
18698         (rs6000_address_for_altivec): Insure memory address is appropriate
18699         for Altivec.
18700
18701         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
18702         vec_vsx_ld and vec_vsx_st.
18703         (vsx_store_<mode>): Ditto.
18704
18705         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
18706         variables to hold long long types for VSX vector memory builtins.
18707         (RS6000_BTI_unsigned_long_long): Ditto.
18708         (long_long_integer_type_internal_node): Ditti.
18709         (long_long_unsigned_type_internal_node): Ditti.
18710
18711         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
18712         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
18713         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
18714
18715         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
18716         short cuts.
18717         (vec_vsx_st): Ditto.
18718
18719 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18720
18721         * config/pa/pa-hpux10.opt: New.
18722         * config/hpux11.opt (pthread): New Driver option.
18723         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
18724         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
18725
18726 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18727
18728         * config/ia64/vms.opt: New.
18729         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
18730
18731 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
18732
18733         PR target/47580
18734         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
18735         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
18736         generator functions.
18737         (vsx_floatuns<VSi><mode>2): Ditto.
18738         (vsx_fix_trunc<mode><VSi>2): Ditto.
18739         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
18740
18741 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18742
18743         * config/i386/djgpp.opt (posix): New Driver option.
18744
18745 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
18746
18747         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
18748         Move to the unsupported targets list.
18749
18750 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
18751
18752         PR rtl-optimization/47525
18753         * df-scan.c: Update copyright years.
18754         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
18755         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
18756
18757 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18758
18759         * config/i386/sysv4.h (TARGET_VERSION): Remove.
18760         (SUBTARGET_RETURN_IN_MEMORY): Remove.
18761         (ASM_OUTPUT_ASCII): Remove.
18762         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
18763
18764 2011-02-02  Jeff Law  <law@redhat.com>
18765
18766         PR middle-end/47543
18767         * reload.c (find_reloads_address): Handle reg+d address where both
18768         components are invalid by reloading the entire address.
18769
18770 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
18771             Richard Guenther  <rguenther@suse.de>
18772
18773         PR tree-optimization/40979
18774         PR bootstrap/47044
18775         * passes.c (init_optimization_passes): After LIM call copy_prop
18776         and DCE to clean up.
18777         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
18778
18779 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
18780
18781         PR tree-optimization/47576
18782         PR tree-optimization/47555
18783         * doc/invoke.texi (scev-max-expr-complexity): Documented.
18784         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
18785         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
18786         * tree-scalar-evolution.c (follow_ssa_edge): Use
18787         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
18788
18789 2011-02-02  Richard Guenther  <rguenther@suse.de>
18790
18791         PR tree-optimization/47566
18792         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
18793
18794 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
18795
18796         PR debug/47106
18797         PR debug/47402
18798         * tree-inline.c (declare_return_variable): Remove unused caller
18799         variable.
18800
18801         PR debug/47106
18802         PR debug/47402
18803         * tree-flow-inline.h (clear_is_used, is_used_p): New.
18804         * cfgexpand.c (account_used_vars_for_block): Use them.
18805         * tree-nrv.c (tree_nrv): Likewise.
18806         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
18807         (dump_scope_block): Likewise.
18808         (remove_unused_locals): Likewise.
18809
18810         PR debug/47106
18811         PR debug/47402
18812         * tree-inline.c (declare_return_variable): Add result decl to
18813         local decls only once.
18814         * gimple-low.c (record_vars_into): Mark newly-created variables
18815         as referenced.
18816
18817 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
18818
18819         PR debug/47498
18820         PR debug/47501
18821         PR debug/45136
18822         PR debug/45130
18823         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
18824         debug insns.
18825         (no_real_insns_p, schedule_block, set_priorities): Drop special
18826         treatment of boundary debug insns.
18827         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
18828         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
18829         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
18830         (BOUNDARY_DEBUG_INSN_P): Likewise.
18831         (SCHEDULE_DEBUG_INSN_P): Likewise.
18832         * sched-rgn.c (init_ready_list): Drop special treatment of
18833         boundary debug insns.
18834         * final.c (rest_of_clean_state): Clear notes' BB.
18835
18836 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18837
18838         * config/openbsd.opt (assert=): New Driver option.
18839
18840 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18841
18842         * config/i386/nto.opt: New.
18843         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
18844
18845 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18846
18847         * config/i386/netware.opt: New.
18848         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
18849
18850 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18851
18852         * config/interix.opt (posix): New Driver option.
18853
18854 2011-02-01  DJ Delorie  <dj@redhat.com>
18855
18856         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
18857
18858         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
18859         class for A0/A1.
18860
18861 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
18862
18863         PR tree-optimization/47561
18864         * toplev.c (process_options): Print the Graphite flags.  Add
18865         flag_loop_flatten to the list of options requiring Graphite.
18866
18867 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18868
18869         * config/i386/cygming.opt (posix): New Driver option.
18870
18871 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18872
18873         * config/arm/vxworks.opt: New.
18874         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
18875
18876 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18877
18878         * config/alpha/elf.opt: New.
18879         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
18880         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
18881
18882 2011-02-01  Richard Guenther  <rguenther@suse.de>
18883
18884         PR tree-optimization/47559
18885         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
18886         store-motion on references that can throw.
18887
18888 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
18889
18890         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
18891         * tree-pass.h (TDF_CSELIB): New macro.
18892         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
18893         cselib_lookup): Check for it rather than for TDF_DETAILS.
18894
18895 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
18896
18897         PR driver/47547
18898         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
18899         is HOST_BIT_BUCKET.
18900
18901         * opts.c (finish_options): Don't add x_aux_base_name if it is
18902         HOST_BIT_BUCKET.
18903
18904 2011-02-01  Richard Guenther  <rguenther@suse.de>
18905
18906         PR tree-optimization/47555
18907         Revert
18908         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
18909
18910         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
18911
18912 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
18913
18914         PR gcc/46692
18915         * config/lm32/t-lm32: Add multilib for all CPU options.
18916
18917 2011-02-01  Richard Guenther  <rguenther@suse.de>
18918
18919         PR tree-optimization/47541
18920         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
18921         sure to have a field at offset zero.
18922
18923 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
18924
18925         * config/arc/arc.opt (EB, EL): New Driver options.
18926
18927 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
18928
18929         * config/alpha/osf5.opt: New.
18930         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
18931
18932 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
18933
18934         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
18935
18936 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
18937
18938         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
18939         -floop-interchange.
18940         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
18941         is an alias of -floop-interchange and that it requires the
18942         Graphite infrastructure.
18943         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
18944         flag_loop_interchange based on the value of flag_tree_loop_linear.
18945
18946 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
18947             Richard Guenther  <rguenther@suse.de>
18948
18949         PR tree-optimization/47538
18950         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
18951         type instead of r1type, except for comparisons.  For right
18952         shifts and comparisons punt if there are mismatches in
18953         sizetype vs. non-sizetype types.
18954
18955 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18956
18957         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18958         avx_runtime.
18959
18960 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18961
18962         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
18963         version number.
18964         * configure: Regenerate.
18965
18966 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18967
18968         * configure.ac (gcc_cv_ld_static_option): Define.
18969         (gcc_cv_ld_dynamic_option): Define.
18970         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
18971         instead.
18972         (HAVE_LD_STATIC_DYNAMIC): Update message.
18973         (LD_STATIC_OPTION): Define.
18974         (LD_DYNAMIC_OPTION): Define.
18975         * configure: Regenerate.
18976         * config.in: Regenerate.
18977         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
18978         HAVE_LD_STATIC_DYNAMIC]: Use them.
18979
18980 2011-01-31  Nick Clifton  <nickc@redhat.com>
18981
18982         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
18983         registers inside interrupt handlers if the handler is not a leaf
18984         function.
18985
18986 2011-01-31  Nick Clifton  <nickc@redhat.com>
18987
18988         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
18989         reg_renumber returning an INVALID_REGNUM.
18990
18991 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
18992
18993         PR libgcj/44341
18994         * doc/install.texi: Document host options discarded when cross
18995         configuring target libraries.
18996
18997 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
18998
18999         Reverted:
19000         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
19001         PR debug/45136
19002         PR debug/45130
19003         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
19004         debug insns.
19005         (no_real_insns_p, schedule_block, set_priorities): Drop special
19006         treatment of boundary debug insns.
19007         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
19008         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
19009         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19010         (BOUNDARY_DEBUG_INSN_P): Likewise.
19011         (SCHEDULE_DEBUG_INSN_P): Likewise.
19012         * sched-rgn.c (init_ready_list): Drop special treatment of
19013         boundary debug insns.
19014         * final.c (rest_of_clean-state): Clear notes' BB.
19015
19016 2011-01-31  Alan Modra  <amodra@gmail.com>
19017
19018         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
19019         toc relative expressions as we do in print_operand_address.
19020
19021 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
19022
19023         * doc/extend.texi: Follow spelling conventions.
19024         * doc/invoke.texi: Fix a typo.
19025
19026 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
19027
19028         * config/hpux11.opt: New.
19029         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
19030         ia64*-*-hpux*): Use hpux11.opt.
19031
19032 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
19033
19034         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
19035         to tmake_file.
19036
19037 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
19038
19039         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
19040         support sites.
19041
19042 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
19043
19044         * doc/install.texi (Binaries): Remove outdated reference for
19045         Motorola 68HC11/68HC12 downloads.
19046
19047 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
19048
19049         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
19050         Drepper's paper.
19051
19052 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
19053
19054         PR bootstrap/47147
19055         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
19056         used by NetBSD.
19057
19058 2011-01-28  Ahmad Sharif  <asharif@google.com>
19059
19060         * value-prof.c (check_counter): Corrected error message.
19061
19062 2011-01-29  Jie Zhang  <jie@codesourcery.com>
19063
19064         * config/arm/arm.c (arm_legitimize_reload_address): New.
19065         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
19066         arm_legitimize_reload_address.
19067         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
19068
19069 2011-01-28  Ian Lance Taylor  <iant@google.com>
19070
19071         * godump.c (go_define): Ignore macros whose definitions include
19072         two adjacent operands.
19073
19074 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
19075
19076         PR target/42894
19077         * varasm.c (force_const_mem): Store copy of x in desc->constant
19078         instead of x itself.
19079         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
19080         itself into REG_EQUAL note.
19081
19082 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
19083
19084         * config/freebsd.opt (posix, rdynamic): New Driver options.
19085
19086 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19087
19088         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
19089         -Bstatic/-Bdynamic.
19090         * configure: Regenerate.
19091
19092 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
19093
19094         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
19095         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
19096
19097 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
19098
19099         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
19100         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
19101         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
19102         (s390_preferred_reload_class): Make static. Change return and
19103         'rclass' argument type to reg_class_t.
19104
19105 2011-01-27  Jan Hubicka  <jh@suse.cz>
19106
19107         PR middle-end/46949
19108         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
19109         (process_function_and_variable_attributes): Check defined weakrefs.
19110
19111 2011-01-27  Martin Jambor  <mjambor@suse.cz>
19112
19113         PR tree-optimization/47228
19114         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
19115         build_ref_for_offset.
19116
19117 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19118
19119         * config/spu/spu-elf.h (ASM_SPEC): Remove.
19120
19121 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
19122
19123         PR rtl-optimization/46856
19124         * postreload.c (reload_combine_recognize_const_pattern): Do not
19125         separate cc0 setter and user on cc0 targets.
19126
19127 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
19128
19129         PR c/43082
19130         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
19131         passed a VOID_TYPE expression, immediately emit an error and
19132         return error_mark_node.
19133
19134 2011-01-26  Jeff Law  <law@redhat.com>
19135
19136         PR rtl-optimization/47464
19137         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
19138         rather than may_trap_p as needed.
19139
19140 2011-01-26  DJ Delorie  <dj@redhat.com>
19141
19142         PR rtl-optimization/46878
19143         * combine.c (insn_a_feeds_b): Check for the implicit cc0
19144         setter/user dependency as well.
19145
19146 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
19147
19148         PR rtl-optimization/44469
19149         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
19150         after removing trivially dead basic blocks.
19151
19152 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19153
19154         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
19155         * config/frv/frv.h (LINK_SPEC): Likewise.
19156         * config/i386/netware.h (LINK_SPEC): Likewise.
19157         * config/m68k/linux.h (ASM_SPEC): Likewise.
19158         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
19159         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
19160         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19161         * config/sparc/linux.h (ASM_SPEC): Likewise.
19162         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19163         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19164
19165 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19166
19167         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
19168         * config/frv/frv.h (ASM_SPEC): Likewise.
19169         * config/m68k/linux.h (ASM_SPEC): Likewise.
19170         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
19171         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
19172         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19173         * config/sparc/linux.h (ASM_SPEC): Likewise.
19174         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19175         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19176
19177 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19178
19179         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
19180         * config/frv/frv.h (LINK_SPEC): Likewise.
19181         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
19182
19183 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19184
19185         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
19186         * config/frv/frv.h (ASM_SPEC): Likewise.
19187         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
19188         * config/m68k/linux.h (ASM_SPEC): Likewise.
19189         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
19190         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
19191         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19192         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
19193         * config/sparc/linux.h (ASM_SPEC): Likewise.
19194         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19195         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19196         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
19197
19198 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
19199
19200         PR target/46997
19201         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
19202         (*mux2): Ditto.
19203         (vec_extract_evenodd_help): Ditto.
19204         (vec_extract_evenv4hi): Ditto.
19205         (vec_extract_oddv4hi): Ditto.
19206         (vec_interleave_lowv2si): Ditto.
19207         (vec_interleave_highv2si): Ditto.
19208         (vec_extract_evenv2si): Ditto.
19209         (vec_extract_oddv2si: Ditto.
19210         (vec_pack_trunc_v2si): Ditto.
19211
19212 2011-01-22  Jan Hubicka  <jh@suse.cz>
19213
19214         PR target/47237
19215         * cgraph.h (cgraph_local_info): New field can_change_signature.
19216         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
19217         signature can change.
19218         (ipcp_estimate_growth): Call sequence simplify only if calle signature
19219         can change.
19220         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
19221         (cgraph_function_versioning): We can not change signature of functions
19222         that don't allow that.
19223         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
19224         (lto_input_node): Likewise.
19225         * ipa-inline.c (compute_inline_parameters): Compute
19226         local.can_change_signature.
19227         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
19228         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
19229         functions that can not change signature.
19230         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
19231         init_cumulative_args): Do not use local calling conventions
19232         for functions that can not change signature.
19233
19234 2011-01-22  Jan Hubicka  <jh@suse.cz>
19235
19236         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
19237
19238 2011-01-26  Richard Guenther  <rguenther@suse.de>
19239
19240         PR tree-optimization/47190
19241         * cgraphunit.c (process_common_attributes): New function.
19242         (process_function_and_variable_attributes): Use it.
19243
19244 2011-01-26  Richard Guenther  <rguenther@suse.de>
19245
19246         PR lto/47423
19247         * cgraphbuild.c (record_eh_tables): Record reference to personality
19248         function.
19249
19250 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
19251
19252         PR debug/45454
19253         * sel-sched.c (moveup_expr): Don't let debug insns prevent
19254         non-debug insns from moving up.
19255
19256 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
19257
19258         PR target/40125
19259         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
19260         t-dlldir{,-x} fragment for build and add it to tmake_file.
19261         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
19262         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
19263         * config/i386/t-dlldir: New file.
19264         (SHLIB_DLLDIR): Define.
19265         * config/i386/t-dlldir-x: New file.
19266         (SHLIB_DLLDIR): Define.
19267         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
19268         (SHLIB_INSTALL): Use it.
19269
19270 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
19271
19272         PR target/47246
19273         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
19274         lower bound of the allowed Thumb-2 coprocessor load/store
19275         index range to -256. Add explaining comment.
19276
19277 2011-01-25  Ian Lance Taylor  <iant@google.com>
19278
19279         * godump.c (go_define): Improve lexing of macro expansion to only
19280         accept expressions which match Go spec.
19281
19282 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
19283
19284         PR c++/43601
19285         * tree.c (handle_dll_attribute): Handle it.
19286         * doc/extend.texi (@item dllexport): Mention it.
19287         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
19288
19289 2011-01-25  Ian Lance Taylor  <iant@google.com>
19290
19291         PR tree-optimization/26854
19292         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
19293         (decl_jump_unsafe): Move higher in file, with no other change.
19294         (bind): Set has_jump_unsafe_decl if appropriate.
19295         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
19296         (check_earlier_gotos): Likewise.
19297         (c_check_switch_jump_warnings): Likewise.
19298
19299 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
19300
19301         * doc/invoke.texi (Warning Options): Add missing hyphen.
19302         (-fprofile-dir): Minor grammatical fixes.
19303         (-fbranch-probabilities): Likewise.
19304
19305 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
19306
19307         PR debug/45136
19308         PR debug/45130
19309         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
19310         debug insns.
19311         (no_real_insns_p, schedule_block, set_priorities): Drop special
19312         treatment of boundary debug insns.
19313         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
19314         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
19315         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19316         (BOUNDARY_DEBUG_INSN_P): Likewise.
19317         (SCHEDULE_DEBUG_INSN_P): Likewise.
19318         * sched-rgn.c (init_ready_list): Drop special treatment of
19319         boundary debug insns.
19320         * final.c (rest_of_clean-state): Clear notes' BB.
19321
19322 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19323
19324         * Makefile.in (LAMBDA_H): Removed.
19325         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
19326         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
19327         lambda-trans.o, and tree-loop-linear.o.
19328         (lto-symtab.o): Remove dependence on LAMBDA_H.
19329         (tree-loop-linear.o): Remove rule.
19330         (lambda-mat.o): Same.
19331         (lambda-trans.o): Same.
19332         (lambda-code.o): Same.
19333         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
19334         (tree-vect-slp.o): Same.
19335         * hwint.h (gcd): Moved here.
19336         (least_common_multiple): Same.
19337         * lambda-code.c: Removed.
19338         * lambda-mat.c: Removed.
19339         * lambda-trans.c: Removed.
19340         * lambda.h: Removed.
19341         * tree-loop-linear.c: Removed.
19342         * lto-symtab.c: Do not include lambda.h.
19343         * omega.c (gcd): Removed.
19344         * passes.c (init_optimization_passes): Remove pass_linear_transform.
19345         * tree-data-ref.c (print_lambda_vector): Moved here.
19346         (lambda_vector_copy): Same.
19347         (lambda_matrix_copy): Same.
19348         (lambda_matrix_id): Same.
19349         (lambda_vector_first_nz): Same.
19350         (lambda_matrix_row_add): Same.
19351         (lambda_matrix_row_exchange): Same.
19352         (lambda_vector_mult_const): Same.
19353         (lambda_vector_negate): Same.
19354         (lambda_matrix_row_negate): Same.
19355         (lambda_vector_equal): Same.
19356         (lambda_matrix_right_hermite): Same.
19357         * tree-data-ref.h: Do not include lambda.h.
19358         (lambda_vector): Moved here.
19359         (lambda_matrix): Same.
19360         (dependence_level): Same.
19361         (lambda_transform_legal_p): Removed declaration.
19362         (lambda_collect_parameters): Same.
19363         (lambda_compute_access_matrices): Same.
19364         (lambda_vector_gcd): Same.
19365         (lambda_vector_new): Same.
19366         (lambda_vector_clear): Same.
19367         (lambda_vector_lexico_pos): Same.
19368         (lambda_vector_zerop): Same.
19369         (lambda_matrix_new): Same.
19370         * tree-flow.h (least_common_multiple): Removed declaration.
19371         * tree-parloops.c (lambda_trans_matrix): Moved here.
19372         (LTM_MATRIX): Same.
19373         (LTM_ROWSIZE): Same.
19374         (LTM_COLSIZE): Same.
19375         (LTM_DENOMINATOR): Same.
19376         (lambda_trans_matrix_new): Same.
19377         (lambda_matrix_vector_mult): Same.
19378         (lambda_transform_legal_p): Same.
19379         * tree-pass.h (pass_linear_transform): Removed declaration.
19380         * tree-ssa-loop.c (tree_linear_transform): Removed.
19381         (gate_tree_linear_transform): Removed.
19382         (pass_linear_transform): Removed.
19383         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
19384         flag_loop_interchange.
19385
19386 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19387
19388         PR tree-optimization/47265
19389         PR tree-optimization/47443
19390         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
19391         if name still has some uses.
19392
19393 2011-01-25  Martin Jambor  <mjambor@suse.cz>
19394
19395         PR tree-optimization/47382
19396         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
19397         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
19398
19399 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
19400
19401         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
19402         sjlj_except_unwind_info.
19403
19404 2011-01-25  Richard Guenther  <rguenther@suse.de>
19405
19406         PR tree-optimization/47426
19407         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
19408         visible functions results escape.
19409
19410 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19411
19412         PR target/45701
19413         * config/arm/arm.c (any_sibcall_uses_r3): New function.
19414         (arm_get_frame_offsets): Use it.
19415
19416 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19417             Jakub Jelinek  <jakub@redhat.com>
19418
19419         PR tree-optimization/47271
19420         * tree-if-conv.c (bb_postdominates_preds): New.
19421         (if_convertible_bb_p): Call bb_postdominates_preds.
19422         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
19423         (predicate_scalar_phi): Call bb_postdominates_preds.
19424
19425 2011-01-25  Nick Clifton  <nickc@redhat.com>
19426
19427         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
19428         * config/rx/rx.c (rx_function_value): Likewise.
19429         (rx_promote_function_mode): Likewise.
19430         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
19431         in order to make it legitimate.
19432         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
19433         make sure that the first operand is the same as the result register.
19434         (addsi3_unspec): Delete.
19435         (subdi3): Do not accept immediate operands.
19436         (subdi3_internal): Likewise.
19437
19438 2011-01-25  Jeff Law  <law@redhat.com>
19439
19440         PR rtl-optimization/37273
19441         * ira-costs.c (scan_one_insn): Detect constants living in memory and
19442         handle them like argument loads from stack slots.  Do not double
19443         count memory for memory constants and argument loads from stack slots.
19444
19445 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19446
19447         PR tree-optimization/47427
19448         PR tree-optimization/47428
19449         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19450         coalesce if the new root var would be TREE_READONLY.
19451
19452 2011-01-25  Richard Guenther  <rguenther@suse.de>
19453
19454         PR middle-end/47414
19455         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
19456         correct type for TBAA.
19457
19458 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19459
19460         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
19461         (close_phi_written_to_memory): Call for_each_index with
19462         dr_indices_valid_in_loop.
19463
19464 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19465
19466         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
19467         when it is initialized.
19468
19469 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19470
19471         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
19472         call to graphite_find_data_references_in_stmt.
19473         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
19474         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
19475         call to graphite_find_data_references_in_stmt.
19476         (analyze_drs_in_stmts): Same.
19477         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
19478         in which the scalar analysis of indices is performed.
19479         (create_data_ref): Same.  Update call to dr_analyze_indices.
19480         (find_data_references_in_stmt): Update call to create_data_ref.
19481         (graphite_find_data_references_in_stmt): Same.
19482         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
19483         declaration.
19484         (create_data_ref): Same.
19485         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
19486         call to create_data_ref.
19487
19488 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19489
19490         * graphite-sese-to-poly.c (build_poly_scop): Move
19491         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
19492
19493 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19494
19495         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
19496         VAR_DECL, PARM_DECL, and RESULT_DECL.
19497
19498 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19499
19500         * graphite-dependences.c (reduction_dr_1): Allow several reductions
19501         in a reduction PBB.
19502         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
19503         that have already been marked as PBB_IS_REDUCTION.
19504
19505 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19506
19507         * graphite-scop-detection.c (same_close_phi_node): New.
19508         (remove_duplicate_close_phi): New.
19509         (make_close_phi_nodes_unique): New.
19510         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
19511
19512 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19513
19514         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
19515         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
19516         of both data references to be the same.
19517
19518 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19519
19520         * graphite-dependences.c (build_lexicographical_constraint): Remove
19521         the gdim parameter.
19522         (build_lexicographical_constraint): Adjust call to
19523         ppl_powerset_is_empty.
19524         (dependence_polyhedron): Same.
19525         (graphite_legal_transform_dr): Same.
19526         (graphite_carried_dependence_level_k): Same.
19527         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
19528         parameter.
19529         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
19530
19531 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19532
19533         * graphite-sese-to-poly.c
19534         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
19535         (close_phi_written_to_memory): New.
19536         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
19537         and unshare_expr.
19538
19539 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19540
19541         * doc/install.texi: Update the expected version number of PPL to 0.11.
19542         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
19543         #if PPL_VERSION_MINOR < 11.
19544
19545 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19546
19547         * graphite-dependences.c: Include graphite-cloog-util.h.
19548         (new_poly_ddr): Inlined into dependence_polyhedron.
19549         (free_poly_ddr): Moved close by new_poly_ddr.
19550         (dependence_polyhedron_1): Renamed dependence_polyhedron.
19551         Early return NULL when ppl_powerset_is_empty returns true.
19552         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
19553         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
19554         (graphite_legal_transform_dr): Call new_poly_ddr.
19555         (graphite_carried_dependence_level_k): Same.
19556         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
19557         (dot_transformed_deps_stmt_1): Removed.
19558         (dot_deps_stmt_1): Call dot_deps_stmt_2.
19559         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
19560         (dot_deps_1): Call dot_deps_2.
19561         * Makefile.in (graphite-dependences.o): Add missing dependence on
19562         graphite-cloog-util.h.
19563
19564 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19565
19566         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
19567         (build_lexicographical_constraint): Same.
19568         (dependence_polyhedron_1): Same.
19569         (graphite_legal_transform_dr): Same.
19570         (graphite_carried_dependence_level_k): Same.
19571         * graphite-ppl.c (ppl_powerset_is_empty): New.
19572         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
19573         * tree-data-ref.c (dump_data_reference): Print the basic block index.
19574
19575 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19576
19577         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
19578         the "a followed by b" relation and document it.
19579
19580 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19581
19582         * graphite-dependences.c (build_lexicographical_constraint): Stop the
19583         iteration when the bag of constraints is empty.
19584
19585 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19586
19587         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
19588
19589 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19590
19591         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
19592         nest and two loop depths as parameters.
19593         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
19594         lst_perfect_nestify.
19595
19596 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19597
19598         * graphite-dependences.c (print_pddr): Call
19599         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
19600
19601 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19602
19603         * graphite-ppl.c (debug_gmp_value): New.
19604         * graphite-ppl.h (debug_gmp_value): Declared.
19605
19606 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
19607
19608         * doc/install.texi: Document availability of cloog-0.16.
19609
19610 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
19611
19612         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
19613         invalid postdominance info.
19614
19615 2011-01-24  Jan Hubicka  <jh@suse.cz>
19616
19617         PR c/21659
19618         * doc/extend.texi (weak pragma): Drop claim that it must
19619         appear before definition.
19620         * varasm.c (merge_weak, declare_weak): Only sanity check
19621         that DECL is not output at a time it is declared weak.
19622
19623 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
19624
19625         * machmode.def: Fixed comments.
19626
19627 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
19628
19629         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
19630
19631 2011-01-24  Paul Koning  <ni1d@arrl.net>
19632
19633         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
19634         WORDS_BIG_ENDIAN.
19635
19636 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19637
19638         PR target/46519
19639         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
19640         (block_info): Add scanned and prev.
19641         (move_or_delete_vzeroupper_2): Return if the basic block
19642         has been scanned and the upper 128bit state is unchanged
19643         from the last scan.
19644         (move_or_delete_vzeroupper_1): Return true if the exit
19645         state is changed.
19646         (move_or_delete_vzeroupper): Visit basic blocks using the
19647         work-list based algorithm based on vt_find_locations in
19648         var-tracking.c.
19649
19650         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
19651
19652 2011-01-24  Nick Clifton  <nickc@redhat.com>
19653
19654         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
19655         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
19656         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
19657         then define __v850e1__.
19658         * doc/invoke.texi: Document -mv850es.
19659
19660 2011-01-24  Richard Henderson  <rth@redhat.com>
19661
19662         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
19663         compound unordered comparisons.
19664         * config/rx/rx.c (rx_split_fp_compare): Remove.
19665         * config/rx/rx-protos.h: Update.
19666         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
19667         (cbranchsf4): Don't call rx_split_fp_compare.
19668         (*cbranchsf4): Use rx_split_cbranch.
19669         (*cmpsf): Don't accept "i" constraint.
19670         (*conditional_branch): Only valid after reload.
19671         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
19672
19673 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19674
19675         PR target/47385
19676         * config/rs6000/altivec.md (vector constant splitters): Add
19677         support for creating vector single precision constants if -mvsx is
19678         used and we would create the constant using Altivec primitives.
19679
19680 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
19681             Richard Sandiford  <rdsandiford@googlemail.com>
19682
19683         PR rtl-optimization/47166
19684         * reload1.c (emit_reload_insns): Disable the spill_reg_store
19685         mechanism for PRE_MODIFY and POST_MODIFY.
19686         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
19687         reloadreg.
19688
19689 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
19690
19691         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
19692
19693 2011-01-22  Jan Hubicka  <jh@suse.cz>
19694
19695         PR lto/47333
19696         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
19697
19698 2011-01-22  Jan Hubicka  <jh@suse.cz>
19699
19700         PR tree-optimization/43884
19701         PR lto/44334
19702         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
19703         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
19704
19705 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
19706
19707         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19708         * config/s390/s390.c (s390_register_move_cost,
19709         s390_memory_move_cost): New.
19710         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
19711
19712 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19713
19714         PR middle-end/47401
19715         * except.c (sjlj_assign_call_site_values): Move setting the
19716         crtl->uses_eh_lsda flag to ...
19717         (sjlj_mark_call_sites): ... here.
19718         (sjlj_emit_function_enter): Support NULL dispatch label.
19719         (sjlj_build_landing_pads): In a function with no landing pads
19720         that still has must-not-throw regions, generate code to register
19721         a personality function with empty LSDA.
19722
19723 2011-01-21  Richard Henderson  <rth@redhat.com>
19724
19725         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
19726
19727         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
19728
19729         * compare-elim.c: New file.
19730         * Makefile.in (OBJS-common): Add it.
19731         (compare-elim.o): New.
19732         * common.opt (fcompare-elim): New.
19733         * opts.c (default_options_table): Add OPT_fcompare_elim.
19734         * tree-pass.h (pass_compare_elim_after_reload): New.
19735         * passes.c (init_optimization_passes): Add it.
19736         * recog.h: Protect against re-inclusion.
19737         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
19738         * doc/invoke.texi (-fcompare-elim): Document it.
19739         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
19740         * doc/tm.texi: Rebuild.
19741
19742 2011-01-22  Nick Clifton  <nickc@redhat.com>
19743
19744         * config/rx/rx.md (cstoresf4): Pass comparison operator to
19745         rx_split_fp_compare.
19746
19747 2011-01-22  Nick Clifton  <nickc@redhat.com>
19748
19749         * config/rx/rx.md (UNSPEC_CONST): New.
19750         (deallocate_and_return): Wrap the amount popped off the stack in
19751         an UNSPEC_CONST in order to stop it being rejected by
19752         -mmax-constant-size.
19753         (pop_and_return): Add a "(return)" rtx.
19754         (call): Drop the immediate operand.
19755         (call_internal): Likewise.
19756         (call_value): Likewise.
19757         (call_value_internal): Likewise.
19758         (sibcall_internal): Likewise.
19759         (sibcall_value_internal): Likewise.
19760         (sibcall): Likewise.  Generate an explicit call using
19761         sibcall_internal.
19762         (sibcall_value): Likewise.
19763         (mov<>): FAIL if a constant operand is not legitimate.
19764         (addsi3_unpsec): New pattern.
19765
19766         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
19767         (ok_for_max_constant): New function.
19768         (gen_safe_add): New function.
19769         (rx_expand_prologue): Use gen_safe_add.
19770         (rx_expand_epilogue): Likewise.
19771         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
19772         UNSPEC CONSTs.
19773
19774 2011-01-21  Jeff Law  <law@redhat.com>
19775
19776         PR tree-optimization/47053
19777         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
19778         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
19779         statements are deleted.
19780         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
19781         is nonempty, then purge dead edges and cleanup the CFG.
19782
19783 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19784
19785         PR debug/47402
19786         Temporarily revert:
19787         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19788         PR debug/47106
19789         * tree-dfa.c (create_var_ann): Mark variable as used.
19790
19791 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19792
19793         PR middle-end/45566
19794         * except.c (convert_to_eh_region_ranges): Emit queued no-region
19795         notes from other section in hot/cold partitioning even if
19796         last_action is -3.  Increment call_site_base.
19797
19798         PR rtl-optimization/47366
19799         * fwprop.c (forward_propagate_into): Return bool.  If
19800         any changes are made, -fnon-call-exceptions is used and
19801         REG_EH_REGION note is present, call purge_dead_edges
19802         and return true if it purged anything.
19803         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
19804         any EH edges were purged.
19805
19806 2011-01-21  Jeff Law  <law@redhat.com>
19807
19808         PR rtl-optimization/41619
19809         * caller-save.c (setup_save_areas): Break out code to determine
19810         which hard regs are live across calls by examining the reload chains
19811         so that it is always used.
19812         Eliminate code which checked REG_N_CALLS_CROSSED.
19813
19814 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19815
19816         PR tree-optimization/47355
19817         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
19818         NOP has non-debug uses beyond PHIs in new_bb.
19819
19820 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19821
19822         PR debug/47106
19823         * cfgexpand.c (account_used_vars_for_block): Only account vars
19824         that are annotated as used.
19825         (estimated_stack_frame_size): Don't set TREE_USED.
19826         * tree-dfa.c (create_var_ann): Mark variable as used.
19827
19828 2011-01-21  Richard Guenther  <rguenther@suse.de>
19829
19830         PR middle-end/47395
19831         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
19832
19833 2011-01-21  Richard Guenther  <rguenther@suse.de>
19834
19835         PR tree-optimization/47365
19836         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
19837         (vn_reference_lookup_pieces): Adjust.
19838         (vn_reference_lookup): Likewise.
19839         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
19840         (vn_reference_lookup_3): Only look through kills if in
19841         VN_WALKREWRITE mode.
19842         (vn_reference_lookup_pieces): Adjust.
19843         (vn_reference_lookup): Likewise.
19844         (visit_reference_op_load): Likewise.
19845         (visit_reference_op_store): Likewise.
19846         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
19847         (compute_avail): Likewise.
19848         (eliminate): Likewise.
19849
19850 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19851
19852         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
19853         DECL_IGNORED_P non-reg vars if they are used.
19854
19855         PR tree-optimization/47391
19856         * varpool.c (const_value_known_p): Return false if
19857         decl is volatile.
19858
19859 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
19860
19861         PR bootstrap/47215
19862         * config/i386/i386.c (ix86_local_alignment): Handle
19863         case for va_list_type_node is nil.
19864         (ix86_canonical_va_list_type): Likewise.
19865
19866 2011-01-21  Alan Modra  <amodra@gmail.com>
19867
19868         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
19869         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
19870
19871 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19872
19873         * config/arm/arm.md (define_attr type): Rename f_load
19874         and f_store to f_fpa_load and f_fpa_store. Update.
19875         (write_conflict): Deal with rename fallout.
19876         (*push_fp_multi): Likewise.
19877         * config/arm/fpa.md (f_load): Use f_fpa_load.
19878         (f_store): Use f_fpa_store.
19879         (*movsf_fpa): Likewise.
19880         (*movdf_fpa): Likewise.
19881         (*movxf_fpa): Likewise.
19882         (*thumb2_movsf_fpa): Likewise.
19883         (*thumb2_movdf_fpa): Likewise.
19884         (*thumb2_movxf_fpa): Likewise.
19885         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
19886         f_loadd and f_stored.
19887         (*thumb2_movdi_vfp): Likewise.
19888         (*thumb2_movsf_vfp): Fix attribute to f_loads.
19889         (*thumb2_movsi_vfp): Likewise.
19890         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
19891         Use f_loads instead of f_load.
19892         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
19893
19894 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
19895
19896         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19897         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
19898         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19899         (xtensa_mode_dependent_address_p): New function.
19900         (constantpool_address_p): Make static. Change return type to bool.
19901         Change argument type to const_rtx. Use CONST_INT_P predicate.
19902
19903 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
19904
19905         PR debug/46583
19906         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
19907
19908 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
19909
19910         PR debug/47283
19911         * cfgexpand.c (expand_debug_expr): Instead of generating
19912         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
19913         etc. handling.
19914
19915 2011-01-20  Richard Guenther  <rguenther@suse.de>
19916
19917         PR middle-end/47370
19918         * tree-inline.c (remap_gimple_op_r): Recurse manually for
19919         the pointer operand of MEM_REFs.
19920
19921 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
19922
19923         PR tree-optimization/46130
19924         * ipa-split.c (consider_split): If return_bb contains non-virtual
19925         PHIs other than for retval or if split_function would not adjust it,
19926         refuse to split.
19927
19928 2011-01-20  Richard Guenther  <rguenther@suse.de>
19929
19930         PR tree-optimization/47167
19931         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
19932         Revert previous change, only avoid enumeral type changes.
19933
19934 2011-01-19  Mike Stump  <mikestump@comcast.net>
19935
19936         * doc/tm.texi.in (BRANCH_COST): Englishify.
19937         * doc/tm.texi (BRANCH_COST): Likewise.
19938
19939 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
19940
19941         PR c++/47291
19942         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
19943         (gen_scheduled_generic_parms_dies): New functions.
19944         (gen_struct_or_union_type_die): Schedule template parameters DIEs
19945         generation for the end of CU compilation.
19946         (dwarf2out_finish): Generate template parameters DIEs here.
19947
19948 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
19949
19950         PR debug/46240
19951         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
19952         debug bind stmt on merge edges.
19953
19954 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
19955
19956         PR debug/47079
19957         PR debug/46724
19958         * function.c (instantiate_expr): Instantiate incoming rtl of
19959         implicit arguments, and recurse on VALUE_EXPRs.
19960         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
19961         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
19962
19963 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
19964
19965         * c-parser.c (c_parser_for_statement): Initialize
19966         collection_expression.
19967
19968 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
19969
19970         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
19971
19972 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
19973
19974         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
19975         (LINK_SHLIB_SPEC): Don't use %(link_path).
19976         (SUBTARGET_EXTRA_SPECS): Remove link_path.
19977
19978 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
19979
19980         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
19981         (NO_SHARED_LIB_SUPPORT): Remove.
19982         (LINK_SHLIB_SPEC): Remove one conditional definition.
19983
19984 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
19985
19986         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
19987         %{call_shared}.
19988         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
19989         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
19990         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
19991         %{call_shared} and conditionals on these options not being passed.
19992         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
19993         %{call_shared}.
19994
19995 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
19996
19997         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
19998         simplify.
19999
20000         * ipa-split.c: Spelling fixes.
20001
20002 2011-01-19  Richard Henderson  <rth@redhat.com>
20003
20004         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
20005         (*mulsi3): Likewise.
20006
20007         * longlong.h [__mn10300__] (count_leading_zeros): New.
20008         [__mn10300__] (umul_ppmm, smul_ppmm): New.
20009         [__mn10300__] (add_ssaaaa, subddmmss): New.
20010         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
20011         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
20012
20013 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20014
20015         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
20016
20017 2011-01-19  Richard Henderson  <rth@redhat.com>
20018
20019         * config/mn10300/mn10300.md (addsi3_flags): New.
20020         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
20021         (subsi3_flags, subc_internal, subdi3): New.
20022         (subdi3_internal, *subdi3_degenerate): New.
20023         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
20024
20025         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
20026         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
20027         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
20028         * config/mn10300/mn10300-protos.h: Update.
20029         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
20030         (return_ret): Likewise.  Rename from return_internal_regs.
20031         (return_internal): Remove.
20032
20033         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
20034         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
20035         (mn10300_legitimate_constant_p): Likewise.
20036         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
20037         (mn10300_frame_size): New.
20038         (mn10300_expand_prologue): Use it.
20039         (mn10300_expand_epilogue): Likewise.
20040         (mn10300_initial_offset): Likewise.
20041         * config/mn10300/mn10300-protos.h: Update.
20042         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
20043         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
20044         (prologue, epilogue, return_internal): Tidy output code.
20045         (mn10300_store_multiple_operation, return): Likewise.
20046         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
20047         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
20048         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
20049         (load_pic, am33_load_pic): New.
20050         (mn10300_load_pic0, mn10300_load_pic1): New.
20051
20052         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
20053         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
20054         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
20055         (cc_flags_for_mode, cc_flags_for_code): New.
20056         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
20057         overflow flag is not valid.  Validate that the flags we need
20058         for the comparison are valid.
20059         (mn10300_output_cmp): Remove.
20060         (mn10300_output_add): New.
20061         (mn10300_select_cc_mode): Use cc_flags_for_code.
20062         (mn10300_split_cbranch): New.
20063         (mn10300_match_ccmode): New.
20064         (mn10300_split_and_operand_count): New.
20065         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
20066         to the function.
20067         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
20068         (addsi3): ... here.  Use mn10300_output_add.
20069         (*addsi3_flags): New.
20070         (*am33_subsi3, *mn10300_subsi3): Merge...
20071         (subsi3): ... here.  Use attribute isa.
20072         (*subsi3_flags): New.
20073         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
20074         when possible.
20075         (*am33_andsi3, *mn10300_andsi3): Merge...
20076         (andsi3): ... here.
20077         (*andsi3_flags): New.
20078         (andsi3 splitters): New.
20079         (*am33_iorsi3, *mn10300_iorsi3): Merge...
20080         (iorsi3): ... here.
20081         (*iorsi3_flags): New.
20082         (*am33_xorsi3, *mn10300_xorsi3): Merge...
20083         (xorsi3): ... here.
20084         (*xorsi3_flags): New.
20085         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
20086         (one_cmplsi2): ... here.
20087         (*one_cmplsi2_flags): New.
20088         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
20089         instead of "dax" in constraints.  Use mn10300_split_cbranch.
20090         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
20091         use matching constraints to eliminate a self-comparison.
20092         (*integer_conditional_branch): Rename from integer_conditional_branch.
20093         Use int_mode_flags to match CC_REG.
20094         (*cbranchsi4_btst, *btstsi): New.
20095         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
20096         mn10300_split_cbranch.
20097         (*am33_cmpsf): Rename from am33_cmpsf.
20098         (*float_conditional_branch): Rename from float_conditional_branch.
20099         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
20100         (zero_extendqisi2): ... here.
20101         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
20102         (zero_extendhisi2): ... here.
20103         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
20104         (extendqisi2): ... here.
20105         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
20106         (extendhisi2): ... here.
20107         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
20108         (ashlsi3): ... here.
20109         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
20110         (lshrsi3): ... here.
20111         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
20112         (ashrsi3): ... here.
20113         (consecutive add peephole): Remove.
20114         * config/mn10300/predicates.md (label_ref_operand): New.
20115         (int_mode_flags): New.
20116         (CCZN_comparison_operator): New.
20117
20118         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
20119         (throughput_42_latency_43): New reservation.
20120         (mulsidi3, umulsidi3): New expanders.
20121         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
20122         the MDR register to allocation; separately allocate the low and
20123         high parts of the DImode result.
20124         (umulsidi3_internal): Similarly.
20125         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
20126         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
20127         (udivsi3, umodsi3): Remove.
20128         (udivmodsi4, divmodsi4): New expanders.
20129         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
20130         (*divmodsi4): Simiarly.
20131         (ext_internal): New.
20132
20133         * config/mn10300/constraints.md ("z"): New constraint.
20134         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
20135         (FIXED_REGISTERS): Don't fix MDR.
20136         (CALL_USED_REGSITERS): Reformat nicely.
20137         (REG_ALLOC_ORDER): Add MDR.
20138         (enum regclass): Add MDR_REGS.
20139         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
20140         (IRA_COVER_CLASSES): Add MDR_REGS.
20141         (REGNO_REG_CLASS): Handle MDR_REG.
20142         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
20143         (mn10300_register_move_cost): Likewise.
20144         * config/mn10300/mn10300.md (MDR_REG): New.
20145         (*movsi_internal): Handle moves to/from MDR_REGS.
20146
20147         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
20148         POST_MODIFY.
20149         (mn10300_secondary_reload): Tidy combination reload classes.
20150         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
20151         addresses for AM33.  Allow symbolic offsets for reg+imm.
20152         (mn10300_regno_in_class_p): New.
20153         (mn10300_legitimize_reload_address): New.
20154         * config/mn10300/mn10300.h (enum reg_class): Remove
20155         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
20156         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
20157         SP_OR_GENERAL_REGS.
20158         (REG_CLASS_NAMES): Update to match.
20159         (REG_CLASS_CONTENTS): Likewise.
20160         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
20161         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
20162         (REGNO_IN_RANGE_P): Remove.
20163         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
20164         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
20165         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
20166         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
20167         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
20168         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
20169         (REGNO_GENERAL_P): New.
20170         (HAVE_POST_MODIFY_DISP): New.
20171         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
20172         (LEGITIMIZE_RELOAD_ADDRESS): New.
20173         * config/mn10300/mn10300-protos.h: Update.
20174
20175         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
20176         DATA_REGS for AM33 stack-pointer destination.
20177         (mn10300_preferred_output_reload_class): Likewise.
20178         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
20179         into a form appropriate for ...
20180         (TARGET_SECONDARY_RELOAD): New.
20181         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
20182         * config/mn10300/mn10300-protos.h: Update.
20183         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
20184         reload_insi; use the "A" constraint for the scratch; handle AM33
20185         moves of sp to non-address registers.
20186
20187         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
20188         (*movqi_internal): ... here.
20189         (*am33_movhi, *mn10300_movhi): Merge into...
20190         (*movhi_internal): ... here.
20191         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
20192         as the source/destination of moves from/to SP.
20193         (movsf): Only allow for AM33-2.
20194         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
20195         any integer constant constraint.  Only allow for AM33-2.  Tidy
20196         all of the alternative outputs.
20197         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
20198         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
20199         for MN103.
20200         (udivsi3, umodsi3): New patterns for MN103 only.
20201
20202 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
20203
20204         * doc/tm.texi.in: Spell out that a lack of register class unions
20205         can lead to ICEs.
20206         * doc/tm.texi: Regenerate.
20207
20208 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
20209
20210         PR rtl-optimization/47337
20211         * dce.c (check_argument_store): New function.
20212         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
20213
20214         PR tree-optimization/47290
20215         * tree-eh.c (infinite_empty_loop_p): New function.
20216         (cleanup_empty_eh): Use it.
20217
20218 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
20219
20220         PR target/46997
20221         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
20222         (a64_expand_widen_sum): Ditto.
20223         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
20224         (vec_extract_evenodd_help): Ditto.
20225         (vec_extract_evenv4hi): Ditto.
20226         (vec_extract_oddv4hi): Ditto.
20227         (vec_extract_evenv2si): Ditto.
20228         (vec_extract_oddv2si): Ditto.
20229         (vec_extract_evenv2sf): Ditto.
20230         (vec_extract_oddv2sf): Ditto.
20231         (vec_pack_trunc_v4hi: Ditto.
20232         (vec_pack_trunc_v2si): Ditto.
20233         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
20234         (vec_interleave_highv8qi): Ditto.
20235         (mix1_r): Ditto.
20236         (vec_extract_oddv8qi): Ditto.
20237         (vec_interleave_lowv4hi): Ditto.
20238         (vec_interleave_highv4hi): Ditto.
20239         (vec_interleave_lowv2si): Ditto.
20240         (vec_interleave_highv2si): Ditto.
20241
20242 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20243
20244         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
20245         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
20246         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
20247         (pa_c_mode_for_suffix): New.
20248         (TARGET_EXPAND_BUILTIN): Define.
20249         (TARGET_C_MODE_FOR_SUFFIX): Define.
20250         (pa_builtins): Define.
20251         (pa_init_builtins): Register __float128 type and init new support
20252         builtins.
20253         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
20254         * config/pa/quadlib.c (_U_Qfcopysign): New.
20255
20256 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
20257
20258         PR middle-end/46894
20259         * explow.c (allocate_dynamic_stack_space): Do not assume more than
20260         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
20261         are defined.
20262
20263 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20264
20265         PR tree-optimization/47179
20266         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
20267         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
20268
20269 2011-01-18  Richard Guenther  <rguenther@suse.de>
20270
20271         PR rtl-optimization/47216
20272         * emit-rtl.c: Include tree-flow.h.
20273         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
20274         of replicating it with different semantics.
20275         * Makefile.in (emit-rtl.o): Adjust.
20276
20277 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20278
20279         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
20280         (cortex_a9_dp): Handle neon types correctly.
20281
20282 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
20283
20284         PR rtl-optimization/47299
20285         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
20286         subtarget.  Use normal multiplication if both operands are constants.
20287         * expmed.c (expand_widening_mult): Don't try to optimize constant
20288         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
20289         before using it.
20290
20291 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20292
20293         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
20294         spacing after 'e.g.', typos, comma, hyphenation.
20295
20296 2011-01-17  Richard Henderson  <rth@redhat.com>
20297
20298         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
20299         (rx_restricted_mem_operand): New.
20300         (rx_shift_operand): Use register_operand.
20301         (rx_source_operand, rx_compare_operand): Likewise.
20302         * config/rx/rx.md (addsi3_flags): New expander.
20303         (adddi3): Rewrite as expander.
20304         (adc_internal, *adc_flags, adddi3_internal): New patterns.
20305         (subsi3_flags): New expander.
20306         (subdi3): Rewrite as expander.
20307         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
20308
20309         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
20310         (rx_init_builtins): Remove sat builtin.
20311         (rx_expand_builtin): Likewise.
20312         * config/rx/rx.md (ssaddsi3): New.
20313         (*sat): Rename from sat.  Represent the CC_REG input.
20314
20315         * config/rx/predicates.md (rshift_operator): New.
20316         * config/rx/rx.c (rx_expand_insv): Remove.
20317         * config/rx/rx-protos.h: Update.
20318         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
20319         operand to the canonical position.
20320         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
20321         (*bitclr, *bitclr_in_memory): Similarly.
20322         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
20323         (insv): Retain the zero_extract in the expansion.
20324
20325         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
20326         (bswaphi2, bitinvert, revw): Likewise.
20327
20328         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
20329         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
20330         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
20331         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
20332         (bitset, bitset_in_memory): Likewise.
20333         (bitinvert, bitinvert_in_memory): Likewise.
20334         (bitclr, bitclr_in_memory): Likewise.
20335         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
20336         (rx_strend, rx_cmpstrn): Likewise.
20337         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
20338         (bitop peep2 patterns): Remove.
20339
20340         * config/rx/rx.c (rx_match_ccmode): New.
20341         * config/rx/rx-protos.h: Update.
20342         * config/rx/rx.md (abssi2): Clobber, don't set flags.
20343         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
20344         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
20345         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
20346         (fix_truncsfsi2, floatsisf2): Likewise.
20347         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
20348         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
20349         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
20350         (*subsi3_flags, *xorsi3_flags): New.
20351
20352         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
20353
20354         * config/rx/rx.c (rx_print_operand): Remove workaround for
20355         unsplit comparison operations.
20356
20357         * config/rx/rx.md (movsicc): Split after reload.
20358         (*movsicc): Merge *movsieq and *movsine via match_operator.
20359         (*stcc): New pattern.
20360
20361         * config/rx/rx.c (rx_float_compare_mode): Remove.
20362         * config/rx/rx.h (rx_float_compare_mode): Remove.
20363         * config/rx/rx.md (cstoresi4): Split after reload.
20364         (*sccc): New pattern.
20365
20366         * config/rx/predicates.md (label_ref_operand): New.
20367         (rx_z_comparison_operator): New.
20368         (rx_zs_comparison_operator): New.
20369         (rx_fp_comparison_operator): New.
20370         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
20371         Validate that the flags are set properly for the comparison.
20372         (rx_gen_cond_branch_template): Remove.
20373         (rx_cc_modes_compatible): Remove.
20374         (mode_from_flags): New.
20375         (flags_from_code): Rename from flags_needed_for_conditional.
20376         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
20377         (rx_select_cc_mode): Likewise.
20378         (rx_split_fp_compare): New.
20379         (rx_split_cbranch): New.
20380         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
20381         (*cbranchsi4): Use match_operator and rx_split_cbranch.
20382         (*cbranchsf4): Similarly.
20383         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
20384         match_operator and rx_split_cbranch.
20385         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
20386         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
20387         (*cmpsi): Rename from cmpsi.
20388         (*tstsi): Rename from tstsi.
20389         (*cmpsf): Rename from cmpsf; use CC_Fmode.
20390         (*conditional_branch): Rename from conditional_branch.
20391         (*reveresed_conditional_branch): Remove.
20392         (b<code>): Remove expander.
20393         * config/rx/rx-protos.h: Update.
20394
20395         * config/rx/rx.c (rx_compare_redundant): Remove.
20396         * config/rx/rx.md (cmpsi): Don't use it.
20397         * config/rx/rx-protos.h: Update.
20398
20399         * config/rx/rx-modes.def (CC_F): New mode.
20400         * config/rx/rx.c (rx_select_cc_mode): New.
20401         * config/rx/rx.h (SELECT_CC_MODE): Use it.
20402         * config/rx/rx-protos.h: Update.
20403
20404 2011-01-17  Richard Henderson  <rth@redhat.com>
20405
20406         * except.c (dump_eh_tree): Fix stray ; after for statement.
20407
20408 2011-01-17  Richard Guenther  <rguenther@suse.de>
20409
20410         PR tree-optimization/47313
20411         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
20412         handling before copying the body.  Properly deal with
20413         by-reference result in SSA form.
20414
20415 2011-01-17  Ian Lance Taylor  <iant@google.com>
20416
20417         PR target/47219
20418         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
20419         (struct_value_alias_set): Don't define.
20420         (sparc_option_override): Don't set sparc_sr_alias_set and
20421         struct_value_alias_set.
20422         (save_or_restore_regs): Use gen_frame_mem rather than calling
20423         set_mem_alias_set.
20424         (sparc_struct_value_rtx): Likewise.
20425
20426 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
20427
20428         PR target/47318
20429         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
20430         (_mm_maskstore_pd): Likewise.
20431         (_mm_maskload_ps): Likewise.
20432         (_mm_maskstore_ps): Likewise.
20433         (_mm256_maskload_pd): Change mask to __m256i.
20434         (_mm256_maskstore_pd): Likewise.
20435         (_mm256_maskload_ps): Likewise.
20436         (_mm256_maskstore_ps): Likewise.
20437
20438         * config/i386/i386-builtin-types.def: Updated.
20439         (ix86_expand_special_args_builtin): Likewise.
20440
20441         * config/i386/i386.c (bdesc_special_args): Update
20442         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
20443         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
20444         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
20445         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
20446
20447         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
20448         Use <avxpermvecmode> on mask register.
20449         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
20450
20451 2011-01-17  Olivier Hainque  <hainque@adacore.com>
20452             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
20453             Eric Botcazou  <ebotcazou@adacore.com>
20454
20455         PR target/46655
20456         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
20457         if <= USHRT_MAX in 32-bit mode.
20458
20459 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20460
20461         * doc/install.texi (Configuration, Specific): Wrap long
20462         lines in examples.  Allow line wrapping in long options
20463         and URLs where beneficial for PDF output.
20464
20465 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
20466
20467         * config/mips/mips.c (mips_classify_symbol): Don't return
20468         SYMBOL_PC_RELATIVE for nonlocal labels.
20469
20470 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
20471
20472         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
20473
20474 2011-01-15  Jan Hubicka  <jh@suse.cz>
20475
20476         PR tree-optimization/47276
20477         * ipa.c (function_and_variable_visibility): Do not try to mark alias
20478         declarations as needed.
20479
20480 2011-01-15  Martin Jambor  <mjambor@suse.cz>
20481
20482         * common.opt (fdevirtualize): New flag.
20483         * doc/invoke.texi (Option Summary): Document it.
20484         * opts.c (default_options_table): Add devirtualize flag.
20485         * ipa-prop.c (detect_type_change): Return immediately if
20486         devirtualize flag is not set.
20487         (detect_type_change_ssa): Likewise.
20488         (compute_known_type_jump_func): Likewise.
20489         (ipa_analyze_virtual_call_uses): Likewise.
20490
20491 2011-01-14  Martin Jambor  <mjambor@suse.cz>
20492
20493         PR tree-optimization/45934
20494         PR tree-optimization/46302
20495         * ipa-prop.c (type_change_info): New type.
20496         (stmt_may_be_vtbl_ptr_store): New function.
20497         (check_stmt_for_type_change): Likewise.
20498         (detect_type_change): Likewise.
20499         (detect_type_change_ssa): Likewise.
20500         (compute_complex_assign_jump_func): Check for dynamic type change.
20501         (compute_complex_ancestor_jump_func): Likewise.
20502         (compute_known_type_jump_func): Likewise.
20503         (compute_scalar_jump_functions): Likewise.
20504         (ipa_analyze_virtual_call_uses): Likewise.
20505         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
20506
20507 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20508
20509         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
20510         * config/i386/i386.opt (msse5): New Alias.
20511
20512 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20513
20514         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20515         * config/sparc/linux64.h (CC1_SPEC): Likewise.
20516         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
20517         * config/sparc/sparc.h (CC1_SPEC): Likewise.
20518
20519 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20520
20521         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
20522         -mcpu options.
20523         * config/sparc/linux64.h (CC1_SPEC): Likewise.
20524         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
20525         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
20526         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
20527         Likewise.
20528         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
20529
20530 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20531
20532         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
20533
20534 2011-01-14  Mike Stump  <mikestump@comcast.net>
20535
20536         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
20537         * config/fr30/fr30.md: Likweise
20538         (movsi_push): Likewise.
20539         (movsi_pop): Likewise.
20540         (enter_func): Likewise.
20541         * config/moxie/moxie.md (movsi_push): Likewise.
20542         (movsi_pop): Likewise.
20543
20544 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20545
20546         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
20547         %{no_archive} %{exact_version}.
20548         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
20549         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
20550         %{no_archive} %{exact_version}.
20551         * config/mips/openbsd.h (LINK_SPEC): Likewise.
20552         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
20553         * config/mips/vxworks.h: Likewise.
20554
20555 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20556
20557         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
20558
20559 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20560
20561         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
20562         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
20563
20564 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20565
20566         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
20567         -nodefaultlib.
20568
20569 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20570
20571         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
20572         for mcpu not cpu.
20573         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
20574         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
20575         not cpu.
20576         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
20577         Don't handle -shlib.
20578
20579 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20580
20581         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
20582         (CC1_SPEC): Don't handle -profile.
20583
20584 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20585
20586         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
20587         * config/mips/mips.h (CC1_SPEC): Likewise.
20588
20589 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20590
20591         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
20592         * config/mips/mips.h (CC1_SPEC): Likewise.
20593
20594 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20595
20596         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
20597         * config/m32r/linux.h (LINK_SPEC): Likewise.
20598         * config/mips/linux.h (LINK_SPEC): Likewise.
20599         * config/mips/linux64.h (LINK_SPEC): Likewise.
20600         * config/sparc/linux.h (LINK_SPEC): Likewise.
20601         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
20602         LINK_SPEC): Likewise.
20603         * config/xtensa/linux.h (LINK_SPEC): Likewise.
20604
20605 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20606
20607         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
20608         %{version:-v}.
20609         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
20610
20611 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20612
20613         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
20614         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
20615
20616 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20617
20618         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
20619
20620 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20621
20622         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
20623         supports -Bstatic/-Bdynamic.
20624         * configure: Regenerate.
20625
20626 2011-01-14  Jan Hubicka  <jh@suse.cz>
20627             Jack Howarth  <howarth@bromo.med.uc.edu>
20628
20629         PR target/46037
20630         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
20631         when checking debug_info_level. Test write_symbols instead of
20632         debug_hooks->var_location when setting flag_var_tracking_uninit.
20633
20634 2011-01-14  Richard Guenther  <rguenther@suse.de>
20635
20636         PR tree-optimization/47179
20637         * target.def (ref_may_alias_errno): New target hook.
20638         * targhooks.h (default_ref_may_alias_errno): Declare.
20639         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
20640         (default_ref_may_alias_errno): New function.
20641         * target.h (struct ao_ref_s): Declare.
20642         * tree-ssa-alias.c: Include target.h.
20643         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
20644         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
20645         (targhooks.o): Likewise.
20646         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
20647         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
20648
20649 2011-01-14  Richard Guenther  <rguenther@suse.de>
20650
20651         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
20652
20653 2011-01-14  Richard Guenther  <rguenther@suse.de>
20654
20655         PR tree-optimization/47280
20656         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
20657         return CFG changes.
20658         (tree_ssa_forward_propagate_single_use_vars): Deal with
20659         CFG changes from associate_plusminus.
20660
20661 2011-01-14  Richard Guenther  <rguenther@suse.de>
20662
20663         PR middle-end/47281
20664         Revert
20665         2011-01-11  Richard Guenther  <rguenther@suse.de>
20666
20667         PR tree-optimization/46076
20668         * tree-ssa.c (useless_type_conversion_p): Conversions from
20669         unprototyped to empty argument list function types are useless.
20670
20671 2011-01-14  Richard Guenther  <rguenther@suse.de>
20672
20673         PR tree-optimization/47286
20674         * tree-ssa-structalias.c (new_var_info): Register variables are global.
20675
20676 2011-01-14  Martin Jambor  <mjambor@suse.cz>
20677
20678         PR middle-end/46823
20679         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
20680
20681 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
20682
20683         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
20684         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
20685         * config/xtensa/xtensa.c (xtensa_libcall_value,
20686         xtensa_function_value_regno_p): New functions.
20687         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
20688
20689 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
20690
20691         PR c++/47213
20692         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
20693         PE specific hook.
20694         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
20695         New function prototype.
20696         * config/i386/winnt.c (i386_pe_assemble_visibility):
20697         Warn only if attribute was specified by user.
20698
20699 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
20700
20701         PR target/47251
20702         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
20703         floating point.
20704         (floatunsdidf2_fcfidu): Ditto.
20705
20706 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20707
20708         * config/s390/s390.c (print_operand_address): Replace 'error' with
20709         'output_operand_lossage'.
20710         (print_operand): Likewise.
20711
20712 2011-01-13  Jeff Law  <law@redhat.com>
20713
20714         PR rtl-optimization/39077
20715         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
20716         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
20717         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
20718         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
20719         * gcse.c (prune_insertions_deletions): New function.
20720         (compute_pre_data): Use it.
20721
20722 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
20723
20724         PR debug/PR46973
20725         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
20726         static function.
20727         (prune_unused_types_mark): Use it.
20728
20729 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
20730
20731         PR rtl-optimization/45352
20732         * sel-sched.c: Update copyright years.
20733         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
20734         in the advancing loop when we have issued issue_rate insns.
20735
20736 2011-01-12  Richard Henderson  <rth@redhat.com>
20737
20738         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
20739         (TARGET_MD_ASM_CLOBBERS): New.
20740
20741         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
20742         (TARGET_DELEGITIMIZE_ADDRESS): New.
20743
20744         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
20745         (clzsi2, *bsch): New patterns.
20746
20747         * config/mn10300/mn10300.md (INT): New mode iterator.
20748         (*mov<INT>_clr): New pattern, and peep2 to generate it.
20749
20750         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
20751         flag_split_wide_types.
20752
20753         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
20754         (mn10300_trampoline_init): Rewrite without a template, an immediate
20755         load and a direct branch.
20756         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
20757
20758 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
20759
20760         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20761         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
20762         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
20763         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20764
20765 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
20766
20767         PR debug/47209
20768         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
20769         of type.
20770
20771 2011-01-12  Jan Hubicka  <jh@suse.cz>
20772
20773         PR driver/47244
20774         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
20775         (PLUGIN_COND_CLOSE): New macro.
20776         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
20777
20778 2011-01-12  Richard Guenther  <rguenther@suse.de>
20779
20780         PR lto/47259
20781         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
20782         register variables in a MEM_REF.
20783
20784 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
20785
20786         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
20787         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
20788         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
20789         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
20790         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
20791         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
20792         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
20793         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
20794         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
20795         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
20796         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
20797         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
20798         * config/gnu-user.h: New.  Copied from linux.h.
20799         (LINUX_TARGET_STARTFILE_SPEC): Rename to
20800         GNU_USER_TARGET_STARTFILE_SPEC.
20801         (LINUX_TARGET_ENDFILE_SPEC): Rename to
20802         GNU_USER_TARGET_ENDFILE_SPEC.
20803         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
20804         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
20805         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
20806         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
20807         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
20808         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
20809         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
20810         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
20811         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
20812         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
20813         * config/arm/linux-eabi.h (CC1_SPEC): Use
20814         GNU_USER_TARGET_CC1_SPEC.
20815         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
20816         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
20817         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
20818         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
20819         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
20820         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
20821         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
20822         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
20823
20824 2011-01-12  Richard Guenther  <rguenther@suse.de>
20825
20826         PR other/46946
20827         * doc/invoke.texi (ffast-math): Document it is turned on
20828         with -Ofast.
20829
20830 2011-01-12  Jan Hubicka  <jh@suse.cz>
20831
20832         PR tree-optimization/47233
20833         * opts.c (common_handle_option): Disable ipa-reference with profile
20834         feedback.
20835
20836 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
20837
20838         * c-parser.c (c_parser_objc_at_property_declaration): Improved
20839         error message.
20840
20841 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
20842
20843         * c-parser.c (c_lex_one_token): Updated and reindented some
20844         comments.  No changes in code.
20845
20846 2011-01-11  Ian Lance Taylor  <iant@google.com>
20847
20848         * godump.c (go_output_var): Don't output the variable if there is
20849         already a type with the same name.
20850
20851 2011-01-11  Ian Lance Taylor  <iant@google.com>
20852
20853         * godump.c (go_format_type): Don't generate float80.
20854
20855 2011-01-11  Richard Henderson  <rth@redhat.com>
20856
20857         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
20858         declaration.  Rewrite for both speed and size.
20859         (mn10300_address_cost_1): Remove.
20860         (mn10300_register_move_cost): New.
20861         (mn10300_memory_move_cost): New.
20862         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
20863         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
20864         extensions, shifts, BSWAP, CLZ.
20865         (mn10300_wide_const_load_uses_clr): Remove.
20866         (TARGET_REGISTER_MOVE_COST): New.
20867         (TARGET_MEMORY_MOVE_COST): New.
20868         * config/mn10300/mn10300-protos.h: Update.
20869         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
20870
20871         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
20872         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
20873         * config/mn10300/mn10300-protos.h: Update.
20874         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
20875         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
20876         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
20877         (*test_int_bitfield, *test_byte_bitfield): Remove.
20878         (*bit_test, *subreg_bit_test): Remove.
20879         * config/mn10300/predicates.md (const_8bit_operand): Remove.
20880
20881         * config/mn10300/constraints.md ("c"): Rename from "A".
20882         ("A", "D"): New constraint letters.
20883         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
20884         (fmssf4, fnmasf4, fnmssf4): Likewise.
20885
20886         * config/mn10300/mn10300.md (isa): New attribute.
20887         (enabled): New attribute.
20888
20889         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
20890         (abssf2, negsf2): Define only for hardware fp.
20891         (sqrtsf2): Reformat.
20892         (addsf3, subsf3, mulsf3): Merge expander and insn.
20893
20894         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
20895         (DEBUGGER_AUTO_OFFSET): Remove.
20896         (DEBUGGER_ARG_OFFSET): Remove.
20897
20898         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
20899         Emit register stores with the same offsets as the hardware.
20900         (mn10300_store_multiple_operation): Don't check that the register
20901         save offsets are monotonic.
20902         * config/mn10300/mn10300-protos.h: Update.
20903
20904         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
20905
20906         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
20907         in terms of the value on the stack, not the MDR register.
20908
20909 2011-01-11  Jan Hubicka  <jh@suse.cz>
20910
20911         PR lto/45721
20912         PR lto/45375
20913         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
20914         (symbol_alias_set_destroy, symbol_alias_set_contains,
20915         propagate_aliases_backward): Declare.
20916         * lto-streamer-out.c (struct sets): New sturcture.
20917         (trivally_defined_alias): New function.
20918         (output_alias_pair_p): Rewrite.
20919         (output_unreferenced_globals): Fix output of alias pairs.
20920         (produce_symtab): Likewise.
20921         * ipa.c (function_and_variable_visibility): Set weak alias destination
20922         as needed in lto.
20923         * varasm.c (symbol_alias_set_t): Remove.
20924         (symbol_alias_set_destroy): Export.
20925         (propagate_aliases_forward, propagate_aliases_backward): New functions
20926         based on ...
20927         (compute_visible_aliases): ... this one; remove.
20928         (trivially_visible_alias): New
20929         (trivially_defined_alias): New.
20930         (remove_unreachable_alias_pairs): Rewrite.
20931         (finish_aliases_1): Reorganize code checking if alias is defined.
20932         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
20933         in LTO mode.
20934
20935 2011-01-11  Richard Guenther  <rguenther@suse.de>
20936
20937         PR tree-optimization/46076
20938         * tree-ssa.c (useless_type_conversion_p): Conversions from
20939         unprototyped to empty argument list function types are useless.
20940
20941 2011-01-11  Richard Guenther  <rguenther@suse.de>
20942
20943         PR middle-end/45235
20944         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
20945         volatile MEMs as MEM_READONLY_P.
20946
20947 2011-01-11  Richard Guenther  <rguenther@suse.de>
20948
20949         PR tree-optimization/47239
20950         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
20951
20952 2011-01-11  Jeff Law  <law@redhat.com>
20953
20954         PR tree-optimization/47086
20955         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
20956         IVs from statements that might throw.
20957
20958 2011-01-10  Jan Hubicka  <jh@suse.cz>
20959
20960         PR lto/45375
20961         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
20962
20963 2011-01-10  Jan Hubicka  <jh@suse.cz>
20964
20965         PR lto/45375
20966         * profile.c (read_profile_edge_counts): Ignore profile inconistency
20967         when correcting profile.
20968
20969 2011-01-10  Jan Hubicka  <jh@suse.cz>
20970
20971         PR lto/46083
20972         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
20973         DECL_FINI_PRIORITY.
20974         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
20975         Restore DECL_FINI_PRIORITY.
20976
20977 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20978
20979         * doc/gimple.texi: Fix quoting of multi-word return values in
20980         @deftypefn statements.  Ensure presence of return value.  Wrap
20981         overlong @deftypefn lines.
20982         (is_gimple_operand, is_gimple_min_invariant_address): Remove
20983         descriptions of removed functions.
20984         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
20985         of multi-word return value in @deftypefn statement.
20986
20987 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20988
20989         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
20990         (Conditional Expressions, Logical Operators)
20991         (Statement and operand traversals): Do not indent smallexample
20992         code.  Fix duplicate function argument in example.
20993
20994 2011-01-10  Jeff Law  <law@redhat.com>
20995
20996         PR tree-optimization/47141
20997         * ipa-split.c (split_function): Handle case where we are
20998         returning a value and the return block has a virtual operand phi.
20999
21000 2011-01-10  Jan Hubicka  <jh@suse.cz>
21001
21002         PR tree-optimization/47234
21003         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
21004         (pass_feedback_split_functions): Declare.
21005         * passes.c (init_optimization_passes): Add ipa-split as subpass of
21006         tree-profile.
21007         * ipa-split.c (gate_split_functions): Update comments; disable
21008         split-functions for profile_arc_flag and branch_probabilities.
21009         (gate_feedback_split_functions): New function.
21010         (execute_feedback_split_functions): New function.
21011         (pass_feedback_split_functions): New global var.
21012
21013 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
21014
21015         PR lto/46760
21016         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
21017         calling gimple_call_set_cannot_inline.
21018
21019 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
21020
21021         * config/darwin-sections.def: Remove unused section.
21022
21023 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
21024
21025         PR c++/47218
21026         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
21027
21028 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
21029
21030         PR objc/47232
21031         * c-parser.c (c_parser_declaration_or_fndef): Improved
21032         error message.
21033
21034 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
21035
21036         * config/i386/winnt.c (i386_pe_start_function): Make sure
21037         to switch back to function's section.
21038
21039 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
21040
21041         PR gcc/46902
21042         PR testsuite/46912
21043         * plugin.c: Move include of dlfcn.h from here...
21044         * system.h: ... to here.
21045
21046 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21047
21048         * doc/cpp.texi (C++ Named Operators): Fix markup for header
21049         file name.
21050         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
21051         two extra empty pages in PDF output.
21052
21053 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
21054
21055         PR objc/47078
21056         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
21057         for error recovery purposes behave as if it was not specified so
21058         that the default type is usd.
21059
21060 2011-01-07  Jan Hubicka  <jh@suse.cz>
21061
21062         PR tree-optmization/46469
21063         * ipa.c (function_and_variable_visibility): Clear needed flags on
21064         nodes with external decls; handle weakrefs merging correctly.
21065
21066 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
21067
21068         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
21069         not false.
21070
21071 2011-01-07  Jan Hubicka  <jh@suse.cz>
21072
21073         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
21074         and no longer claim that gold is required for linker plugin.
21075         * configure: Regenerate.
21076         * gcc.c (PLUGIN_COND): New macro.
21077         (LINK_COMMAND_SPEC): Use it.
21078         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
21079         * config.in (HAVE_LTO_PLUGIN): New.
21080         * configure.ac (--with-lto-plugin): New parameter; autodetect
21081         HAVE_LTO_PLUGIN.
21082
21083 2011-01-07  Jan Hubicka  <jh@suse.cz>
21084
21085         PR tree-optimization/46367
21086         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
21087         when we can update original.
21088         (cgraph_mark_inline_edge): Sanity check.
21089         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
21090
21091 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21092
21093         * config/spu/spu.h (ASM_COMMENT_START): Define.
21094
21095 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
21096
21097         PR driver/42445
21098         * gcc.c (%>S): New.
21099         (SWITCH_KEEP_FOR_GCC): Likewise.
21100         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
21101         (do_spec_1): Handle "%>".
21102
21103         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
21104
21105 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
21106
21107         PR target/47201
21108         * config/i386/i386.c (ix86_delegitimize_address): If
21109         simplify_gen_subreg fails, return orig_x.
21110
21111         PR bootstrap/47187
21112         * value-prof.c (gimple_stringop_fixed_value): Handle
21113         lhs of the call properly.
21114
21115 2011-01-07  Jan Hubicka  <jh@suse.cz>
21116
21117         PR lto/45375
21118         * lto-opt.c (lto_reissue_options): Set flag_shlib.
21119
21120 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
21121
21122         * target.def (function_switched_text_sections): New hook.
21123         * doc/tm.texi: Regenerated.
21124         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
21125         * final.c (default_function_switched_text_sections): New.
21126         (final_scan_insn): Call function_switched_text_sections when a
21127         mid-function section change occurs.
21128         * output.h (default_function_switched_text_sections): Declare.
21129         * config/darwin-protos.h (darwin_function_switched_text_sections):
21130         Likewise.
21131         * config/darwin.c (darwin_function_switched_text_sections): New.
21132         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
21133
21134 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
21135
21136         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
21137         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
21138         the secondary code fragment when outputting for DWARF == 2.
21139
21140 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
21141
21142         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
21143         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
21144         Remove.
21145         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
21146         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
21147
21148 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
21149
21150         PR debug/46704
21151         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
21152         when it is not empty.
21153
21154 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
21155
21156         Bobcat Enablement
21157         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
21158         (case ${target}): Add btver1.
21159         * config/i386/driver-i386.c (host_detect_local_cpu): Let
21160         -march=native recognize btver1 processors.
21161         * config/i386/i386-c.c (ix86_target_macros_internal): Add
21162         btver1 def_and_undef
21163         * config/i386/i386.c (struct processor_costs btver1_cost): New
21164         btver1 cost table.
21165         (m_BTVER1): New definition.
21166         (m_AMD_MULTIPLE): Includes m_BTVER1.
21167         (initial_ix86_tune_features): Add btver1 tune.
21168         (processor_target_table): Add btver1 entry.
21169         (static const char *const cpu_names): Add btver1 entry.
21170         (software_prefetching_beneficial_p): Add btver1.
21171         (ix86_option_override_internal): Add btver1 instruction sets.
21172         (ix86_issue_rate): Add btver1.
21173         (ix86_adjust_cost): Add btver1.
21174         * config/i386/i386.h (TARGET_BTVER1): New definition.
21175         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
21176         (enum processor_type): Add PROCESSOR_BTVER1.
21177         * config/i386/i386.md (define_attr "cpu"): Add btver1.
21178
21179 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21180
21181         PR target/43309
21182         * config/i386/i386.c (legitimize_tls_address)
21183         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
21184         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
21185         (tls_initial_exec_64_sun): New pattern.
21186
21187 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
21188
21189         * doc/invoke.texi (Overall Options): Improve wording and markup
21190         of the description of -wrapper.
21191
21192 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
21193
21194         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
21195         rdynamic, threads): New Driver options.
21196
21197 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21198
21199         PR target/38118
21200         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
21201         if coming from .tdata.
21202         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
21203
21204 2011-01-06  Jan Hubicka  <jh@suse.cz>
21205
21206         PR lto/47188
21207         * collect2.c (main): Do not enable LTOmode when plugin is active.
21208
21209 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21210
21211         PR other/45915
21212         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
21213         --version output if supported.
21214         * configure: Regenerate.
21215
21216 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
21217
21218         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
21219         Driver options.
21220
21221 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
21222
21223         PR c/47150
21224         * c-convert.c (convert): When converting a complex expression
21225         other than COMPLEX_EXPR to a different complex type, ensure
21226         c_save_expr is called instead of save_expr, unless in_late_binary_op.
21227         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
21228         when converting COMPLEX_TYPE.
21229
21230 2011-01-06  Ira Rosen  <irar@il.ibm.com>
21231
21232         PR tree-optimization/47139
21233         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
21234         only the last reduction value is used outside the loop.  Update
21235         documentation.
21236
21237 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
21238
21239         * config/rtems.opt: New.
21240         * config.gcc (*-*-rtems*): Use rtems.opt.
21241
21242 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
21243
21244         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
21245         processors do not support 3DNow instructions.
21246
21247 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21248
21249         * config/spu/spu.c (spu_option_override): Set parameter
21250         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
21251
21252 2011-01-05  Jan Hubicka  <jh@suse.cz>
21253
21254         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
21255         at the command line.
21256
21257 2011-01-05  Martin Jambor  <mjambor@suse.cz>
21258
21259         PR lto/47162
21260         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
21261         deltas on streamed outgoing edges.
21262         (output_node_opt_summary): Output info for outgoing edges only when
21263         the node is in new parameter set.
21264         (output_cgraph_opt_summary): New parameter set, passed to the two
21265         aforementioned functions.  Update its forward declaration and its
21266         callee too.
21267
21268 2011-01-05  Tom Tromey  <tromey@redhat.com>
21269
21270         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
21271         operator to c_finish_omp_atomic.
21272         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
21273         (build_unary_op): Update.
21274         (build_modify_expr): Update.
21275         (build_asm_expr): Update.
21276
21277 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21278
21279         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
21280         newly inserted insns.
21281         (pad_bb): Likewise.
21282         (spu_emit_branch_hint): Likewise.
21283         (insert_hbrp_for_ilb_runout): Likewise.
21284         (spu_machine_dependent_reorg): Call df_finish_pass after
21285         schedule_insns returns.
21286
21287 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21288
21289         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
21290
21291 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
21292
21293         PR tree-optimization/47005
21294         * tree-sra.c (struct access): Add 'non_addressable' bit.
21295         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
21296         (decide_one_param_reduction): Return 0 if the parameter is passed by
21297         reference and one of the accesses in the group is non_addressable.
21298
21299 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
21300
21301         PR tree-optimization/47056
21302         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
21303         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
21304         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
21305
21306 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
21307
21308         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
21309         initializer.  Skip view conversions from aggregate types.
21310
21311 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
21312
21313         PR bootstrap/47055
21314         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
21315
21316 2011-01-04  Philipp Thomas  <pth@suse.de>
21317
21318         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
21319         obvious typo.
21320
21321 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21322
21323         * function.c (thread_prologue_and_epilogue_insns): Do not crash
21324         on empty epilogue sequences.
21325
21326 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
21327
21328         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
21329         non-static): New Driver options.
21330
21331 2011-01-04  Jie Zhang  <jie@codesourcery.com>
21332
21333         PR driver/47137
21334         * gcc.c (default_compilers[]): Set combinable field to 0
21335         for all assembly languages.
21336
21337 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
21338
21339         * config/mips/loongson3a.md: New file.
21340         * config/mips/mips.md: Include loongson3a.md.
21341         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
21342         TUNE_LOONGSON_3A.
21343
21344 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
21345
21346         PR middle-end/47017
21347         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
21348         instead of convert_memory_address_addr_space on the base expression.
21349
21350 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21351
21352         * config/spu/spu.c (spu_option_override): Update error text
21353         for bad -march= / -mtune= values.
21354
21355 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21356
21357         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
21358         if branch-hint optimization will be performed.
21359
21360 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
21361
21362         PR tree-optimization/47148
21363         * ipa-split.c (split_function): Convert arguments to
21364         DECL_ARG_TYPE if possible.
21365
21366         PR tree-optimization/47155
21367         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
21368         when computing uns.
21369
21370         PR rtl-optimization/47157
21371         * combine.c (try_combine): If undobuf.other_insn becomes
21372         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
21373         and set *new_direct_jump_p too.
21374
21375 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
21376
21377         PR tree-optimization/47021
21378         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
21379
21380 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
21381
21382         * gcc.c (process_command): Update copyright notice dates.
21383         * gcov.c (print_version): Likewise.
21384         * gcov-dump.c (print_version): Likewise.
21385         * mips-tfile.c (main): Likewise.
21386         * mips-tdump.c (main): Likewise.
21387
21388 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21389
21390         PR tree-optimization/46801
21391         * tree-sra.c (type_internals_preclude_sra_p): Check whether
21392         aggregate fields start at byte boundary instead of the bit-field flag.
21393
21394 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
21395
21396         PR driver/47137
21397         * gcc.c (main): Revert revision 168407.
21398
21399 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21400
21401         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
21402
21403 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21404
21405         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
21406         vector optab to expand vector/scalar shift, update gimple to vector.
21407
21408 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21409
21410         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
21411         a thunk.
21412
21413 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21414
21415         PR tree-optimization/46984
21416         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
21417         HOST_WIDE_INT.
21418         (cgraph_create_indirect_edge): Fixed line length.
21419         (cgraph_indirect_call_info): Declare.
21420         (cgraph_make_edge_direct) Update declaration.
21421         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
21422         (cgraph_create_indirect_edge): Use it.
21423         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
21424         callees.
21425         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
21426         the new thunk_delta representation.
21427         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
21428         HOST_WIDE_INT.
21429         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
21430         (ipa_read_indirect_edge_info): Likewise.
21431         * lto-cgraph.c (output_edge_opt_summary): New function.
21432         (output_node_opt_summary): Call it on all outgoing edges.
21433         (input_edge_opt_summary): New function.
21434         (input_node_opt_summary): Call it on all outgoing edges.
21435
21436 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
21437
21438         PR driver/47137
21439         * gcc.c (main): Don't check have_o when settting combine_inputs.
21440
21441 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
21442
21443         * regrename.c: Add general comment describing the pass.
21444         (struct du_head): Remove 'length' field.
21445         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
21446         (regrename_optimize): Do not sort chains.  Rework comments, add others.
21447         Force renaming to the preferred class (if any) in the first pass and do
21448         not consider registers that belong to it in the second pass.
21449         (create_new_chain): Do not set 'length' field.
21450         (scan_rtx_reg): Likewise.
21451
21452 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
21453
21454         PR tree-optimization/47140
21455         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
21456         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
21457         to bit_value_binop.
21458
21459         PR rtl-optimization/47028
21460         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
21461         parm_birth_insn instead of at the beginning of first bb.
21462
21463 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
21464
21465         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
21466         Remove the word "see" before "@pxref".
21467         * doc/rtl.texi: Remove the word "see" before "@pxref".
21468
21469 2011-01-01  Jan Hubicka  <jh@suse.cz>
21470
21471         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
21472         memory.
21473
21474 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
21475
21476         PR target/38662
21477         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
21478
21479 \f
21480 Copyright (C) 2011 Free Software Foundation, Inc.
21481
21482 Copying and distribution of this file, with or without modification,
21483 are permitted in any medium without royalty provided the copyright
21484 notice and this notice are preserved.