OSDN Git Service

9e25844074926a2325e7731016cfeaa6b32842ba
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-07-14  Matthias Klose <doko@ubuntu.com>
2
3         * doc/extend.texi (optimize attribute): Fix typo.
4
5 2011-07-14  Richard Guenther  <rguenther@suse.de>
6
7         * gimplify.c (gimplify_expr): Only do required conversions.
8
9 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
10
11         PR target/43746
12         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
13         i.e. use default_elf_select_section.
14         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
15         (READONLY_DATA_SECTION_ASM_OP): Remove.
16         (TARGET_ASM_NAMED_SECTION): Move from here...
17         * config/avr/avr.c: ...to here.
18         (avr_asm_init_sections): Set unnamed callback of
19         readonly_data_section.
20         (avr_asm_named_section): Make static.
21
22 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23
24         PR bootstrap/49739
25         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtp
26         rec80.o crtfastmath.o for Linux/x86.
27
28 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
29
30         * haifa-sched.c: Include "hashtab.h"
31         (sched_no_dce): New global variable.
32         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
33         SHADOW_P): New macros.
34         (last_clock_var, cycle_issued_insns): Move declarations.
35         (must_backtrack): New static variable.
36         (struct delay_pair): New structure.
37         (delay_htab, delay_htab_i2): New static variables.
38         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
39         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
40         functions.
41         (dep_cost_1): If delay pairs exist, try to look up the insns and
42         use the correct pair delay if we find them.
43         (rank-for_schedule): Tweak priority for insns that must be scheduled
44         soon to avoid backtracking.
45         (queue_insn): Detect conditions which force backtracking.
46         (ready_add): Likewise.
47         (struct sched_block_state): Add member shadows_only_p.
48         (struct haifa_save_data): New structure.
49         (backtrack_queue): New static variable.
50         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
51         unschedule_insns_until, restore_last_backtrack_point,
52         free_topmost_backtrack_point, free_backtrack_queue,
53         estimate_insn_tick, estimate_shadow_tick): New functions.
54         (prune_ready_list): New arg shadows_only_p.  All callers changed.
55         If true, remove everything that isn't SHADOW_P.  Look up delay
56         pairs and estimate ticks to avoid scheduling the first insn too
57         early.
58         (verify_shadows): New function.
59         (schedule_block): Add machinery to enable backtracking.
60         (sched_init): Take sched_no_dce into account when setting
61         DF_LR_RUN_DCE.
62         (free_delay_pairs): New function.
63         (init_h_i_d): Initialize INSN_EXACT_TICK.
64         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
65         * sched-deps.c (sd_unresolve_dep): New function.
66         * sched-int. (struct haifa_sched_info): New fields save_state
67         and restore_state.
68         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
69         feeds_backtrack_insn and shadow_p.
70         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
71         (sched_no_dce): Declare variable.
72         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
73         sd_unresolve_dep): Declare functions.
74         * modulo-sched.c (sms_sched_info): Clear the two new fields.
75         * sched-rgn.c (rgn_const_sched_info): Likewise.
76         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
77         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
78         (ebb_sched_info): Add them for the two new fields.
79         (add_deps_for_risky_insns): Call add_delay_dependencies.
80
81 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
82
83         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
84         Rename -mr11.
85         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
86         (rs6000_call_indirect_aix): Ditto.
87         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
88         (call_indirect_aix<ptrsize>_internal): Ditto.
89         (call_indirect_aix<ptrsize>_nor11): Ditto.
90         (call_indirect_aix<ptrsize>_internal2): Ditto.
91         (call_value_indirect_aix<ptrsize>): Ditto.
92         (call_value_indirect_aix<ptrsize>_internal): Ditto.
93         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
94         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
95         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
96
97 2011-07-13  Jason Merrill  <jason@redhat.com>
98
99         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
100
101 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
102
103         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
104         * config/spu/spu.md ("clrsb<mode>2"): New expander.
105
106 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
107
108         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
109         * configure: Regenerate.
110
111 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
112
113         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
114         (asm_file_start): Remove.
115         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
116         free_bb_for_insn around code that modifies insns before
117         restarting df analysis.
118
119 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
120
121         PR target/49541
122         * config/sol2.h (LIB_SPEC): Simplify.
123         Move LIB_THREAD_LDFLAGS_SPEC ...
124         (LINK_SPEC): ... here.
125
126 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
127
128         * haifa-sched.c (struct sched_block_state): New.
129         (schedule_block): Move some local variables into such a structure.
130
131 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
132
133         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
134         * config/i386/t-crtpc: Remove.
135         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
136         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
137         tmake_file.
138         (x86_64-*-darwin*): Likewise.
139         (i[34567]86-*-linux*): Likewise.
140         (x86_64-*-linux*): Likewise.
141
142         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
143         Handle -mpc32, -mpc64, -mpc80.
144
145 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
146
147         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
148         * config/alpha/t-crtfm: Remove.
149         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
150         * config/i386/t-crtfm: Remove.
151         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
152         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
153         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
154         * config/sparc/t-crtfm: Remove.
155
156         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
157         (alpha*-*-freebsd*): Likewise.
158         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
159         (x86_64-*-darwin*): Likewise.
160         (i[34567]86-*-linux*): Likewise.
161         (x86_64-*-linux*): Likewise.
162         (x86_64-*-mingw*): Likewise.
163         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
164         (ia64*-*-freebsd*): Likewise.
165         (ia64*-*-linux*): Likewise.
166         (mips64*-*-linux*): Likewise.
167         (mips*-*-linux*): Likewise.
168         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
169         (sparc64-*-linux*): Likewise.
170         (sparc64-*-freebsd*): Likewise.
171
172 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
173
174         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
175         * config/darwin-crt3.c: Move to ../libgcc/config.
176         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
177         ($(T)crt3$(objext)): Remove.
178         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
179         ($(T)crt2$(objext)): Remove.
180         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
181         (powerpc64-*-darwin*): Likewise.
182
183 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
184
185         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode
186         != Pmode.
187
188         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
189         (addsi_1_zext): This.
190
191 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
192
193         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
194         * doc/tm.texi: Regenerate.
195         * target.def (mergeable_rodata_prefix: New defhookpod.
196         * varasm.c (mergeable_string_section, mergeable_constant_section):
197         Use it. Allocate name with alloca.
198
199 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
200
201         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
202
203 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
204
205         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
206         overlap check.
207
208 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
209
210         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
211         (count_type_elements): Delete.
212         (complete_ctor_at_level_p): Declare.
213         * expr.c (flexible_array_member_p): New function, split out from...
214         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
215         parameter with for_ctor_p.  When for_ctor_p is true, return the
216         number of elements that should appear in the top-level constructor,
217         otherwise return an estimate of the number of scalars.
218         (categorize_ctor_elements): Replace p_must_clear with p_complete.
219         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
220         (complete_ctor_at_level_p): New function, borrowing union logic
221         from old categorize_ctor_elements_1.
222         (mostly_zeros_p): Return true if the constructor is not complete.
223         (all_zeros_p): Update call to categorize_ctor_elements.
224         * gimplify.c (gimplify_init_constructor): Update call to
225         categorize_ctor_elements.  Don't call count_type_elements.
226         Unconditionally prevent clearing for variable-sized types,
227         otherwise rely on categorize_ctor_elements to detect
228         incomplete initializers.
229
230 2011-07-13  Richard Guenther  <rguenther@suse.de>
231
232         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
233         the final type is integral.
234
235 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
236
237         * sched-int.h (struct _dep): Add member cost.
238         (DEP_COST, UNKNOWN_DEP_COST): New macros.
239         * sched-deps.c (init_dep_1): Initialize DEP_COST.
240         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
241         (sched_change_pattern): Reset it for dependent insns.
242
243 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
244
245         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
246         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
247         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
248         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
249         (CRT0_S, MCRT0_S): Remove.
250         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
251         Remove.
252         (s-crt0): Remove.
253         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
254
255 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
256
257         * cse.c (insert_with_costs): Put semi-colon after empty loop body
258         on the next line.
259         * emit-rtl.c (push_to_sequence): Likewise.
260         * haifa-sched.c (max_issue): Likewise.
261         * matrix-reorg.c (add_allocation_site): Likewise.
262         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
263         * reload.c (alternative_allows_const_pool_ref): Likewise.
264         * sched-rgn.c (rgn_add_block): Likewise.
265         (rgn_fix_recovery_cfg): Likewise.
266         * tree.c (attribute_list_contained): Likewise.
267
268 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
269
270         * config/i386/i386.c: Tidy processor feature bitmasks.
271         (m_P4_NOCONA): New.
272
273 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
274
275         PR rtl-opt/49474
276         * cprop.c (find_implicit_sets): Correct the condition.
277
278 2011-07-12  Richard Henderson  <rth@redhat.com>
279
280         PR target/49713
281         * dwarf2out.h (dwarf_frame_regnum): Remove.
282         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
283         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
284         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
285         (execute_dwarf2_frame): Initialize them.
286         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
287         users of the macros with the variables.
288         (expand_builtin_dwarf_sp_column): Revert last change.
289         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
290         result of DWARF_FRAME_REGNUM into a local variable.
291
292 2011-07-12  Richard Henderson  <rth@redhat.com>
293
294         PR target/49714
295         * config/i386/i386.c (x86_output_mi_thunk): Use
296         machopic_indirect_call_target instead of machopic_indirection_name
297         directly.
298
299 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
300             Eric Botcazou  <ebotcazou@adacore.com>
301
302         * prefix.h: Wrap up in extern "C" block.
303
304 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
305
306         AMD bdver2 Enablement
307         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
308         (case ${target}): Add bdver2.
309         * config/i386/driver-i386.c (host_detect_local_cpu): Let
310         -march=native recognize bdver2 processors.
311         * config/i386/i386-c.c (ix86_target_macros_internal): Add
312         bdver2 def_and_undef
313         * config/i386/i386.c (struct processor_costs bdver2_cost): New
314         bdver2 cost table.
315         (m_BDVER2): New definition.
316         (m_AMD_MULTIPLE): Includes m_BDVER2.
317         (initial_ix86_tune_features): Add bdver2 tuning.
318         (processor_target_table): Add bdver2 entry.
319         (static const char *const cpu_names): Add bdver2 entry.
320         (ix86_option_override_internal): Add bdver2 instruction sets.
321         (ix86_issue_rate): Add bdver2.
322         (ix86_adjust_cost): Add bdver2.
323         (has_dispatch): Add bdver2.
324         * config/i386/i386.h (TARGET_BDVER2): New definition.
325         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
326         (enum processor_type): Add PROCESSOR_BDVER2.
327         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
328         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
329         description.
330
331 2011-07-12  Richard Henderson  <rth@redhat.com>
332
333         PR target/49714
334         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
335         destination address in memory on some paths.
336
337 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
338
339         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
340         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
341         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
342         * function.c (locate_and_pad_parm): Take it into account.
343         * target.def (function_arg_round_boundary): New hook.
344         * targhooks.c (default_function_arg_round_boundary): New function.
345         * targhooks.h (default_function_arg_round_boundary): Declare.
346         * doc/tm.texi: Regenerate.
347
348 2011-07-12  Richard Guenther  <rguenther@suse.de>
349
350         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
351         Do not perform no-op changes.
352
353 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
354
355         * config/arm/predicates.md (neon_struct_operand): Make a normal
356         predicate.
357         (neon_struct_or_register_operand): New predicate.
358         * config/arm/neon.md (movmisalign<mode>): Replace predicates
359         with neon_struct_or_register_operand.
360         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
361         neon_struct_operand instead of memory_operand.
362
363 2011-07-12  Martin Jambor  <mjambor@suse.cz>
364
365         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
366         * cgraph.c (cgraph_get_node_or_alias): Removed.
367         (change_decl_assembler_name): Changed all calls to
368         cgraph_get_node_or_alias to a call to cgraph_get_node.
369         (cgraph_make_decl_local): Likewise.
370         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
371         * varasm.c (default_binds_local_p_1): Likewise.
372         (decl_binds_to_current_def_p): Likewise.
373
374 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
375
376         PR tree-optimization/49712
377         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
378
379 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
380
381         * genautomata.c (add_arc): Return void.  All callers changed.
382         (make_automaton): Remove dead code.
383
384 2011-07-11  Richard Henderson  <rth@redhat.com>
385
386         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
387         (DW_FRAME_POINTER_REGNUM): New.
388         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
389         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
390         (dwf_regno): New.
391         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
392         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
393         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
394         Use it.
395         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
396         * dwarf2out.h (dwarf_frame_regnum): New.
397         (struct cfa_loc): Document the domain of the reg member.
398
399 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
400
401         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
402         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
403
404 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
405
406         PR debug/49676
407         * dwarf2out.c (int_shift_loc_descriptor): New function.
408         (int_loc_descriptor): If shorter, emit i as
409         (i >> shift), shift, DW_OP_shl for suitable shift value.
410         Similarly, try to optimize large negative values using
411         DW_OP_neg of a positive value if shorter.
412         (size_of_int_shift_loc_descriptor): New function.
413         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
414         changes.
415         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
416         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
417         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
418         is shorter.
419         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
420         addend as added DW_OP_plus if it is shorter.
421
422 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
423
424         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
425         (DTORS_SECTION_ASM_OP): Define.
426
427 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
428
429         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
430         * config/t-dfprules: Move to ../libgcc/config.
431         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
432         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
433         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
434         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
435         Likewise.
436         (i[34567]86-*-cygwin*): Likewise.
437         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
438         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
439         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
440         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
441         D64PBIT_FUNCS, D128PBIT_FUNCS.
442
443 2011-07-11  Richard Guenther  <rguenther@suse.de>
444
445         * tree-vrp.c (simplify_conversion_using_ranges): Manually
446         translate the source value-range through the conversion chain.
447
448 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
449
450         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
451
452 2011-07-11  Arthur Loiret  <aloiret@debian.org>
453
454         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
455         a bi-arch compiler defaulting to 31-bit. In this case:
456         (tmake_file): Add s390/t-linux64.
457         * doc/install.texi: Add s390-linux to the list of targets supporting
458         --enable-targets=all.
459
460 2011-07-11  Arthur Loiret  <aloiret@debian.org>
461             Matthias Klose <doko@debian.org>
462
463         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
464         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
465         (tm_file): Add mips/linux64.h.
466         (tmake_file): Add mips/t-linux64.
467         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
468         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
469         instead of hardcoded mabi=n32.
470         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
471         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
472         convention.
473
474 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
475
476         * passes.c (init_optimization_passes): Add invariant motion pass
477         after induction variable optimization.
478
479 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
480
481         PR target/39633
482         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
483         offsets 1..5 set cc0 in a usable way.
484
485 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
486
487         * tree.h (call_expr_arg): Remove.
488         (call_expr_argp): Likewise.
489
490 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
491
492         * config/sparc/sparc.md (save_register_window_1): Rename to...
493         (window_save): ...this.
494         * config/sparc/sparc.c (emit_save_register_window): Rename to...
495         (emit_window_save): ...this.
496         (sparc_expand_prologue): Adjust to above renaming.
497
498 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
499
500         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
501         of movabs for x32.
502
503 2011-07-10  Richard Henderson  <rth@redhat.com>
504
505         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
506         run final, instead of emitting text directly.
507
508 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
509
510         * config/i386/i386.c (ix86_option_override_internal): Turn on
511         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
512         small PIC models for TARGET_X32.
513
514 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
515
516         PR target/49684
517         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
518         $(LIBGCC2_CFLAGS).
519
520         PR bootstrap/49680
521         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
522         stray notes and debug insns by using prev_nonnote_nondebug_insn
523         instead of PREV_INSN.
524
525 2011-07-09  Richard Henderson  <rth@redhat.com>
526
527         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
528         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
529         * dwarf2out.c: ... here.
530         (output_all_cfis): Remove.
531         (dwarf2out_switch_text_section): Use output_cfis directly.
532         (size_of_locs): Export.
533         (output_loc_sequence, output_loc_sequence_raw): Export.
534         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
535         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
536         output_cfa_loc_raw): Move to ...
537         * dwarfcfi.c: ... here.
538         * dwarf2out.h: Update decls.
539
540 2011-07-09  Richard Henderson  <rth@redhat.com>
541
542         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
543         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
544         * dwarf2cfi.c: ... here.
545         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
546         (DWARF_ROUND, DWARF_CIE_ID): Remove.
547         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
548         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
549         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
550
551 2011-07-09  Richard Henderson  <rth@redhat.com>
552
553         * dwarf2cfi.c (cie_return_save): New.
554         (queue_reg_save): Use compare_reg_or_pc.
555         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
556         (dwarf2out_frame_debug_expr): Likewise.
557         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
558         (initial_return_save): Likewise.
559         (execute_dwarf2_frame): Save and restore initial return save from
560         the cie to the fde.
561         * config/mips/mips.c (mips_frame_set): Remove special case for
562         DWARF_FRAME_RETURN_COLUMN.
563
564 2011-07-09  Richard Henderson  <rth@redhat.com>
565
566         * dwarf2cfi.c (lookup_cfa): Remove.
567         (execute_dwarf2_frame): Assert queues are empty on entry.
568         Setup initial cfa directly, not via lookup_cfa.
569         Don't clear args_size state here.
570
571 2011-07-09  Richard Henderson  <rth@redhat.com>
572
573         * dwarf2cfi.c (add_cfi_vec): New.
574         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
575         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
576         (execute_dwarf2_frame): Set add_cfi_vec.
577
578 2011-07-09  Richard Henderson  <rth@redhat.com>
579
580         * defaults.h (ASM_COMMENT_START): Move here...
581         * dwarf2asm.c: ... from here.
582         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
583         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
584         * varasm.c: Likewise.
585
586 2011-07-09  Richard Henderson  <rth@redhat.com>
587
588         PR debug/49686
589         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
590         (create_cfi_notes): ... do it here instead.
591
592 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
593
594         PR debug/49676
595         * dwarf2out.c (size_of_int_loc_descriptor): New function.
596         (address_of_int_loc_descriptor): Use it.
597         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
598
599 2011-07-09  Richard Henderson  <rth@redhat.com>
600
601         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
602         (prologue, epilogue): New.
603         (return, *rts): New.
604         (blockage, setd, seti): New.
605         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
606         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
607         (pdp11_saved_regno): New.
608         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
609         generate rtl instead of text.
610         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
611         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
612         * config/pdp11/pdp11-protos.h: Update.
613
614 2011-07-09  Richard Henderson  <rth@redhat.com>
615
616         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
617         try to insert an rtl prologue here.
618         (rs6000_output_function_epilogue): Similarly.
619         * config/rs6000/rs6000.md (prologue): Emit a barrier to
620         satisfy !TARGET_SCHED_PROLOG.
621         (epilogue, sibcall_epilogue): Likewise.
622
623 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
624
625         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
626         (FP_REG_P): Delete.
627         (IN_OR_GLOBAL_P): Likewise.
628
629 2011-07-08  Jason Merrill  <jason@redhat.com>
630
631         PR c++/45437
632         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
633         compound assignment.
634
635         * cgraph.c (cgraph_add_to_same_comdat_group): New.
636         * cgraph.h: Declare it.
637         * ipa.c (function_and_variable_visibility): Make sure thunks
638         have the right visibility.
639
640 2011-07-08  Richard Henderson  <rth@redhat.com>
641
642         PR bootstrap/49680
643         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
644         any tablejump vector.
645
646         PR bootstrap/49680
647         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
648         end of the prologue.
649
650 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
651
652         PR target/49621
653         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
654         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
655         * config/rs6000/vector.md (vector_select_<mode>,
656         vector_select_<mode>_uns): Change second operand of NE to
657         CONST0_RTX (<MODE>mode) instead of const0_rtx.
658         * config/rs6000/altivec.md (*altivec_vsel<mode>,
659         *altivec_vsel<mode>_uns): Expect second operand of NE to be
660         zero_constant of the corresponding vector mode.
661         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
662         Likewise.
663
664 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
665
666         * graphite-dependences.c (build_alias_set_powerset): Remove
667         continue from loop, add one more assert.
668
669 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
670
671         PR target/46779
672         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
673         In particular, allow 8-bit values in r28 and r29.
674         (avr_hard_regno_scratch_ok): Disallow any register that might be
675         part of the frame pointer.
676         (avr_hard_regno_rename_ok): Same.
677         (avr_legitimate_address_p): Don't allow SUBREGs.
678
679 2011-07-08  Julian Brown  <julian@codesourcery.com>
680
681         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
682         big-endian mode.
683         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
684         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
685         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
686         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
687         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
688         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
689         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
690         registers in big-endian mode.
691
692 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
693
694         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
695         in terms of another.
696         (write_attr_value): Write a cast if necessary.
697
698         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
699         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
700         (REG_WORDS_BIG_ENDIAN): Document.
701         * doc/tm.texi: Regenerate.
702         * reload.c (operands_match_p): Take it into account.
703         (reload_adjust_reg_for_mode): Likewise.
704         * rtlanal.c (subreg_get_info): Likewise.
705
706 2011-07-08  Richard Guenther  <rguenther@suse.de>
707
708         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
709         folding.
710
711 2011-07-08  Kai Tietz  <ktietz@redhat.com>
712
713         * fold-const.c (fold_truth_andor): Factored out truth_andor
714         label from fold_binary as function.
715         (fold_binary_loc): Replace truth_andor lable
716         by function fold_truth_andor.
717
718 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
719
720         PR middle-end/49519
721         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
722         check if address is stored in register. If so - give up.
723         (check_sibcall_argument_overlap_1): Do not perform check of
724         overlapping when it is call to address.
725
726 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
727
728         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
729         of magic '31'.
730
731 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
732
733         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
734         GET_MODE_BITSIZE where appropriate.
735         (widen_leading, expand_parity, expand_ctz, expand_ffs,
736         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
737         expand_float, expand_fix): Likewise.
738         * expr.c (convert_move, convert_modes, expand_expr_real_2,
739         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
740         * stor-layout.c (get_mode_bounds): Likewise.
741         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
742         Likewise.
743         * convert.c (convert_to_integer): Likewise.
744         * expmed.c (expand_shift_1): Likewise.
745
746         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
747         a bitsize.
748
749         * optabs.c (expand_binop): Tighten conditions for doubleword
750         expansions.
751         (widen_bswap): Assert that mode bitsize and precision are the same.
752         * stor-layout.c (get_best_mode): Skip modes that have lower
753         precision than bitsize.
754         * recog.c (simplify_while_replacing): Assert that bitsize and
755         precision are the same.
756
757 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
758
759         * Makefile.in (LIBGCOV): Remove.
760         (libgcc.mvars): Remove LIBGCOV.
761         * libgov.c: Move to ../libgcc.
762
763 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
764
765         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
766
767 2011-07-08  Martin Jambor  <mjambor@suse.cz>
768
769         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
770         is too big for total scalarization.
771
772 2011-07-07  Richard Henderson  <rth@redhat.com>
773
774         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
775         (DBX_DEBUGGING_INFO): Undef.
776
777 2011-07-07  Richard Henderson  <rth@redhat.com>
778
779         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
780         Handle some opcodes specially for debugging.
781         * print-rtl.c: Include dwarf2out.h
782         (print_rtx): Handle NOTE_INSN_CFI.
783         * Makefile.in (print-rtl.o): Update.
784
785 2011-07-07  Richard Henderson  <rth@redhat.com>
786
787         * tree-pass.h (pass_dwarf2_frame): Declare.
788         * passes.c (init_optimization_passes): Add it.
789         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
790         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
791         make static, do not call add_cfis_to_fde.
792         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
793         dwarf2out_frame_init): Merge into...
794         (execute_dwarf2_frame): ... here.  New function.
795         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
796         saved_do_cfi_asm to a tri-state variable.
797         (gate_dwarf2_frame, pass_dwarf2_frame): New.
798         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
799         if it has yet to be done.  Don't call dwarf2cfi_function_init.
800         * dwarf2out.h, debug.h: Update decls.
801         * final.c (final_start_function): Don't call
802         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
803         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
804         * toplev.c (lang_dependent_init): Likewise.
805
806 2011-07-07  Richard Henderson  <rth@redhat.com>
807
808         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
809         FDE_TABLE_INCREMENT): Replace with...
810         (fde_vec): ... this, a new vector.
811         (current_fde): Remove.  Replace all users with cfun->fde.
812         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
813         (size_of_aranges, dwarf2out_finish): Likewise.
814         (dwarf2out_alloc_current_fde): Break out from ...
815         (dwarf2out_begin_prologue): ... here.
816         (dwarf2out_frame_init): Remove.
817         * dwarf2cfi.c: Update all users of current_fde.
818         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
819         * dwarf2out.h: Update decls.
820         (dw_fde_node): Add fde_index member.
821         * function.h (struct function): Add fde member.
822
823 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
824             Richard Henderson  <rth@redhat.com>
825
826         * dwarf2cfi.c (add_cfi): Remove.
827         (dwarf2out_cfi_label): Remove force argument.  Only generate the
828         label name.
829         (add_fde_cfi): Simplify the different code paths.
830         (add_cie_cfi): New.
831         (old_cfa, old_cfa_remember): New.
832         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
833         (last_reg_save_label): Remove.
834         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
835         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
836         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
837         dwarf2out_frame_debug_cfa_expression,
838         dwarf2out_frame_debug_cfa_restore,
839         dwarf2out_frame_debug_cfa_window_save,
840         dwarf2out_frame_debug_expr): Remove label parameter.
841         (cfi_label_required_p, add_cfis_to_fde): New.
842         (dwarf2out_frame_debug_after_prologue): New.
843         (dwarf2cfi_frame_init): Initialize old_cfa.
844         (dwarf2out_frame_debug_restore_state): Likewise.
845         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
846         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
847         * final.c (final_start_function): Call
848         dwarf2out_frame_debug_after_prologue.
849
850 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
851             Richard Henderson  <rth@redhat.com>
852
853         * dwarf2cfi.c (cfi_insn): New.
854         (dwarf2out_cfi_label): Don't emit cfi label here.
855         (add_fde_cfi): Create a NOTE_INSN_CFI.
856         (dwarf2out_frame_debug): Setup cfi_insn.
857         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
858         (dwarf2out_cfi_begin_epilogue): Make static.
859         (dwarf2out_frame_debug_restore_state): Make static.
860         * dwarf2out.c (output_cfi_directive): Make static.
861         (dwarf2out_emit_cfi): New.
862         * dwarf2out.h: Update.
863         * final.c (final): Remove CFI notes.
864         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
865         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
866         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
867         * insn-notes.def (NOTE_INSN_CFI): New.
868         (NOTE_INSN_CFI_LABEL): New.
869         * rtl.h (union rtunion_def): Add rt_cfi member.
870         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
871
872 2011-07-07  Richard Henderson  <rth@redhat.com>
873
874         * dwarf2cfi.c: New file.
875         * Makefile.in (OBJS): Add it.
876         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
877         * gengtype.c (open_base_files): Include dwarf2out.h.
878         * coretypes.h (enum var_init_status): Move from ...
879         * rtl.h: ... here.
880         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
881         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
882         expand_builtin_dwarf_sp_column, init_return_column_size,
883         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
884         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
885         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
886         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
887         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
888         compute_barrier_args_size, dwarf2out_args_size,
889         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
890         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
891         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
892         queue_reg_save, dwarf2out_flush_queued_reg_saves,
893         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
894         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
895         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
896         dwarf2out_frame_debug_cfa_expression,
897         dwarf2out_frame_debug_cfa_restore,
898         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
899         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
900         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
901         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
902         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
903         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
904         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
905         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
906         dw_loc_descr_node): Move to dwarf2out.h.
907         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
908         mem_loc_descriptor): Export.
909         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
910         (dwarf2out_frame_init): Extract CIE generation code to
911         dwarf2cfi_frame_init.
912
913 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
914
915         PR target/49660
916         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
917         MASK_V8PLUS, remove commented out flag and reorder.
918
919 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
920
921         PR c/49644
922         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
923         one non-complex and one complex argument, call c_save_expr on both
924         operands.
925
926 2011-07-07  Martin Jambor  <mjambor@suse.cz>
927
928         PR middle-end/49495
929         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
930         (verify_cgraph_node): Some functinality moved to
931         verify_edge_corresponds_to_fndecl, call it.
932
933 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
934
935         * config.gcc (*local*): Remove.
936         * doc/install-old.texi: Don't mention local configurations.
937
938 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
939
940         PR debug/49522
941         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
942         referencing debug insns that have been reset.
943         (dead_debug_insert_before): Don't assert reg is non-NULL,
944         instead return immediately if it is NULL.
945
946 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
947
948         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
949
950 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
951
952         * hw-doloop.c: New file.
953         * hw-doloop.h: New file.
954         * Makefile.in (OBJS): Add hw-doloop.o.
955         (hw-doloop.o): New rule.
956         ($(obj_out_file)): Add hw-doloop.h dependency.
957         * config/bfin/bfin.c: Include "hw-doloop.h".
958         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
959         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
960         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
961         type changed to hwloop_info.  Return bool, true if the loop was
962         successfully optimized.  Remove code that was moved to
963         hw-doloop.c, and adjust other parts.
964         (hwloop_fail): New static function, containing parts that used
965         to be in bfin_optimize_loop.
966         (bfin_discover_loop, bfin_discover_loops, free_loops,
967         bfin_reorder_loops): Remove.
968         (hwloop_pattern_reg): New static function.
969         (bfin_doloop_hooks): New variable.
970         (bfin_reorg_loops): Remove most code, call reorg_loops.
971         * config/bfin/bfin.md (doloop_end splitter): Also enable if
972         loop counter is a memory_operand.
973
974 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
975
976         * config.gcc: Support --with-multilib-list for x86 Linux targets.
977
978         * configure.ac: Mention x86-64 for --with-multilib-list.
979         * configure: Regenerated.
980
981         * config/i386/gnu-user64.h (SPEC_64): Support x32.
982         (SPEC_32): Likewise.
983         (ASM_SPEC): Likewise.
984         (LINK_SPEC): Likewise.
985         (TARGET_THREAD_SSP_OFFSET): Likewise.
986         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
987         (SPEC_X32): New.
988
989         * config/i386/i386.h (TARGET_X32): New.
990         (TARGET_LP64): New.
991         (LONG_TYPE_SIZE): Likewise.
992         (POINTER_SIZE): Likewise.
993         (POINTERS_EXTEND_UNSIGNED): Likewise.
994         (OPT_ARCH64): Support x32.
995         (OPT_ARCH32): Likewise.
996
997         * config/i386/i386.opt (mx32): New.
998
999         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
1000         (GLIBC_DYNAMIC_LINKERX32): Likewise.
1001         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
1002         (GLIBC_DYNAMIC_LINKERX32): Likewise.
1003
1004         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
1005         (BIONIC_DYNAMIC_LINKERX32): Likewise.
1006         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
1007
1008         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
1009
1010         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
1011
1012         * doc/invoke.texi: Document -mx32.
1013
1014 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
1015
1016         * doc/invoke.texi (mwords-little-endian): Deprecate.
1017         * config/arm/arm.opt (mwords-little-endian): Likewise.
1018         * config/arm/arm.c (arm_option_override): Warn about the deprecation
1019         of -mwords-little-endian.
1020
1021 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
1022
1023         * reload1.c (choose_reload_regs): Use mode sizes to check whether
1024         an old reload register completely defines the required value.
1025
1026 2011-07-07  Richard Guenther  <rguenther@suse.de>
1027
1028         * fold-const.c (fold_unary_loc): Do not strip sign-changes
1029         for NEGATE_EXPR.
1030
1031 2011-07-07  Richard Guenther  <rguenther@suse.de>
1032
1033         * tree-vrp.c (simplify_conversion_using_ranges): New function.
1034         (simplify_stmt_using_ranges): Call it.
1035
1036 2011-07-07  Kai Tietz  <ktietz@redhat.com>
1037
1038         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
1039         (lookup_logical_inverted_value): Likewise.
1040         (simplify_bitwise_binary_1): Likewise.
1041         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
1042
1043 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
1044
1045         * gcc.c (%[Spec]): Don't document.
1046         (struct spec_list): Update comment.
1047         (do_spec_1): Don't handle %[Spec].
1048         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
1049
1050 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
1051
1052         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
1053         default based on TARGET_ASM_NAMED_SECTION.
1054         * common/common-target.def (have_named_sections): Default to true.
1055         * common/config/default-common.c: Don't include tm.h.
1056         * common/config/picochip/picochip-common.c
1057         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
1058         * common/config/m32c/m32c-common.c: Remove.
1059         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
1060         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1061         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1062         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1063         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1064         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1065         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1066
1067 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
1068
1069         PR middle-end/49640
1070         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
1071         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
1072
1073 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1074
1075         PR libmudflap/49550
1076         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
1077
1078 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1079
1080         PR target/39150
1081         * configure.ac (gcc_cv_as_hidden): Also accept
1082         x86_64-*-solaris2.1[0-9]*.
1083         (gcc_cv_as_cfi_directive): Likewise.
1084         (gcc_cv_as_comdat_group_group): Likewise.
1085         (set_have_as_tls): Likewise.
1086         * configure: Regenerate.
1087         * config.gcc (i[34567]86-*-solaris2*): Also handle
1088         x86_64-*-solaris2.1[0-9]*.
1089         * config.host (i[34567]86-*-solaris2*): Likewise.
1090         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
1091         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
1092         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
1093         (TARGET_LD_EMULATION): Use it.
1094         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
1095         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
1096         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
1097         (ASM_CPU64_DEFAULT_SPEC): Define.
1098         (ASM_CPU_SPEC): Use %(asm_cpu_default).
1099         (ASM_SPEC): Redefine.
1100         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
1101         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
1102         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
1103         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
1104         configuration.
1105         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
1106
1107 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1108
1109         * config/sol2.h (ASM_SPEC): Split into ...
1110         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
1111         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
1112         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
1113         (ASM_SPEC): Use ASM_SPEC_BASE.
1114         * config/sparc/sol2.h (ASM_SPEC): Redefine.
1115
1116 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
1117
1118         * config/avr/avr.md (*reload_insi): Change predicate #1 to
1119         const_int_operand.  Ditto for peep2 producing this insn.
1120         Add argument to output_reload_insisf call.
1121         (*movsi,*movsf): Add argument to output_movsisf call.
1122         (*reload_insf): New insn and new peep2 to produce it.
1123         * config/avr/avr-protos.h (output_movsisf): Change prototype.
1124         (output_reload_insisf): Change prototype.
1125         * config/avr/avr.c (avr_asm_len): New function.
1126         (output_reload_insisf): Rewrite.
1127         (output_movsisf): Change prototype.  output_reload_insisf for
1128         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
1129         (adjust_insn_length): Add argument to output_movsisf and
1130         output_reload_insisf call.
1131
1132 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
1133
1134         * emit-rtl.c (paradoxical_subreg_p): New function.
1135         * rtl.h (paradoxical_subreg_p): Declare.
1136         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
1137         apply_distributive_law, simplify_comparison, simplify_set): Use it.
1138         * cse.c (record_jump_cond, cse_insn): Likewise.
1139         * expr.c (force_operand): Likewise.
1140         * rtlanal.c (num_sign_bit_copies1): Likewise.
1141         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
1142         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
1143         (push_reload): Use precision to check for paradoxical subregs.
1144         * expmed.c (extract_bit_field_1): Likewise.
1145
1146         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
1147         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
1148         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
1149         simplify_set, simplify_logical, expand_compound_operation,
1150         make_extraction, force_to_mode, if_then_else_cond, extended_count,
1151         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
1152         record_value_for_reg): Likewise.
1153         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
1154         * simplify-rtx. c (simplify_unary_operation_1,
1155         simplify_binary_operation_1, simplify_const_relational_operation):
1156         Likewise.
1157
1158         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
1159         instead of GET_MODE_BITSIZE where appropriate.
1160         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
1161         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
1162         init_num_sign_bit_copies_in_rep): Likewise.
1163         * cse.c (fold_rtx, cse_insn): Likewise.
1164         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
1165         * simplify-rtx.c (simplify_unary_operation_1,
1166         simplify_const_unary_operation, simplify_binary_operation_1,
1167         simplify_const_binary_operation, simplify_ternary_operation,
1168         simplify_const_relational_operation, simplify_subreg): Likewise.
1169         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
1170         simplify_if_then_else, simplify_set, expand_compound_operation,
1171         expand_field_assignment, make_extraction, if_then_else_cond,
1172         make_compound_operation, force_to_mode, make_field_assignment,
1173         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
1174         extended_count, try_widen_shift_mode, simplify_shift_const_1,
1175         simplify_comparison, record_promoted_value, simplify_compare_const,
1176         record_dead_and_set_regs_1): Likewise.
1177
1178         Revert:
1179         * simplify-rtx.c (simplify_const_binary_operation): Use the
1180         shift_truncation_mask hook instead of performing modulo by width.
1181         Compare against mode precision, not bitsize.
1182         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
1183         Use shift_truncation_mask instead of constructing the value manually.
1184
1185 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1186
1187         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
1188         declaration.
1189         (rs6000_save_toc_in_prologue_p): Ditto.
1190
1191         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
1192         up the static chain (r11) during indirect function calls.
1193         (-msave-toc-indirect): New undocumented debug switch.
1194
1195         * config/rs6000/rs6000.c (struct machine_function): Add
1196         save_toc_in_prologue field to note whether the prologue needs to
1197         save the TOC value in the reserved stack location.
1198         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
1199         to save the TOC in the prologue, do so.
1200         (rs6000_trampoline_init): Don't allow creating AIX style
1201         trampolines if -mno-r11 is in effect.
1202         (rs6000_call_indirect_aix): New function to create AIX style
1203         indirect calls, adding support for -mno-r11 to suppress loading
1204         the static chain, and saving the TOC in the prologue instead of
1205         the call body.
1206         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
1207         TOC in the prologue.
1208
1209         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
1210         register numbers.
1211         (TOC_REGNUM): Ditto.
1212         (STATIC_CHAIN_REGNUM): Ditto.
1213         (ARG_POINTER_REGNUM): Ditto.
1214         (SFP_REGNO): Delete, unused.
1215         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
1216         function descriptor offsets.
1217         (TOC_SAVE_OFFSET_64BIT): Ditto.
1218         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
1219         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
1220         (AIX_FUNC_DESC_SC_32BIT): Ditto.
1221         (AIX_FUNC_DESC_SC_64BIT): Ditto.
1222         (ptrload): New mode attribute for the appropriate load of a pointer.
1223         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
1224         (call_indirect_aix64): Ditto.
1225         (call_value_indirect_aix32): Ditto.
1226         (call_value_indirect_aix64): Ditto.
1227         (call_indirect_nonlocal_aix32_internal): Ditto.
1228         (call_indirect_nonlocal_aix32): Ditto.
1229         (call_indirect_nonlocal_aix64_internal): Ditto.
1230         (call_indirect_nonlocal_aix64): Ditto.
1231         (call): Rewrite AIX indirect function calls.  Add support for
1232         eliminating the static chain, and for moving the save of the TOC
1233         to the function prologue.
1234         (call_value): Ditto.
1235         (call_indirect_aix<ptrsize>): Ditto.
1236         (call_indirect_aix<ptrsize>_internal): Ditto.
1237         (call_indirect_aix<ptrsize>_internal2): Ditto.
1238         (call_indirect_aix<ptrsize>_nor11): Ditto.
1239         (call_value_indirect_aix<ptrsize>): Ditto.
1240         (call_value_indirect_aix<ptrsize>_internal): Ditto.
1241         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1242         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1243         (call_nonlocal_aix32): Relocate in the rs6000.md file.
1244         (call_nonlocal_aix64): Ditto.
1245
1246         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
1247         -mno-r11 documentation.
1248
1249 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
1250
1251         PR other/49658
1252         * doc/extend.texi (Compound Literals): Fix typo.
1253
1254 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
1255
1256         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
1257
1258 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
1259
1260         * configure.ac (plugin-version.h): Generate
1261         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
1262         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
1263         macros.
1264
1265         * configure: Regenerate.
1266
1267         * doc/plugins.texi (Building GCC plugins): Mention
1268         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
1269
1270 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
1271
1272         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
1273         * combine.c (make_extraction, gen_lowpart_or_truncate,
1274         apply_distributive_law, simplify_comparison,
1275         reg_truncated_to_mode, record_truncated_value): Use it.
1276         * cse.c (notreg_cost): Likewise.
1277         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
1278         * expr.c (convert_move, convert_modes): Likewise.
1279         * optabs.c (expand_binop, expand_unop): Likewise.
1280         * postreload.c (move2add_last_label): Likewise.
1281         * regmove.c (optimize_reg_copy_3): Likewise.
1282         * rtlhooks.c (gen_lowpart_general): Likewise.
1283         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1284
1285 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
1286
1287         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
1288
1289 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
1290
1291         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
1292         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
1293         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
1294         (simplify_const_unary_operation, simplify_binary_operation_1,
1295         simplify_const_binary_operation, simplify_const_relational_operation):
1296         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
1297         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
1298         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
1299         simplify_shift_const_1, simplify_comparison): Likewise.
1300         * expr.c (convert_modes): Likewise.
1301         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
1302         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
1303         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
1304
1305         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
1306
1307 2011-07-06  Richard Guenther  <rguenther@suse.de>
1308
1309         PR tree-optimization/49645
1310         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
1311         register variables.
1312         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
1313         in type qualification here ...
1314         (copy_reference_ops_from_ref): ... not here.
1315         (vn_reference_lookup_3): ... or here.
1316         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
1317         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
1318
1319 2011-07-06  Ian Lance Taylor  <iant@google.com>
1320
1321         * doc/install.texi (Configuration): It's
1322         --enable-gnu-indirect-function, not --enable-indirect-function.
1323
1324 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
1325
1326         * simplify-rtx.c (simplify_const_binary_operation): Use the
1327         shift_truncation_mask hook instead of performing modulo by width.
1328         Compare against mode precision, not bitsize.
1329         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
1330         Use shift_truncation_mask instead of constructing the value manually.
1331
1332 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
1333
1334         PR middle-end/47383
1335         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
1336         address computation and convert to address_mode if needed.
1337
1338 2011-07-06  Richard Guenther  <rguenther@suse.de>
1339
1340         * tree.c (build_common_tree_nodes_2): Merge with
1341         build_common_tree_nodes.
1342         * tree.h (build_common_tree_nodes): Adjust prototype.
1343         (build_common_tree_nodes_2): Remove.
1344         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
1345         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
1346
1347 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
1348
1349         PR tree-optimization/49618
1350         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
1351         t recurse on the decl.
1352         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
1353         return true if expr isn't known to be defined in current
1354         TU or some other LTO partition.
1355
1356 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
1357
1358         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
1359         override CASE_VALUES_THRESHOLD.
1360
1361         * stmt.c (toplevel): Include params.h.
1362         (case_values_threshold): Use the --param case-values-threshold
1363         value if non-zero, otherwise use machine dependent value.
1364         (expand_case): Use case_values_threshold.
1365
1366         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
1367
1368         * doc/invoke.texi (--param case-values-threshold): Document.
1369
1370 2011-07-05  Richard Henderson  <rth@redhat.com>
1371
1372         * dwarf2out.c (dwarf2out_cfi_label): Make static.
1373         (dwarf2out_flush_queued_reg_saves): Make static.
1374         (dwarf2out_reg_save): Remove.
1375         (dwarf2out_return_save): Remove.
1376         (dwarf2out_return_reg): Remove.
1377         (dwarf2out_reg_save_reg): Remove.
1378         (dwarf2out_def_cfa): Merge into ...
1379         (dwarf2out_frame_init): ... here.
1380         * dwarf2out.h, tree.h: Remove declarations as necessary.
1381
1382 2011-07-05  Richard Henderson  <rth@redhat.com>
1383
1384         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
1385         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1386         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
1387         the alloc insn.
1388
1389         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
1390         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
1391         (process_epilogue): Don't call dwarf2out_def_cfa.
1392
1393         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
1394         indicate the return address save.
1395         (process_cfa_register): Likewise.
1396
1397         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
1398         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
1399
1400         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
1401         for ar.pfs save at alloc insn.
1402
1403 2011-07-05  Richard Henderson  <rth@redhat.com>
1404
1405         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
1406         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1407         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
1408         stack pointer save.
1409         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
1410         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
1411         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
1412         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
1413
1414 2011-07-05  Richard Henderson  <rth@redhat.com>
1415
1416         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
1417         VUNSPEC_* constants here instead of via define_constants.
1418         (VUNSPEC_PEM): New constant.
1419         (procedure_entry_mask): New insn.
1420         (prologue): New expander.
1421         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
1422         (vax_expand_prologue): Rename from vax_output_function_prologue;
1423         emit rtl instead of text.
1424         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
1425         (print_operand): Add 'x' prefix.
1426
1427 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1428
1429         PR middle-end/47715
1430         * calls.c (precompute_register_parameters): Promote the function
1431         argument before checking non-legitimate constant.
1432
1433 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1434
1435         PR tree-optimization/47654
1436         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
1437         (lst_do_strip_mine_loop): Return an int.
1438         (lst_do_strip_mine): Same.
1439         (scop_do_strip_mine): Same.
1440         (scop_do_block): Loop blocking should strip-mine at least two loops.
1441         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
1442         (scop_do_interchange): Same.
1443         * graphite-poly.h (scop_do_interchange): Update declaration.
1444         (scop_do_strip_mine): Same.
1445
1446 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1447
1448         * graphite-clast-to-gimple.c (precision_for_value): Removed.
1449         (precision_for_interval): Removed.
1450         (gcc_type_for_interval): Use mpz_sizeinbase.
1451
1452 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1453
1454         * graphite-ppl.h (value_max): Correct computation of max.
1455
1456 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1457
1458         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
1459
1460 2011-07-05  Richard Guenther  <rguenther@suse.de>
1461
1462         * c-decl.c (c_init_decl_processing): Defer building common
1463         tree nodes to c_common_nodes_and_builtins.
1464
1465 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
1466
1467         PR tree-optimization/49580
1468         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
1469         the loop's number of iterations.
1470         * tree-parloops.c (transform_to_exit_first_loop): Add the
1471         handling of the loop's number of iterations before the call
1472         to gimple_duplicate_sese_tail.
1473         Insert the stmt caclculating the new rhs of the loop's
1474         condition stmt to the preheader instead of iters_bb.
1475
1476 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1477
1478         PR rtl-optimization/47449
1479         * fwprop.c (forward_propagate_subreg): Don't propagate hard
1480         register nor zero/sign extended hard register.
1481
1482 2011-07-05  Richard Guenther  <rguenther@suse.de>
1483
1484         PR tree-optimization/49518
1485         PR tree-optimization/49628
1486         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
1487         irrelevant and invariant data-references.
1488         (vect_analyze_data_ref_access): For invariant loads clear the
1489         group association.
1490
1491 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
1492
1493         PR rtl-optimization/49619
1494         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
1495         pass VOIDmode as op0_mode to recursive call, and return temp even
1496         when different from tor, just if it is not IOR of the original
1497         PLUS arguments.
1498
1499         PR rtl-optimization/49472
1500         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
1501         negating MULT, negate the second operand instead of first.
1502         (simplify_binary_operation_1) <case MULT>: If one operand is
1503         a NEG and the other is MULT, don't attempt to optimize by negation
1504         of the MULT operand if it only moves the NEG operation around.
1505
1506         PR debug/49602
1507         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
1508         get_current_def return value if it can't be trusted to be
1509         the current value of the variable in the current bb.
1510
1511 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
1512
1513         PR target/49600
1514         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
1515         general register to memory for !TARGET_INTER_UNIT_MOVES.
1516
1517 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1518
1519         PR target/44643
1520         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
1521         instead of TREE_READONLY.
1522
1523 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1524
1525         * doc/extend.texi (AVR Built-in Functions): Update documentation
1526         of __builtin_avr_fmul*.
1527         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
1528         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
1529         * config/avr/avr.md (fmul): Rename to fmul_insn.
1530         (fmuls): Rename to fmuls_insn.
1531         (fmulsu): Rename to fmulsu_insn.
1532         (fmul,fmuls,fmulsu): New expander.
1533         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
1534         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
1535         * config/avr/libgcc.S (__fmul): New function.
1536         (__fmuls): New function.
1537         (__fmulsu,__fmulsu_exit): New function.
1538
1539 2011-07-04  Richard Guenther  <rguenther@suse.de>
1540
1541         PR tree-optimization/49615
1542         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
1543         basic-block index check.
1544
1545 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1546
1547         * longlong.h (count_leading_zeros, count_trailing_zeros,
1548         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
1549         resp. 64.
1550
1551 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
1552
1553         PR tree-optimization/49610
1554         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
1555         a basic block.
1556
1557 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1558             Olivier Hainque  <hainque@adacore.com>
1559             Nicolas Setton  <setton@adacore.com>
1560
1561         * tree.h (TYPE_ARTIFICIAL): New flag.
1562         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
1563         the DIE of the type if it is artificial.
1564         (gen_array_type_die): Likewise.
1565         (gen_enumeration_type_die): Likewise.
1566         (gen_struct_or_union_type_die): Likewise.
1567         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
1568         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
1569
1570 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
1571
1572         * tree-object-size.c (pass_through_call): Handle
1573         BUILT_IN_ASSUME_ALIGNED.
1574
1575 2011-07-01  Martin Jambor  <mjambor@suse.cz>
1576
1577         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
1578
1579 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
1580
1581         PR middle-end/48016
1582         * explow.c (update_nonlocal_goto_save_area): Use proper mode
1583         for stack save area.
1584         * function.c (expand_function_start): Likewise.
1585
1586 2011-07-01  Richard Guenther  <rguenther@suse.de>
1587
1588         PR middle-end/49596
1589         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
1590         may have unknown refs.
1591
1592 2011-07-01  Kai Tietz  <ktietz@redhat.com>
1593
1594         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
1595
1596 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1597
1598         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
1599         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
1600         (Specific, mips-sgi-irix6): Likewise.
1601
1602 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1603
1604         PR libmudflap/49549
1605         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
1606
1607 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
1608
1609         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
1610         [idx]= and [idx1 ... idx2]= before initializers if needed for
1611         array initializers.
1612
1613 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
1614
1615         * config.gcc (score-*-elf): Remove score7.o.
1616         * config/score/t-score-elf: Likewise.
1617         * config/score/score.c: Merge score7 to score.c and
1618         remove forwarding functions.
1619         * config/score/score7.c: Deleted.
1620         * config/score/score7.h: Deleted.
1621
1622 2011-07-01  Richard Guenther  <rguenther@suse.de>
1623
1624         PR tree-optimization/49603
1625         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
1626
1627 2011-06-30  Martin Jambor  <mjambor@suse.cz>
1628
1629         * tree-sra.c (struct access): Rename total_scalarization to
1630         grp_total_scalarization
1631         (completely_scalarize_var): New function.
1632         (sort_and_splice_var_accesses): Set total_scalarization in the
1633         representative access.
1634         (analyze_access_subtree): Propagate total scalarization accross the
1635         tree, no holes in totally scalarized trees, simplify coverage
1636         computation.
1637         (analyze_all_variable_accesses): Call completely_scalarize_var instead
1638         of completely_scalarize_record.
1639
1640 2011-06-30  Richard Henderson  <rth@redhat.com>
1641
1642         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
1643         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
1644         * config/i386/i386.c: Don't include dwarf2out.h.
1645         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
1646         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
1647         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
1648         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
1649         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
1650
1651 2011-06-30  Richard Henderson  <rth@redhat.com>
1652
1653         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
1654         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
1655         * final.c (final_scan_insn): Look for it, and invoke
1656         dwarf2out_frame_debug before the insn if found.
1657
1658 2011-06-30  Richard Henderson  <rth@redhat.com>
1659
1660         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
1661         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
1662
1663 2011-06-30  Richard Henderson  <rth@redhat.com>
1664
1665         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
1666         Define a vector of this type.
1667         (regs_saved_in_regs): Use a VEC.
1668         (num_regs_saved_in_regs): Remove.
1669         (compare_reg_or_pc): New.
1670         (record_reg_saved_in_reg): Split out from...
1671         (dwarf2out_flush_queued_reg_saves): ... here.
1672         (clobbers_queued_reg_save): Update for VEC.
1673         (reg_saved_in): Likewise.
1674         (dwarf2out_frame_debug_init): Likewise.
1675         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
1676         (dwarf2out_frame_debug_cfa_register): Likewise.
1677
1678 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1679
1680         PR tree-optimization/49572
1681         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
1682         type of the RHS instead of that of the LHS for the expression type.
1683
1684 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1685
1686         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
1687         unconditionally.
1688
1689 2011-06-30  Richard Guenther  <rguenther@suse.de>
1690
1691         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
1692         * tree-ssa-structalias.c (create_variable_info_for): Do not
1693         add initial constraints for non-var-decls.  Properly handle
1694         globals in other ltrans partitions.
1695         (intra_create_variable_infos): Manually create constraints for
1696         the fake no-alias parameter.
1697         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
1698         and assert there are no clones.
1699
1700 2011-06-30  Richard Guenther  <rguenther@suse.de>
1701
1702         PR tree-optimization/46787
1703         * tree-data-ref.c (dr_address_invariant_p): Remove.
1704         (find_data_references_in_stmt): Invariant accesses are ok now.
1705         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
1706         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
1707         invariant loads.
1708
1709 2011-06-30  Martin Jambor  <mjambor@suse.cz>
1710
1711         PR tree-optimization/49094
1712         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
1713         (build_accesses_from_assign): Use it.
1714
1715 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1716
1717         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1718         handling of BUILT_IN_ASSUME_ALIGNED.
1719
1720         PR debug/49364
1721         * dwarf2out.c (output_abbrev_section): Don't return early
1722         if abbrev_die_table_in_use is 1.
1723         (dwarf2out_finish): Instead don't call output_abbrev_section
1724         nor emit abbrev_section_label in that case.
1725
1726 2011-06-30  Nick Clifton  <nickc@redhat.com>
1727
1728         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
1729         for the V850E.
1730
1731 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1732
1733         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1734         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
1735
1736 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
1737
1738         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1739         both pattern and original statements if necessary.
1740         (vect_transform_loop): Likewise.
1741         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
1742         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
1743         Mark the pattern statement only if the original statement doesn't
1744         have its own uses.
1745         (process_use): Call vect_mark_relevant with additional parameter.
1746         (vect_mark_stmts_to_be_vectorized): Likewise.
1747         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
1748         (vect_analyze_stmt): Handle both pattern and original statements
1749         if necessary.
1750         (vect_transform_stmt): Don't store vectorized pattern statement
1751         in the original statement.
1752         (vect_is_simple_use_1): Use related pattern statement only if the
1753         original statement is irrelevant.
1754         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1755
1756 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
1757
1758         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
1759         option.
1760         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
1761         entry.
1762         (TARGET_AVX128_OPTIMAL): New definition.
1763         * config/i386/i386.c (initial_ix86_tune_features): Initialize
1764         X86_TUNE_AVX128_OPTIMAL entry.
1765         (ix86_option_override_internal): Enable the generation
1766         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
1767         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
1768         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
1769
1770 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1771
1772         PR tree-optimization/49539
1773         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
1774         names by means of stmt_references_abnormal_ssa_name.
1775         (associate_plusminus): Call can_propagate_from before propagating
1776         from definition statements.
1777         (ssa_forward_propagate_and_combine): Remove superfluous newline.
1778
1779 2011-06-29  Richard Guenther  <rguenther@suse.de>
1780
1781         * doc/invoke.texi: Document -scev dump modifier.
1782         * tree-pass.h (TDF_SCEV): New dump flag.
1783         * tree-dump.c (dump_option_value_in): Add scev.
1784         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
1785         * tree-scalar-evolution.c: Likewise.
1786
1787 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
1788
1789         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
1790         (cxa_type_match): Correct declaration.
1791         (__gnu_unwind_pr_common): Reconstruct additional indirection
1792         when __cxa_type_match returns succeeded_with_ptr_to_base.
1793
1794 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1795
1796         PR rtl-optimization/49114
1797         * reload.c (struct replacement): Remove SUBREG_LOC member.
1798         (push_reload): Do not set it.
1799         (push_replacement): Likewise.
1800         (subst_reload): Remove dead code.
1801         (copy_replacements): Remove assertion.
1802         (copy_replacements_1): Do not handle SUBREG_LOC.
1803         (move_replacements): Likewise.
1804         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
1805         Detect subregs via recursive descent instead of via SUBREG_LOC.
1806
1807 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1808
1809         * config/avr/avr.c (avr_encode_section_info): Dispatch to
1810         default_encode_section_info.
1811
1812 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
1813
1814         PR tree-optimization/49545
1815         * builtins.c (get_object_alignment_1): Update function comment.
1816         Do not use DECL_ALIGN for functions, but test
1817         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
1818         * fold-const.c (get_pointer_modulus_and_residue): Don't check
1819         for functions here.
1820         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1821
1822 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
1823
1824         PR debug/49567
1825         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
1826         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
1827
1828 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1829
1830         PR target/34734
1831         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
1832         about uninitialized data attributed 'progmem' from here...
1833         (avr_encode_section_info): ...to this new function.
1834         (TARGET_ENCODE_SECTION_INFO): New define.
1835         (avr_section_type_flags): For data in ".progmem.data", remove
1836         section flag SECTION_WRITE.
1837
1838 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1839
1840         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
1841         _xmulhisi3_exit.
1842         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
1843         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
1844         (__umulhisi3): Ditto.
1845         * config/avr/avr.md (mulhisi3): New insn expender.
1846         (umulhisi3): New insn expender.
1847         (*mulhisi3_call): New insn.
1848         (*umulhisi3_call): New insn.
1849
1850 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1851
1852         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
1853
1854 2011-06-28  Richard Henderson  <rth@redhat.com>
1855
1856         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
1857         all code and arguments that handled pushes.  Update all callers.
1858
1859 2011-06-28  Richard Henderson  <rth@redhat.com>
1860
1861         * config/arm/arm.c (arm_output_function_prologue): Don't call
1862         thumb1_output_function_prologue.
1863         (arm_expand_prologue): Avoid dead store.
1864         (number_of_first_bit_set): Use ctz_hwi.
1865         (thumb1_emit_multi_reg_push): New.
1866         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
1867         to emit the entire prologue as rtl.
1868         (thumb1_output_interwork): Split out from
1869         thumb1_output_function_prologue.
1870         (thumb1_output_function_prologue): Remove.
1871         (arm_attr_length_push_multi): Handle thumb1.
1872         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
1873         (prologue_thumb1_interwork): New.
1874         (*push_multi): Allow thumb1; use push_mult_memory_operand.
1875         * config/arm/predicates.md (push_mult_memory_operand): New.
1876
1877 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1878
1879         * config/sparc/sync.md (*stbar): Delete.
1880         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
1881
1882 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1883
1884         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
1885
1886 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1887
1888         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
1889         (TARGET_64BIT_DEFAULT): Define.
1890         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
1891         of tm_file.
1892         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
1893
1894 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1895
1896         * common.opt (in_lto_p): New Variable entry.
1897         * flags.h (in_lto_p): Move to common.opt.
1898         * gcc.c: Include params.h.
1899         (set_option_handlers): Also use common_handle_option and
1900         target_handle_option.
1901         (main): Call global_init_params, finish_params and init_options_struct.
1902         * opts.c (debug_type_names): Move from toplev.c.
1903         (print_filtered_help): Access quiet_flag through opts pointer.
1904         (common_handle_option): Return early in the driver for some options.
1905         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
1906         opts pointer.
1907         * toplev.c (in_lto_p): Move to common.opt.
1908         (debug_type_names): Move to opts.c.
1909         * Makefile.in (OBJS): Remove opts.o.
1910         (OBJS-libcommon-target): Add opts.o.
1911         (gcc.o): Update dependencies.
1912
1913 2011-06-28  Kai Tietz  <ktietz@redhat.com>
1914
1915         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
1916
1917 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1918
1919         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
1920         with '=' constraint modifier.
1921         (*divdf3_vfp): Likewise.
1922         ("*mulsf3_vfp"): Likewise.
1923         ("*muldf3_vfp"): Likewise.
1924         ("*mulsf3negsf_vfp"): Likewise.
1925         ("*muldf3negdf_vfp"): Likewise.
1926
1927 2011-06-28  Nick Clifton  <nickc@redhat.com>
1928
1929         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
1930         relaxation when performing an incremental link.
1931
1932 2011-06-28  Kai Tietz  <ktietz@redhat.com>
1933
1934         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
1935         within BB from last to first.
1936
1937 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1938
1939         * genattr-common.c: New.  Based on genattr.c.
1940         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
1941         (MOSTLYCLEANFILES): Add insn-attr-common.h.
1942         (opts.o): Update dependencies.
1943         (.PRECIOUS): Add insn-attr-common.h.
1944         (simple_rtl_generated_h): Add insn-attr-common.h.
1945         (build/genattr-common.o): New.
1946         (genprogrtl): Add attr-common.
1947         * genattr.c (main): Include insn-attr-common.h.  Don't generate
1948         definitions of DELAY_SLOTS or INSN_SCHEDULING.
1949         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
1950
1951 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
1952
1953         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
1954         avr-*-* and avr-*-rtems* targets.
1955
1956         * config/avr/elf.h: New file.
1957         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
1958         (TARGET_ASM_SELECT_SECTION): Define.
1959         (INIT_SECTION_ASM_OP): Undefine.
1960         (FINI_SECTION_ASM_OP): Undefine.
1961         (READONLY_DATA_SECTION_ASM_OP): Undefine.
1962         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
1963         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
1964         * config/avr/avr.h:
1965         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
1966         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
1967         (MAX_OFILE_ALIGNMENT): Move to elf.h.
1968         (STRING_LIMIT): Move to elf.h.
1969         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
1970         (ASM_DECLARE_OBJECT_NAME): Remove.
1971         (ESCAPES): Remove.
1972         (ASM_OUTPUT_SKIP): Remove.
1973         (DWARF2_DEBUGGING_INFO): Remove.
1974         (OBJECT_FORMAT_ELF): Remove.
1975         (USER_LABEL_PREFIX): Remove.
1976         (ASM_OUTPUT_EXTERNAL): Remove.
1977         (ASM_OUTPUT_ASCII): Remove.
1978         (TYPE_ASM_OP): Remove.
1979         (SIZE_ASM_OP): Remove.
1980         (WEAK_ASM_OP): Remove.
1981         (STRING_ASM_OP): Remove.
1982         (SET_ASM_OP): Remove.
1983         (ASM_WEAKEN_LABEL): Remove.
1984         (TYPE_OPERAND_FMT): Remove.
1985         (ASM_DECLARE_FUNCTION_SIZE): Remove.
1986         (ASM_FINISH_DECLARE_OBJECT): Remove.
1987         (NO_DOLLAR_IN_LABEL): Remove.
1988         (ASM_GENERATE_INTERNAL_LABEL): Remove.
1989         (ASM_OUTPUT_CASE_LABEL): Remove.
1990         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
1991         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
1992         (gas_output_ascii): Remove.
1993         (gas_output_limited_string): Remove.
1994         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
1995         * config/avr/avr-protos.h
1996         (gas_output_ascii): Remove prototye.
1997         (gas_output_limited_string): Remove prototype.
1998
1999 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
2000
2001         PR target/48637
2002         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
2003         asm operands.
2004
2005 2011-06-27  Jan Hubicka  <jh@suse.cz>
2006
2007         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
2008         node instead of references in node.
2009
2010 2011-06-27  Richard Henderson  <rth@redhat.com>
2011
2012         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
2013         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
2014         inside ifdef.
2015
2016 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
2017
2018         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
2019
2020         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
2021         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
2022         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
2023         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
2024         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
2025         (evaluate_stmt, execute_fold_all_builtins): Handle
2026         BUILT_IN_ASSUME_ALIGNED.
2027         * tree-ssa-dce.c (propagate_necessity): Likewise.
2028         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2029         call_may_clobber_ref_p_1): Likewise.
2030         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
2031         (expand_builtin_assume_aligned): New function.
2032         * doc/extend.texi (__builtin_assume_aligned): Document.
2033
2034         PR debug/49544
2035         * cselib.c (promote_debug_loc): If cselib_preserve_constants
2036         and l has two DEBUG_INSN owned locs instead of just one, adjust
2037         the second location's setting_insn too.
2038
2039 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2040
2041         PR libmudflap/38738
2042         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
2043
2044 2011-06-27  Nick Clifton  <nickc@redhat.com>
2045
2046         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
2047         bit position of highest bit set into a count of the high zero bits.
2048
2049 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2050
2051         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
2052
2053 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2054
2055         PR lto/48492
2056         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
2057         to a NULL parent.
2058
2059 2011-06-27  Richard Guenther  <rguenther@suse.de>
2060
2061         PR tree-optimization/49394
2062         * passes.c (execute_one_pass): Restore current_pass after
2063         applying IPA transforms.
2064
2065 2011-06-27  Kai Tietz  <ktietz@redhat.com>
2066
2067         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
2068         out of type precision after operation.
2069         (find_bswap): Take for limit value the integer auto-promotion
2070         into account.
2071
2072 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2073
2074         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
2075         forward scan as well.
2076
2077 2011-06-27  Tristan Gingold  <gingold@adacore.com>
2078
2079         PR target/44241
2080         * config/vms/vms-protos.h: New file.
2081         * config/vms/vms-crtlmap.map: New file.
2082         * config/vms/vms.c: New file.
2083         * config/vms/make-crtlmap.awk: New file.
2084         * config/vms/vms-crtl.h: File removed.
2085         * config/vms/vms-crtl-64.h: File removed.
2086         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
2087         * config/alpha/vms64.h: Do not include vms-crtl-64.h
2088         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
2089         clear some builtins on VMS.  Calls vms_patch_builtins.
2090         (avms_asm_output_external): Remove.
2091         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
2092         (struct crtl_name_spec): Remove
2093         (DO_CTRL_NAMES): Remove.
2094         * config/ia64/vms.h (struct crtl_name_spec): Remove
2095         (DO_CTRL_NAMES): Remove.
2096         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
2097         clear some builtins on VMS.  Calls vms_patch_builtins.
2098         (ia64_asm_output_external): Remove DO_CRTL_NAME.
2099         * config/ia64/vms64.h: Do not include vms-crtl-64.h
2100         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
2101
2102 2011-06-27  Tristan Gingold  <gingold@adacore.com>
2103
2104         * config/alpha/alpha.c (alpha_end_function): Always generate .end
2105         directive on VMS.
2106
2107 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2108
2109         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
2110         the function receives nonlocal gotos.
2111
2112 2011-06-27  Richard Guenther  <rguenther@suse.de>
2113
2114         PR tree-optimization/49536
2115         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
2116         For non-scalar inner types use a scalar type according to
2117         the scalar inner mode.
2118
2119 2011-06-27  Richard Guenther  <rguenther@suse.de>
2120
2121         PR tree-optimization/49365
2122         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
2123
2124 2011-06-27  Richard Guenther  <rguenther@suse.de>
2125
2126         PR tree-optimization/49169
2127         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
2128         the alignment of function decls.
2129
2130 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
2131
2132         PR target/47997
2133         * config/darwin.c (darwin_mergeable_string_section): Place string
2134         constants in '.cstring' rather than '.const' when CF/NSStrings are
2135         active.
2136
2137 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
2138
2139         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
2140         (emit_save_register_window): Likewise.
2141         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
2142         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
2143         Swap back %o7/%i7 in register naming.
2144
2145 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
2146
2147         PR driver/49371
2148         * config/darwin.c (darwin_override_options): Improve warning when
2149         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
2150         is given with fpie/fPIE.
2151         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
2152         * config/darwin9.h (PIE_SPEC): New.
2153
2154 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
2155
2156         * timevar.c (timevar_print): Increase width for display of timevar
2157         name.
2158
2159 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
2160
2161         PR c++/46400
2162         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
2163         instead of TYPE_CHAIN for chain_next for types.
2164
2165 2011-06-24  Richard Henderson  <rth@redhat.com>
2166
2167         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
2168         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
2169         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
2170         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
2171         (sparc_flat_expand_prologue): Emit individual instructions
2172         instead of one of the above.
2173
2174 2011-06-24  Easwaran Raman  <eraman@google.com>
2175
2176         PR rtl-optimization/49429
2177         PR target/49454
2178         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
2179         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
2180         used to copy y into x.
2181         * calls.c (initialize_argument_information): Mark
2182         an argument addressable if it is passed by invisible reference.
2183         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
2184         if it is passed by reference.
2185
2186 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
2187
2188         PR rtl-optimization/49504
2189         * rtlanal.c (nonzero_bits1): Properly handle addition or
2190         subtraction of a pointer in Pmode if pointers extend unsigned.
2191         (num_sign_bit_copies1): Likewise.
2192
2193 2011-06-24  Martin Jambor  <mjambor@suse.cz>
2194
2195         PR tree-optimizations/49516
2196         * tree-sra.c (sra_modify_assign): Choose the safe path for
2197         aggregate copies if we also did scalar replacements.
2198
2199 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2200
2201         PR target/49335
2202         * config/arm/predicates.md (add_operator): New.
2203         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
2204
2205 2011-06-24  Andi Kleen  <ak@linux.intel.com>
2206
2207         * tree-sra.c (type_internals_preclude_sra_p): Add msg
2208         parameter. Split up ifs and report reason in *msg.
2209         (reject): Add.
2210         (find_var_candiate): Add msg variable.
2211         Split up ifs and report reason to reject.
2212         (find_param_candidates): Add msg variable.
2213         Pass msg to type_internals_preclude_sra_p.
2214
2215 2011-06-23  Jeff Law  <law@redhat.com>
2216
2217         PR middle-end/48770
2218         * reload.h (reload): Change to return a bool.
2219         * ira.c (ira): If requested by reload, run a fast DCE pass after
2220         reload has completed.  Fix comment typo.
2221         * reload1.c (need_dce): New file scoped static.
2222         (reload): Set reload_completed here.  Return whether or not a DCE
2223         pass after reload is needed.
2224         (delete_dead_insn): Set need_dce as needed.
2225
2226         PR middle-end/49465
2227         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
2228         to detect threading through joiner block.  If there was already
2229         an edge to the new target, then do not change the PHI nodes.
2230
2231 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
2232
2233         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
2234         get_pointer_alignment to see if base isn't sufficiently aligned.
2235
2236 2011-06-23  Jan Hubicka  <jh@suse.cz>
2237
2238         PR tree-optimize/49373
2239         * tree-pass.h (all_late_ipa_passes): Declare.
2240         * cgraphunit.c (init_lowered_empty_function): Fix properties.
2241         (cgraph_optimize): Execute late passes; remove unreachable funcions
2242         after materialization.
2243         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
2244         LTOing.
2245         * passes.c (all_late_ipa_passes): Declare.
2246         (dump_passes, register_pass): Handle late ipa passes.
2247         (init_optimization_passes): Move ipa_pta to late passes; schedule
2248         fixup_cfg at beggining of all_passes.
2249         (apply_ipa_transforms): New function.
2250         (execute_one_pass): When doing simple ipa pass, apply all transforms.
2251
2252 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
2253
2254         * params.c: Include common/common-target.h.  Don't include tm.h.
2255         (lang_independent_params): Move from toplev.c.
2256         (global_init_params): New.
2257         * params.h (global_init_params): Declare.
2258         * target.def (default_params): Move to common-target.def.
2259         * toplev.c (lang_independent_options): Remove.
2260         (lang_independent_params): Move to params.c.
2261         (general_init): Use global_init_params.
2262         * common/common-target.def (option_default_params): Move from
2263         target.def.
2264         * common/config/ia64/ia64-common.c: Include params.h.
2265         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2266         from ia64.c.
2267         * common/config/rs6000/rs6000-common.c: Include params.h.
2268         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2269         from rs6000.c.
2270         * common/config/sh/sh-common.c: Include params.h.
2271         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2272         from sh.c.
2273         * common/config/spu/spu-common.c: Include params.h.
2274         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2275         from spu.c.
2276         * config/ia64/ia64.c (ia64_option_default_params,
2277         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
2278         * config/rs6000/rs6000.c (rs6000_option_default_params,
2279         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
2280         * config/sh/sh.c (sh_option_default_params,
2281         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
2282         * config/spu/spu.c (spu_option_default_params,
2283         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
2284         * Makefile.in (OBJS): Remove params.o.
2285         (OBJS-libcommon-target): Add params.o.
2286         (params.o, $(common_out_object_file)): Update dependencies.
2287         * doc/tm.texi: Regenerate.
2288
2289 2011-06-23  Alan Modra  <amodra@gmail.com>
2290
2291         PR bootstrap/49383
2292         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
2293         invocation for 2011-06-09 changes.
2294
2295 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
2296
2297         PR libgomp/49490
2298         * omp-low.c (expand_omp_for_static_nochunk): Only
2299         use n ceil/ nthreads size for the first n % nthreads threads in the
2300         team instead of all threads except for the last few ones which
2301         get less work or none at all.
2302
2303         PR debug/49496
2304         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
2305         uses.
2306
2307 2011-06-22  Richard Guenther  <rguenther@suse.de>
2308
2309         PR tree-optimization/49493
2310         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
2311         Refer to the alias target of variables.
2312         (associate_varinfo_to_alias_1): Remove.
2313         (ipa_pta_execute): Do not associate aliases with anything.
2314         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
2315         (cgraph_function_node): Likewise.
2316         (cgraph_function_or_thunk_node): Likewise.
2317         (varpool_variable_node): Likewise.
2318
2319 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2320
2321         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
2322         * config.gcc (arm*-*-linux*): Default to gnu tls.
2323         (arm*-*-*): Add --with-tls option.
2324         (all_defaults): Add 'tls'.
2325
2326 2011-06-22  Richard Henderson  <rth@redhat.com>
2327
2328         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
2329         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
2330         (dwarf2out_frame_debug_cfa_window_save): Rename from
2331         dwarf2out_window_save; make static.
2332         * tree.h (dwarf2out_window_save): Don't declare.
2333
2334         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
2335         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2336         (emit_save_register_window): Rename from gen_save_register_window;
2337         emit the insn and add REG_CFA_* notes.
2338         (sparc_expand_prologue): Update to match.
2339         * config/sparc/sparc.md (save_register_window_1): Simplify from
2340         save_register_window<P:mode>.
2341
2342 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
2343
2344         PR target/49497
2345         * config/i386/i386.md (*lea_general_2): Always allow SImode.
2346         (*lea_general_2_zext): Likewise.
2347         (imul to lea peepholes): Use const359_operand and check
2348         TARGET_PARTIAL_REG_STALL.
2349
2350         * config/i386/predicates.md (const359_operand): New.
2351
2352 2011-06-22  Michael Matz  <matz@suse.de>
2353
2354         * cgraphunit.c (assemble_thunk): Use correct return type.
2355
2356 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
2357             Dmitry Melnik  <dm@ispras.ru>
2358
2359         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
2360         (neon_output_shift_immediate): Ditto.
2361         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
2362         prototype.
2363         (neon_output_shift_immediate): Ditto.
2364         * config/arm/neon.md (vashl<mode>3): Modified constraint.
2365         (vashr<mode>3_imm): New insn pattern.
2366         (vlshr<mode>3_imm): Ditto.
2367         (vashr<mode>3): Modified constraint.
2368         (vlshr<mode>3): Ditto.
2369         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
2370         predicate.
2371         (imm_for_neon_rshift_operand): Ditto.
2372         (imm_lshift_or_reg_neon): Ditto.
2373         (imm_rshift_or_reg_neon): Ditto.
2374
2375         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
2376
2377 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
2378
2379         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
2380         builtin calls even if likelyvalue is not CONSTANT.
2381         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
2382         Return get_value_for_expr of first operand
2383         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
2384         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
2385         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
2386         their non-checking counterparts.
2387         (call_may_clobber_ref_p_1): Likewise.
2388         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
2389         like their non-checking counterparts.
2390         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2391         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
2392         like their non-checking counterparts.
2393         (find_func_clobbers): Likewise.
2394         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
2395         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
2396
2397         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
2398         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
2399         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
2400         of base type reference as argument.
2401         (resolve_addr_in_expr): Likewise.  Fix keep computation.
2402         (convert_descriptor_to_signed): Renamed to...
2403         (convert_descriptor_to_mode): ... this.  For wider types convert to
2404         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
2405         (typed_binop): New function.
2406         (scompare_loc_descriptor, ucompare_loc_descriptor,
2407         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
2408         default to unsigned type instead of signed.
2409
2410         PR debug/47858
2411         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
2412         (gimple_build_debug_source_bind_stat): New prototype.
2413         (gimple_build_debug_source_bind): Define.
2414         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
2415         gimple_debug_source_bind_get_value,
2416         gimple_debug_source_bind_get_value_ptr,
2417         gimple_debug_source_bind_set_var,
2418         gimple_debug_source_bind_set_value): New inlines.
2419         * gimple.c (gimple_build_debug_source_bind_stat): New function.
2420         * gimple-pretty-print.c (dump_gimple_debug): Handle
2421         GIMPLE_DEBUG_SOURCE_BIND.
2422         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
2423         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2424         * tree-parloops.c (eliminate_local_variables,
2425         separate_decls_in_region): Likewise.
2426         (separate_decls_in_region_debug): Renamed from
2427         separate_decls_in_region_debug_bind.  Handle
2428         gimple_debug_source_bind_p.
2429         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
2430         prototypes.
2431         (DECL_HAS_DEBUG_ARGS_P): Define.
2432         (struct tree_function_decl): Add has_debug_args_flag field.
2433         * tree.c (debug_args_for_decl): New variable.
2434         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
2435         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
2436         (rewrite_debug_stmt_uses): New function.
2437         (rewrite_stmt): Use it to rewrite debug stmt uses.
2438         * rtl.def (DEBUG_PARAMETER_REF): New.
2439         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
2440         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
2441         DEBUG_PARAMETER_REF.
2442         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
2443         * print-rtl.c (print_rtx): Likewise.
2444         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
2445         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
2446         debug stmts in the first bb.
2447         * tree-inline.c (remap_ssa_name): If remapping default def
2448         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
2449         a source bind debug stmt.
2450         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
2451         (maybe_move_debug_stmts_to_successors): Likewise.
2452         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
2453         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
2454         debug args vector from old_decl to new_decl.
2455         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
2456         or modified parameters, add debug bind stmts before call
2457         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
2458         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
2459         on DECL_DEBUG_EXPRs from debug args vector.
2460         (expand_debug_source_expr): New function.
2461         (expand_debug_locations): Use it for source bind insns.
2462         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
2463         * var-tracking.c (prepare_call_arguments): Add debug args
2464         to call_arguments if any.
2465         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
2466         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
2467         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
2468         (get_ref_die_offset, parameter_ref_descriptor): New functions.
2469         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
2470         (gen_subprogram_die): Handle parameters identified by
2471         DEBUG_PARAMETER_REF.
2472
2473 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2474
2475         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
2476         * doc/install.texi (Configuration): Document --with-tls.
2477         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
2478         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
2479         (arm_tls_descseq_addr): New.
2480         (legitimize_tls_address): Add tlsdesc support.
2481         (arm_cannot_copy_insn_p): Check for tlscall.
2482         (arm_emit_tls_decoration): Likewise.
2483         * config/arm/arm.h (TARGET_GNU2_TLS): New.
2484         (OPTION_DEFAULT_SPECS): Add with-tls support.
2485         * config/arm/arm.md (R1_REGNUM): Define.
2486         (tlscall): New.
2487         * config/arm/arm.opt (tls_type): New enumeration type and values.
2488         (mtls-dialect): New switch.
2489         * config/arm/arm-opts.h (enum tls_type): New.
2490
2491 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2492
2493         * attribs.c (register_attribute): Added assert to check that all
2494         attribute specs are registered with a name that is not empty and
2495         does not start with '_'.
2496         (decl_attributes): Avoid the lookup of the "naked" attribute spec
2497         if the function has no attributes.
2498         * tree.c (is_attribute_with_length_p): Removed.
2499         (is_attribute_p): Removed.
2500         (private_is_attribute_p): New.
2501         (private_lookup_attribute): New.
2502         (lookup_attribute): Removed.
2503         (lookup_ident_attribute): New.
2504         (remove_attribute): Require the first argument to be in the form
2505         'text', not '__text__'.  Updated asserts.
2506         (merge_attributes): Use lookup_ident_attributes instead of
2507         lookup_attribute.
2508         (merge_dllimport_decl_attributes): Use remove_attribute.
2509         (attribute_list_contained): Likewise.
2510         (attribute_list_equal): Immediately return 1 if the arguments are
2511         identical pointers.
2512         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
2513         'int'.  Require the first argument to be in the form 'text', not
2514         '__text__'.  Require the second argument to be an identifier.
2515         (lookup_attribute): Made inline.  Require the first argument to be
2516         in the form 'text', not '__text__'.
2517         (private_is_attribute_p, private_lookup_attribute): New.
2518         Updated comments.
2519
2520 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
2521
2522         * builtins.c: Add sync_ or SYNC__ to builtin names.
2523         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
2524         * omp-low.c: Add sync_ or SYNC__ to builtin names.
2525
2526 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
2527
2528         PR target/33049
2529         * config/avr/avr.md (extzv): New expander.
2530         (*extzv): New insn.
2531         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
2532         * config/avr/constraints.md (C04): New constraint.
2533         * doc/md.texi (Machine Constraints): Document it.
2534
2535 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
2536
2537         PR middle-end/49489
2538         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
2539         unsignedp argument instead of 1 for clrsb_optab.
2540         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
2541         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
2542         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
2543         * optabs.c (widen_leading): Call widen_operand and expand_unop
2544         with 0 as unsignedp argument instead of 1 for clrsb_optab.
2545         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
2546
2547 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
2548
2549         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
2550
2551 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
2552
2553         * gensupport.c (add_define_attr): New static function.
2554         (is_predicable): Allow multi-alternative lists for the "predicable"
2555         attribute.
2556         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
2557         (process_one_cond_exec): Call alter_attrs_for_insn.
2558         * doc/md.texi (Defining Attributes): Mention some standard names.
2559         (Conditional Execution): Update documentation for "predicable".
2560
2561         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
2562         __builtin_clrsbll): Document.
2563         * doc/rtl.texi (clrsb): New entry.
2564         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
2565         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
2566         (expand_unop): Handle clrsb_optab.
2567         (init_optabs): Initialize it.
2568         * optabs.h (enum optab_index): New entry OTI_clrsb.
2569         (clrsb_optab): Define.
2570         * genopinit.c (optabs): Add an entry for it.
2571         * builtins.c (expand_builtin): Handle clrsb builtin functions.
2572         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
2573         BUILT_IN_CLRSBLL): New.
2574         * rtl.def (CLRSB): New code.
2575         * dwarf2out.c (mem_loc_descriptor): Handle it.
2576         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2577         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
2578         and popcount.
2579         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
2580         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
2581         (__ctzDI2): Move declaration.
2582         * config/bfin/bfin.md (clrsbsi2): New expander.
2583         (signbitssi2): Use the CLRSB rtx.
2584         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
2585         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
2586
2587 2011-06-21  Richard Guenther  <rguenther@suse.de>
2588
2589         * ipa-inline-transform.c (inline_transform): Fix previous change.
2590
2591 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
2592
2593         PR tree-optimization/49478
2594         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
2595         with constant operand.
2596
2597 2011-06-21  Richard Guenther  <rguenther@suse.de>
2598
2599         * ipa-inline-transform.c (inline_transform): Fix typo.
2600
2601 2011-06-21  Richard Guenther  <rguenther@suse.de>
2602
2603         PR tree-optimization/49483
2604         * tree-vect-stmts.c (vectorizable_assignment): Also handle
2605         VIEW_CONVERT_EXPR conversions.
2606
2607 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
2608
2609         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
2610         * config/avr/avr-tables.opt: New file (generated).
2611         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
2612         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
2613         avr-mcus.def.
2614         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
2615         (avr_option_override): Don't process -mmcu= argument here.  Set
2616         avr_current_device using avr_mcu_index.
2617         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
2618         * config/avr/avr.opt (mmcu=): Use Enum.
2619         * config/avr/t-avr (avr-devices.o): Update dependencies.
2620         ($(srcdir)/config/avr/avr-tables.opt): New.
2621         * target.def (help): Remove.
2622         * doc/tm.texi.in (TARGET_HELP): Remove.
2623         * doc/tm.texi: Regenerate.
2624         * opts.c: Don't include target.h.
2625         (common_handle_option): Don't call targetm.help.
2626         * system.h (TARGET_HELP): Poison.
2627         * Makefile.in (opts.o): Update dependencies.
2628
2629 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2630
2631         * config/usegld.h: New file.
2632         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
2633         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
2634         (LIB_SPEC): Likewise.  Search /lib.
2635         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
2636         (RDYNAMIC_SPEC): Handle GNU ld.
2637         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
2638         Define.
2639         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
2640         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
2641         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
2642         (STACK_CHECK_STATIC_BUILTIN): Define.
2643         * config/sol2.opt (compat-bsd): Remove.
2644         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
2645         * config/sol2-bi.h: New file.
2646         * config/sol2-gld.h: Remove.
2647         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
2648         (NO_DBX_BNSYM_ENSYM): Remove.
2649         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2650         (STACK_CHECK_STATIC_BUILTIN): Remove.
2651         Test USE_GLD instead of TARGET_GNU_LD.
2652         * config/i386/sol2-10.h: Rename to ...
2653         * config/i386/sol2-bi.h .. this.
2654         (SUBTARGET_EXTRA_SPECS): Redefine.
2655         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
2656         (MULTILIB_DEFAULTS): Remove.
2657         (DEFAULT_ARCH32_P): Define.
2658         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
2659         (ARCH64_SUBDIR): Define.
2660         Test USE_GLD instead of TARGET_GNU_LD.
2661         (I386_EMULATION): Rename to ...
2662         (ARCH32_EMULATION): ... this.
2663         (X86_64_EMULATION): Rename to ...
2664         (ARCH64_EMULATION): ... this.
2665         (TARGET_LD_EMULATION): Remove.
2666         (LINK_ARCH_SPEC): Remove.
2667         * config/i386/sol2-gas.h: Remove.
2668         * config/i386/t-sol2-10: Rename to ...
2669         * config/i386/t-sol2-64: ... this.
2670         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
2671         (AS_SPARC64_FLAG): Define.
2672         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
2673         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
2674         depending on TARGET_CPU_DEFAULT.
2675         (CPP_CPU_SPEC): Redefine.
2676         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
2677         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
2678         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
2679         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
2680         ASM_ARCH_DEFAULT_SPEC): Redefine.
2681         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2682         LINK_ARCH_DEFAULT_SPEC.
2683         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
2684         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
2685         (ARCH64_SUBDIR): Define.
2686         (LINK_ARCH64_SPEC): Redefine.
2687         (CC1_SPEC): Redefine.
2688         (OPTION_DEFAULT_SPECS): Redefine.
2689         (MULTILIB_DEFAULTS): Define.
2690         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
2691         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
2692         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
2693         (NO_DBX_BNSYM_ENSYM): Remove.
2694         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2695         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
2696         (TARGET_ASM_NAMED_SECTION): Likewise.
2697         (STACK_CHECK_STATIC_BUILTIN): Remove.
2698         * config/sparc/sol2-bi.h: Remove.
2699         * config/sparc/sol2-gas-bi.h: Remove.
2700         * config/sparc/sol2-gas.h: Remove.
2701         * config/sparc/sol2-gld-bi.h: Remove.
2702         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
2703         common parts ...
2704         (*-*-solaris2*): ... here.
2705
2706 2011-06-21  Christian Bruel  <christian.bruel@st.com>
2707
2708         PR other/43564
2709         * ipa-inline.c (can_inline_edge_p): Check
2710         !DECL_DISREGARD_INLINE_LIMITS.
2711
2712 2011-06-21  Christian Bruel  <christian.bruel@st.com>
2713
2714         PR middle-end/49139
2715         * cgraphunit.c (process_function_and_variable_attributes): warn when
2716         always_inline functions that are not inline.
2717         * ipa-inline-transform.c (inline_transform): Always call
2718         optimize_inline.
2719         * tree-inline.c (tree_inlinable_function_p): Use error instead
2720         of sorry.
2721         (expand_call_inline): Likewise.
2722
2723 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
2724
2725         * Makefile.in (dg_target_exps): Set.
2726         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
2727         instead of 7, try to divide it more evenly.
2728
2729 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
2730
2731         PR target/49089
2732         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
2733         (avx256_split_unaligned_store): New definition.
2734         (ix86_option_override_internal): Enable avx256 unaligned load/store
2735         splitting only when avx256_split_unaligned_load/store is set.
2736
2737 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
2738
2739         * regrename.c (scan_rtx_reg): Handle the case where we write to an
2740         open chain in a smaller mode without failing the entire block.
2741
2742 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
2743
2744         PR middle-end/47725
2745         * combine.c (cant_combine_insn_p): Don't check zero/sign
2746         extended hard registers.
2747
2748 2011-06-21  Alan Modra  <amodra@gmail.com>
2749
2750         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
2751         CONST high part large-toc address.
2752         (rs6000_tls_referenced_p): Make static.
2753         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
2754
2755 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
2756
2757         PR middle-end/47725
2758         * combine.c (cant_combine_insn_p): Check zero/sign extended
2759         hard registers.
2760
2761 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2762
2763         PR target/49385
2764         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
2765         one of the operands is a register.
2766
2767 2011-06-20  Kai Tietz  <ktietz@redhat.com>
2768
2769         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
2770         operations in combination with binary and.
2771
2772 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
2773
2774         * regrename.c (do_replace): Don't update notes.
2775
2776 2011-06-20  Alan Modra  <amodra@gmail.com>
2777
2778         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
2779         of toc-relative address in CONST.
2780         (rs6000_delegitimize_address): Recognize changed address.
2781         (rs6000_legitimize_reload_address): Likewise.
2782         (rs6000_emit_move): Don't force these constants to memory.
2783         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
2784         toc-relative address in CONST.
2785         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
2786         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
2787
2788 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2789
2790         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
2791         (count_trailing_zeros): Likewise.
2792
2793 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2794
2795         PR other/49325
2796         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
2797         .init_array can be used with .ctors on targets.
2798         * configure: Regenerated.
2799
2800 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
2801
2802         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
2803         if the element type is volatile.
2804
2805 2011-06-18  Jan Hubicka  <jh@suse.cz>
2806
2807         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
2808         extra name aliases.
2809         (lto_symtab_resolve_can_prevail_p): Likewise.
2810         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
2811         * cgraphbuild.c (record_reference): Remove extra body alias code.
2812         (mark_load): Likewise.
2813         (mark_store): Likewise.
2814         * cgraph.h (varpool_node): Remove extra_name filed;
2815         add alias_of and extraname_alias.
2816         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
2817         (varpool_alias_aliased_node): New inline function.
2818         (varpool_variable_node): New function.
2819         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
2820         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
2821         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
2822         (input_varpool_node): Likewise.
2823         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
2824         (varpool_externally_visible_p): Remove extra body alias code.
2825         (function_and_variable_visibility): Likewise.
2826         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
2827         (ipa_pta_execute): Use it.
2828         * varpool.c (varpool_remove_node): Remove extra name alias code.
2829         (varpool_mark_needed_node): Likewise.
2830         (varpool_analyze_pending_decls): Analyze aliases.
2831         (assemble_aliases): New functoin.
2832         (varpool_assemble_decl): Use it.
2833         (varpool_create_variable_alias): New function.
2834         (varpool_extra_name_alias): Rewrite.
2835         (varpool_for_node_and_aliases): New function.
2836
2837 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
2838
2839         PR target/49411
2840         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
2841         last_arg_constant and last argument doesn't match its predicate,
2842         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
2843         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
2844         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
2845         spelling of error message.
2846         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
2847         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
2848         const_0_to_255_operand instead of const_int_operand.
2849
2850         Revert:
2851         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2852
2853         * config/i386/sse.md (blendbits): Remove mode attribute.
2854         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2855         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2856         Check integer value of operand 3 in insn constraint.
2857
2858 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
2859
2860         PR rtl-optimization/48542
2861         * reload.c (find_equiv_reg): Stop looking when finding a
2862         setjmp-type call.
2863         * reload1.c (reload_as_needed): Invalidate all reload
2864         registers when crossing a setjmp-type call.
2865
2866 2011-06-16  Jeff Law  <law@redhat.com>
2867
2868         * tree-ssa-threadupdate.c (struct redirection_data): New field
2869         intermediate_edge.
2870         (THREAD_TARGET2): Define.
2871         (redirection_data_eq): Also check that the intermediate edge is equal.
2872         (lookup_redirection_data): Drop useless argument.  Extract the
2873         outgoing_edge and intermediate edge from E.  Callers updated.
2874         (copy_phi_args, update_destination_phis): New functions.
2875         (fix_duplicate_block_edges): Likewise.
2876         (create_edge_and_update_destination_phis): Duplicate all the edges
2877         hung off e->aux.  Use copy_phi_args.
2878         (create_duplicates): Use fix_duplicate_block_edges.
2879         (fixup_template_block): Likewise.
2880         (redirect_edges): If necessary, redirect the joiner block's incoming
2881         edge to the duplicate of the joiner block.
2882         (thread_block): Don't muck up loops when threading through a joiner
2883         block.
2884         (thread_through_loop_header): Handle threading through a joiner block.
2885         (mark_threaded_blocks, register_jump_thread): Likewise.
2886         * tree-flow.h (register_jump_thread): Add new argument.  Callers
2887         updated.
2888         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
2889         (thread_across_edge): Handle threading through a joiner block.
2890
2891 2011-06-16  Martin Jambor  <mjambor@suse.cz>
2892
2893         PR tree-optimization/49343
2894         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
2895         calculate offset, provide 2nd operand for the new COMPONENT_REF.
2896
2897 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
2898
2899         * config/darwin-protos.h (machopic_select_rtx_section): Move to
2900         inside RTX_CODE ifdef.
2901
2902 2011-06-16  Tom de Vries  <tom@codesourcery.com>
2903
2904         PR target/45098
2905         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
2906         Disallow NULL pointer for pointer arithmetic.
2907
2908 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2909
2910         PR target/49398
2911         Revert.
2912         2011-06-10  Wei Guozhi  <carrot@google.com>
2913
2914         PR target/45335
2915         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
2916         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
2917         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
2918         related peephole2.
2919         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
2920         related peephole2.
2921         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
2922         (arm_legitimate_ldrd_p): New prototype.
2923         (arm_output_ldrd): New prototype.
2924         * config/arm/arm.c (arm_check_ldrd_operands): New function.
2925         (arm_legitimate_ldrd_p): New function.
2926         (arm_output_ldrd): New function.
2927
2928 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
2929
2930         PR middle-end/46500
2931         * doc/tm.texi.in: Update Copyright date.
2932         * doc/tm.texi: Regenerate.
2933         * targhooks.c (default_setup_incoming_varargs): Replace
2934         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2935         (default_pretend_outgoing_varargs_named): Likewise.
2936         (hook_pass_by_reference_must_pass_in_stack): Likewise.
2937         (hook_callee_copies_named): Likewise.
2938         (default_function_arg_advance): Likewise.
2939         (default_function_arg): Likewise.
2940         (default_function_incoming_arg): Likewise.
2941         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
2942         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
2943         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
2944         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
2945         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
2946         * targhooks.h (default_setup_incoming_varargs): Likewise.
2947         (default_pretend_outgoing_varargs_named): Likewise.
2948         (hook_pass_by_reference_must_pass_in_stack): Likewise.
2949         (hook_callee_copies_named): Likewise.
2950         (default_function_arg_advance): Likewise.
2951         (default_function_arg): Likewise.
2952         (default_function_incoming_arg): Likewise.
2953         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
2954         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
2955         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
2956         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
2957         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
2958         * target.def (pass_by_reference): Likewise.
2959         (setup_incoming_varargs, strict_argument_naming): Likewise.
2960         (pretend_outgoing_varargs_named, callee_copies): Likewise.
2961         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
2962         (function_incoming_arg): Likewise.
2963         * target.h: Don't include "tm.h" .
2964         (cumulative_args_t): New typedef.
2965         [GCC_TM_H] (get_cumulative_args): New static inline function.
2966         [GCC_TM_H] (pack_cumulative_args): Likewise.
2967         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
2968         argument type with cumulative_args_t.
2969         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
2970         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
2971         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
2972         (frv_arg_partial_bytes, frv_function_arg): Likewise.
2973         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
2974         (frv_function_arg_1): Likewise.
2975         * config/s390/s390.c (s390_pass_by_reference): Likewise.
2976         (s390_function_arg_advance, s390_function_arg): Likewise.
2977         * config/m32c/m32c.c (m32c_function_arg): Likewise.
2978         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
2979         (m32c_strict_argument_naming): Likewise.
2980         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
2981         (spu_function_arg_advance): Likewise.
2982         (spu_setup_incoming_varargs): Likewise.  Make static.
2983         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
2984         Remove prototype.
2985         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
2986         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2987         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
2988         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
2989         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
2990         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
2991         (mep_pass_by_reference, mep_function_arg): Likewise.
2992         (mep_function_arg_advance): Likewise.
2993         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
2994         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
2995         (m32r_function_arg, m32r_function_arg_advance): Likewise.
2996         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
2997         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
2998         (ix86_function_arg, ix86_pass_by_reference): Likewise.
2999         (ix86_setup_incoming_varargs): Likewise.
3000         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
3001         (sh_strict_argument_naming): Likewise.
3002         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
3003         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
3004         (sh_function_arg_advance, sh_function_arg): Likewise.
3005         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
3006         (pdp11_function_arg_advance): Likewise.
3007         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
3008         Likewise.
3009         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
3010         * config/avr/avr.c (avr_function_arg): Likewise.
3011         (avr_function_arg_advance): Likewise.
3012         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
3013         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
3014         (xtensa_function_arg_1): Likewise.
3015         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
3016         Likewise.
3017         (xstormy16_function_arg): Likewise.
3018         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
3019         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
3020         (fr30_function_arg_advance): Likewise.
3021         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
3022         (lm32_function_arg, lm32_function_arg_advance): Likewise.
3023         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
3024         (moxie_function_arg, moxie_function_arg_advance): Likewise.
3025         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
3026         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
3027         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
3028         (cris_function_arg, cris_function_incoming_arg): Likewise.
3029         (cris_function_arg_advance, cris_function_arg_1): Likewise.
3030         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
3031         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
3032         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
3033         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
3034         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
3035         (mn10300_arg_partial_bytes): Likewise.
3036         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
3037         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
3038         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
3039         (ia64_function_arg_1): Likewise.
3040         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
3041         (m68k_function_arg): Likewise.
3042         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
3043         (rs6000_function_arg, setup_incoming_varargs): Likewise.
3044         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
3045         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
3046         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
3047         (picochip_arg_advance): Likewise.
3048         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
3049         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
3050         (mcore_function_arg_advance): Likewise.
3051         * config/score/score.c (score_pass_by_reference): Likewise.
3052         (score_function_arg_advance): Likewise.
3053         (score_arg_partial_bytes): Likewise.  Make static.
3054         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
3055         * config/arm/arm.c (arm_arg_partial_bytes): Replace
3056         CUMULATIVE_ARGS* argument type with cumulative_args_t.
3057         (arm_function_arg, arm_function_arg_advance): Likewise.
3058         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
3059         * config/pa/pa.c (pa_pass_by_reference): Likewise.
3060         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
3061         (pa_function_arg): Likewise.
3062         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
3063         (mips_function_arg, mips_function_arg_advance): Likewise.
3064         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
3065         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
3066         * config/vax/vax.c (vax_function_arg): Likewise.
3067         (vax_function_arg_advance): Likewise.
3068         * config/h8300/h8300.c (h8300_function_arg): Likewise.
3069         (h8300_function_arg_advance): Likewise.
3070         * config/v850/v850.c (v850_pass_by_reference): Likewise.
3071         (v850_strict_argument_naming, v850_function_arg): Likewise.
3072         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
3073         (v850_setup_incoming_varargs): Likewise.
3074         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
3075         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
3076         (mmix_function_arg, mmix_pass_by_reference): Likewise.
3077         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
3078         with const void *.
3079         * config/bfin/bfin.c (setup_incoming_varargs): Replace
3080         CUMULATIVE_ARGS* argument type with cumulative_args_t.
3081         (bfin_function_arg_advance, bfin_function_arg): Likewise.
3082         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
3083         * calls.c (emit_call_1): Change type of args_so_far to
3084         cumulative_args_t.  Changed all callers.
3085         (initialize_argument_information): Likewise.
3086         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
3087         * dse.c (get_call_args): Likewise.
3088         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
3089         * function.c (pass_by_reference, reference_callee_copied): Likewise.
3090         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
3091         New member args_so_far_v.  Changed all users.
3092         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
3093         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
3094         * config/mips/mips.c (mips_output_args_xfer): Likewise.
3095         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
3096         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3097         * config/microblaze/microblaze.c (microblaze_expand_prologue):
3098         Likewise.
3099         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
3100         m32r_pass_by_reference.
3101
3102 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
3103
3104         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
3105         argument to be a VEC of statements.
3106         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
3107         assert that pattern statements have to have their vector type set.
3108         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
3109         Change the first argument to be a VEC of statements.  Update
3110         documentation.
3111         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
3112         (vect_handle_widen_mult_by_const): New function.
3113         (vect_recog_widen_mult_pattern):  Change the first argument to be a
3114         VEC of statements.  Update documentation.  Check that the constant is
3115         INTEGER_CST.  Support multiplication by a constant that fits an
3116         intermediate type - call vect_handle_widen_mult_by_const.
3117         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
3118         call.  Handle additional pattern statements if necessary.
3119
3120 2011-06-16  Nick Clifton  <nickc@redhat.com>
3121
3122         PR target/49427
3123         * config.gcc: Set cpu_type to v850 for any V850 architecture.
3124         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
3125         md_file, extra_modes, out_file and extra_options are these are all
3126         deduced from cpu_type.
3127
3128 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
3129
3130         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
3131         truncation mask to 63.
3132
3133 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
3134
3135         PR target/49313
3136         PR target/29524
3137         * longlong.h: Add AVR support:
3138         (count_leading_zeros): New macro.
3139         (count_trailing_zeros): New macro.
3140         (COUNT_LEADING_ZEROS_0): New macro.
3141         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
3142         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
3143         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
3144         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
3145         (LIB2FUNCS_EXCLUDE): Add _clz.
3146         * config/avr/libgcc.S (XCALL): Move up in file.
3147         (XJMP): New C Macro.
3148         (DEFUN): New asm macro.
3149         (ENDF): New asm macro.
3150         (__ffssi2): New function.
3151         (__ffshi2): New function.
3152         (__loop_ffsqi2): New function.
3153         (__ctzsi2): New function.
3154         (__ctzhi2): New function.
3155         (__clzdi2): New function.
3156         (__clzsi2): New function.
3157         (__clzhi2): New function.
3158         (__paritydi2): New function.
3159         (__paritysi2): New function.
3160         (__parityhi2): New function.
3161         (__parityqi2): New function.
3162         (__popcounthi2): New function.
3163         (__popcountsi2): New function.
3164         (__popcountdi2): New function.
3165         (__popcountqi2): New function.
3166         (__bswapsi2): New function.
3167         (__bswapdi2): New function.
3168         (__ashldi3): New function.
3169         (__ashrdi3): New function.
3170         (__lshrdi3): New function.
3171         Fix suspicous lines.
3172
3173 2011-06-16  Richard Guenther  <rguenther@suse.de>
3174
3175         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
3176         the same as x != 0.
3177         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
3178         to (bool) X & 1.
3179         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
3180         equality compares against zero for the lower bit.
3181
3182 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
3183
3184         PR tree-optimization/49419
3185         * tree-vrp.c (execute_vrp): Call init_range_assertions
3186         before estimate_numbers_of_iterations, call
3187         free_number_of_iterations_estimates before calling
3188         remove_range_assertions.
3189
3190 2011-06-16  Revital Eres  <revital.eres@linaro.org>
3191
3192         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
3193         (struct partial_schedule): Add rows_length field.
3194         (verify_partial_schedule): Check rows_length.
3195         (ps_insert_empty_row): Handle rows_length.
3196         (create_partial_schedule): Likewise.
3197         (free_partial_schedule): Likewise.
3198         (reset_partial_schedule): Likewise.
3199         (create_ps_insn): Remove rest_count argument.
3200         (remove_node_from_ps): Update rows_length.
3201         (add_node_to_ps): Update rows_length and call create_ps_insn
3202         without passing row_rest_count.
3203         (rotate_partial_schedule): Update rows_length.
3204
3205 2011-06-16  Revital Eres  <revital.eres@linaro.org>
3206
3207         * ddg.c (add_intra_loop_mem_dep): New function.
3208         (build_intra_loop_deps): Call it.
3209
3210 2011-06-13  Jeff Law  <law@redhat.com>
3211
3212         * df-problems.c (df_lr_local_compute): Manually CSE
3213         PIC_OFFSET_TABLE_REGNUM.
3214         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
3215         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
3216
3217 2011-06-13  Jan Hubicka  <jh@suse.cz>
3218
3219         * cgraphunit.c (handle_alias_pairs): New function.
3220         (cgraph_finalize_compilation_unit): Use it.
3221         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
3222         as externally visible.
3223
3224 2011-06-15  Richard Guenther  <rguenther@suse.de>
3225
3226         * expr.c (expand_expr_real_2): Reduce all integral types to
3227         bitfield precision.
3228         (expand_expr_real_1): Likewise.
3229
3230 2011-06-15  Martin Jambor  <mjambor@suse.cz>
3231
3232         PR tree-optimization/48613
3233         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
3234         ipa_node_params_vector is NULL.
3235
3236 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
3237
3238         PR debug/49382
3239         * dwarf2out.c (dw_loc_list_node): Add force field.
3240         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
3241         location in the list, even if it is modified before first real insn.
3242         (output_loc_list): Emit empty ranges with force flag set.
3243         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
3244
3245 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
3246
3247         PR target/49349
3248         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
3249         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
3250         above a fence.  Update comments.
3251         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
3252         placed just above it.  Do not allow NULL place_to_insert.
3253
3254 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
3255
3256         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
3257         (slpeel_tree_peel_loop_to_edge): Don't call
3258         remove_dead_stmts_from_loop.
3259         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
3260         remove irrelevant pattern statements.  For irrelevant statements
3261         check if it is the last statement of a detected pattern, use
3262         corresponding pattern statement instead.
3263         (destroy_loop_vec_info): No need to remove pattern statements,
3264         only free stmt_vec_info.
3265         (vect_transform_loop): For irrelevant statements check if it is
3266         the last statement of a detected pattern, use corresponding
3267         pattern statement instead.
3268         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
3269         pattern statements.  Set basic block for the new statement.
3270         (vect_pattern_recog): Update documentation.
3271         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
3272         operands of pattern statements.
3273         (vectorizable_call): Fix printing.  In case of a pattern statement
3274         use the lhs of the original statement when creating a dummy
3275         statement to replace the original call.
3276         (vect_analyze_stmt): For irrelevant statements check if it is
3277         the last statement of a detected pattern, use corresponding
3278         pattern statement instead.
3279         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
3280         statements use gsi of the original statement.
3281
3282 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
3283
3284         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
3285         common/common-target-def.h.
3286         * target.def (default_target_flags, handle_option,
3287         supports_split_stack, optimization_table, init_struct,
3288         except_unwind_info, unwind_tables_default, have_named_sections):
3289         Move to common/common-target.def.
3290         * target.h (enum opt_levels, struct default_options): Move to
3291         common/common-target.h.
3292         * targhooks.c (default_except_unwind_info,
3293         dwarf2_except_unwind_info, sjlj_except_unwind_info,
3294         default_target_handle_option, empty_optimization_table): Move to
3295         common/common-targhooks.c.
3296         * targhooks.h (default_except_unwind_info,
3297         dwarf2_except_unwind_info, sjlj_except_unwind_info,
3298         default_target_handle_option, empty_optimization_table): Move to
3299         common/common-targhooks.h.
3300         * common/common-target-def.h: Include common/common-targhooks.h.
3301         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
3302         defined.
3303         * common/common-target.def (handle_option, option_init_struct,
3304         option_optimization_table, default_target_flags,
3305         except_unwind_info, supports_split_stack, unwind_tables_default,
3306         have_named_sections): Move from target.def.
3307         (HOOK_PREFIX): Undefine at end of file.
3308         * common/common-target.h: Include input.h.
3309         (enum opt_levels, struct default_options): Move from target.h.
3310         * common/common-targhooks.c, common/common-targhooks.h: New.
3311         * config.gcc (target_has_targetm_common): Default to yes.
3312         (moxie*): Set target_has_targetm_common=no.
3313         (hppa*-*-*): Don't set target_has_targetm_common=yes.
3314         * doc/tm.texi: Regenerate.
3315         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
3316         (C_TARGET_DEF_H): Add common/common-targhooks.h.
3317         (GCC_OBJS): Remove vec.o.
3318         (OBJS): Remove hooks.o and vec.o.
3319         (OBJS-libcommon-target): Add vec.o, hooks.o and
3320         common/common-targhooks.o.
3321         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
3322         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
3323         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
3324         cfglayout.o, $(out_object_file), $(common_out_object_file)):
3325         Update dependencies.
3326         (common/common-targhooks.o): New.
3327         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
3328         * common/config/pa/pa-common.c: Include more headers.  Take
3329         copyright dates from pa.c.
3330         (pa_option_optimization_table, pa_handle_option,
3331         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
3332         TARGET_HANDLE_OPTION): Move from pa.c.
3333         * common/config/alpha/alpha-common.c,
3334         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
3335         common/config/bfin/bfin-common.c,
3336         common/config/cris/cris-common.c,
3337         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
3338         common/config/h8300/h8300-common.c,
3339         common/config/i386/i386-common.c,
3340         common/config/ia64/ia64-common.c,
3341         common/config/iq2000/iq2000-common.c,
3342         common/config/lm32/lm32-common.c,
3343         common/config/m32c/m32c-common.c,
3344         common/config/m32r/m32r-common.c,
3345         common/config/m68k/m68k-common.c,
3346         common/config/mcore/mcore-common.c,
3347         common/config/mep/mep-common.c,
3348         common/config/microblaze/microblaze-common.c,
3349         common/config/mips/mips-common.c,
3350         common/config/mmix/mmix-common.c,
3351         common/config/mn10300/mn10300-common.c,
3352         common/config/pdp11/pdp11-common.c,
3353         common/config/picochip/picochip-common.c,
3354         common/config/rs6000/rs6000-common.c,
3355         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
3356         common/config/score/score-common.c, common/config/sh/sh-common.c,
3357         common/config/sparc/sparc-common.c,
3358         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
3359         common/config/vax/vax-common.c,
3360         common/config/xstormy16/xstormy16-common.c,
3361         common/config/xtensa/xtensa-common.c: New.
3362         * config/alpha/alpha.c: Include common/common-target.h.
3363         (alpha_option_optimization_table, alpha_handle_option,
3364         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3365         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
3366         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
3367         * config/arm/arm.c (arm_option_optimization_table,
3368         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3369         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
3370         arm-common.c.
3371         * config/avr/avr.c (avr_option_optimization_table,
3372         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
3373         to avr-common.c.
3374         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
3375         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
3376         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
3377         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
3378         * config/cris/cris.c (cris_option_optimization_table,
3379         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3380         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
3381         cris-common.c.
3382         * config/fr30/fr30.c (fr30_option_optimization_table,
3383         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
3384         to fr30-common.c.
3385         * config/frv/frv.c (frv_option_optimization_table,
3386         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
3387         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
3388         * config/h8300/h8300.c (h8300_option_optimization_table,
3389         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3390         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
3391         * config/i386/i386-protos.h (ix86_handle_option): Declare.
3392         * config/i386/i386.c: Include common/common-target.h.
3393         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
3394         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
3395         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
3396         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
3397         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
3398         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
3399         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
3400         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
3401         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
3402         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
3403         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
3404         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
3405         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
3406         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
3407         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
3408         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
3409         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
3410         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
3411         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
3412         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
3413         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
3414         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
3415         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
3416         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
3417         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
3418         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
3419         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
3420         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
3421         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
3422         ix86_option_optimization_table, ix86_option_init_struct,
3423         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
3424         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3425         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
3426         i386-common.c.
3427         * config/i386/t-i386 (i386.o): Update dependencies.
3428         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
3429         * config/ia64/ia64.c (ia64_option_optimization_table,
3430         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
3431         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3432         ia64_handle_option): Move to ia64-common.c.
3433         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
3434         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
3435         * config/lm32/lm32.c (lm32_option_optimization_table,
3436         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
3437         to lm32-common.c.
3438         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
3439         m32c-common.c.
3440         * config/m32r/m32r.c (m32r_option_optimization_table,
3441         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3442         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
3443         m32r_handle_option): Move to m32r-common.c.
3444         (m32r_memory_move_cost): Remove comment referring to
3445         TARGET_HANDLE_OPTION.
3446         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
3447         Move to m68k-common.c.
3448         * config/mcore/mcore.c (mcore_option_optimization_table,
3449         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3450         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
3451         * config/mep/mep.c (mep_option_optimization_table,
3452         mep_handle_option, TARGET_HANDLE_OPTION,
3453         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
3454         Move to mep-common.c.
3455         * config/microblaze/microblaze.c
3456         (microblaze_option_optimization_table,
3457         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3458         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
3459         * config/mips/mips.c (mips_handle_option,
3460         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
3461         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
3462         mips-common.c.
3463         * config/mmix/mmix.c (mmix_option_optimization_table,
3464         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3465         Move to mmix-common.c.
3466         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
3467         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
3468         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3469         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
3470         * config/pa/pa.c: Include common/common-target.h.
3471         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
3472         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3473         pa_handle_option): Move to pa-common.c.
3474         (pa_option_override): Use targetm_common.except_unwind_info.
3475         (pa_asm_output_mi_thunk, pa_function_section): Use
3476         targetm_common.have_named_sections.
3477         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
3478         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3479         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3480         pdp11_handle_option, pdp11_option_init_struct): Move to
3481         pdp11-common.c.
3482         * config/picochip/picochip.c (picochip_option_optimization_table,
3483         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
3484         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
3485         * config/rs6000/rs6000.c: Include common/common-target.h.
3486         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
3487         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
3488         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
3489         rs6000_handle_option): Move to rs6000-common.c.
3490         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
3491         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
3492         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3493         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
3494         * config/s390/s390.c (processor_flags_table,
3495         s390_option_optimization_table, s390_option_init_struct,
3496         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
3497         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3498         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
3499         * config/s390/s390.h (processor_flags_table): Declare.
3500         * config/score/score.c (score_option_optimization_table,
3501         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3502         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
3503         score_handle_option): Move to score-common.c.
3504         * config/sh/sh.c (sh_option_optimization_table,
3505         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3506         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3507         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
3508         * config/sparc/sparc.c: Include common/common-target.h.
3509         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3510         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
3511         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
3512         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
3513         spu_option_init_struct): Move to spu-common.c.
3514         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
3515         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
3516         * config/v850/v850.c (small_memory_physical_max,
3517         v850_handle_memory_optionn v850_handle_option,
3518         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3519         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
3520         v850-common.c.
3521         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
3522         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
3523         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3524         Move to xtensa-common.c.
3525         * cfglayout.c: Include common/common-target.h.
3526         (fixup_reorder_chain): Use targetm_common.have_named_sections.
3527         * cfgrtl.c: Include common/common-target.h.
3528         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
3529         targetm_common.have_named_sections.
3530         * dbxout.c: Include common/common-target.h.
3531         (dbxout_function_end): Use targetm_common.have_named_sections.
3532         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
3533         targetm_common.except_unwind_info.
3534         * dwarf2out.c: Include common/common-target.h.
3535         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
3536         dwarf2out_begin_prologue, dwarf2out_frame_init,
3537         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
3538         targetm_common.except_unwind_info.
3539         * except.c: Include common/common-target.h.
3540         (init_eh, finish_eh_generation,
3541         output_one_function_exception_table): Use
3542         targetm_common.except_unwind_info.
3543         (switch_to_exception_section): Use targetm_common.have_named_sections.
3544         * explow.c: Include common/common-target.h.
3545         * expr.c: Include common/common-target.h.
3546         (build_personality_function): Use targetm_common.except_unwind_info.
3547         * function.c: Include common/common-target.h.
3548         (expand_function_end): Use targetm_common.except_unwind_info.
3549         * haifa-sched.c: Include common/common-target.h.
3550         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
3551         * lto-opts.c: Include common/common-target.h instead of target.h.
3552         (lto_reissue_options): Use targetm_common.handle_option.
3553         * opts.c: Include common/common-target.h.
3554         (target_handle_option): Use targetm_common.handle_option.
3555         (init_options_struct): Update comment referring to
3556         targetm.target_option.optimization.  Use
3557         targetm_common.default_target_flags,
3558         targetm_common.unwind_tables_default and
3559         targetm_common.option_init_struct.
3560         (default_options_optimization): Use
3561         targetm_common.option_optimization_table.
3562         (finish_options): Use targetm_common.except_unwind_info,
3563         targetm_common.unwind_tables_default,
3564         targetm_common.have_named_sections and
3565         targetm_common.supports_split_stack.
3566         * toplev.c: Include common/common-target.h.
3567         (process_options): Use targetm_common.have_named_sections.
3568         * tree-tailcall.c: Include common/common-target.h.
3569         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
3570         * tree.c: Include common/common-target.h.
3571         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
3572         * varasm.c: Include common/common-target.h.
3573         (resolve_unique_section, hot_function_section,
3574         default_function_section): Use targetm_common.have_named_sections.
3575
3576 2011-06-14  Easwaran Raman  <eraman@google.com>
3577
3578         PR rtl-optimization/44194
3579         * dse.c: Include tree-flow.h
3580         (insn_info): Add new field non_frame_wild_read.
3581         (group_info): Add new fields escaped_n and escaped_p.
3582         (kill_on_calls): New variable.
3583         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
3584         (dse_step0): Initialize kill_on_calls.
3585         (can_escape): New function.
3586         (set_usage_bits): Add additional parameter; record information
3587         about escaped locations.
3588         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
3589         (dse_step2_nospill): Set kill_on_calls based on
3590         group->escaped_n and group->escaped_n.
3591         (add_wild_read): Refactor into...
3592         (reset_active_stores): ... New function, and
3593         (free_read_records): ... New function.
3594         (add_non_frame_wild_read): New function.
3595         (scan_insn): Call add_non_frame_wild_read on non-const calls.
3596         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
3597         (dse_step5_nospill): Call scan_reads_nospill for instructions
3598         marked as non_frame_wild_read.
3599         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
3600
3601 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
3602
3603         * common/common-target-def.h, common/common-target.def,
3604         common/common-target.h, common/config/default-common.c,
3605         common/config/pa/pa-common.c: New files.
3606         * Makefile.in (common_out_file, common_out_object_file,
3607         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
3608         (OBJS-libcommon-target): Include $(common_out_object_file).
3609         (prefix.o): Update dependencies.
3610         ($(common_out_object_file), common/common-target-hooks-def.h,
3611         s-common-target-hooks-def-h): New.
3612         (s-tm-texi): Also check timestamp on common-target.def.
3613         (build/genhooks.o): Update dependencies.
3614         * config.gcc (common_out_file, target_has_targetm_common): Define.
3615         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
3616         TARGET_ALWAYS_STRIP_DOTDOT.
3617         * configure.ac (common_out_object_file): Define.
3618         (common_out_file, common_out_object_file): Substitute.
3619         (common): Create directory.
3620         * configure: Regenerate.
3621         * doc/tm.texi.in (targetm_common): Document.
3622         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
3623         * doc/tm.texi: Regenerate.
3624         * genhooks.c (hook_array): Also include common/common-target.def.
3625         * prefix.c (tm.h): Don't include.
3626         (common/common-target.h): Include.
3627         (ALWAYS_STRIP_DOTDOT): Don't define.
3628         (update_path): Use targetm_common.always_strip_dotdot instead of
3629         ALWAYS_STRIP_DOTDOT.
3630         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
3631
3632 2011-06-14  David Li  <davidxl@google.com>
3633
3634         * passes.c (execute_function_todo): Remove TODO_dump_func.
3635         (execute_one_pass): Remove TODO_dump_func.
3636         (execute_function_dump): New function.
3637         * tree-vrp.c: Remove TODO_dump_func.
3638         * regrename.c: Remove TODO_dump_func.
3639         * fwprop.c: Remove TODO_dump_func.
3640         * tree-into-ssa.c: Remove TODO_dump_func.
3641         * tree-complex.c: Remove TODO_dump_func.
3642         * tracer.c: Remove TODO_dump_func.
3643         * tree-loop-distribution.c: Remove TODO_dump_func.
3644         * postreload-gcse.c: Remove TODO_dump_func.
3645         * postreload.c: Remove TODO_dump_func.
3646         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
3647         * tree-tailcall.c: Remove TODO_dump_func.
3648         * ipa-cp.c: Remove TODO_dump_func.
3649         * final.c: Remove TODO_dump_func.
3650         * tree-emutls.c: Remove TODO_dump_func.
3651         * omp-low.c: Remove TODO_dump_func.
3652         * tree-ssa-dse.c: Remove TODO_dump_func.
3653         * tree-ssa-uncprop.c: Remove TODO_dump_func.
3654         * auto-inc-dec.c: Remove TODO_dump_func.
3655         * reorg.c: Remove TODO_dump_func.
3656         * tree-ssa-copyrename.c: Remove TODO_dump_func.
3657         * tree-ssa-ccp.c: Remove TODO_dump_func.
3658         * compare-elim.c: Remove TODO_dump_func.
3659         * mode-switching.c: Remove TODO_dump_func.
3660         * modulo-sched.c: Remove TODO_dump_func.
3661         * tree-call-cdce.c: Remove TODO_dump_func.
3662         * cse.c: Remove TODO_dump_func.
3663         * web.c: Remove TODO_dump_func.
3664         * tree-stdarg.c: Remove TODO_dump_func.
3665         * lto-streamer-out.c: Remove TODO_dump_func.
3666         * tree-ssa-math-opts.c: Remove TODO_dump_func.
3667         * tree-ssa-dom.c: Remove TODO_dump_func.
3668         * tree-nrv.c: Remove TODO_dump_func.
3669         * loop-init.c: Remove TODO_dump_func.
3670         * gimple-low.c: Remove TODO_dump_func.
3671         * ipa-inline.c: Remove TODO_dump_func.
3672         * tree-ssa-sink.c: Remove TODO_dump_func.
3673         * jump.c: Remove TODO_dump_func.
3674         * ifcvt.c: Remove TODO_dump_func.
3675         * tree-ssa-loop.c: Remove TODO_dump_func.
3676         * recog.c: Remove TODO_dump_func.
3677         * dse.c: Remove TODO_dump_func.
3678         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
3679         * matrix-reorg.c: Remove TODO_dump_func.
3680         * tree-eh.c: Remove TODO_dump_func.
3681         * regmove.c: Remove TODO_dump_func.
3682         * function.c: Remove TODO_dump_func.
3683         * tree-vectorizer.c: Remove TODO_dump_func.
3684         * ipa-split.c: Remove TODO_dump_func.
3685         * gcse.c: Remove TODO_dump_func.
3686         * tree-if-conv.c: Remove TODO_dump_func.
3687         * init-regs.c: Remove TODO_dump_func.
3688         * tree-ssa-phiopt.c: Remove TODO_dump_func.
3689         * implicit-zee.c: Remove TODO_dump_func.
3690         * lower-subreg.c: Remove TODO_dump_func.
3691         * bt-load.c: Remove TODO_dump_func.
3692         * tree-dfa.c: Remove TODO_dump_func.
3693         * except.c: Remove TODO_dump_func.
3694         * emit-rtl.c: Remove TODO_dump_func.
3695         * store-motion.c: Remove TODO_dump_func.
3696         * cfgexpand.c: Remove TODO_dump_func.
3697         * tree-cfgcleanup.c: Remove TODO_dump_func.
3698         * cfgcleanup.c: Remove TODO_dump_func.
3699         * tree-ssa-pre.c: Remove TODO_dump_func.
3700         * tree-sra.c: Remove TODO_dump_func.
3701         * tree-mudflap.c: Remove TODO_dump_func.
3702         * tree-ssa-copy.c: Remove TODO_dump_func.
3703         * cfglayout.c: Remove TODO_dump_func.
3704         * tree-ssa-forwprop.c: Remove TODO_dump_func.
3705         * tree-ssa-dce.c: Remove TODO_dump_func.
3706         * ira.c: Remove TODO_dump_func.
3707         * tree-ssa.c: Remove TODO_dump_func.
3708         * integrate.c: Remove TODO_dump_func.
3709         * tree-optimize.c: Remove TODO_dump_func.
3710         * tree-ssa-phiprop.c: Remove TODO_dump_func.
3711         * tree-object-size.c: Remove TODO_dump_func.
3712         * combine.c: Remove TODO_dump_func.
3713         * bb-reorder.c: Remove TODO_dump_func.
3714         * cprop.c: Remove TODO_dump_func.
3715         * var-tracking.c: Remove TODO_dump_func.
3716         * tree-profile.c: Remove TODO_dump_func.
3717         * tree-vect-generic.c: Remove TODO_dump_func.
3718         * reg-stack.c: Remove TODO_dump_func.
3719         * sched-rgn.c: Remove TODO_dump_func.
3720         * tree-ssa-structalias.c: Remove TODO_dump_func.
3721         * tree-switch-conversion.c: Remove TODO_dump_func.
3722         * tree-cfg.c: Remove TODO_dump_func.
3723         * tree-ssa-reassoc.c: Remove TODO_dump_func.
3724         * combine-stack-adj.c: Remove TODO_dump_func.
3725         * dce.c: Remove TODO_dump_func.
3726         * tree-ssanames.c: Remove TODO_dump_func.
3727         * regcprop.c: Remove TODO_dump_func.
3728
3729 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
3730
3731         PR middle-end/47364
3732         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
3733         and properly handle result not in Pmode.
3734
3735 2011-06-14  Robert Millan  <rmh@gnu.org>
3736
3737         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
3738         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
3739         `config/linux.h'.
3740
3741         * config/i386/kfreebsd-gnu64.h: New file.
3742         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
3743         with `i386/kfreebsd-gnu64.h'.
3744
3745         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
3746         (GNU_USER_LINK_EMULATION64): New macros.
3747         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
3748         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
3749         of hardcoding `elf_i386' and `elf_x86_64'.
3750
3751 2011-06-14  Nick Clifton  <nickc@redhat.com>
3752
3753         PR target/49403
3754         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
3755
3756         PR target/49402
3757         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
3758
3759 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
3760
3761         PR fortran/49103
3762         * tree.h (DECL_NONSHAREABLE): Define.
3763         (struct tree_decl_common): Change decl_common_unused to
3764         decl_nonshareable_flag.
3765         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
3766         Ignore vars with DECL_NONSHAREABLE bit set.
3767         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
3768         on stores to automatic aggregate vars.
3769
3770         PR rtl-optimization/49390
3771         Revert:
3772         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
3773
3774         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
3775         MEM_ALIAS_SET.
3776
3777 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
3778             Tom de Vries  <tom@codesourcery.com>
3779
3780         PR target/45098
3781         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
3782         Document changed semantics.
3783         (max_stmt_executions, max_stmt_executions_int): Declare.
3784         * tree-data-ref.c (estimated_loop_iterations)
3785         (estimated_loop_iterations_int): Move functions...
3786         * tree-ssa-loop-niter.c (estimated_loop_iterations)
3787         (estimated_loop_iterations_int): here.
3788         (record_estimate): Change nb_iterations_upper_bound and
3789         nb_iterations_estimate semantics.
3790         (max_stmt_executions, max_stmt_executions_int): New function.
3791         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
3792         (max_stmt_executions_tree): this.
3793         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
3794         estimated_loop_iterations_tree.
3795         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
3796         max_stmt_executions_int instead of estimated_loop_iterations_int.
3797         * predict.c (predict_loops): Idem.
3798         * tree-parloops.c (parallelize_loops): Idem.
3799         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
3800         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
3801         (init_omega_for_ddr_1): Idem.
3802         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
3803         (loop_prefetch_arrays): Idem
3804         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
3805         max_stmt_executions instead of estimated_loop_iterations.
3806         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
3807         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
3808         instead of nb_iterations_upper_bound.
3809
3810 2011-06-13  Jan Hubicka  <jh@suse.cz>
3811
3812         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
3813
3814 2011-06-14  Richard Henderson  <rth@redhat.com>
3815
3816         PR debug/48459
3817         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
3818         (based_loc_descr): Assert it's true.
3819         (compute_frame_pointer_to_fb_displacement): Set it, rather than
3820         aborting immediately.
3821
3822 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
3823             Mingfeng Wu  <mingfeng@faraday-tech.com>
3824
3825         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
3826
3827 2011-06-13  Jan Hubicka  <jh@suse.cz>
3828
3829         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
3830
3831 2011-06-13  Jan Hubicka  <jh@suse.cz>
3832
3833         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
3834         similarly to DECL_COMDAT.
3835         * cgraphunit.c (cgraph_analyze_function): Likewise.
3836         * ipa.c (function_and_variable_visibility): Likewise.
3837
3838 2011-06-13  Jan Hubicka  <jh@suse.cz>
3839
3840         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
3841         BINFO_VIRTUALS when streaming for ltrans unit.
3842
3843 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
3844
3845         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
3846         (movdi_internal64): Same.
3847
3848 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
3849
3850         PR target/44618
3851         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
3852         a set of similar patterns, where the MATCH_OPERAND for the function
3853         argument is replaced with individual references to hardware registers.
3854         (save_fpregs_<mode>): Ditto
3855         (restore_gpregs_<mode>): Ditto
3856         (return_and_restore_gpregs_<mode>): Ditto
3857         (return_and_restore_fpregs_<mode>): Ditto
3858         (return_and_restore_fpregs_aix_<mode>): Ditto
3859
3860 2011-06-13  Jan Hubicka  <jh@suse.cz>
3861
3862         * ipa-utils.c (postorder_stack): New structure.
3863         (ipa_reverse_postorder): Handle aliases.
3864
3865 2011-06-13  Jan Hubicka  <jh@suse.cz>
3866
3867         * ipa-inline.c (reset_edge_caches): Walk aliases.
3868         (update_caller_keys): Do not test inlinability of aliases.
3869         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
3870         (do_estimate_growth): Fix typo.
3871
3872 2011-06-13  Jan Hubicka  <jh@suse.cz>
3873
3874         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
3875         (can_remove_node_now_p): ... here; handle same comdat groups.
3876         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
3877         (inline_call): Update use of can_remove_node_now_p.
3878
3879 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3880
3881         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
3882         condition to disallow non-identical memory locations.
3883         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
3884         preference to bit manipulation instructions.
3885
3886 2011-06-13  Jan Hubicka  <jh@suse.cz>
3887
3888         * cgraph.c (cgraph_for_node_thunks_and_aliases,
3889         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
3890         (nonremovable_p): New function.
3891         (cgraph_can_remove_if_no_direct_calls_p): New function.
3892         (used_from_object_file_p): New functoin.
3893         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
3894         references from aliases.
3895         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
3896         * ipa-inline.c (check_caller_edge): New function.
3897         (want_inline_function_called_once_p): Use it; accept aliases called
3898         once, too.
3899         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
3900
3901 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3902
3903         PR target/48454
3904         * config/arm/neon.md (vec_pack_trunc): Set the lengths
3905         correctly for the case with Quad vectors.
3906
3907 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
3908            Ira Rosen  <ira.rosen@linaro.org>
3909
3910         PR tree-optimization/49352
3911         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
3912         all, make sure loop_use_stmt after the loop is a def stmt of a used
3913         SSA_NAME that is the only one defined inside of the loop.  Don't
3914         check for COND_EXPR and GIMPLE_BINARY_RHS.
3915         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
3916         check_reduction is true.
3917
3918 2011-06-11  Jan Hubicka  <jh@suse.cz>
3919
3920         PR middle-end/49373
3921         * ipa.c (cgraph_externally_visible_p): Check resolution info.
3922
3923 2011-06-11  Jan Hubicka  <jh@suse.cz>
3924
3925         PR middle-end/48836
3926         * ipa-inline-transform.c: Include tree-pass.h
3927         (inline_transform): Set TODO_update_ssa_only_virtuals.
3928         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
3929
3930 2011-06-11  Jan Hubicka  <jh@suse.cz>
3931
3932         PR middle-end/49378
3933         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
3934         aliases and thunks.
3935
3936 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
3937
3938         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
3939         Take number of iterations to peel into account for equally frequent
3940         misalignment values.
3941
3942 2011-06-11  Jan Hubicka  <jh@suse.cz>
3943
3944         * lto-streamer-out.c (produce_symtab): Stream out the newly
3945         represented aliases.
3946
3947 2011-06-11  Jan Hubicka  <jh@suse.cz>
3948
3949         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
3950         varying args.
3951         (ipa_update_after_lto_read): Likewise.
3952         (ipa_write_node_info): Do not sream call_with_var_arguments.
3953         (ipa_read_node_info): Likewise.
3954
3955 2011-06-11  Jan Hubicka  <jh@suse.cz>
3956
3957         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
3958
3959 2011-06-11  Jan Hubicka  <jh@suse.cz>
3960
3961         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
3962         (lto_symtab_resolve_can_prevail_p): Likewise.
3963         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
3964         * cgraph.c (same_body_aliases_done): New global var.
3965         (cgraph_same_body_alias_1): Rename to ...
3966         (cgraph_create_function_alias): ... this one; reorg to new
3967         representation.
3968         (cgraph_same_body_alias): Use cgraph_create_function_alias;
3969         record references when asked to.
3970         (cgraph_add_thunk): Fix formating.
3971         (cgraph_get_node): Kill same body alias code.
3972         (cgraph_node_for_asm): Likewise.
3973         (cgraph_remove_same_body_alias): Remove.
3974         (cgraph_remove_node): Kill same body alias code.
3975         (cgraph_mark_address_taken_node): Mark also the aliased function
3976         as having address taken.
3977         (dump_cgraph_node): Dump same body aliases.
3978         (cgraph_for_node_thunks_and_aliases): Update for new alias
3979         representation.
3980         (cgraph_for_node_and_aliases): Likewise.
3981         * cgraph.h (same_body): Kll pointer.
3982         (same_body_alias): Update comment.
3983         (same_body_aliases_done): Declare.
3984         (cgraph_remove_same_body_alias): Remove declaration.
3985         (cgraph_create_function_alias): Declare.
3986         (cgraph_process_same_body_aliases): Declare.
3987         (cgraph_function_with_gimple_body_p): Check for alias.
3988         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
3989         (cgraph_alias_aliased_node): New function.
3990         (cgraph_function_node): Update for new aliases.
3991         (cgraph_function_or_thunk_node): Likewise.
3992         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
3993         (inline_call): Remove dead aliases.
3994         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
3995         name hack for same body aliases.
3996         (clone_of_p): Look through aliases.
3997         (verify_cgraph_node): Verify aliases.
3998         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
3999         (cgraph_process_same_body_aliases): New function.
4000         (process_function_and_variable_attributes): Disable weakref warning on
4001         alias.
4002         (cgraph_analyze_functions): Handle aliases.
4003         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
4004         (assemble_thunks): Rename to ...
4005         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
4006         (cgraph_expand_function): Remove alias output code.
4007         (cgraph_output_in_order): Skip aliases.
4008         (cgraph_preserve_function_body_p): Aliases don't need preserving.
4009         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
4010         (ipa_record_reference): Do not assert on alias references.
4011         (ipa_ref_has_aliases_p): New function.
4012         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
4013         (ipa_ref_has_aliases_p): Declare.
4014         * lto-cgraph.c (lto_output_node): Handle aliases.
4015         (input_node): Likewise.
4016         * lto-streamer-out.c (lto_output): Skip aliases.
4017         (produce_symtab): Kill same_body_alias code.
4018         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
4019         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
4020         * ipa-inline.c (update_caller_keys): Walk aliases.
4021         (inline_small_functions): Fix thinko in previous patch.
4022         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
4023         (function_and_variable_visibility): Do not walk same body aliases.
4024         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
4025         (ipa_pta_execute): Use it.
4026
4027 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
4028
4029         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
4030         (*vec_dupv2df): Rename from vec_dupv2df.
4031         (vec_dupv2df): New expander.
4032
4033 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
4034
4035         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
4036
4037 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
4038
4039         * config/i386/i386.md: Use default value in "isa" attribute.
4040         * config/i386/sse.md: Ditto.
4041         * config/i386/mmx.md: Ditto.
4042
4043 2011-06-10  Wei Guozhi  <carrot@google.com>
4044
4045         PR target/45335
4046         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
4047         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
4048         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
4049         related peephole2.
4050         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
4051         related peephole2.
4052         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
4053         (arm_legitimate_ldrd_p): New prototype.
4054         (arm_output_ldrd): New prototype.
4055         * config/arm/arm.c (arm_check_ldrd_operands): New function.
4056         (arm_legitimate_ldrd_p): New function.
4057         (arm_output_ldrd): New function.
4058
4059 2011-06-10  David Li  <davidxl@google.com>
4060
4061         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
4062         * passes.c (passr_eq): New function.
4063         (create_pass_tab): New function.
4064         (pass_traverse): New function.
4065         (dump_one_pass): New function.
4066         (dump_pass_list): New function.
4067         (dump_passes): New function.
4068
4069 2011-06-10  Jan Hubicka  <jh@suse.cz>
4070
4071         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
4072         setting the nothrow flag.
4073         * ipa-reference.c (propagate): Skip aliases.
4074         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
4075         (propagate_nothrow): Skip aliases; do not update cgraph.
4076         (local_pure_const): Do not update cgraph.
4077         * tree-profile.c (tree_profiling): Do fixup_cfg.
4078
4079 2011-06-10  Jan Hubicka  <jh@suse.cz>
4080
4081         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
4082         (cgraph_local_node_p): ... here; handle aliases.
4083         (has_addr_references_p): Break out from ...;
4084         (cgraph_remove_unreachable_nodes) ... here.
4085
4086 2011-06-10  Jan Hubicka  <jh@suse.cz>
4087
4088         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
4089         * common.opt (flag_inline_functions_called_once): Do not
4090         initialize to 1.
4091
4092 2011-06-10  Jan Hubicka  <jh@suse.cz>
4093
4094         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
4095         (ipcp_initialize_node_lattices): Do not deal with aliases;
4096         Do not try to propagate through thunks.
4097         (ipcp_change_tops_to_bottom): Do not deal with aliases.
4098
4099 2011-06-10  Jan Hubicka  <jh@suse.cz>
4100
4101         * ipa-prop.c (ipa_write_node_info): Stream jump functions
4102         for indirect calls.
4103         (ipa_read_node_info): Likewise.
4104
4105 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4106
4107         PR lto/49302
4108         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
4109         (build_and_insert_call): Likewise.
4110         (build_and_insert_ref): New.
4111         (gimple_expand_builtin_pow): Minor cleanup.
4112         (gimple_expand_builtin_cabs): New.
4113         (execute_cse_sincos): Add case for BUILT_IN_CABS.
4114
4115 2011-06-10  Jan Hubicka  <jh@suse.cz>
4116
4117         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
4118         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
4119         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
4120         (ipcp_propagate_stage): Skip aliases when propagating.
4121         (ipcp_need_redirect_p): Skip aliases.
4122         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
4123         collect_callers_of_node.
4124         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
4125         for aliases.
4126         (ipa_compute_jump_functions): Look through aliases.
4127
4128 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4129
4130         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
4131
4132 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4133
4134         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
4135         Adjust comments.
4136         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
4137
4138 2011-06-10  Jan Hubicka  <jh@suse.cz>
4139
4140         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
4141         Update call of gimple_get_virt_method_for_binfo.
4142         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
4143         refuse_thunks parameter.
4144         (gimple_fold_call): Update.
4145         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
4146
4147 2011-06-10  Jan Hubicka  <jh@suse.cz>
4148
4149         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
4150         (not_all_callers_have_enough_arguments_p): ... this one; turn into
4151         worker for cgraph_for_node_and_aliases.
4152         (convert_callers_for_node): Break out from ...
4153         (convert_callers): ... here.
4154         (modify_function): Use collect_callers_of_node.
4155         (ipa_early_sra): Use cgraph_for_node_and_aliases.
4156
4157 2011-06-10  Richard Guenther  <rguenther@suse.de>
4158
4159         PR tree-optimization/49361
4160         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
4161         when not already in gimple form.
4162
4163 2011-06-10  Richard Guenther  <rguenther@suse.de>
4164
4165         PR bootstrap/49344
4166         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
4167         FOR_EACH_PHI_OR_STMT_USE.
4168
4169 2011-06-10  Jan Hubicka  <jh@suse.cz>
4170
4171         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
4172         (clone_inlined_nodes): ... here.
4173         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
4174         to real destination prior inlining.
4175         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
4176         can_early_inline_edge_p, want_early_inline_function_p,
4177         want_early_inline_function_p, want_inline_small_function_p,
4178         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
4179         edge_badness, update_all_callee_keys, lookup_recursive_calls,
4180         add_new_edges_to_heap, inline_small_functions, flatten_function,
4181         inline_always_inline_functions, early_inline_small_functions): Use
4182         cgraph_function_or_thunk_node.
4183         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
4184         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
4185         (do_estimate_edge_growth_1): Break out from ...
4186         (do_estimate_growth) ... here; walk aliases.
4187         (inline_generate_summary): Skip aliases.
4188
4189 2011-06-10  Richard Guenther  <rguenther@suse.de>
4190
4191         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
4192         forward when combining, visit inserted stmts when a stmt was changed.
4193
4194 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
4195
4196         * tree.h (error_operand_p): Add.
4197         * dbxout.c (dbxout_type_fields): Use the latter.
4198         * c-decl.c (add_stmt): Likewise.
4199         * gimplify.c (omp_add_variable, omp_notice_variable,
4200         gimplify_scan_omp_clauses): Likewise.
4201
4202 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
4203
4204         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
4205         when a value is actually passed in regs.
4206
4207 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
4208             Laurent Rougé  <laurent.rouge@menta.fr>
4209
4210         * doc/invoke.texi (SPARC options): Add -mflat.
4211         * config/sparc/sparc.opt: Likewise.
4212         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
4213         (sparc_flat_expand_prologue): Declare.
4214         (sparc_flat_expand_epilogue): Likewise.
4215         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
4216         (CPP_ENDIAN_SPEC): Replace with...
4217         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
4218         (CPP_SPEC): Adjust to above change.
4219         (EXTRA_SPECS): Likewise.
4220         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
4221         (INCOMING_REGNO): Likewise.
4222         (OUTGOING_REGNO): Likewise.
4223         (LOCAL_REGNO): Likewise.
4224         (SETUP_FRAME_ADDRESSES): Likewise.
4225         (FIXED_REGISTERS): Set 0 for %fp.
4226         (CALL_USED_REGISTERS): Likewise.
4227         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
4228         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
4229         (RETURN_ADDR_REGNUM): Define.
4230         (RETURN_ADDR_RTX): Use it.
4231         (INCOMING_RETURN_ADDR_REGNUM): Define.
4232         (INCOMING_RETURN_ADDR_RTX): Use it.
4233         (DWARF_FRAME_RETURN_COLUMN): Likewise.
4234         (EH_RETURN_REGNUM): Define.
4235         (EH_RETURN_STACKADJ_RTX): Use it.
4236         (EH_RETURN_HANDLER_RTX): Delete.
4237         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
4238         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
4239         Delete.
4240         (struct machine_function): Add frame_size, apparent_frame_size,
4241         frame_base_reg, frame_base_offset, n_global_fp_regs and
4242         save_local_in_regs_p fields.
4243         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
4244         sparc_frame_base_offset, sparc_n_global_fp_regs,
4245         sparc_save_local_in_regs_p): New macros.
4246         (sparc_option_override): Error out if -fcall-saved-REG is specified
4247         for Out registers.
4248         (eligible_for_restore_insn): Fix formatting.
4249         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
4250         (eligible_for_sibcall_delay): Likewise.
4251         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
4252         (sparc_legitimate_address_p): Adjust to above change.
4253         (save_global_or_fp_reg_p): New predicate.
4254         (return_addr_reg_needed_p): Likewise.
4255         (save_local_or_in_reg_p): Likewise.
4256         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
4257         (SORR_SAVE, SORR_RESTORE): Delete.
4258         (sorr_pred_t): New typedef.
4259         (sorr_act_t): New enum.
4260         (save_or_restore_regs): Rename to...
4261         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
4262         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
4263         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
4264         mechanism.  Add CFI information for double-word saves in 32-bit mode.
4265         (emit_adjust_base_to_offset): New function extracted from...
4266         (emit_save_or_restore_regs): ...this.  Rename the rest to...
4267         (emit_save_or_restore_regs_global_fp_regs): ...this.
4268         (emit_save_or_restore_regs_local_in_regs): New function.
4269         (gen_create_flat_frame_[123]): New functions.
4270         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
4271         (sparc_flat_expand_prologue): New function.
4272         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
4273         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
4274         (sparc_flat_expand_epilogue): New function.
4275         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
4276         (output_return): Likewise.
4277         (output_sibcall): Likewise.
4278         (sparc_output_mi_thunk): Likewise.
4279         (sparc_frame_pointer_required): Likewise.
4280         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
4281         function optimization.
4282         * config/sparc/sparc.md (flat): New attribute.
4283         (prologue): Add TARGET_FLAT handling.
4284         (save_register_window): Disable if TARGET_FLAT.
4285         (create_flat_frame_[123]): New patterns.
4286         (epilogue): Add TARGET_FLAT handling.
4287         (sibcall_epilogue): Likewise.
4288         (eh_return): New expander.
4289         (eh_return_internal): New insn and splitter.
4290         (return_internal): Add TARGET_FLAT handling.
4291         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
4292         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
4293         (nonlocal_goto): Add TARGET_FLAT handling.
4294         * config/sparc/t-elf: Add -mflat multilib.
4295         * config/sparc/t-leon: Likewise.
4296
4297 2011-06-10  Jan Hubicka  <jh@suse.cz>
4298
4299         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
4300         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
4301         (self_recursive_p): Use cgraph_function_node.
4302         (propagate_pure_const): Likewise.
4303         (propagate_nothrow): Likewise.
4304         * ipa-reference.c (ipa_reference_get_not_read_global): Use
4305         cgraph_function_node.
4306         (propagate_bits): Likewise.
4307         (propagate): Likewise.
4308
4309 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4310             Richard Earnshaw  <rearnsha@arm.com>
4311
4312         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
4313         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
4314         (*thumb2_movdi_vfp): Delete.
4315         (*arm_movdi_vfp_cortexa8): Delete.
4316         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
4317         (*movdi_vfp_cortexa8): Likewise.
4318
4319 2011-06-10  Richard Guenther  <rguenther@suse.de>
4320
4321         * stor-layout.c (initialize_sizetypes): Give names to all
4322         sizetype kinds.
4323
4324 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
4325
4326         PR tree-optimization/49318
4327         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
4328         irrelevant pattern statements.
4329
4330 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4331
4332         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
4333
4334         PR bootstrap/49354
4335         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
4336         to last assignment.
4337
4338 2011-06-09  Jan Hubicka  <jh@suse.cz>
4339
4340         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
4341         do not recompute reachable flag.
4342         (cgraph_finalize_function, cgraph_analyze_functions): Set
4343         redefined_extern_inline here.
4344
4345 2011-06-09  Jan Hubicka  <jh@suse.cz>
4346
4347         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
4348         (cgraph_only_called_directly_p): ... this one; bring offline.
4349         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
4350         varpool_used_from_object_file_p): Drop names from the declaratoin.
4351         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
4352         collect_callers_of_node): New.
4353         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
4354         (cgraph_edge_recursive_p): Use cgraph_function_node.
4355         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
4356         (cgraph_node_cannot_be_local_p_1): Break out from ...
4357         (cgraph_node_can_be_local_p): ... here; walk aliases.
4358         (cgraph_for_node_thunks_and_aliases): New function.
4359         (cgraph_for_node_and_aliases): New function.
4360         (cgraph_make_node_local_1): Break out from ...
4361         (cgraph_make_node_local) ... here; use
4362         cgraph_for_node_thunks_and_aliases.
4363         (cgraph_set_nothrow_flag_1): Break out from ...
4364         (cgraph_set_nothrow_flag) ... here;
4365         use cgraph_for_node_thunks_and_aliases.
4366         (cgraph_set_const_flag_1): Break out from ...
4367         (cgraph_set_const_flag) ... here;
4368         use cgraph_for_node_thunks_and_aliases.
4369         (cgraph_set_pure_flag_1): Break out from ...
4370         (cgraph_set_pure_flag) ... here;
4371         use cgraph_for_node_thunks_and_aliases.
4372         (cgraph_propagate_frequency_1): Break out from ...
4373         (cgraph_propagate_frequency) ... here; use
4374         cgraph_for_node_thunks_and_aliases.
4375         (cgraph_used_from_object_file_p): Do not care about aliases.
4376         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
4377         New functions.
4378         (collect_callers_of_node_1, collect_callers_of_node): New functions.
4379
4380 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4381
4382         PR rtl-optimization/49154
4383         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
4384         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
4385         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
4386         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
4387         * config/cris/cris.h (cris_register_move_cost): Remove
4388         !TARGET_V32 code.  Tweak comments.
4389
4390 2011-06-09  Jan Hubicka  <jh@suse.cz>
4391
4392         * cgraphbuild.c (record_eh_tables): Mark personality function as having
4393         address taken.
4394
4395 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4396
4397         PR rtl-optimization/49154
4398         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
4399         is a matching slot in the hashtable, assign it to classes_ptr.
4400
4401         PR rtl-optimization/49154
4402         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
4403         register classes.
4404         * doc/tm.texi: Regenerate.
4405
4406 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
4407
4408         PR target/49307
4409         * config/sh/sh.md (UNSPEC_CHKADD): New.
4410         (chk_guard_add): New define_insn_and_split.
4411         (symGOT_load): Use chk_guard_add instead of blockage.
4412
4413 2011-06-09  Kai Tietz  <ktietz@redhat.com>
4414
4415         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
4416
4417 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
4418
4419         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
4420
4421 2011-06-09  Wei Guozhi  <carrot@google.com>
4422
4423         PR target/46975
4424         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
4425         (peephole2 for conditional move): Generate 16 bit instructions.
4426
4427 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
4428
4429         * config/i386/i386.md (*movdi_internal_rex64): Merge
4430         alternatives 6 and 8.
4431
4432 2011-06-09  David Li  <davidxl@google.com>
4433
4434         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
4435         * passes.c (passr_eq): New function.
4436         (create_pass_tab): New function.
4437         (pass_traverse): New function.
4438         (dump_one_pass): New function.
4439         (dump_pass_list): New function.
4440         (dump_passes): New function.
4441
4442 2011-06-09  David Li  <davidxl@google.com>
4443
4444         * tree-complex.c (tree_lower_complex): Gate cleanup.
4445         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
4446         (execute_optimize_stdarg): Ditto.
4447         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
4448         (execute_cleanup_eh_1): Ditto.
4449         (execute_cleanup_eh): Ditto.
4450         * gcse.c (gate_rtl_pre): Ditto.
4451         (execute_rtl_pre): Ditto.
4452         * except.c (finish_eh_generation): Ditto.
4453         (convert_to_eh_region_ranges): Ditto.
4454         * cprop.c (one_cprop_pass): Ditto.
4455
4456 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
4457
4458         PR target/48673
4459         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
4460         in all basic blocks.
4461
4462 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4463
4464         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
4465         (HAVE_ENABLE_EXECUTE_STACK): Define.
4466         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
4467         (HAVE_ENABLE_EXECUTE_STACK): Define.
4468         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
4469         (HAVE_ENABLE_EXECUTE_STACK): Define.
4470         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
4471         (ENABLE_EXECUTE_STACK): Remove.
4472         (HAVE_ENABLE_EXECUTE_STACK): Define.
4473         [IN_LIBGCC2]: Don't include <windows.h>.
4474         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
4475         (HAVE_ENABLE_EXECUTE_STACK): Define.
4476         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
4477         (HAVE_ENABLE_EXECUTE_STACK): Define.
4478         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
4479         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
4480         (HAVE_ENABLE_EXECUTE_STACK): Define.
4481         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
4482         (HAVE_ENABLE_EXECUTE_STACK): Define.
4483         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
4484         (HAVE_ENABLE_EXECUTE_STACK): Define.
4485         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
4486         (HAVE_ENABLE_EXECUTE_STACK): Define.
4487         * config/alpha/alpha.c (alpha_trampoline_init): Test
4488         HAVE_ENABLE_EXECUTE_STACK.
4489         * config/i386/i386.c (ix86_trampoline_init): Likewise.
4490         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4491         (sparc64_initialize_trampoline): Likewise.
4492         * libgcc2.c [L_enable_execute_stack]: Remove.
4493         * system.h (ENABLE_EXECUTE_STACK): Poison.
4494         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
4495         * doc/tm.texi: Regenerate.
4496         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
4497
4498 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
4499
4500         PR middle-end/49308
4501         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
4502         variable.  After resetting and rescanning insn continue with previous
4503         statement.
4504
4505 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4506
4507         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
4508         (gcc_cv_ld_hidden): Likewise.
4509         * configure: Regenerate.
4510         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
4511         (ix86_stack_protect_fail): Mark unused.
4512         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
4513         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
4514         [TARGET_MACHO]: Don't define.
4515         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
4516         (TARGET_STACK_PROTECT_FAIL): Likewise.
4517         (rs6000_stack_protect_fail): Mark unused.
4518         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
4519         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
4520
4521 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4522
4523         * varasm.c (get_section): Print location of other conflict
4524         for section conflicts.
4525
4526 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4527
4528         * config/i386/driver-i386.c (host_detect_local_cpu):
4529         Add model 0x2d Intel CPU.
4530
4531 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4532
4533         * reginfo.c (global_regs_decl): Add.
4534         (globalize_reg): Add decl parameter. Compute location.  Pass location
4535         to warnings and add inform. Store decl in global_regs_decl.
4536         * rtl.h (globalize_reg): Update prototype.
4537         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
4538
4539 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
4540
4541         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
4542
4543 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4544
4545         PR target/49305
4546         * config/sh/predicates.md (general_movsrc_operand): Check
4547         mode for memory with indexed address for QI and HImode.
4548         (general_movdst_operand): Likewise.
4549
4550 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
4551
4552         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
4553
4554 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
4555
4556         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
4557         (num_ssa_operands): Likewise.
4558         (op_iter_init_phiuse): Forward-declare.
4559         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
4560
4561 2011-06-08  Nick Clifton  <nickc@redhat.com>
4562
4563         * doc/invoke.texi (ARM Options): Update description of
4564         -mthumb-interwork.
4565
4566 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
4567
4568         * config/i386/driver-i386.c (host_detect_local_cpu): Support
4569         unknown Intel family 0x6 CPUs.
4570
4571 2011-06-08  Martin Jambor  <mjambor@suse.cz>
4572
4573         * tree-sra.c (mark_rw_status): Removed.
4574         (analyze_access_subtree): New parameter parent instead of
4575         mark_read and mark_write, propagate from that.
4576
4577 2011-06-08  Julian Brown  <julian@codesourcery.com>
4578
4579         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
4580         for double-precision helper functions in hard-float mode if only
4581         single-precision arithmetic is supported in hardware.
4582
4583 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
4584
4585         PR rtl-optimization/49303
4586         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
4587         code_motion_path_driver returned 0 or 1.
4588         (sel_region_finish): Clear h_d_i_d.
4589
4590 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4591
4592         * config/sh/sh.c (prepare_move_operands): Set pic register
4593         appropriately for global and local dynamic tls models even
4594         if flag_pic is unset.
4595
4596 2011-06-07  Jason Merrill  <jason@redhat.com>
4597
4598         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
4599
4600 2011-06-07  Xinliang David Li  <davidxl@google.com>
4601         * passes.c (enable_disable_pass): Handle assembler name.
4602         (is_pass_explicitly_enabled_or_disabled): Ditto.
4603
4604 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4605
4606         PR tree-optimization/48497
4607         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
4608
4609 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4610
4611         PR tree-optimization/46728
4612         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
4613         to use gimple_val_nonnegative_real_p.
4614         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
4615         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
4616
4617 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
4618
4619         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
4620
4621 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
4622
4623         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
4624         constant vectors.
4625
4626 2011-06-07  Richard Guenther  <rguenther@suse.de>
4627
4628         * stor-layout.c (initialize_sizetypes): Initialize all
4629         sizetypes based on target definitions.
4630         (set_sizetype): Remove.
4631         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
4632         * tree.h (set_sizetype): Remove.
4633
4634 2011-06-07  Nick Clifton  <nickc@redhat.com>
4635
4636         * config.gcc: Unify V850 architecture options and add support for
4637         newer V850 architectures.
4638         * config/v850/t-v850e: Delete.
4639
4640 2011-06-07  Richard Guenther  <rguenther@suse.de>
4641
4642         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
4643         Call set_sizetype from here.
4644
4645 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
4646
4647         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
4648         (*maddhisi4tb, *maddhisi4tt): New define_insns.
4649
4650 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
4651             Andrew Stubbs  <ams@codesourcery.com>
4652
4653         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
4654         multiplies.
4655         * doc/md.texi (Canonicalization of Instructions): Document widening
4656         multiply canonicalization.
4657
4658 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
4659
4660         PR gcov-profile/49299
4661         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
4662
4663 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
4664
4665         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
4666         a pointer.
4667         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
4668         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
4669         vect_recog_pow_pattern): Likewise.
4670         (vect_pattern_recog_1): Remove declaration.
4671         (widened_name_p): Remove declaration.  Add new argument to specify
4672         whether to check that both types are either signed or unsigned.
4673         (vect_recog_widen_mult_pattern): Update documentation.  Handle
4674         unsigned patterns and multiplication by constants.
4675         (vect_pattern_recog_1): Update vect_recog_func references.  Use
4676         statement information from the statement returned from pattern
4677         detection functions.
4678         (vect_pattern_recog): Update vect_recog_func reference.
4679         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
4680         multiplication by a constant use the type of the other operand.
4681
4682 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
4683
4684         PR rtl-optimization/49145
4685         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
4686
4687 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
4688
4689         PR debug/49262
4690         * dwarf2out.c (native_encode_initializer): Decrement count in each
4691         iteration.
4692
4693         PR debug/49294
4694         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
4695         non-MODE_INT modes.
4696
4697         PR c++/49264
4698         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
4699         if stmt folded into nothing.
4700         * tree-inline.c (fold_marked_statements): If a builtin at the end of
4701         a bb folded into nothing, just update cgraph edges and move to next bb.
4702         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
4703         to be NULL.  Don't compute count and frequency if new_call is NULL.
4704
4705 2011-06-04  Diego Novillo  <dnovillo@google.com>
4706
4707         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
4708         (cgraph.o): Likewise.
4709         (cgraphunit.o): Likewise.
4710         * cgraphunit.c: Include lto-streamer.h
4711         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
4712         if LTO is enabled.
4713         * lto-streamer-in.c (unpack_value_fields): Call
4714         streamer_hooks.unpack_value_fields if set.
4715         (lto_materialize_tree): For unhandled nodes, first try to
4716         call lto_streamer_hooks.alloc_tree, if it exists.
4717         (lto_input_ts_decl_common_tree_pointers): Move reading of
4718         DECL_INITIAL to lto_streamer_read_tree.
4719         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
4720         (lto_streamer_read_tree): New.
4721         (lto_reader_init): Rename from lto_init_reader.
4722         Move initialization code to lto/lto.c.
4723         * lto-streamer-out.c (pack_value_fields): Call
4724         streamer_hooks.pack_value_fields if set.
4725         (lto_output_tree_ref): For tree nodes that are not normally indexable,
4726         call streamer_hooks.indexable_with_decls_p before giving up.
4727         (lto_output_ts_decl_common_tree_pointers): Move handling
4728         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
4729         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
4730         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
4731         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
4732         (lto_streamer_write_tree): New.
4733         (lto_output): Call lto_streamer_init directly.
4734         (lto_writer_init): Remove.
4735         * lto-streamer.c (streamer_hooks): New.
4736         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
4737         instead of lto_preload_common_nodes.
4738         (lto_is_streamable): Move from lto-streamer.h
4739         (lto_streamer_hooks_init): New.
4740         (streamer_hooks): New.
4741         (streamer_hooks_init): New.
4742         * lto-streamer.h (struct output_block): Forward declare.
4743         (struct lto_input_block): Likewise.
4744         (struct data_in): Likewise.
4745         (struct bitpack_d): Likewise.
4746         (struct streamer_hooks): Declare.
4747         (streamer_hooks): Declare.
4748         (lto_streamer_hooks_init): Declare.
4749         (lto_streamer_write_tree): Declare.
4750         (lto_streamer_read_tree): Declare.
4751         (streamer_hooks_init): Declare.
4752         (lto_is_streamable): Move to lto-streamer.c
4753
4754 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4755
4756         * longlong.h (smul_ppmm): The resulting register pair contains the
4757         higher order word first.
4758
4759 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4760
4761         PR tree-optimization/46728
4762         * builtins.c (powi_table): Remove.
4763         (powi_lookup_cost): Remove.
4764         (powi_cost): Remove.
4765         (expand_powi_1): Remove.
4766         (expand_powi): Remove.
4767         (expand_builtin_pow_root): Remove.
4768         (expand_builtin_pow): Remove.
4769         (expand_builtin_powi): Eliminate handling of constant exponent.
4770         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
4771
4772 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4773
4774         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
4775
4776 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4777
4778         * dce.c (reset_unmarked_insns_debug_uses): New.
4779         (delete_unmarked_insns): Skip debug insns.
4780         (prescan_insns_for_dce): Likewise.
4781         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
4782         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
4783         active reg can be found.
4784         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
4785         (convert_regs_1): Use it.
4786
4787 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4788
4789         * tree-pretty-print.c (dump_function_header): Add flags.
4790         Don't dump decl_uid with nouid.
4791         * tree-pretty-print.h (dump_function_header): Adjust.
4792         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
4793         * passes.c (pass_init_dump_file): Pass dump_flags on.
4794         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
4795
4796 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4797
4798         PR bootstrap/49270
4799         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
4800
4801 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
4802
4803         PR tree-optimization/49243
4804         * calls.c (setjmp_call_p): Also check if fndecl has the
4805         returns_twice attribute.
4806
4807 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4808
4809         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
4810         -ffast-math etc.
4811
4812 2011-06-06  Richard Henderson  <rth@redhat.com>
4813             Georg-Johann Lay  <avr@gjlay.de>
4814
4815         PR target/42210
4816         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
4817         New predicates.
4818         * config/avr/avr.md ("insv"): New insn expander.
4819         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
4820         "*insv.not.io", "*insv.reg"): New insns.
4821
4822 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
4823
4824         PR target/49285
4825         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
4826         to nonimmediate_operand from memory_operand for the operand that is to
4827         be forced to memory by the expander.  Lose the constraints.
4828
4829 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
4830
4831         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
4832         EH return when delayed branches are disabled.
4833
4834 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
4835
4836         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
4837         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
4838         calculation.
4839         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
4840         Simplify MODE_V1DF and MODE_V2SF handling.
4841         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
4842         Simplify MODE_SF handling.
4843
4844 2011-06-04  Jan Hubicka  <jh@suse.cz>
4845
4846         PR tree-optimization/48893
4847         PR tree-optimization/49091
4848         PR tree-optimization/49179
4849         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
4850         Bounds check.
4851
4852 2011-06-04  Jan Hubicka  <jh@suse.cz>
4853
4854         PR lto/48954
4855         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
4856         bitmaps.
4857
4858 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
4859
4860         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
4861
4862 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
4863
4864         PR target/49281
4865         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
4866         to be strictly smaller than 1 << shiftcount.
4867
4868 2011-06-04  Jan Hubicka  <jh@suse.cz>
4869
4870         PR tree-optimize/48929
4871         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
4872         of empty predicate.
4873
4874 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
4875
4876         PR debug/48333
4877         * calls.c (emit_call_1): Prefer the __builtin declaration of
4878         builtin functions.
4879
4880 2011-06-03   Diego Novillo  <dnovillo@google.com>
4881
4882         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
4883         (lto_input_tree_pointers): Likewise.
4884         * lto-streamer-out.c (pack_value_fields): Likewise.
4885         (lto_output_tree_pointers): Likewise.
4886         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
4887         and OPTIMIZATION_NODE.
4888
4889 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4890
4891         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
4892         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
4893         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
4894         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
4895         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
4896         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
4897         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
4898         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
4899         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
4900         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
4901         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
4902         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
4903         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
4904         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
4905         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
4906         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
4907         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
4908         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
4909         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
4910         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
4911         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
4912         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
4913         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
4914         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
4915         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
4916         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
4917         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
4918         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
4919         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
4920         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
4921         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
4922         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
4923         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
4924         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
4925         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
4926         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
4927         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
4928         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
4929         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
4930         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
4931         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
4932         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
4933         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
4934         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
4935         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
4936         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
4937         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
4938         * system.h (MD_UNWIND_SUPPORT): Poison.
4939         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
4940         * doc/tm.texi: Regenerate.
4941         * unwind-dw2.c: Include md-unwind-support.h instead of
4942         MD_UNWIND_SUPPORT.
4943         * config/ia64/unwind-ia64.c: Likewise.
4944         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4945
4946 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
4947
4948         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
4949
4950 2011-06-03  Richard Henderson  <rth@redhat.com>
4951             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4952
4953         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
4954         (sigill_hdlr): Correct insn, insn size.
4955         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
4956
4957 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4958
4959         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
4960         t-slibgcc-dummy.
4961         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
4962         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
4963         * config/mips/t-iris: Remove.
4964         * config/mips/t-irix6: New file.
4965         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
4966
4967 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4968
4969         * Makefile.in (LIB2ADDEHDEP): Remove.
4970         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
4971         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
4972         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
4973         * config/t-darwin (LIB2ADDEHDEP): Remove.
4974         * config/t-freebsd (LIB2ADDEHDEP): Remove.
4975         * config/t-linux (LIB2ADDEHDEP): Remove.
4976
4977 2011-06-03  Diego Novillo  <dnovillo@google.com>
4978
4979         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
4980         (lto_register_var_decl_in_symtab): Likewise.
4981         (lto_register_function_decl_in_symtab): Likewise.
4982         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
4983         logic to uniquify_nodes.
4984
4985 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4986
4987         * config/alpha/t-osf5: Remove.
4988         * config/alpha/t-osf-pthread: Remove.
4989         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
4990         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
4991
4992 2011-06-03  Julian Brown  <julian@codesourcery.com>
4993
4994         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
4995         (strongarm1110): Use strongarm tuning.
4996         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
4997         * config/arm/arm.c (arm_strongarm_tune): New.
4998         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
4999         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
5000         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
5001         setting, using previous defaults or 1 for Cortex-A5.
5002         (arm_option_override): Set max_insns_skipped from current tuning.
5003
5004 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
5005
5006         * doc/install.texi (Options specification): Document --with-specs.
5007
5008 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5009
5010         * config/arm/neon.md (orndi3_neon): Actually split it.
5011
5012 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
5013
5014         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
5015         * var-tracking.c (reverse_op): Limite recurse depth to 5.
5016
5017 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
5018
5019         PR debug/47590
5020         * target.def (delay_sched2, delay_vartrack): New.
5021         * doc/tm.texi.in: Update.
5022         * doc/tm.texi: Rebuild.
5023         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
5024         * var-tracking.c (gate_handle_var_tracking): Likewise.
5025         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
5026         (bfin_flag_var_tracking): Drop.
5027         (output_file_start): Don't save and override flag_var_tracking.
5028         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
5029         (bfin_reorg): Test original variables.
5030         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
5031         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
5032         (ia64_flag_var_tracking): Drop.
5033         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
5034         (ia64_file_start): Don't save and override flag_var_tracking.
5035         (ia64_override_options_after_change): Ditto
5036         flag_schedule_insns_after_reload.
5037         (ia64_reorg): Test original variables.
5038         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
5039         (picochip_flag_var_tracking): Drop.
5040         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
5041         (picochip_option_override): Don't save and override
5042         flag_schedule_insns_after_reload.
5043         (picochip_asm_file_start): Ditto flag_var_tracking.
5044         (picochip_reorg): Test original variables.
5045         * config/spu/spu.c (spu_flag_var_tracking): Drop.
5046         (TARGET_DELAY_VARTRACK): Define.
5047         (spu_var_tracking): New.
5048         (spu_machine_dependent_reorg): Call it.
5049         (asm_file_start): Don't save and override flag_var_tracking.
5050
5051 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
5052
5053         PR target/49163
5054         * config/sh/predicates.md (general_movsrc_operand): Return 0
5055         for memory and memory subreg of which address is an invalid
5056         indexed address for QI and HImode.
5057         (general_movdst_operand): Likewise.
5058
5059 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
5060
5061         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
5062         edges only, when there is a non-local label in the function.
5063         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
5064
5065 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
5066
5067         * config/i386/constraints.md (Y3): New register constraint.
5068         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
5069         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
5070         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
5071         *sse2_interleave_lowv2df.
5072
5073 2011-06-02  Julian Brown  <julian@codesourcery.com>
5074
5075         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
5076         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
5077         (arm_cortex_a5_tune): New.
5078
5079 2011-06-02  Julian Brown  <julian@codesourcery.com>
5080
5081         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
5082         * config/arm/arm.c (arm_default_branch_cost): New.
5083         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
5084         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
5085         (arm_fa726_tune): Set branch_cost field using
5086         arm_default_branch_cost.
5087         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
5088         current_tune structure.
5089         * dojump.c (tm_p.h): Include file.
5090
5091 2011-06-02  Julian Brown  <julian@codesourcery.com>
5092
5093         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
5094         tuning.
5095         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
5096         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
5097         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
5098         field.
5099         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
5100         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
5101         (arm_fa726te_tune): Add prefer_constant_pool setting.
5102         (arm_v6t2_tune, arm_cortex_tune): New.
5103         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
5104         prefer_constant_pool setting.
5105
5106 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
5107
5108         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
5109         switch statement.
5110         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
5111         (*movdf_internal) <case 6,7,8>: Ditto.
5112
5113         * config/i386/constraints.md (Y4): New register constraint.
5114         * config/i386/sse.md (vec_set<mode>_0): Merge with
5115         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
5116         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
5117         *vec_extractv2di_1_sse.
5118         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
5119         and *vec_concatv2di_rex64_sse.
5120
5121 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
5122
5123         PR target/48807
5124         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
5125         of cgraph_local_info for null before attempting to use it.
5126
5127 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
5128
5129         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
5130         (current_function_dynamic_alloc_count): Delete.
5131         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
5132         (expand_builtin_nonlocal_goto): Remove obsolete comment.
5133         (expand_builtin_update_setjmp_buf): Remove dead code.
5134         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
5135         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
5136         support.
5137         * function.c (instantiate_virtual_regs): Likewise.
5138         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
5139         for a block with a single abnormal incoming edge.
5140         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
5141         (SETJMP_VIA_SAVE_AREA): Delete.
5142         * config/sparc/sparc-protos.h (load_got_register): Declare.
5143         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5144         (load_got_register): Make global.
5145         (sparc_frame_pointer_required): Add 'static'.
5146         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
5147         (sparc_builtin_setjmp_frame_value): New function.
5148         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
5149         (save_stack_nonlocal): New expander.
5150         (restore_stack_nonlocal): Likewise.
5151         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
5152         (nonlocal_goto_internal): New insn.
5153         (goto_handler_and_restore): Delete.
5154         (builtin_setjmp_setup): Likewise.
5155         (do_builtin_setjmp_setup): Likewise.
5156         (setjmp): Likewise.
5157         (builtin_setjmp_receiver): New expander.
5158
5159 2011-06-01  David Li  <davidxl@google.com>
5160
5161         PR middle-end/49261
5162         * tree-pretty-print.c (dump_function_header): Format cleanup.
5163
5164 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5165
5166         PR target/49238
5167         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
5168         needed when original operands are used for msw_skip comparison.
5169
5170 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
5171
5172         PR debug/49250
5173         * var-tracking.c (add_uses, add_stores): Don't call
5174         cselib_subst_to_values on ENTRY_VALUE.
5175
5176 2011-06-01  Diego Novillo  <dnovillo@google.com>
5177
5178         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
5179         output_record_start with LTO_null instead of output_zero.
5180         (lto_output_ts_binfo_tree_pointers): Likewise.
5181         (lto_output_tree): Likewise.
5182         (output_eh_try_list): Likewise.
5183         (output_eh_region): Likewise.
5184         (output_eh_lp): Likewise.
5185         (output_eh_regions): Likewise.
5186         (output_bb): Likewise.
5187         (output_function): Likewise.
5188         (output_unreferenced_globals): Likewise.
5189         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
5190         instead of NUM_TREE_CODES.
5191         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
5192         (lto_output_int_in_range): Change << to >> when shifting VAL.
5193
5194 2011-06-01  Diego Novillo  <dnovillo@google.com>
5195
5196         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
5197         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
5198
5199 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5200
5201         PR target/45074
5202         * optabs.h (valid_multiword_target_p): Declare.
5203         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
5204         doing multi-word operations.
5205         * optabs.c (expand_binop): Likewise.
5206         (expand_doubleword_bswap): Likewise.
5207         (expand_absneg_bit): Likewise.
5208         (expand_unop): Likewise.
5209         (expand_copysign_bit): Likewise.
5210         (multiword_target_p): New function.
5211
5212 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5213
5214         PR rtl-optimization/48830
5215         PR rtl-optimization/48808
5216         PR rtl-optimization/48792
5217         * reload.c (push_reload): Check contains_reg_of_mode.
5218         * reload1.c (strip_paradoxical_subreg): New function.
5219         (gen_reload_chain_without_interm_reg_p): Use it to handle
5220         paradoxical subregs.
5221         (emit_output_reload_insns, gen_reload): Likewise.
5222
5223 2011-06-01  David Li  <davidxl@google.com>
5224
5225         * predict.c : Change pass name
5226         * ipa.c: Ditto.
5227         * dce.c: Ditto.
5228         * tree-profile.c: Ditto.
5229         * except.c: Ditto.
5230
5231 2011-06-01  David Li  <davidxl@google.com>
5232
5233         * tree-pretty-print.c (dump_function_header): New function.
5234         * final.c (rest_of_clean_state): Use header dumper.
5235         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
5236         * passes.c (pass_init_dump_file): Use header dumper.
5237
5238 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
5239
5240         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
5241         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
5242         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
5243         New functions.
5244         (mem_loc_descriptor): Use them.
5245
5246         * var-tracking.c (create_entry_value): New function.
5247         (vt_add_function_parameter): Use it.
5248
5249 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5250
5251         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
5252         Include <signal.h>, <ucontext.h>.
5253         (sigill_caught): Define.
5254         (sigill_hdlr): New function.
5255         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
5256         insns can be executed.
5257         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
5258         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
5259
5260 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5261
5262         * config/t-slibgcc-darwin: Move to ...
5263         * config/t-slibgcc-dummy: ... this.  Clarify comments.
5264         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
5265         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
5266         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
5267         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
5268         Remove i386/t-crtstuff from tmake_file.
5269         (i[34567]86-*-solaris2*): Remove t-svr4,
5270         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
5271         t-slibgcc-dummy.
5272         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
5273         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
5274         sparc/t-crtfm from tmake_file.
5275         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
5276         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
5277         Remove extra_parts.
5278         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
5279         * config/i386/t-nwld (SHLIB_LINK): Remove.
5280         * config/i386/t-rtems-i386: Rename to ...
5281         * config/i386/t-rtems: ... this.
5282         ($(T)crti.o, $(T)crtn.o): Remove.
5283         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
5284         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
5285         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
5286         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
5287         EXTRA_MULTILIB_PARTS): Remove.
5288         * config/sparc/t-sol2-64: Likewise.
5289         * config/sparc/t-sol2: Remove.
5290         * config/sparc/t-crtin: Remove.
5291         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
5292         * config/i386/gmon-sol2.c: Remove.
5293         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
5294         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
5295         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
5296         * config/i386/sol2-gc1.asm: Remove.
5297         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
5298         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
5299         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
5300         * config/t-slibgcc-sld: Remove.
5301
5302 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
5303
5304         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
5305         base_type_for_mode with op_mode instead of mode.
5306
5307 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
5308
5309         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
5310         Cortex-A15.
5311         * config/arm/arm-tune.md: Regenerate.
5312         * config/arm/arm-tables.opt: Regenerate.
5313         * config/arm/arm.c (FL_DIV): Rename...
5314         (FL_THUMB_DIV): ... to this.
5315         (FL_ARM_DIV): Define.
5316         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
5317         (arm_arch_hwdiv): Remove.
5318         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
5319         (arm_issue_rate): Add cortexr5.
5320         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
5321         __ARM_ARCH_EXT_IDIV__.
5322         (TARGET_IDIV): Define.
5323         (arm_arch_hwdiv): Remove.
5324         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
5325         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
5326         (divsi3, udivsi3): New patterns.
5327         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
5328         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
5329
5330 2011-06-01  Martin Jambor  <mjambor@suse.cz>
5331
5332         * ipa-utils.c (ipa_dfs_info): New field scc_no.
5333         * ipa-utils.c (searchc): Set scc_no.
5334
5335 2011-06-01  Martin Jambor  <mjambor@suse.cz>
5336
5337         * ipa-utils.c (searchc_env): New field allow_overwritable.
5338         (searchc): do not ignore edges to overwritable nodes if indicated
5339         by env->allow_overwritable.
5340         (ipa_reduced_postorder): Set env.allow_overwritable.
5341
5342 2011-06-01  Richard Guenther  <rguenther@suse.de>
5343
5344         * tree.c (free_lang_data): Do not reset boolean_type_node nor
5345         char_type_node.
5346         * lto-streamer.c (lto_record_common_node): Take node pointer,
5347         do not register types.
5348         (lto_preload_common_nodes): Explicitly skip preloading nodes
5349         that differ between frontends.
5350
5351 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
5352
5353         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
5354         NON_FLOAT_REGS.
5355
5356 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
5357
5358         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
5359         parameter value for dump. Dump cost on outermost call only.
5360         (rs6000_memory_move_cost): Dump cost on outermost call only.
5361
5362 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
5363
5364         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
5365         DW_OP_GNU_convert ops.
5366
5367         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
5368         cselib_preserve_constants.
5369         (cselib_lookup_1): If cselib_preserve_constants,
5370         a new VALUE is being created for REG and there is a VALUE for the
5371         same register in wider mode, add another loc with lowpart SUBREG of
5372         the wider VALUE.
5373         (cselib_subst_to_values): Handle ENTRY_VALUE.
5374         * var-tracking.c  (replace_expr_with_values): Return NULL for
5375         ENTRY_VALUE too.
5376         * dwarf2out.c (convert_descriptor_to_signed): New function.
5377         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
5378         instead of two shifts.
5379         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
5380         the right mode if needed.
5381         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
5382         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
5383         convert_descriptor_to_signed.
5384         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
5385         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
5386
5387         PR target/48688
5388         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
5389
5390 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5391
5392         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
5393         of X87MODEI12 and SWI48x instead of SSEMODEI24.
5394         (SWI248x): New mode iterator, rename from X87MODEI.
5395         (X87MODEI): Remove mode iterator.
5396         (X87MODEI12): Ditto.
5397         (SSEMODEI24): Ditto.
5398
5399 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5400
5401         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
5402         * doc/invoke.texi: Document max-vartrack-expr-depth.
5403         * var-tracking.c (EXPR_DEPTH): New.
5404         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
5405
5406 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5407
5408         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
5409         * config/i386/sse.md: Add n to negated FMA pattern names.
5410
5411 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5412
5413         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
5414
5415 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5416
5417         * gengtype-state.c (read_state_params_structs): Initialize previous.
5418
5419 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5420
5421         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
5422         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
5423
5424 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5425
5426         * config/i386/i386.md (*movtf_internal): Avoid allocating general
5427         registers.  Penalize F*r->o alternative to prevent partial memory
5428         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
5429         CONST_DOUBLE immediates when optimizing function for size.  Do not move
5430         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
5431         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
5432         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
5433         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
5434         alternatives.
5435         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
5436
5437         (fp_register_operand splitters): Use fp_register_operand
5438         constraint.  Do not use FP_REG_P in insn condition.
5439         (any_fp_register_operand splitters): Use any_fp_register_operand
5440         constraint.  Do not use ANY_FP_REG_P in insn condition.
5441
5442 2011-05-31  Jan Hubicka  <jh@suse.cz>
5443
5444         * cgraph.h (cgraph_inline_failed_t): Give enum a name
5445         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
5446         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
5447         (lto_output_edge): Use output_enum and var_len_unsigned.
5448         (lto_output_varpool_node): Likewise.
5449         (input_overwrite_node): Do not take resolution parameter;
5450         extract it from a bitpack.
5451         (input_node): Do not read resolution; use input_enum and
5452         var_len_unsigned.
5453         (input_varpool_node): Likewise.
5454         (input_edge): Likewise.
5455         (input_cgraph_1): Likewise.
5456
5457 2011-05-31  Richard Guenther  <rguenther@suse.de>
5458
5459         * gimple.c (gimple_register_canonical_type): Do not register
5460         any types via gimple_register_type.
5461
5462 2011-05-31  Jan Hubicka  <jh@suse.cz>
5463
5464         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
5465         of thunks.
5466
5467 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
5468
5469         PR rtl-optimization/49235
5470         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
5471         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
5472
5473 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
5474
5475         PR tree-optimization/49093
5476         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
5477         data references.
5478
5479 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
5480
5481         PR debug/49047
5482         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
5483         for concrete functions containing the code of cloned functions.
5484
5485 2011-05-31  Richard Guenther  <rguenther@suse.de>
5486
5487         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
5488         to ...
5489         (forward_propagate_into_comparison_1): ... this.
5490         (forward_propagate_comparison): Rename to ...
5491         (forward_propagate_into_comparison): ... this.  Split out
5492         real forward propagation code to ...
5493         (forward_propagate_comparison): ... this.
5494         (forward_propagate_into_gimple_cond): Remove looping.
5495         (forward_propagate_into_cond): Likewise.
5496         (simplify_not_neg_expr): Return whether we have done something.
5497         (simplify_gimple_switch): Likewise.
5498         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
5499         (ssa_forward_propagate_and_combine): ... this.  Re-structure
5500         to do a forward forward-propagation walk on BBs and a backward
5501         stmt combining walk on BBs.  Consistently re-scan changed statements.
5502         (pass_forwprop): Adjust.
5503
5504 2011-05-30  Ian Lance Taylor  <iant@google.com>
5505
5506         * godump.c (go_format_type): Correct length of name added to
5507         obstack for anonymous field.
5508
5509 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5510
5511         PR target/49186
5512         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
5513         part of the second operand is 0.
5514
5515 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
5516
5517         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
5518         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
5519         to memory for !TARGET_MEMORY_MISMATCH_STALL.
5520         (*movdf_internal_rex64): Do not penalize F->r alternative.
5521         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
5522         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
5523         when optimizing function for size.  Do not move CONST_DOUBLEs
5524         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
5525         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
5526         SUBREGs.  Do not check for MEM_P operands in the insn condition,
5527         check for ANY_FP_REGNO_P instead.
5528         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
5529         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
5530         function for speed.
5531         * config/i386/i386.c (ix86_option_override_internal): Do not
5532         set TARGET_INTEGER_DFMODE_MOVES here.
5533
5534 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
5535
5536         PR target/49168
5537         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
5538
5539 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
5540
5541         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
5542         DW_TAG_rvalue_reference_type even for
5543         -gdwarf-4 -fno-debug-types-section.
5544
5545 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5546
5547         PR tree-optimization/46728
5548         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
5549         (build_and_insert_binop): New.
5550         (gimple_expand_builtin_pow): Reorder args for
5551         build_and_insert_call; use build_and_insert_binop; add more
5552         optimizations for fractional exponents.
5553
5554 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
5555
5556         PR bootstrap/49190
5557
5558         Revert:
5559         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5560
5561         * tree.h (struct tree_identifier): Inherit from tree_typed, not
5562         tree_common.
5563         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
5564         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
5565         TS_BASE instead of TS_COMMON.
5566         * varasm.c (assemble_name): Remove assert.
5567
5568 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
5569
5570         * config.gcc: Keep obselete list sorted.
5571
5572 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
5573             Eric Botcazou  <ebotcazou@adacore.com>
5574
5575         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
5576         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
5577         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
5578         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
5579         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
5580
5581 2011-05-30  Richard Guenther  <rguenther@suse.de>
5582
5583         * gimple.c (gimple_types_compatible_p_1): Compare record
5584         and union type members properly.
5585
5586 2011-05-30  Richard Guenther  <rguenther@suse.de>
5587
5588         PR tree-optimization/49210
5589         * ipa-split.c (split_function): Care for the case where the call
5590         result is not trivially convertible to the result holding variable.
5591
5592 2011-05-30  Richard Guenther  <rguenther@suse.de>
5593
5594         PR tree-optimization/49218
5595         * tree-vrp.c (adjust_range_with_scev): Properly check whether
5596         overflow occured.
5597
5598 2011-05-30  Richard Guenther  <rguenther@suse.de>
5599
5600         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
5601         New function split out from ...
5602         (forward_propagate_into_gimple_cond): ... here.  Adjust.
5603         (forward_propagate_into_cond): Likewise.
5604         (forward_propagate_comparison): Also propagate into
5605         comparisons on assignment RHS.  Change return value to
5606         behave similar to forward_propagate_into_cond.
5607         (tree_ssa_forward_propagate_single_use_vars): Handle
5608         strict-overflow warnings properly for forward_propagate_comparison.
5609
5610 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5611
5612         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
5613         from plugin linker.
5614         * configure: Regenerate.
5615
5616 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
5617
5618         PR tree-optimization/49199
5619         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
5620         non-reduction operands are either defined in the loop or by induction.
5621
5622 2011-05-29  Xinliang David Li  <davidxl@google.com>
5623
5624         * opts-global.c (handle_common_deferred_options): Handle new options.
5625         * passes.c (register_one_dump_file): Call register_pass_name.
5626         (execute_one_pass): Check explicit enable/disable flag.
5627         (passr_hash): New function.
5628         (passr_eq): Ditto.
5629         (register_pass_name): Ditto.
5630         (get_pass_by_name): Ditto.
5631         (pass_hash): Ditto.
5632         (pass_eq): Ditto.
5633         (enable_pass): Ditto.
5634         (disable_pass): Ditto.
5635         (is_pass_explicitly_enabled_or_disabled): Ditto.
5636
5637 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
5638
5639         * config/i386/i386.md (*movoi_internal_avx): Use
5640         standard_sse_constant_opcode for alternative 0.
5641         (*movti_internal_sse): Ditto.
5642         (*movti_internal_rex64): Use standard_sse_constant_opcode for
5643         alternative 2.
5644         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
5645         sselog1 type moves.
5646         (*movsi_internal): Ditto.
5647         (*movdi_internal): Ditto.  Add ssecvt type moves.
5648
5649 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5650
5651         PR target/48830
5652         * rtlanal.c (simplify_subreg_regno): Adjust comment.
5653
5654 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
5655
5656         PR rtl-optimization/49095
5657         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
5658         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
5659
5660 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
5661
5662         PR target/43995
5663         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
5664         recurse_p argument.  Only follow register copies if it is set,
5665         and prevent mips_find_pic_call_symbol from recursing.
5666         (mips_find_pic_call_symbol): Add a recurse_p argument.
5667         Pass it to mips_pic_call_symbol_from_set.
5668         (mips_annotate_pic_calls): Update accordingly.
5669
5670 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
5671
5672         * emit-rtl.c (try_split): Use a loop to search for
5673         NOTE_INSN_CALL_ARG_LOCATIONs.
5674
5675 2011-05-29  Richard Guenther  <rguenther@suse.de>
5676
5677         PR tree-optimization/49217
5678         * ipa-pure-const.c (propagate_pure_const): Fix typos.
5679
5680 2011-05-28  Jan Hubicka  <jh@suse.cz>
5681
5682         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
5683         length.
5684         (string_slot_free): Remove
5685         (create_output_block): Initialize obstack.
5686         (destroy_output_block): Free obstack.
5687         (lto_string_index): Add PERSISTENT parameter; do not duplicate
5688         the string unless it needs to be added into the hash.
5689         (lto_output_string_with_length): Add persistent attribute;
5690         handle NULL strings.
5691         (lto_output_string): Add PERSISTENT parameter.
5692         (output_string_cst, output_identifier): Simplify.
5693         (lto_output_location_bitpack): Update.
5694         (lto_output_builtin_tree): Update.
5695         * lto-streamer.h (struct output_block): Add obstack.
5696         (lto_output_string, lto_output_string_with_length): Remove
5697         declarations; functions are static now.
5698
5699 2011-05-28  Jan Hubicka  <jh@suse.cz>
5700
5701         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
5702         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
5703         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
5704         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
5705         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
5706         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
5707         unpack_ts_decl_with_vis_value_fields,
5708         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
5709         lto_get_builtin_tree): Use enum and variable length i/o.
5710         * basic-block.h (profile_status_d): Add PROFILE_LAST.
5711         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
5712         New functions.
5713         (bp_pack_enum, bp_unpack_enum): New macros.
5714
5715 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5716
5717         * genrecog.c: Remove redundant forward declarations.
5718
5719 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5720
5721         * config.gcc: Deprecate mips*-*-openbsd*.
5722
5723 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5724
5725         PR bootstrap/49195
5726         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
5727         for match_op_dup.
5728
5729 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
5730
5731         PR middle-end/48981
5732         * gengtype.c (vec_prefix_type): New function.
5733         (note_def_vec): Use vec_prefix_type and change the length
5734         attribute to be based on the prefix.
5735         * vec.c: Include coretypes.h before vec.h.
5736         (struct vec_prefix): Remove.
5737         (vec_gc_p_reserve): Change the offsetof to sizeof.
5738         (vec_gc_p_reserve_exact): Likewise.
5739         (vec_heap_p_reserve): Likewise.
5740         (vec_heap_p_reserve_exact): Likewise.
5741         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
5742         (vec_stack_p_reserve): Change the offsetof to sizeof.
5743         (vec_stack_p_reserve_exact): Likewise.
5744         * vec.h (struct vec_prefix): New struct definition.
5745         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
5746         (VEC_T_GTY(T,B)): Likewise.
5747         (DEF_VEC_FUNC_P(T)): Use prefix field.
5748         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
5749         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
5750
5751 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5752
5753         PR tree-optimization/46728
5754         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
5755         (powi_as_mults): Add gimple_set_location.
5756         (build_and_insert_call): New.
5757         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
5758         0.5, 0.25, 0.75, 1./3., or 1./6.
5759
5760 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
5761
5762         * doc/contrib.texi: Update copyright years.
5763         (Contributors): Add Zdenek Sojka.
5764
5765 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
5766
5767         * c-decl.c (c_push_function_context): Copy the current statement
5768         list stack.
5769         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
5770         (finish_struct): Call building_stmt_list_p instead of checking
5771         cur_stmt_list.
5772         * c-parser.c (c_parser_postfix_expression): Likewise.
5773         * c-typeck.c (c_end_compound_stmt): Likewise.
5774         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
5775         * tree-iterator.c (stmt_list_cache): Change to a VEC.
5776         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
5777         (free_stmt_list): Likewise.
5778         * tree.h (struct tree_statement_list): Include typed_tree instead
5779         of tree_common.
5780         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
5781         as TS_TYPED instead of TS_COMMON.
5782
5783 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5784             Uros Bizjak  <ubizjak@gmail.com>
5785
5786         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
5787         (HAVE_AS_IX86_TLSGDPTL): Define.
5788         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
5789         (HAVE_AS_IX86_TLSLDMPLT): Define.
5790         * configure: Regenerate.
5791         * config.in: Regenerate.
5792         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
5793         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
5794         TARGET_SUN_TLS, use @tlsgdplt or @plt.
5795         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
5796         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
5797         @tlsldmplt or @plt.
5798         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
5799
5800 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
5801
5802         * sched-int.h (struct _haifa_deps_insn_data): New members cond
5803         and reverse_cond.
5804         (INSN_COND, INSN_REVERSE_COND): New macros.
5805         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
5806         once.
5807         (sched_get_condition_with_rev): Cache the results, and look them up
5808         if possible.
5809         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
5810         are clobbered by the current insn.
5811         * target.def (exposed_pipline): New sched data hook.
5812         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
5813         * doc/tm.texi: Regenerate.
5814
5815 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5816
5817         PR tree-optimization/49170
5818         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
5819         sincos or cexp.
5820
5821 2011-05-27  Richard Guenther  <rguenther@suse.de>
5822
5823         PR middle-end/49189
5824         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
5825         of comparisons.
5826
5827 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
5828
5829         * haifa-sched.c (sched_scan_info): Remove.
5830         (schedule_block): Call sched_extend_luids rather than sched_init_luids
5831         with NULL args.
5832         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
5833         Remove functions.
5834         (sched_scan): Remove.
5835         (sched_extend_luids): Renamed from luids_extend_insn and no longer
5836         static.  All callers changed.
5837         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
5838         static.  All callers changed.
5839         (sched_init_luids): Remove all arguments except the first.  All
5840         callers changed.  Don't use sched_scan.
5841         (haifa_init_h_i_d): Likewise.
5842         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
5843         manually rather than using sched_init_luids.  Likewise with
5844         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
5845         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
5846         rather than sched_init_luids with NULL args.
5847         * sel-sched-ir.c (new_insns): Remove variable.
5848         (sched_scan): New static function, previously in haifa-sched.c.  Remove
5849         all arguments but the first two; all callers changed.
5850         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
5851         rather than sched_init_luids.
5852         (sel_init_bbs): Remove second argument.  All callers changed.
5853         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
5854         with NULL arguments.
5855         (create_insn_rtx_from_pattern): Likewise.
5856         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
5857         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
5858         (sched_init_insn_luid, sched_extend_luids): Declare.
5859         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
5860         declarations.
5861
5862 2011-05-27  Richard Guenther  <rguenther@suse.de>
5863
5864         PR middle-end/49177
5865         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
5866         A CMP B ? (T) true : (T) false for non-integral types T again.
5867
5868 2011-05-27  Jan Hubicka  <jh@suse.cz>
5869
5870         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
5871         so 0 means NULL string.
5872         (lto_output_string_with_length): ... here.
5873         (lto_output_string, output_string_cst, output_identifier): Update
5874         handling of NULL strings.
5875         (lto_output_location_bitpack): New function.
5876         (lto_output_location): Use it.
5877         (lto_output_tree_ref): Use output_record_start.
5878         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
5879         len values.
5880         * lto-streamer-in.c (string_for_index): Break out from ...; offset
5881         values by 1.
5882         (input_string_internal): ... here;
5883         (input_string_cst, input_identifier, lto_input_string): Update handling
5884         of NULL strings.
5885         (lto_input_location_bitpack): New function
5886         (lto_input_location): Use it.
5887         (unpack_ts_type_common_value_fields): Pack align & alias in var len
5888         values.
5889         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
5890         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
5891         (bp_pack_value): Sanity check the value range.
5892         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
5893         New functions.
5894         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
5895         New functions.
5896
5897 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
5898
5899         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
5900         call_arg_location instructions down the floor.
5901
5902 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
5903
5904         PR rtl-optimization/49154
5905         * ira.c (setup_pressure_classes): Process class without sublcasses
5906         as a candidate for pressure classes.
5907
5908 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
5909
5910         PR rtl-optimization/48575
5911         * genrecog.c (position_type): New enum.
5912         (position): New structure.
5913         (decision): Use position structure instead of a string.
5914         (root_pos, peep2_insn_pos_list): New variables.
5915         (next_position, compare_positions): New functions.
5916         (new_decision): Use position structures instead of strings.
5917         (maybe_both_true): Likewise.
5918         (change_state): Likewise.
5919         (write_tree): Likewise.
5920         (make_insn_sequence): Likewise.
5921
5922 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5923
5924         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
5925         TS_BASE instead of TS_COMMON.
5926         (find_decls_types_r): Check for TS_TYPED structure before looking at
5927         TREE_TYPE.
5928         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
5929         Add chain field.
5930         (BLOCK_CHAIN): Use new chain field.
5931
5932 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
5933
5934         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
5935         moves expensive on Power7 also.
5936
5937 2011-05-26  Richard Guenther  <rguenther@suse.de>
5938
5939         * fold-const.c (fold_unary_loc): Remove bogus code.
5940
5941 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5942
5943         * tree.h (struct tree_identifier): Inherit from tree_typed, not
5944         tree_common.
5945         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
5946         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
5947         TS_BASE instead of TS_COMMON.
5948         * varasm.c (assemble_name): Remove assert.
5949
5950 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
5951
5952         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
5953         substituted first.
5954         * libgcc-std.ver: Delete file.
5955
5956 2011-05-26  Richard Guenther  <rguenther@suse.de>
5957
5958         PR tree-optimization/48702
5959         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
5960         only when we know the base address is within bounds.
5961         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
5962         assume the base address of TARGET_MEM_REFs is in bounds.
5963
5964 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5965
5966         PR target/49099
5967         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
5968         declaration in TARGET_SOLARIS.
5969
5970 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
5971
5972         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
5973         The instruction is then expanded explicitly.
5974         (supported_compare): Callable instruction.
5975         (compare): Likewise.
5976
5977 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
5978
5979         PR c++/49165
5980         * gimplify.c (shortcut_cond_r): Don't special case
5981         COND_EXPRs if they have void type on one of their arms.
5982
5983 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
5984
5985         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
5986         to reduce duplication, and to achieve a slightly more logical order
5987         of operations.
5988
5989 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
5990
5991         PR tree-optimization/49161
5992         * tree-vrp.c (struct case_info): New type.
5993         (compare_case_labels): Sort case_info structs instead of
5994         trees, and not primarily by CASE_LABEL uids but by
5995         label_for_block indexes.
5996         (find_switch_asserts): Put case labels into struct case_info
5997         array instead of TREE_VEC, adjust sorting, compare label_for_block
5998         values instead of CASE_LABELs.
5999
6000 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6001
6002         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
6003         ("orndi3_neon"): Likewise.
6004         ("bic<mode>3_neon"): Likewise.
6005
6006 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
6007
6008         PR tree-optimization/49038
6009         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
6010         Ensure at least one epilogue iteration if required by data
6011         accesses with gaps.
6012         * tree-vectorizer.h (struct _loop_vec_info): Add new field
6013         to mark loops that require peeling for gaps.
6014         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
6015         (vect_get_known_peeling_cost): Take peeling for gaps into
6016         account.
6017         (vect_transform_loop): Generate epilogue if required by data
6018         access with gaps.
6019         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
6020         loop as requiring an epilogue if there are gaps in the end of
6021         the strided group.
6022
6023 2011-05-25  Ian Lance Taylor  <iant@google.com>
6024
6025         * godump.c (go_format_type): Output the first field with a usable
6026         Go type, if any.
6027
6028 2011-05-25  Ian Lance Taylor  <iant@google.com>
6029
6030         * godump.c (go_format_type): Check for invalid type names, pointer
6031         target types, and struct field types.
6032
6033 2011-05-25  Jason Merrill  <jason@redhat.com>
6034
6035         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
6036
6037 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
6038
6039         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
6040
6041 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6042
6043         * config/i386/i386.md (*movqi_extv_1)): Put back
6044         "register_operand" check in "type" calculation.
6045         (*movqi_extzv_2): Likewise.
6046
6047 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6048
6049         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6050
6051 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
6052
6053         PR bootstrap/49160
6054         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
6055         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
6056         __divxc3, __divtc3): Wrap definitions in #ifndef.
6057
6058 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6059
6060         PR target/49142
6061         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
6062         "register_operand" check and replace q_regs_operand with
6063         QIreg_operand in "type" calculation.
6064         (*movqi_extv_1): Likewise.
6065         (*movqi_extzv_2_rex64): Likewise.
6066         (*movqi_extzv_2): Likewise.
6067
6068         * config/i386/predicates.md (QIreg_operand): New.
6069
6070 2011-05-25  Richard Guenther  <rguenther@suse.de>
6071
6072         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
6073         type-based offset disambiguation, streamline MEM_REF and
6074         TARGET_MEM_REF handling.
6075
6076 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6077
6078         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
6079         (bdesc_special_args): Add pause intrinsic.
6080
6081         * config/i386/i386.md (UNSPEC_PAUSE): New.
6082         (pause): Likewise.
6083         (*pause): Likewise.
6084         * config/i386/ia32intrin.h (__pause): Likewise.
6085
6086         * doc/extend.texi (X86 Built-in Functions): Add documentation for
6087         pause intrinsic.
6088
6089 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6090
6091         PR tree-optimization/46728
6092         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
6093         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
6094
6095 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
6096
6097         * tree.h (struct tree_exp): Inherit from struct tree_typed.
6098         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
6099         instead of TS_COMMON.
6100
6101 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
6102
6103         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
6104         LIBGCC2_GNU_PREFIX is defined.
6105         (__N): New macro.
6106         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
6107         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
6108         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
6109         __clz_tab): Define using __N.
6110         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
6111         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
6112         * target.def (libfunc_gnu_prefix): New hook.
6113         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
6114         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
6115         * doc/tm.texi: Regenerate.
6116         * system.h (LIBGCC2_GNU_PREFIX): Poison.
6117         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
6118         account.
6119         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
6120         (init_optabs): Likewise for the bswap libfuncs.
6121         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
6122         and divide.
6123         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
6124         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
6125         * libgcc-std.ver: Remove.
6126         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
6127         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
6128         libgcc-std.ver.
6129         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6130         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
6131         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
6132         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
6133         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
6134         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6135         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6136         * config/fixed-bit.h (FIXED_OP): Define differently depending on
6137         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
6138         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
6139
6140 2011-05-25  Jan Hubicka  <jh@suse.cz>
6141
6142         * lto-streamer-out.c (output_record_start): Use lto_output_enum
6143         (lto_output_tree): Use output_record_start.
6144         * lto-streamer-in.c (input_record_start): Use lto_input_enum
6145         (lto_get_pickled_tree): Use input_record_start.
6146         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
6147         (lto_value_range_error): New function.
6148         * lto-streamer.h (lto_value_range_error): Declare.
6149         (lto_output_int_in_range, lto_input_int_in_range): New functions.
6150         (lto_output_enum, lto_input_enum): New macros.
6151
6152 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6153
6154         * common.opt (flag_stack_usage_info): New variable.
6155         (-Wstack-usage): New option.
6156         * doc/invoke.texi (Warning options): Document -Wstack-usage.
6157         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
6158         <OPT_fstack_usage>: Likewise.
6159         * toplev.c (output_stack_usage): Handle -Wstack-usage.
6160         * calls.c (expand_call): Test flag_stack_usage_info variable instead
6161         of flag_stack_usage.
6162         (emit_library_call_value_1): Likewise.
6163         * explow.c (allocate_dynamic_stack_space): Likewise.
6164         * function.c (instantiate_virtual_regs ): Likewise.
6165         (prepare_function_start): Likewise.
6166         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
6167         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
6168         * config/arm/arm.c (arm_expand_prologue): Likewise.
6169         (thumb1_expand_prologue): Likewise.
6170         * config/avr/avr.c (expand_prologue): Likewise.
6171         * config/i386/i386.c (ix86_expand_prologue): Likewise.
6172         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
6173         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
6174         * config/mips/mips.c (mips_expand_prologue): Likewise.
6175         * config/pa/pa.c (hppa_expand_prologue): Likewise.
6176         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
6177         * config/s390/s390.c (s390_emit_prologue): Likewise.
6178         * config/sh/sh.c (sh_expand_prologue): Likewise.
6179         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
6180         * config/spu/spu.c (spu_expand_prologue): Likewise.
6181
6182 2011-05-25  Richard Guenther  <rguenther@suse.de>
6183
6184         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
6185         (gimple_canonical_types_compatible_p): Likewise.
6186
6187 2011-05-25  Jan Hubicka  <jh@suse.cz>
6188
6189         PR middle-end/49062
6190         * ipa.c (function_and_variable_visibility): Only add to same
6191         comdat group list if DECL_ONE_ONLY.
6192
6193 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
6194
6195         PR rtl-optimization/49014
6196         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
6197
6198 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
6199
6200         PR target/49128
6201         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
6202
6203 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
6204
6205         PR rtl-optimization/48757
6206         * ira-build.c (loop_with_eh_edge_p): Rename to
6207         loop_with_complex_edge_p, check edges on complexity, make function
6208         conditional.
6209         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
6210         conditional.
6211
6212 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
6213
6214         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
6215         force flag_ira_share_save_slots to 0.
6216
6217 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
6218
6219         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
6220         (vt_initialize): Set PROLOGUE_BB unconditionally.
6221         Add block comment about CFA_BASE_RTX machinery.
6222         Reset FP_CFA_OFFSET to -1 on all invalid paths.
6223         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
6224
6225 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
6226
6227         PR objc/48187
6228         * c-parser.c (c_parser_objc_class_instance_variables): More robust
6229         parsing of syntax error in ObjC instance variable lists.  In
6230         particular, avoid an infinite loop if there is a stray ']'.
6231         Updated error message.
6232
6233 2011-05-24  Ian Lance Taylor  <iant@google.com>
6234
6235         * godump.c (go_define): Don't accept a string immediately after
6236         another operand.
6237
6238 2011-05-24  Ian Lance Taylor  <iant@google.com>
6239
6240         * godump.c (struct godump_container): Add invalid_hash field.
6241         (go_format_type): Return false if type is found in invalid_hash.
6242         (go_output_typedef): Add invalid type to invalid_hash.
6243         (go_finish): Create and delete invalid_hash.
6244
6245 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6246
6247         PR tree-optimization/46728
6248         * tree-ssa-math-opts.c (powi_table): New.
6249         (powi_lookup_cost): New.
6250         (powi_cost): New.
6251         (powi_as_mults_1): New.
6252         (powi_as_mults): New.
6253         (gimple_expand_builtin_powi): New.
6254         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
6255         (gate_cse_sincos): Remove sincos/cexp restriction.
6256
6257 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6258
6259         PR target/3746
6260         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
6261         mips-tdump native.
6262         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
6263         * mips-tdump.c: Likewise.
6264
6265 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6266
6267         PR target/49128
6268         * config/i386/driver-i386.c (host_detect_local_cpu): Always
6269         add -mno-XXX.  Handle FMA.
6270
6271 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
6272
6273         PR rtl-optimization/48633
6274         * ira-build.c (loop_with_eh_edge_p): New function.
6275         (mark_loops_for_removal): Use it.
6276
6277 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
6278
6279         PR rtl-optimization/48971
6280         * ira.c (setup_pressure_classes): Don't check register move cost
6281         for classes with one registers.  Don't add pressure class if there
6282         is a pressure class with the same available hard registers.
6283         Check contains_reg_of_mode.  Fix a typo in collecting
6284         temp_hard_regset.  Ignore hard registers not belonging to a class.
6285
6286 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
6287
6288         PR target/49133
6289         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
6290
6291 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
6292             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6293
6294         PR gcov-profile/48845
6295         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
6296
6297 2011-05-24  Richard Guenther  <rguenther@suse.de>
6298
6299         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
6300         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
6301         (gimple_types_compatible_p_1): Adjust.
6302         (iterative_hash_canonical_type): Do not bother about complete vs.
6303         incomplete types.
6304         (gimple_canonical_types_compatible_p): Likewise.
6305
6306 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6307
6308         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
6309
6310 2011-05-24  Richard Guenther  <rguenther@suse.de>
6311
6312         PR bootstrap/49078
6313         * gimple.c (gimple_register_canonical_type): Revert
6314         previous change.
6315         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
6316         does not for a tree for the case where it matters.  Cache
6317         pointer-type alias-sets.
6318
6319 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
6320
6321         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
6322         (OBJS): Remove options.o, opts-common.o and prefix.o.
6323         (OBJS-libcommon-target): New.
6324         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
6325         (BACKEND): Include libcommon-target.a.
6326         (MOSTLYCLEANFILES): Include libcommon-target.a.
6327         (libcommon-target.a): New.
6328         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
6329         prefix.o.
6330
6331 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
6332
6333         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
6334         parts of output shared with the driver.
6335         * optc-gen.awk: Don't generate parts of output not shared with the
6336         driver.
6337         * opth-gen.awk: Remove GCC_DRIVER conditionals.
6338         * doc/options.texi (SourcerInclude): Mention options-save.c.
6339         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
6340         (OBJS): Add options-save.o.
6341         (options-save.c, options-save.o): New.
6342         (options.o): Update dependencies.
6343         (gcc-options.o): Remove.
6344         (mostlyclean): Remove options-save.c.
6345
6346 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
6347
6348         PR debug/49032
6349         * dbxout.c: Include cgraph.h.
6350         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
6351         and without value expr, return NULL if no varpool node exists for
6352         it or if it is not needed.
6353         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
6354
6355         PR c/49120
6356         * c-decl.c (start_decl): Convert expr to void_type_node.
6357
6358 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
6359
6360         PR rtl-optimization/48826
6361         * emit-rtl.c (try_split): When splitting a call that is followed
6362         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
6363
6364 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
6365
6366         * cfgexpand.c (expand_debug_expr): For unused non-addressable
6367         parameters passed in memory prefer using DECL_INCOMING_RTL over
6368         the pseudos it will be copied into.
6369
6370 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
6371
6372         PR target/47315
6373         * config/i386/i386.c (ix86_option_override_internal): Save the
6374         initial options after checking vzeroupper.
6375
6376 2011-05-23  David Li  <davidxl@google.com>
6377
6378         PR tree-optimization/48988
6379         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
6380         Initialize has_valid_pred for each pred chain.
6381
6382 2011-05-23  Richard Guenther  <rguenther@suse.de>
6383
6384         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
6385         (iterative_hash_gimple_type): Always hash type names.
6386
6387 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
6388
6389         * c-typeck.c (build_function_call_vec): Tweak call to
6390         check_function_arguments.
6391
6392 2011-05-23  Richard Guenther  <rguenther@suse.de>
6393
6394         PR tree-optimization/49115
6395         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
6396         is not necessarily carried out, do not claim it kills the ref.
6397         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
6398
6399 2011-05-23  Richard Guenther  <rguenther@suse.de>
6400
6401         PR middle-end/15419
6402         * builtins.c (fold_builtin_memory_op): Be less restrictive about
6403         what pointer types we accept for folding.
6404
6405 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6406
6407         * gthr-gnat.c: Remove.
6408         * gthr-gnat.h: Remove.
6409         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
6410         * config/t-freebsd (LIB2ADDEH): Likewise.
6411         * config/t-linux (LIB2ADDEH): Likewise.
6412         * config/t-sol2 (LIB2ADDEH): Likewise.
6413         * config/ia64/t-vms (LIB2ADDEH): Likewise.
6414         * configure.ac (target_thread_file): Remove gnat handling.
6415         * configure: Regenerate.
6416         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
6417
6418 2011-05-23  Tristan Gingold  <gingold@adacore.com>
6419             Eric Botcazou  <ebotcazou@adacore.com>
6420
6421         * gcov.c (create_file_names): If no object directory is specified,
6422         keep the directory of the file.
6423
6424 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6425
6426         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
6427         * configure: Regenerate.
6428
6429 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
6430
6431         PR middle-end/48973
6432         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
6433         failed and the comparison has a single bit signed type, use
6434         constm1_rtx instead of const1_rtx for true value.
6435         (do_store_flag): If ops->type is single bit signed type, disable
6436         signel bit test optimization and pass -1 instead of 1 as last
6437         parameter to emit_store_flag_force.
6438
6439 2011-05-23  Tom de Vries  <tom@codesourcery.com>
6440
6441         PR target/45098
6442         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
6443         function.
6444         (infer_loop_bounds_from_undefined): Use new function.
6445
6446 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
6447
6448         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
6449         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
6450         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
6451         and -O0 otherwise.
6452         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
6453
6454 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6455
6456         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
6457         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
6458         returns true.
6459
6460 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
6461
6462         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
6463
6464 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6465
6466         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
6467         UNSPEC_MOVE_PIC pattern.
6468
6469 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6470
6471         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
6472         (sparc-*-rtems*): Likewise.
6473         (sparc64-*-elf*): Likewise.
6474         (sparc64-*-rtems*): Likewise.
6475         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
6476         * config/sparc/t-crtin: New file.
6477         * config/sparc/t-sol2 (crti.o): Delete rule.
6478         (crtn.o): Likewise.
6479         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
6480         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
6481         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
6482         (ENDFILE_SPEC): Add crtn.o.
6483
6484 2011-05-22  Tom de Vries  <tom@codesourcery.com>
6485
6486         PR middle-end/48689
6487         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
6488         CODE_CONTAINS_STRUCT (TS_COMMON).
6489
6490 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
6491
6492         PR middle-end/49029
6493         * expmed.c (extract_fixed_bit_field): Test whether target can be used
6494         only after deciding which mode to use.
6495
6496 2011-05-22  Tom de Vries  <tom@codesourcery.com>
6497
6498         PR target/45098
6499         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
6500         for call to get_shiftadd_cost.
6501
6502 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
6503
6504         PR target/49104
6505         * config/i386/cpuid.h (bit_MMXEXT): New define.
6506
6507 2011-05-22  Nick Clifton  <nickc@redhat.com>
6508
6509         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
6510         initialisation of non-existant args[2] element.  Use args[] array
6511         not arg[] array to pass arguments to build_function_type_list.
6512
6513 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
6514
6515         PR tree-optimization/49087
6516         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
6517
6518 2011-05-21  Jason Merrill  <jason@redhat.com>
6519
6520         PR c++/49092
6521         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
6522         static storage duration.
6523
6524 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6525
6526         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
6527         frame pointer.
6528
6529 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6530
6531         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
6532         false if there are call-saved registers here...
6533         (sparc_can_use_return_insn_p): ...but here instead.
6534         (save_or_restore_regs): Fix thinko.
6535         (sparc_expand_prologue): Use current_function_is_leaf.
6536         (sparc_frame_pointer_required): Likewise.
6537
6538 2011-05-21  Nick Clifton  <nickc@redhat.com>
6539
6540         PR target/49098
6541         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
6542
6543 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
6544
6545         * gengtype.c (walk_type): Implemented "atomic" GTY option.
6546         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
6547
6548 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
6549
6550         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
6551         * optc-gen.awk: Move common code to opt-read.awk.
6552         * opth-gen.awk: Likewise.
6553         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
6554
6555 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
6556
6557         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
6558
6559 2011-05-20  Tom de Vries  <tom@codesourcery.com>
6560
6561         PR target/45098
6562         * tree-ssa-loop-ivopts.c: Include expmed.h.
6563         (get_shiftadd_cost): New function.
6564         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
6565
6566 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
6567
6568         PR bootstrap/49086
6569         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
6570         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
6571
6572 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
6573
6574         * Makefile.in: Update comment referring to $(OBJS-common).
6575
6576 2011-05-20  Ian Lance Taylor  <iant@google.com>
6577
6578         * godump.c (go_output_typedef): Put enum constants in the macro
6579         hash table to avoid duplicate Go const definitions.
6580
6581 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
6582
6583         * Makefile.in (LIBDEPS): Add libcommon.a.
6584         (LIBS): Likewise.
6585         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
6586         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
6587         pretty-print.o and version.o.
6588         (OBJS-libcommon): New.
6589         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
6590         (BACKEND): Add libcommon.a.
6591         (MOSTLYCLEANFILES): Likewise.
6592         (libcommon.a): New.
6593         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
6594         (cpp$(exeext)): Likewise.
6595         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
6596         pretty-print.o and input.o.
6597         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
6598         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
6599         (errors.o): Remove.
6600         (mips-tfile): Don't explicitly use version.o.
6601         (mips-tdump): Likewise.
6602         (gcov.o): Depend on $(DIAGNOSTIC_H).
6603         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
6604         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
6605         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
6606         * gcov-dump.c: Include intl.h and diagnostic.h.
6607         (main): Initialize diagnostics.
6608         * gcov.c: Include diagnostic.h.
6609         (fnotice): Remove.
6610         (main): Initialize diagnostics.
6611         * lto-wrapper.c: Include diagnostic.h.
6612         (main): Initialize diagnostics.
6613
6614 2011-05-20  Michael Matz  <matz@suse.de>
6615
6616         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
6617
6618 2011-05-20  Michael Matz  <matz@suse.de>
6619             Richard Guenther  <rguenther@suse.de>
6620
6621         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
6622         use lto_streamer_cache_append directly instead of returning a VEC.
6623         (preload_common_node): Remove.
6624         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
6625         track seen nodes.
6626         (lto_streamer_cache_create): Call lto_preload_common_nodes.
6627
6628 2011-05-20  Richard Guenther  <rguenther@suse.de>
6629
6630         PR tree-optimization/49079
6631         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
6632         MEM_REFs correctly for the trailing array access detection.
6633         Special case constants the same way as decls for overall size
6634         constraining.
6635
6636 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
6637
6638         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
6639         argument expansion.
6640
6641 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
6642
6643         PR tree-optimization/49073
6644         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
6645         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6646         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
6647
6648 2011-05-20  Richard Guenther  <rguenther@suse.de>
6649
6650         PR middle-end/48849
6651         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
6652         of pointer types the same way the middle-end does.
6653
6654 2011-05-20  Richard Guenther  <rguenther@suse.de>
6655
6656         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
6657         or pointer-to chains.  Delay all fixup to uniquify_nodes.
6658
6659 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
6660
6661         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
6662         (fma4_fmaddsub): Likewise
6663
6664 2011-05-19  Jan Hubicka  <jh@suse.cz>
6665
6666         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
6667         (GIMPLE_TYPE_PAIR_SIZE): New macro.
6668         (type_pair_cache): New static var.
6669         (lookup_type_pair): Use fixed sized custom hash; make inline.
6670         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
6671         calls of lookup_type_pair.
6672         (print_gimple_types_stats): Remove cache stats.
6673         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
6674         and gtc_ob.
6675
6676 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
6677
6678         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
6679         when TARGET_RDRND is active.
6680         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
6681         Generate dummy SImode target register when target is NULL.
6682
6683 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
6684
6685         * config/arm/arm-fpus.def: New.
6686         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
6687         arm-fpus.def.
6688         * config/arm/arm-tables.opt: Regenerate.
6689         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
6690         (arm_option_override): Don't decode FPU name to string here.
6691         * config/arm/arm.opt (mfpu=): Use Enum.
6692         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
6693         Update dependencies.
6694
6695 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
6696
6697         * collect2.c: Include diagnostic.h.
6698         (fatal_perror, fatal, error, fancy_abort): Remove.
6699         (main): Set progname.  Call xmalloc_set_program_name and
6700         diagnostic_initialize.
6701         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
6702         scan_libraries, resolve_lib_name): Call fatal_error instead of
6703         fatal and fatal_perror.
6704         * collect2.h (error, fatal, fatal_perror): Don't declare.
6705         * tlink.c: Include diagnostic-core.h.
6706         (recompile_files): Call fatal_error instead of fatal_perror.
6707         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
6708         pretty-print.o and input.o.
6709         (collect2.o, tlink.o): Update dependencies.
6710
6711 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6712
6713         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
6714
6715 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6716
6717         PR target/40483
6718         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
6719         COMDAT group syntax, both SPARC and x86 variants.
6720         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
6721         * configure: Regenerate.
6722         * config/sol2.h (TARGET_SOLARIS): Define.
6723         (PUSHSECTION_FORMAT): Remove.
6724         (SECTION_NAME_FORMAT): Define.
6725         * config/sol2.c: Include hashtab.h.
6726         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
6727         expansion, using SECTION_NAME_FORMAT.
6728         (solaris_comdat_htab): New variable.
6729         (struct comdat_entry): Define.
6730         (comdat_hash): New function.
6731         (comdat_eq): New function.
6732         (solaris_elf_asm_comdat_section): New function.
6733         (solaris_define_comdat_signature): New function.
6734         (solaris_code_end): New function.
6735         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
6736         (solaris_code_end): Declare.
6737         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
6738         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
6739         solaris_code_end.
6740         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
6741         Remove ATTRIBUTE_UNUSED.
6742         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
6743         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
6744         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
6745         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
6746         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
6747         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
6748         (PUSHSECTION_FORMAT): Remove.
6749         (SECTION_NAME_FORMAT): Redefine.
6750
6751 2011-05-19  Kai Tietz  <ktietz@redhat.com>
6752
6753         * tree-cfg.c (verify_gimple_assign_binary): Barf on
6754         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
6755         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
6756
6757 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
6758             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6759
6760         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
6761
6762 2011-05-19  Richard Guenther  <rguenther@suse.de>
6763
6764         PR middle-end/48985
6765         * tree-object-size.c (addr_object_size): If the pointed-to
6766         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
6767
6768 2011-05-19  Richard Guenther  <rguenther@suse.de>
6769
6770         * gimple.c (gimple_types_compatible_p_1): Compare names of
6771         the types themselves.
6772         (iterative_hash_gimple_type): And hash them that way.
6773         (gimple_register_type_1): If we register a main variant properly
6774         initialize the leader to ourselves.
6775
6776 2011-05-19  Tom de Vries  <tom@codesourcery.com>
6777
6778         PR target/45098
6779         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
6780         get_loop_invariant_expr_id.
6781         (get_loop_invariant_expr_id): Use get_expr_id.
6782         (parm_decl_cost): New function.
6783         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
6784         Improve bound cost estimation.  Use different inv_expr_id for elim and
6785         express cases.
6786
6787 2011-05-19  Tom de Vries  <tom@codesourcery.com>
6788
6789         PR target/45098
6790         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
6791         cost_base.cost == 0.
6792
6793 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
6794
6795         PR target/49002
6796         * config/i386/sse.md
6797         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
6798         load cast.
6799
6800 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
6801
6802         PR tree-optimization/49039
6803         * tree-vrp.c (extract_range_from_binary_expr): For
6804         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
6805         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
6806
6807 2011-05-18  Tom de Vries  <tom@codesourcery.com>
6808
6809         PR target/45098
6810         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
6811
6812 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
6813
6814         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
6815         (*tls_global_dynamic_64): Ditto.
6816         (*tls_local_dynamic_base_32_gnu): Ditto.
6817         (*tls_local_dynamic_base_64): Ditto.
6818         (tls_initial_exec_64_sun): Ditto.
6819
6820 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
6821
6822         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
6823         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
6824         bf592-none.
6825         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
6826         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
6827         * config/bfin/bfin.c (bfin_cpus): Add bf592.
6828         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
6829         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
6830         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
6831         * config/bfin/elf.h (LIB_SPEC): Add bf592.
6832
6833 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
6834
6835         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
6836         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
6837         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
6838         target_thread_pointer, arm_structure_size_boundary, struct
6839         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
6840         struct abi_name, arm_all_abis): Remove.
6841         (arm_option_override) Don't process most enumerated option values here.
6842         Don't process target_fpe_name here.  Work with integer not string for
6843         structure size boundary; use separate diagnostics for each case.
6844         * config/arm/arm.h (enum float_abi_type, enum
6845         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
6846         to arm-opts.h.
6847         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
6848         arm_structure_size_boundary): Remove.
6849         * config/arm/arm.opt (mabi=): Use Enum and Init.
6850         (arm_abi_type): New Enum and EnumValue entries.
6851         (mfloat-abi=): Use Enum and Init.
6852         (float_abi_type): New Enum and EnumValue entries.
6853         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
6854         (mfp16-format=): Use Enum and Init.
6855         (arm_fp16_format_type): New Enum and EnumValue entries.
6856         (mstructure-size-boundary=): Use UInteger and Init.
6857         (mtp=): Use Enum and Init.
6858         (arm_tp_type): New Enum and EnumValue entries.
6859
6860 2011-05-18  Richard Guenther  <rguenther@suse.de>
6861
6862         PR tree-optimization/49018
6863         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
6864         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
6865         gimple_has_side_effects.
6866
6867 2011-05-18  Richard Guenther  <rguenther@suse.de>
6868
6869         * gimple.c (gimple_register_type_1): New function, split out from ...
6870         (gimple_register_type): ... here.  Avoid infinite recursion.
6871
6872 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
6873
6874         PR tree-optimization/41881
6875         * tree-vectorizer.h (struct _loop_vec_info): Add new field
6876         reduction_chains along with a macro for its access.
6877         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
6878         (destroy_loop_vec_info): Free reduction chains.
6879         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
6880         (vect_is_slp_reduction): New function.
6881         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
6882         (vect_create_epilog_for_reduction): Support SLP reduction chains.
6883         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
6884         definition types for reduction chains.
6885         (vect_supported_load_permutation_p): Don't allow permutations for
6886         reduction chains.
6887         (vect_analyze_slp_instance): Support reduction chains.
6888         (vect_analyze_slp): Try to build SLP instance from reduction chains.
6889         (vect_get_constant_vectors):  Handle reduction chains.
6890         (vect_schedule_slp_instance): Mark the first statement of the
6891         reduction chain as reduction.
6892
6893 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
6894
6895         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
6896         names for group elements access.
6897         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
6898         reduction chains as well.  Remove data reference and interleaving
6899         related words from the fields names.
6900         * tree-vect-loop.c (vect_transform_loop): Use new names for group
6901         elements access.
6902         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
6903         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
6904         vect_update_interleaving_chain, vect_same_range_drs,
6905         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
6906         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
6907         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
6908         vect_analyze_group_access, vect_analyze_data_ref_access,
6909         vect_create_data_ref_ptr, vect_transform_strided_load,
6910         vect_record_strided_load_vectors): Likewise.
6911         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
6912         vect_model_load_cost, vectorizable_store, vectorizable_load,
6913         vect_remove_stores, new_stmt_vec_info): Likewise.
6914         * tree-vect-slp.c (vect_build_slp_tree,
6915         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
6916
6917 2011-05-18  Richard Guenther  <rguenther@suse.de>
6918
6919         PR middle-end/48989
6920         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
6921         operand verification.
6922         (verify_gimple_assign_binary): Likewise.
6923         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
6924         to non-1-precision BOOLEAN_TYPEs.
6925
6926 2011-05-18  Tom de Vries  <tom@codesourcery.com>
6927
6928         PR target/45098
6929         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
6930
6931 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
6932
6933         PR tree-optimization/49000
6934         * tree-ssa.c (execute_update_addresses_taken): Call
6935         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
6936         be rewritten and decl has been marked for renaming, reset
6937         the debug stmt.
6938
6939 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
6940
6941         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
6942         enum_opts_set when testing if attributes have set -mfpmath=.
6943
6944 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
6945
6946         * config/mips/mips.c (mips_handle_option): Remove unused variable.
6947
6948 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
6949
6950         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
6951         info->entry with 0
6952         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
6953         id.transform_lang_insert_block with NULL.
6954
6955 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
6956
6957         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
6958         (output_fp_compare): Change args 3 and 4 to bool.
6959         (ix86_expand_call): Change arg 6 to bool.
6960         (ix86_attr_length_immediate_default): Change arg 2 to bool.
6961         (ix86_attr_length_vex_default): Change arg 3 to bool.
6962         * config/i386/i386.md: Update all uses.
6963         * config/i386/i386.c: Ditto.
6964         (ix86_flags_dependent): Change return type to bool.
6965
6966 2011-05-17  Richard Guenther  <rguenther@suse.de>
6967
6968         * gimple.c (type_hash_pair_compare): Fix comparison.
6969
6970 2011-05-17  Richard Guenther  <rguenther@suse.de>
6971
6972         * gimple.c (iterative_hash_gimple_type): Simplify singleton
6973         case some more, fix final hash value of the non-singleton case.
6974
6975 2011-05-17  Richard Guenther  <rguenther@suse.de>
6976
6977         PR bootstrap/49013
6978         Revert
6979         2011-05-16  Richard Guenther  <rguenther@suse.de>
6980
6981         * gimple.c (gimple_types_compatible_p_1): Use names of the
6982         type itself, not its main variant.
6983         (iterative_hash_gimple_type): Likewise.
6984
6985 2011-05-17  Richard Guenther  <rguenther@suse.de>
6986
6987         * gimple.c (gimple_register_canonical_type): Use the main-variant
6988         leader for computing the canonical type.
6989
6990 2011-05-17  Nick Clifton  <nickc@redhat.com>
6991
6992         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
6993         moves.
6994
6995         * config/rx/rx.md: Add peephole to remove redundant extensions
6996         after loads.
6997         (bitset_in_memory): Use rx_restricted_mem_operand.
6998         (bitinvert_in_memory): Likewise.
6999         (bitclr_in_memory): Likewise.
7000
7001 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
7002             Nick Clifton  <nickc@redhat.com>
7003
7004         * config/rx/rx.md: Add peepholes to match a register move followed
7005         by a comparison of the moved register.  Replace these with an
7006         addition of zero that does both actions in one instruction.
7007
7008 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
7009
7010         PR target/48986
7011         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
7012         predicate to allow CONST_INT.
7013         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
7014
7015 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
7016
7017         * opts-common.c (opt_enum_arg_to_value): New.
7018         * opts.h (opt_enum_arg_to_value): Declare.
7019         * config/i386/i386.opt (fpmath): Remove.
7020         (mfpmath=): Use Enum, Init and Save.
7021         (fpmath_unit): New Enum and EnumValue entries.
7022         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
7023         name for function fpmath state.
7024         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
7025         * config/i386/i386.c: Include diagnostic.h.
7026         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
7027         (ix86_target_string): Take enum fpmath_unit value instead of string.
7028         (ix86_debug_options): Update call to ix86_target_string.
7029         (ix86_option_override_internal): Don't process fpmath strings here.
7030         (x86_function_specific_save, ix86_function_specific_restore):
7031         Don't handle fpmath state specially.
7032         (ix86_function_specific_print): Pass fpmath state to
7033         ix86_target_string instead of printing in this function.
7034         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
7035         Handle enum attributes.
7036         (IX86_ATTR_ENUM, ix86_opt_enum): New.
7037         (ix86_valid_target_attribute_tree): Update option_strings
7038         handling.  Handle fpmath as enum option.
7039         (ix86_can_inline_p): Update field names for function fpmath state.
7040         (ix86_expand_builtin): Update call to ix86_target_string.
7041         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
7042         (ix86_fpmath): Remove.
7043         * config/i386/t-i386 (i386.o): Update dependencies.
7044
7045 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
7046
7047         PR preprocessor/48677
7048         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
7049         from decoded_options[0], not from itself.
7050
7051 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
7052
7053         * config/i386/constraints.md (z): New constraint.
7054         * config/i386/i386.c (c): New mode attribute.
7055         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
7056         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
7057         constraint for operand 0.
7058         (*call_vzeroupper): Ditto.
7059         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
7060         (*call_rex64_ms_sysv_vzeroupper): Ditto.
7061         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
7062         Use "lzm" constraint for operand 0.
7063         (*call_pop_vzeroupper): Ditto.
7064         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
7065         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
7066         constraint for operand 0.
7067         (*sibcall_vzeroupper): Ditto.
7068         (*sibcall_rex64_ms_sysv): Ditto.
7069         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
7070         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
7071         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
7072         (*sibcall_pop_vzeroupper): Ditto.
7073         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
7074         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
7075         mode iterator.  Use "<c>zm" constraint for operand 1.
7076         (*call_value_vzeroupper): Ditto.
7077         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
7078         for operand 1.
7079         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
7080         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
7081         *call_value_pop_1.  Use "lzm" constraint for operand 1.
7082         (*call_value_pop_vzeroupper): Ditto.
7083         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
7084         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
7085         mode iterator.  Use "Uz" constraint for operand 1.
7086         (*sibcall_value_vzeroupper): Ditto.
7087         (*sibcall_value_rex64_ms_sysv): Ditto.
7088         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
7089         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
7090         constraint for operand 1.
7091         (*sibcall_value_pop_vzeroupper): Ditto.
7092         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
7093         and "z" constraint for operand 2.
7094         (*tls_global_dynamic_32_gnu): Ditto.
7095         (*tls_local_dynamic_base_32_gnu): Ditto.
7096         (*tls_local_dynamic_base_64): Ditto.
7097         (*tls_local_dynamic_32_once): Ditto.
7098         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
7099         Update all callers.
7100         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
7101
7102 2011-05-16  Richard Guenther  <rguenther@suse.de>
7103
7104         * gimple.c (gimple_types_compatible_p_1): Use names of the
7105         type itself, not its main variant.
7106         (iterative_hash_gimple_type): Likewise.
7107
7108 2011-05-16  Richard Guenther  <rguenther@suse.de>
7109
7110         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
7111         always visit pointer target and function result and argument types.
7112
7113 2011-05-16  Jason Merrill  <jason@redhat.com>
7114
7115         PR c++/48999
7116         * tree-inline.c (copy_statement_list): Put back recursion.
7117
7118 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
7119
7120         PR target/27663
7121         PR target/41076
7122         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
7123         * config/avr/avr.md ("*ior<mode>qi.byte0",
7124         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
7125
7126 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
7127
7128         PR target/45099
7129         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
7130         register is needed for a function argument.
7131
7132 2011-05-16  Richard Guenther  <rguenther@suse.de>
7133
7134         * gimple.c (struct type_hash_pair): New type.
7135         (type_hash_pair_compare): New function.
7136         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
7137
7138 2011-05-16  Revital Eres  <revital.eres@linaro.org>
7139
7140         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
7141
7142 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
7143
7144         * config/i386/i386.md (floating point move splitters): Fix
7145         usage of standard_80387_constant_p.
7146         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
7147
7148 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
7149
7150         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
7151
7152 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
7153
7154         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
7155         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
7156         (tree_ssa_lim_finalize): Likewise.
7157
7158 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
7159
7160         * config/i386/constraint.md (Yd, Yx): New register constraints.
7161         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
7162         Yd conditional register constraint.
7163         (*movtf_internal): Use standard_sse_constant_opcode.
7164         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
7165         Yx conditional register constraint.
7166         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
7167         Yd conditional register constraint.  Use standard_sse_constant_p to
7168         check for valid SSE constants and call standard_sse_constant_opcode to
7169         output SSE insn.
7170         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
7171         constants and call standard_sse_constant_opcode to output SSE insn.
7172         * config/i386/i386.c (ix86_option_ovverride_internal): Set
7173         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
7174         optimize_size is set.
7175         (standard_sse_constant_opcode): Output conditional AVX insn templates.
7176
7177 2011-05-14  Tobias Burnus  <burnus@net-b.de>
7178
7179         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
7180
7181 2011-05-13  Martin Jambor  <mjambor@suse.cz>
7182
7183         * ipa-prop.c (ipa_cst_from_jfunc): New function.
7184         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
7185         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
7186         (evaluate_conditions_for_ipcp_clone): Removed.
7187         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
7188         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
7189         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
7190
7191 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
7192
7193         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
7194         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
7195         lieu of MAY_HAVE_DEBUG_STMTS.
7196         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
7197         debug statements if !MAY_HAVE_DEBUG_STMTS.
7198
7199 2011-05-13  Martin Thuresson  <martint@google.com>
7200
7201         PR gcov-profile/47793
7202         * libgcov.c (gcov_exit): Support relative profile paths.
7203         * doc/invoke.texi (-fprofile-dir): Update for above change.
7204
7205 2011-05-13  Richard Guenther  <rguenther@suse.de>
7206
7207         * gimple.c (gimple_canonical_types_compatible_p): Do not use
7208         type-pair caching, do not compare hashes.
7209
7210 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
7211
7212         PR middle-end/48965
7213         * tree-cfg.c (edge_to_cases_cleanup): Return true.
7214         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
7215
7216 2011-05-13  Kai Tietz  <ktietz@redhat.com>
7217
7218         * gimplify.c (gimplify_expr): Make sure operand is boolified.
7219         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
7220         compatible type for TRUTH_NOT_EXPR.
7221
7222 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
7223
7224         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
7225         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
7226         can_create_pseudo_p ().
7227
7228 2011-05-13  Richard Guenther  <rguenther@suse.de>
7229
7230         PR lto/48978
7231         * gimple.c (iterative_hash_gimple_type): Revert change in
7232         pointer target and function result and argument hashing.
7233
7234 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
7235
7236         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
7237         (*movxf_internal_nointeger): Ditto.
7238         (*movdf_internal_rex64): Ditto.
7239         (*movdf_internal): Ditto.
7240         (*movdf_internal_nointeger): Ditto.
7241         (*movsf_internal): Ditto.
7242         (sincos splitters): Use can_create_pseudo ().
7243
7244 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
7245
7246         * config/i386/i386-opts.h: New.
7247         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
7248         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
7249         ix86_section_threshold): Remove.
7250         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
7251         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
7252         OPT_mbranch_cost_.
7253         (ix86_option_override_internal): Don't decode strings for options
7254         other than -march=, -mtune= and -mfpmath=.  Don't allow for
7255         __attribute__ uses in remaining diagnostics for options with
7256         string arguments.  Don't check for integer arguments being negative.
7257         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
7258         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7259         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
7260         ix86_branch_cost, ix86_section_threshold): Remove.
7261         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
7262         HeaderInclude.
7263         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
7264         but not Var.
7265         (masm=): Use Enum and Init.
7266         (asm_dialect): New Enum and EnumValue entries.
7267         (mbranch-cost=): Use UInteger.
7268         (mlarge-data-threshold=): Use UInteger and Init.
7269         (mcmodel=): Use Enum and Init.
7270         (cmodel): New Enum and EnumValue entries.
7271         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
7272         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
7273         mregparm=): Use UInteger.
7274         (mstringop-strategy=): Use Enum and Init.
7275         (stringop_alg): New Enum and EnumValue entries.
7276         (mtls-dialect=): Use Enum and Init.
7277         (tls_dialect): New Enum and EnumValue entries.
7278         (mabi=): Use Enum and Init.
7279         (calling_abi): New Enum and EnumValue entries.
7280         (mveclibabi=): Use Enum and Init.
7281         (ix86_veclibabi): New Enum and EnumValue entries.
7282
7283 2011-05-13  Nick Clifton  <nickc@redhat.com>
7284
7285         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
7286         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
7287
7288 2011-05-13  Kai Tietz  <ktietz@redhat.com>
7289
7290         PR middle-end/48984
7291         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
7292         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
7293         (gimple_boolify): Check for cast for boolean_type_node instead for
7294         BOOLEAN_TYPE.
7295
7296 2011-05-13  Richard Guenther  <rguenther@suse.de>
7297
7298         PR tree-optimization/48172
7299         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
7300         multiplying by number of iterations for equal step.
7301         (vect_create_cond_for_alias_checks): Likewise.
7302
7303 2011-05-13  Andreas Schwab  <schwab@redhat.com>
7304
7305         * configure.ac: Use AS_HELP_STRING throughout.
7306         * configure: Regenerate.
7307
7308 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
7309
7310         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
7311         (ix86_emit_restore_regs_using_mov): Likewise.
7312         (ix86_emit_restore_sse_regs_using_mov): Likewise.
7313
7314 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
7315
7316         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
7317         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
7318         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
7319         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
7320         RTX_OK_FOR_OLO10_P): ...here.
7321         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
7322         SYMBOLIC_CONST.
7323
7324 2011-05-12  Kai Tietz  <ktietz@redhat.com>
7325
7326         * gimplify.c (gimple_boolify): Re-boolify expression
7327         arguments even if expression type is of kind BOOLEAN_TYPE.
7328         (gimplify_boolean_expr): Removed.
7329         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
7330         and XOR. Additional take care that we keep expression's type.
7331         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
7332         of TRUTH_AND|OR|XOR_EXPR.
7333
7334 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
7335
7336         PR tree-optimization/48975
7337         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
7338         on all bbs here and free and clear ifc_bbs at the end.
7339
7340 2011-05-12  Richard Guenther  <rguenther@suse.de>
7341
7342         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
7343         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
7344         until after simple checks.
7345         (gimple_types_compatible_p): Likewise.
7346         (iterative_hash_gimple_type): Always hash pointer targets
7347         and function return and argument types.
7348         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
7349         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
7350         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
7351         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
7352         completely in the simple compare section.
7353         (gimple_register_canonical_type): Query the cache again after
7354         registering.
7355
7356 2011-05-12  Richard Guenther  <rguenther@suse.de>
7357
7358         PR tree-optimization/48172
7359         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
7360         the number of iterations from the segment size calculation.
7361         (vect_create_cond_for_alias_checks): Adjust.
7362
7363 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
7364
7365         PR debug/48967
7366         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
7367         if validate_subreg fails.
7368
7369 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
7370
7371         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
7372         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
7373         early.
7374
7375 2011-05-12  DJ Delorie  <dj@redhat.com>
7376
7377         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
7378         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
7379         created builtin into rx_builtins array.
7380         (rx_builtin_decl): New function.
7381         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
7382
7383 2011-05-12  DJ Delorie  <dj@redhat.com>
7384             Nick Clifton  <nickc@redhat.com>
7385
7386         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
7387         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
7388         (rx_is_legitimate_address): Add pre-decrement and post-increment
7389         addressing in HImode and QImode.  Fix test for out of range
7390         REG+INT addressing.
7391         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
7392         (rx_align_for_label): Test label before extracting its usage count.
7393         (rx_adjust_insn_lengths): Fix selection of insn codes.
7394         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
7395
7396 2011-05-11  Jason Merrill  <jason@redhat.com>
7397
7398         * tree.c (type_hash_canon): Use struct tree_type_non_common.
7399
7400 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
7401
7402         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
7403         reindent the subsequent block.
7404
7405 2011-05-11  Satoru Takabayashi  <satorux@google.com>
7406             Paul Pluzhnikov  <ppluzhnikov@google.com>
7407
7408         * doc/install.texi (Configuration): Document --with-linker-hash-style.
7409         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
7410         * config.in: Add LINKER_HASH_STYLE.
7411         * configure.ac: Add --with-linker-hash-style.
7412         * configure: Regenerate.
7413
7414 2011-05-11  Richard Guenther  <rguenther@suse.de>
7415
7416         PR middle-end/48964
7417         * gimple.c (iterative_hash_canonical_type): Fix typo.
7418
7419 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
7420
7421         * config/i386/i386.c (legitimize_tls_address)
7422         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
7423         expanders directly for TARGET_GNU2_TLS.  Determine pic and
7424         __tls_get_addr symbol reference here.  Update call to
7425         gen_tls_global_dynamic_{32,64} for added arguments.
7426         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
7427         expanders directly for TARGET_GNU2_TLS.  Determine
7428         __tls_get_addr symbol reference here.  Update call to
7429         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
7430         unique UNSPEC REG_EQUIV to libcall block.
7431         (ix86_tls_get_addr): Declare static.
7432         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
7433         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
7434         Do not determine pic and __tls_get_addr symbol reference here. Do not
7435         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
7436         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
7437         (tls_global_dynamic_64): Add operand 2.  Do not determine
7438         __tls_get_addr symbol reference here.  Do not call
7439         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
7440         (tls_local_dynamic_base64): Ditto for operand 1.
7441
7442 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
7443
7444         * function.c (expand_function_start): Initialize stack_check_probe_note
7445         only if the generic stack checking mechanism is used.
7446
7447 2011-05-11  Richard Guenther  <rguenther@suse.de>
7448
7449         PR tree-optimization/15256
7450         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
7451         (A & B) | C, combine (A op CST1) op CST2.
7452         (tree_ssa_forward_propagate_single_use_vars): Only bother to
7453         visit assigns that have uses.
7454
7455 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
7456
7457         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
7458         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
7459         (unpack_ts_type_common_value_fields): ...this.  Update comment.
7460         (unpack_value_fields): Adjust for renaming.
7461         (lto_input_ts_type_tree_pointers): Split into...
7462         (lto_input_ts_type_common_tree_pointer): ...this and...
7463         (lto_input_ts_type_non_common_tree_pointers): ...this.
7464         (lto_input_tree_pointers): Adjust for above split.
7465         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
7466         (pack_ts_type_common_value_fields): ...this.  Update comment.
7467         (lto_output_ts_type_tree_pointers): Split into...
7468         (lto_output_ts_type_common_tree_pointers): ...this and...
7469         (lto_output_ts_type_non_common_tree_pointers): ...this.
7470         (lto_output_tree_pointers): Adjust for above split.
7471         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
7472         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
7473         * stor-layout.c (vector_type_mode): Adjust location of mode field.
7474         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
7475         Define.
7476         (struct tree_type): Split into...
7477         (struct tree_type_common: ...this and...
7478         (struct tree_type_with_lang_specific): ...this and...
7479         (struct tree_type_non_common): ...this.  Adjust accessor macros
7480         accordingly.
7481         (TYPE_VALUES_RAW): Define.
7482         (union tree_node): Update for above changes.
7483         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
7484         TS_TYPE_NON_COMMON.
7485         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
7486         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
7487         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
7488         * treestructu.def (TS_TYPE): Remove.
7489         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
7490         Define.
7491
7492 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
7493
7494         PR debug/48159
7495         * tree-ssa.c (reset_debug_uses): New function.
7496         * tree-flow.h (reset_debug_uses): New prototype.
7497         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
7498         * tree-loop-distribution.c (generate_loops_for_partition): Call
7499         reset_debug_uses on the stmts that will be removed.  Keep around
7500         all debug stmts, don't count them as bits in partition bitmap.
7501         (generate_builtin): Don't count debug stmts or labels as bits in
7502         partition bitmap.
7503
7504 2011-05-11  Richard Guenther  <rguenther@suse.de>
7505
7506         * gimple.c (gimple_type_hash_1): Merge with ...
7507         (gimple_type_hash): ... this.
7508         (gtc_visit): Remove mode parameter and simplify accordingly.
7509         (gimple_types_compatible_p_1): Likewise.
7510         (gimple_types_compatible_p): Likewise.
7511         (iterative_hash_gimple_type): Likewise.
7512         (visit): Likewise.
7513         (gimple_type_eq): Adjust.
7514
7515 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7516
7517         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
7518         enters the branch create an anti edge in the opposite direction
7519         to prevent the creation of reg-moves.
7520         * modulo-sched.c: Adjust comment to reflect the fact we are
7521         scheduling closing branch.
7522         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
7523         (stage_count): New field in struct partial_schedule.
7524         (calculate_stage_count): New function.
7525         (normalize_sched_times): Rename to reset_sched_times and handle
7526         incrementing the sched time of the nodes by a constant value
7527         passed as parameter.
7528         (duplicate_insns_of_cycles): Skip closing branch.
7529         (sms_schedule_by_order): Schedule closing branch.
7530         (ps_insn_find_column): Handle closing branch.
7531         (sms_schedule): Call reset_sched_times and adjust the code to
7532         support scheduling of the closing branch.
7533         (ps_insert_empty_row): Update calls to normalize_sched_times
7534         and rotate_partial_schedule functions.
7535
7536 2011-05-11  Richard Guenther  <rguenther@suse.de>
7537
7538         PR middle-end/48953
7539         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
7540
7541 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
7542
7543         * opts.c (finish_options): Move warning settings from process_options.
7544         * toplev.c (process_options): Move warning settings to finish_options.
7545
7546 2011-05-11  Richard Guenther  <rguenther@suse.de>
7547
7548         PR tree-optimization/18041
7549         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
7550         (simplify_bitwise_binary): ... this.  Handle operand conversions
7551         by applying them to the result instead.
7552         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
7553
7554 2011-05-11  Richard Guenther  <rguenther@suse.de>
7555
7556         * gimple.c (gimple_canonical_types_compatible_p): Split out
7557         from gimple_types_compatible_p and friends.  Do not recurse
7558         to pointed-to types.
7559         (gimple_canonical_type_eq): Use it.
7560         (iterative_hash_canonical_type): Split out from
7561         iterative_hash_gimple_type and friends.  Do not recurse
7562         to pointed-to types.
7563         (gimple_canonical_type_hash): Use it, allocate the hash here.
7564
7565 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7566
7567         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
7568         recognizing doloop.
7569
7570 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7571
7572         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
7573         instead of PREV_INSN.
7574
7575 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7576
7577         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
7578         * loop-doloop.c (doloop_condition_get): Likewise.
7579         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
7580         (doloop_end): New.
7581         * config/arm/arm.md (*addsi3_compare0): Remove "*".
7582
7583 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
7584
7585         * tree.def (CASE_LABEL_EXPR): Add an operand.
7586         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
7587
7588 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7589
7590         * c-decl.c (c_override_global_bindings_to_false): Remove.
7591         (global_bindings_p): Don't check
7592         c_override_global_bindings_to_false.
7593         * c-tree.h (c_override_global_bindings_to_false): Remove.
7594         * c-typeck.c (composite_type): Don't set
7595         c_override_global_bindings_to_false.
7596
7597 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
7598
7599         PR target/48857, 48495
7600         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
7601         (VSX_MODE): Ditto.
7602         (VSX_MOVE_MODE): Ditto.
7603         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
7604         VSX vector types.  Add V2DImode.
7605         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
7606         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
7607         (MODES_TIEABLE_P): Ditto.
7608
7609         * config/rs6000/rs6000.c (rs6000_emit_move): Use
7610         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
7611         VSX_VECTOR_MODE.
7612         (init_cumulative_args): Ditto.
7613         (rs6000_function_arg_boundary): Ditto.
7614         (rs6000_function_arg_advance_1): Ditto.
7615         (rs6000_function_arg): Ditto.
7616         (rs6000_function_ok_for_sibcall): Ditto.
7617         (emit_frame_save): Ditto.
7618         (rs6000_function_value): Ditto.
7619         (rs6000_libcall_value): Ditto.
7620
7621 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7622
7623         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7624         i386/darwin-lib.h to $libgcc_tm_file.
7625         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
7626
7627 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7628
7629         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
7630
7631 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7632
7633         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
7634         * config/rs6000/rs6000-tables.opt: New file (generated).
7635         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
7636         rs6000/rs6000-tables.opt to extra_options.
7637         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
7638         * config/rs6000/rs6000.c (rs6000_select): Remove.
7639         (processor_target_table): Move contents to rs6000-cpus.def.
7640         (darwin_rs6000_override_options): Check
7641         global_options_set.x_rs6000_cpu_index instead of
7642         rs6000_select[1].string.
7643         (rs6000_option_override_internal): Likewise.
7644         (rs6000_handle_option): Don't assert that global structures are in
7645         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
7646         (rs6000_default_cpu): New variable.
7647         (rs6000_file_start): Set it instead of local default_cpu.  Check
7648         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
7649         global_options_set.x_rs6000_tune_index instead of rs6000_select.
7650         (rs6000_darwin_file_start): Check rs6000_default_cpu and
7651         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
7652         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
7653         rs6000_select): Remove.
7654         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
7655         Remove.
7656         (mcpu=, mtune=): Use Var, Init, Enum and Save.
7657         * config/rs6000/t-rs6000
7658         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
7659         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7660         global_options_set.x_rs6000_cpu_index instead of
7661         rs6000_select[1].string.
7662         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7663         global_options_set.x_rs6000_cpu_index instead of
7664         rs6000_select[1].string.
7665
7666 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7667
7668         * config.gcc (libgcc_tm_file): Define instead of including files
7669         from ../../libgcc/config/ in tm_file.
7670         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
7671         * configure: Regenerate.
7672         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
7673         libgcc_tm.h, cs-libgcc_tm.h): New.
7674         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
7675         (clean): Remove libgcc_tm.h.
7676         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
7677         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
7678         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
7679
7680 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
7681
7682         PR target/48896
7683         * config/avr/avr.c (avr_ret_register): Return unsigned int
7684         instead of int.
7685         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
7686         it to avr_libcall_value.
7687         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
7688         expand_expr.
7689         (avr_expand_binop_builtin): Ditto.
7690         (avr_expand_unop_builtin): Ditto.
7691
7692 2011-05-10  DJ Delorie  <dj@redhat.com>
7693
7694         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
7695         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
7696         * config/rx/rx.c (rx_align_for_label): Add label and
7697         uses_threshold parameters.  Do not align when the label is not
7698         used enough.
7699         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
7700
7701 2011-05-10  Richard Guenther  <rguenther@suse.de>
7702
7703         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
7704         a series of conversions and apply foldings similar to what
7705         fold-const does.
7706         (tree_ssa_forward_propagate_single_use_vars): Call it.
7707
7708 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
7709
7710         PR tree-optimization/48611
7711         PR tree-optimization/48794
7712         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
7713         referenced from RESX or EH_DISPATCH arguments.
7714
7715         PR debug/48928
7716         * dfp.c (decimal_to_decnumber): Handle conversion from
7717         dconst{1,2,m1,half}.
7718
7719 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7720
7721         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
7722         for !flag_prefer_avx128.
7723         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
7724
7725 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7726
7727         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
7728         (fold_ternary_loc): Use expr_location_or.
7729
7730 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7731
7732         PR debug/48853
7733         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
7734         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
7735         Pmode and mem_mode is not VOIDmode.
7736
7737 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
7738
7739         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
7740         TYPE_QUAL_RESTRICT): Convert to enum.
7741
7742 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7743
7744         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
7745         (const_pow2_1_to_8_operand): Ditto.
7746         (const_pow2_1_to_128_operand): Ditto.
7747         (const_pow2_1_to_32768_operand): Ditto.
7748         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
7749         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
7750         in insn constraint to check integer value of operand 3.
7751         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
7752
7753         (PINSR_MODE): New mode iterator.
7754         (sse2p4_1): New mode attribute.
7755         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
7756         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
7757         iterator.  Use const_int_operand instead of
7758         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
7759         exact_log2 in insn constraint to check integer value of operand 3.
7760
7761 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7762
7763         * config/i386/sse.md (blendbits): Remove mode attribute.
7764         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
7765         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
7766         Check integer value of operand 3 in insn constraint.
7767
7768 2011-05-09  Richard Guenther  <rguenther@suse.de>
7769
7770         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
7771         for diagnostics.
7772         (lto_symtab_merge): Likewise.  Do not register types here.
7773         (lto_symtab_merge_decls_2): Likewise.
7774         (lto_symtab_merge_decls_1): Likewise.
7775         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
7776         * gimple.c (enum gtc_mode): Declare.
7777         (gimple_types_compatible_p): Make static.
7778
7779 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7780
7781         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
7782         temporary register to match Pmode.
7783
7784 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7785
7786         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
7787         and *vec_concatv4si_1_avx.
7788
7789 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7790
7791         PR rtl-optimization/48927
7792         * ira-conflicts.c (commutative_constraint_p): Use
7793         recog_data.alternative_enabled_p to disable alternatives where
7794         "enabled" attribute is false.
7795         (get_dup_num): Ditto.
7796         * ira-lives.c (single_reg_class): Ditto.
7797         (ira_implicitly_set_insn_hard_regs): Ditto.
7798
7799 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7800
7801         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
7802         (dataflow_set_preserve_mem_locs): Likewise.
7803
7804 2011-05-09  Philipp Thomas  <pth@suse.de>
7805
7806         * config/mep/mep.c (mep_validate_vliw): Syntax description
7807         should not be translated.
7808
7809 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
7810
7811         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
7812         * config/mips/mips-tables.opt: New file (generated).
7813         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
7814         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
7815         MIPS_ARCH_OPTION_NATIVE): Define.
7816         * config/mips/mips.c (mips_cpu_info_table): Move contents to
7817         mips-cpus.def.
7818         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
7819         mips_parse_cpu): Remove.
7820         (mips_cpu_info_from_opt, mips_default_arch): New.
7821         (mips_handle_option): Don't assert that global structures are in
7822         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
7823         (mips_option_override): Use new variables and functions to set
7824         state of these options.  Use strcmp to check for individual CPU names.
7825         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
7826         definition.
7827         * config/mips/mips.opt (march=): Use ToLower and Enum.
7828         (mips): Use ToLower, Enum and Var.
7829         (mtune=): Use ToLower and Enum.
7830         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
7831
7832 2011-05-08  Jan Hubicka  <jh@suse.cz>
7833
7834         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
7835         Arrange type pairs to be UID ordered.
7836         (gimple_lookup_type_leader): Make inline.
7837
7838 2011-05-09  Nick Clifton  <nickc@redhat.com>
7839
7840         PR target/48899
7841         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
7842         PROCESSOR_DEFAULT.
7843
7844         PR target/48897
7845         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
7846         variable 's'.
7847
7848 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
7849
7850         * combine.c (simplify_comparison): Abstract out parts into...
7851         (simplify_compare_const): ... new function.
7852         (try_combine): Generalize parallel arithmetic/compare combining
7853         to call simplify_compare_const() and CANONICALIZE_COMPARE().
7854
7855 2011-05-08  Jan Hubicka  <jh@suse.cz>
7856
7857         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
7858         (cgraph_create_virtual_clone): Call hooks once virtual clone
7859         is finished.
7860         * cgraph.h (cgraph_clone_node): Update prototype.
7861         * ipa-cp.c (ipcp_estimate_growth): Use
7862         estimate_ipcp_clone_size_and_time.
7863         * ipa-inline-transform.c (clone_inlined_nodes): Update.
7864         * lto-cgraph.c (input_node): Update.
7865         * ipa-inline.c (recursive_inlining): Update.
7866         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
7867         (evaluate_conditions_for_known_args): Break out from ...
7868         (evaluate_conditions_for_edge): ... here.
7869         (evaluate_conditions_for_ipcp_clone): New function.
7870         (inline_node_duplication_hook): Update clone summary based
7871         on parameter map.
7872         (estimate_callee_size_and_time): Rename to ...
7873         (estimate_node_size_and_time): take NODE instead of EDGE;
7874         take POSSIBLE_TRUTHS as argument.
7875         (estimate_callee_size_and_time): Update.
7876         (estimate_ipcp_clone_size_and_time): New function.
7877         (do_estimate_edge_time): Update.
7878
7879 2011-05-08  Richard Guenther  <rguenther@suse.de>
7880
7881         PR middle-end/48908
7882         PR middle-end/48905
7883         * expmed.c (expand_shift_1): Compute adjusted constant shift
7884         amount manually.
7885
7886 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7887
7888         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
7889
7890 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7891
7892         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
7893
7894 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
7895
7896         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
7897
7898 2011-05-07  Jan Hubicka  <jh@suse.cz>
7899
7900         * ipa-inline-transform.c (inline_call): Account when program size
7901         decreases.
7902         * ipa-inline.c (relative_time_benefit): New function.
7903         (edge_badness): Reorganize to be power 2 based; fix thinko when
7904         computing badness for negative growth; update comments to match
7905         reality; better dumps.
7906
7907 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
7908
7909         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
7910         type to bool and adjust comment.
7911         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
7912         (fold_mathfn_compare): Remove calls to global_bindings_p.
7913         (fold_inf_compare): Likewise.
7914         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
7915         * c-tree.h (global_bindings_p): Adjust prototype.
7916         * c-decl.c (global_bindings_p): Return bool and simplify.
7917
7918 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
7919
7920         PR tree-optimization/48837
7921         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
7922         when accumulator transformation is performed.
7923
7924 2011-05-06  Jan Hubicka  <jh@suse.cz>
7925
7926         * i386.h (ix86_tune_indices): Add
7927         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
7928         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
7929         * i386.c (initial_ix86_tune_features): Add
7930         X86_SOFTARE_PREFETCHING_BENEFICIAL.
7931         (software_prefetching_beneficial_p): Remove predicate.
7932         (ix86_option_override_internal): Use new macro.
7933
7934 2011-05-06  Jan Hubicka  <jh@suse.cz>
7935
7936         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
7937
7938 2011-05-06  Jan Hubicka  <jh@suse.cz>
7939
7940         * cgraph.c (cgraph_add_thunk): Create real function node instead
7941         of alias node; finalize it and mark needed/reachale; arrange visibility
7942         to be right and add it into the corresponding same comdat group list.
7943         (dump_cgraph_node): Dump thunks.
7944         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
7945         cgraph_function_with_gimple_body_p,
7946         cgraph_first_function_with_gimple_body,
7947         cgraph_next_function_with_gimple_body): New functions.
7948         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
7949         New macros.
7950         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
7951         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
7952         * cgraphunit.c (cgraph_finalize_function): Only look into possible
7953         devirtualization when optimizing.
7954         (verify_cgraph_node): Verify thunks.
7955         (cgraph_analyze_function): Analyze thunks.
7956         (cgraph_mark_functions_to_output): Output thunks only in combination
7957         with function they are assigned to.
7958         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
7959         alias into normal node.
7960         (assemble_thunks): New functoin.
7961         (cgraph_expand_function): Use it.
7962         * lto-cgraph.c (lto_output_node): Stream thunks.
7963         (input_overwrite_node): Stream in thunks.
7964         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
7965         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
7966         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
7967         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
7968         (inline_analyze_function): Do not care about thunk jump functions.
7969         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
7970         * ipa-prop.c (ipa_prop_write_jump_functions): Use
7971         cgraph_function_with_gimple_body_p.
7972         * passes.c (do_per_function_toporder): Use
7973         cgraph_function_with_gimple_body_p.
7974         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
7975         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
7976         (function_called_by_processed_nodes_p): Likewise.
7977
7978 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
7979
7980         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
7981         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
7982         entries.
7983         (mabi=): Replace with separate entries for mabi=altivec,
7984         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
7985         mabi=ieeelongdouble and mabi=ibmlongdouble.
7986         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
7987         check for -mabi=spe without SPE ABI support here.
7988         (rs6000_handle_option): Replace OPT_mabi_ handling with
7989         OPT_mabi_altivec and OPT_mabi_spe handling.
7990
7991 2011-05-06  Cary Coutant  <ccoutant@google.com>
7992
7993         * dwarf2out.c (contains_subprogram_definition): New function.
7994         (should_move_die_to_comdat): Call it.
7995
7996 2011-05-06  Jeff Law  <law@redhat.com>
7997
7998         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
7999         remove_ctrl_stmt_and_useless_edges.
8000         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
8001         (fixup_template_block, thread_single_edge): Likewise.
8002         (mark_threaded_blocks): Use THREAD_TARGET.
8003
8004 2011-05-06  Alan Modra  <amodra@gmail.com>
8005
8006         PR target/48900
8007         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
8008         const0_rtx as the arg to the dummy __tls_get_addr libcall.
8009
8010 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
8011
8012         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
8013         constraint modifier to "r".
8014
8015 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
8016
8017         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
8018         fall through for OPT_mcmodel_.
8019
8020 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8021
8022         * config/s390/s390.c (s390_asm_trampoline_template): Comment
8023         instruction sizes.
8024         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
8025
8026 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8027
8028         PR target/47930
8029         * config/arm/arm.opt (marm): Document it.
8030         (mthumb): Reject negative variant.
8031
8032 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
8033
8034         PR target/48898
8035         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
8036         Fix typo in "ccvt" variable name.
8037
8038 2011-05-06  Tristan Gingold  <gingold@adacore.com>
8039
8040         PR target/48895
8041         * config/vms/vms-ar.c (main): Remove cwd variable.
8042
8043 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
8044
8045         PR debug/48902
8046         * var-tracking.c (prepare_call_arguments): Move else before #endif.
8047
8048 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
8049
8050         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
8051         * gimplify.c (gimplify_switch_expr): Likewise.
8052         * omp-low.c (expand_omp_sections): Likewise.
8053         * tree-eh.c (lower_try_finally_switch): Likewise.
8054         (lower_eh_dispatch): Likewise.
8055         * tree.h (build_case_label): Declare.
8056         * tree.c (build_case_label): Define.
8057
8058 2011-05-05  Jason Merrill  <jason@redhat.com>
8059
8060         PR c++/40975
8061         * tree-inline.c (copy_tree_r): Use copy_statement_list.
8062         (copy_statement_list): Don't recurse.
8063         * stor-layout.c (copy_self_referential_tree_r): Don't allow
8064         STATEMENT_LIST.
8065
8066 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
8067
8068         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
8069         through from -mfpu= handling.
8070         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
8071
8072 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
8073
8074         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
8075         POST_MODIFY.
8076
8077 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
8078
8079         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
8080         for 11.31.
8081         (hppa[12]*-*-hpux11*): Ditto.
8082         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
8083         * config/ia64/hpux-unix2003.h: New.
8084         * config/pa/pa-hpux1131.opt: New.
8085         * config/pa/pa-hpux1131.h: New.
8086         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
8087         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
8088         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
8089
8090 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
8091
8092         PR debug/48853
8093         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
8094         instead of mode as 3rd argument to recursive call.
8095         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
8096         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
8097         VOIDmode.
8098         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
8099         don't give up if mode is Pmode and mem_mode is not VOIDmode.
8100         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
8101         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
8102
8103 2011-05-05  Julian Brown  <julian@codesourcery.com>
8104
8105         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
8106         parenthesis in D-register case.
8107
8108 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
8109
8110         * opt-functions.awk (var_type_struct): Handle Enum options.
8111         * optc-gen.awk: Don't check range of variables of character type.
8112         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
8113         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
8114         rs6000_sdata_name, rs6000_explicit_options): Remove.
8115         (rs6000_option_override_internal): Check for -malign-power here.
8116         Use global_options_set instead of rs6000_explicit_options.
8117         (rs6000_parse_fpu_option): Remove.
8118         (rs6000_handle_option): Access variables via opts and opts_set
8119         pointers.  Use error_at and warning_at.  Add fall-through
8120         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
8121         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
8122         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
8123         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
8124         here.  Don't use rs6000_parse_fpu_option.
8125         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
8126         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
8127         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
8128         (mrecip=): Use Var.
8129         (mspe): Use Var and Save.
8130         (mtraceback=): Use Enum and Var.
8131         (rs6000_traceback_type): New Enum and EnumValue entries.
8132         (mfloat-gprs=): Use Enum, Var and Save.
8133         (rs6000_float_gprs): New Enum and EnumValue entries.
8134         (mlong-double-): use Var and Save.
8135         (msched-costly-dep=, minsert-sched-nops=): Use Var.
8136         (malign-): Use Enum and Var.
8137         (rs6000_alignment_flags): New Enum and EnumValue entries.
8138         (mfpu=): Use Enum.
8139         (fpu_type_t): New Enum and EnumValue entries.
8140         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8141         global_options_set instead of rs6000_explicit_options.
8142         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8143         global_options_set instead of rs6000_explicit_options.
8144         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8145         global_options_set instead of rs6000_explicit_options.
8146         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8147         global_options_set instead of rs6000_explicit_options.
8148         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
8149         global_options_set instead of rs6000_explicit_options.
8150         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8151         global_options_set instead of rs6000_explicit_options.
8152         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
8153         definition.
8154         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8155         global_options_set instead of rs6000_explicit_options.
8156         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
8157         (rs6000_cmodel): New Enum and EnumValue entries.
8158         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8159         global_options_set instead of rs6000_explicit_options.
8160         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
8161         (mtls-size=): Use Enum and Var.
8162         (rs6000_tls_size): New Enum and EnumValue entries.
8163
8164 2011-05-05  Michael Matz  <matz@suse.de>
8165
8166         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
8167         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
8168         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
8169         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
8170         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
8171         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
8172         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
8173         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
8174         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
8175         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
8176         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
8177         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
8178         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
8179         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
8180         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
8181         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
8182
8183 2011-05-05  Richard Guenther  <rguenther@suse.de>
8184
8185         * expmed.c (expand_variable_shift): Rename to ...
8186         (expand_shift_1): ... this.  Take an expanded shift amount.
8187         For rotates recurse directly not building trees for the shift amount.
8188         (expand_variable_shift): Wrap around expand_shift_1.
8189         (expand_shift): Adjust.
8190
8191 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
8192
8193         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
8194
8195 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
8196
8197         * tree.h (get_pending_sizes): Remove prototype.
8198         (put_pending_size): Likewise.
8199         (put_pending_sizes): Likewise.
8200         * stor-layout.c (pending_sizes): Delete.
8201         (get_pending_sizes): Likewise.
8202         (put_pending_size): Likewise.
8203         (put_pending_sizes): Likewise.
8204         (variable_size): Do not call put_pending_size and tidy up.
8205         * function.h (struct function): Remove dont_save_pending_sizes_p.
8206         * lto-streamer-in.c (input_function): Do not stream it.
8207         * lto-streamer-out.c (output_function): Likewise.
8208         * tree-inline.c (initialize_cfun): Do not copy it.
8209         * c-decl.c (store_parm_decls): Do not set it.
8210         * omp-low.c (create_task_copyfn): Likewise.
8211         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8212
8213 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
8214
8215         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
8216         conditions.
8217         (*movdf_internal): Ditto.
8218         (*movdf_internal_nointeger): Ditto.
8219         (*movsf_internal): Ditto.
8220
8221 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
8222
8223         * c-decl.c (finish_decl): Don't call get_pending_sizes.
8224         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
8225         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
8226         (c_variable_size): Remove.
8227         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
8228         call put_pending_sizes.
8229         (get_parm_info): Add parameter expr.  Use it to set
8230         arg_info->pending_sizes.
8231         (store_parm_decls): Use arg_info->pending_sizes instead or calling
8232         get_pending_sizes.
8233         * c-parser.c (c_parser_parms_declarator): Update call to
8234         c_parser_parms_list_declarator.
8235         (c_parser_parms_list_declarator): Take parameter expr.  Update
8236         call to push_parm_decl.  Update recursive call.  Don't call
8237         get_pending_sizes.  Update calls to get_parm_info.
8238         (c_parser_objc_method_definition): Update calls to
8239         c_parser_objc_method_decl and objc_start_method_definition.
8240         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
8241         (c_parser_objc_method_decl): Add parameter expr.  Update call to
8242         grokparm.
8243         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
8244         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
8245         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
8246
8247 2011-05-05  Michael Hope  <michael.hope@linaro.org>
8248
8249         PR pch/45979
8250         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
8251         __ARM_EABI__ hosts.
8252
8253 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8254
8255         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
8256         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
8257         (spu_output_mi_thunk): New function.
8258
8259 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8260
8261         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
8262         targetm.asm_out.print_operand.
8263         * config/sol2.c: Include target.h.
8264
8265 2011-05-04  Jan Hubicka  <jh@suse.cz>
8266
8267         * ipa-inline.c (reset_edge_caches): New function.
8268         (update_caller_keys): Add check_inlinablity_for; do not
8269         reset edge caches; remove now unnecesary loop.
8270         (update_callee_keys): Add comments; reset node_growth_cache of callee.
8271         (update_all_callee_keys): Likewise.
8272         (inline_small_functions): Sanity check cache; update code
8273         recomputing it.
8274
8275 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
8276
8277         PR rtl-optimization/47612
8278         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
8279         as the last insn of the sequence to be moved.
8280
8281 2011-05-04  Tobias Burnus  <burnus@net-b.de>
8282
8283         PR fortran/48864
8284         * doc/invoke.texi (Ofast): Document that it
8285         enables Fortran's -fno-protect-parens.
8286
8287 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
8288
8289         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
8290
8291 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
8292
8293         * stor-layout.c (variable_size): Do not issue errors.
8294
8295 2011-05-04  Richard Guenther  <rguenther@suse.de>
8296
8297         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
8298         for array-ref indices.
8299         (tree_coverage_counter_addr): Likewise.
8300         (build_fn_info_type): Use size_int for index types.
8301         (build_gcov_info): Likewise.
8302
8303 2011-05-04  Richard Guenther  <rguenther@suse.de>
8304
8305         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
8306         to build_int_cst.
8307         * c-typeck.c (really_start_incremental_init): Use bitsize_int
8308         for constructor indices.
8309         (push_init_level): Likewise.
8310
8311 2011-05-04  Richard Guenther  <rguenther@suse.de>
8312
8313         * explow.c (promote_mode): Move variable declarations before code.
8314
8315 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
8316
8317         * tree.h (build_function_type_array): Declare.
8318         (build_varargs_function_type_array): Declare.
8319         (build_function_type_vec, build_varargs_function_type_vec): Define.
8320         * tree.c (build_function_type_array_1): New function.
8321         (build_function_type_array): New function.
8322         (build_varargs_function_type_array): New function.
8323
8324 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
8325
8326         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
8327         before setting STMT_VINFO_TYPE.
8328
8329 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8330
8331         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
8332         instead of spu_pass_by_reference.
8333
8334 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8335
8336         * calls.c (emit_library_call_value_1): Invoke
8337         promote_function_mode hook on libcall arguments.
8338         * explow.c (promote_function_mode, promote_mode): Handle TYPE
8339         argument being NULL.
8340         * targhooks.c (default_promote_function_mode): Lisewise.
8341         * config/s390/s390.c (s390_promote_function_mode): Likewise.
8342         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
8343
8344         * doc/tm.texi: Document that TYPE argument might be NULL.
8345
8346 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8347
8348         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
8349
8350 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8351
8352         From Bernd Schmidt
8353         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
8354
8355 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8356
8357         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
8358         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
8359         Move ...
8360         * mips-tfile.c: ... here.
8361         Don't include coretypes.h, tm.h, filenames.h.
8362         (saber_stop): Remove definition and all calls.
8363         [__SABER__]: Remove.
8364         (__LINE__): Remove default.
8365         (Size_t, Ptrdiff_t): Remove definitions.
8366         Replace by size_t, ptrdiff_t.
8367         [!MIPS_DEBUGGING_INFO]: Remove.
8368         (SHASH_SIZE, THASH_SIZE): Remove defaults.
8369         (progname): Add const.
8370         (STATIC): Remove.
8371         Replace all uses by static.
8372         (ALIGN_SYMTABLE_OFFSET): Remove default.
8373         * mips-tdump.c: Don't include coretypes.h, tm.h.
8374         Remove !MIPS_IS_STAB guard.
8375         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
8376         $(TM_H), filenames.h dependencies.
8377         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
8378
8379 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8380
8381         From Jie Zhang
8382         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
8383         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
8384
8385 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8386
8387         From Bernd Schmidt
8388         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
8389         account and save/restore RETS.
8390         (PROFILE_BEFORE_PROLOGUE): Define.
8391         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
8392         the push insn to use predecrement.
8393
8394 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8395
8396         From Jie Zhang
8397         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
8398
8399 2011-05-04  Nick Clifton  <nickc@redhat.com>
8400
8401         * config/mn10300/mn10300.c: Include cfgloop.h.
8402         (DUMP): New macro.
8403         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
8404         Lcc or a FLcc insn into the instruction stream.
8405         (mn10300_block_contains_call): New function.  Returns true if the
8406         given basic block contains a CALL insn.
8407         (mn10300_loop_contains_call_insn): New function.  Returns true if
8408         the given loop contains a CALL insn.
8409         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
8410         to use the SETLB and Lcc or FLcc insns.
8411         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
8412         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
8413         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
8414         disable the SETLB optimization.
8415         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
8416         __SETLB__ or __NO_SETLB__.
8417         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
8418         (movsf_internal): Handle MDR register.
8419         (cmpsi): Make visible.
8420         (setlb): New pattern.
8421         (Lcc): New pattern.
8422         (FLcc): New pattern.
8423
8424 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
8425
8426         PR target/48860
8427         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
8428         for reg<->xmm moves.
8429         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
8430         (vec_concatv2di_rex64_sse): Ditto.
8431         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
8432         (*vec_extractv2di_1_rex64): Ditto.
8433
8434         Revert:
8435         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8436
8437         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
8438         reg<->xmm moves.
8439         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
8440
8441 2011-05-04  Richard Guenther  <rguenther@suse.de>
8442
8443         * tree.h (int_const_binop): Remove notrunc argument.
8444         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
8445         create integer constants that are properly truncated.
8446         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
8447         (const_binop): Remove zero notrunc argument to int_const_binop.
8448         (size_binop_loc): Likewise.
8449         (fold_div_compare): Likewise.
8450         (maybe_canonicalize_comparison_1): Likewise.
8451         (fold_comparison): Likewise.
8452         (fold_binary_loc): Likewise.
8453         (multiple_of_p): Likewise.
8454         * expr.c (store_constructor): Likewise.
8455         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
8456         (maybe_fold_stmt_addition): Likewise.
8457         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
8458         * stor-layout.c (layout_type): Likewise.
8459         * tree-data-ref.c (tree_fold_divides_p): Likewise.
8460         * tree-sra.c (build_ref_for_offset): Likewise.
8461         (build_user_friendly_ref_for_offset): Likewise.
8462         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
8463         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
8464         * tree-ssa-loop-niter.c (inverse): Likewise.
8465         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
8466         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
8467         * tree-switch-conversion.c (check_range): Likewise.
8468         (build_constructors): Likewise.
8469         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
8470         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
8471         (extract_range_from_assert): Likewise.
8472         (vrp_int_const_binop): Likewise.
8473         (extract_range_from_binary_expr): Likewise.
8474         (extract_range_from_unary_expr): Likewise.
8475         (check_array_ref): Likewise.
8476         (find_case_label_range): Likewise.
8477         (simplify_div_or_mod_using_ranges): Likewise.
8478         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
8479         comparing case labels for merging.
8480
8481 2011-05-03  Mark Wielaard  <mjw@redhat.com>
8482
8483         * dwarf2out.c (debug_str_hash_forced): Removed.
8484         (gen_label_for_indirect_string): Removed.
8485         (get_debug_string_label): Removed.
8486         (AT_string_form): Generate label directly.
8487         (output_indirect_string): Test indirect_string_node for
8488         DW_FORM_strp instead of checking label and refcount.
8489         (prune_indirect_string): Removed.
8490         (prune_unused_types): Don't check debug_str_hash_forced or
8491         call prune_indirect_string.
8492
8493 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
8494
8495         PR other/48093
8496         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
8497
8498 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
8499
8500         PR debug/47994
8501         PR debug/47919
8502         * combine.c (try_combine): Skip debug insns at m_split tests.
8503
8504 2011-04-26  Mark Wielaard  <mjw@redhat.com>
8505
8506         PR42288
8507         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
8508         when info_section_emitted.
8509
8510 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
8511
8512         * config/mips/mips-opts.h: New.
8513         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
8514         to mips-opts.h.
8515         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
8516         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
8517         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
8518         via opts pointer.
8519         * config/mips/mips.h (enum mips_code_readable_setting): Move to
8520         mips-opts.h.
8521         (mips_abi, mips_code_readable): Don't declare.
8522         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
8523         (mabi=): Use Enum and Var.
8524         (mips_abi): New Enum and EnumValue entries.
8525         (mcode-readable=): Use Enum and Var.
8526         (mips_code_readable_setting): New Enum and EnumValue entries.
8527         (mr10k-cache-barrier=): Use Enum and Var.
8528         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
8529
8530 2011-05-03  Jan Hubicka  <jh@suse.cz>
8531
8532         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
8533         replace hash by pointer map.
8534         (cgraph_node_set_element_def, cgraph_node_set_element,
8535         const_cgraph_node_set_element, varpool_node_set_element_def,
8536         varpool_node_set_element, const_varpool_node_set_element): Remove.
8537         (free_cgraph_node_set, free_varpool_node_set): New function.
8538         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
8539         * tree-emutls.c: Free varpool node set.
8540         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
8541         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
8542         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
8543         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
8544         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
8545         Move here from ipa.c; implement using pointer_map
8546         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
8547         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
8548         debug_cgraph_node_set, varpool_node_set_new,
8549         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
8550         dump_varpool_node_set, debug_varpool_node_set):
8551         Move to ipa-uitls.c.
8552         * passes.c (ipa_write_summaries): Update.
8553
8554 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8555
8556         From Mike Frysinger:
8557         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
8558         bf542/bf544/bf547/bf548/bf549.
8559
8560 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
8561
8562         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
8563
8564 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8565
8566         From Bernd Schmidt:
8567         * config/bfin/bfin.md (MOVCC): New mode_macro.
8568         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
8569         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
8570         comments from generated assembly.
8571
8572 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8573
8574         From Bernd Schmidt
8575         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
8576         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
8577         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
8578         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
8579         * config/bfin/lib1funcs.asm (___muldi3): New function.
8580
8581 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8582
8583         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
8584         build_function_type_list instead of build_function_type.
8585         Rearrange initialization of `args' to do so.
8586
8587 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8588
8589         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
8590         instead of build_function_type.
8591
8592 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8593
8594         * config/rs6000/rs6000.c (spe_init_builtins): Call
8595         build_function_type_list instead of build_function_type.
8596         (paired_init_builtins, altivec_init_builtins): Likewise.
8597         (builtin_function_type): Likewise.
8598
8599 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8600
8601         * config/sh/sh.c (sh_media_init_builtins): Call
8602         build_function_type_list instead of build_function_type.
8603
8604 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8605
8606         * config/sparc/sparc.c (sparc_file_end): Call
8607         build_function_type_list instead of build_function_type.
8608
8609 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8610
8611         * config/alpha/alpha.c (alpha_init_builtins): Call
8612         build_function_type_list instead of build_function_type.
8613
8614 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8615
8616         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
8617         build_function_type_list instead of build_function_type.
8618
8619 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8620
8621         * config/iq2000/i2000.c (iq2000_init_builtins): Call
8622         build_function_type_list instead of build_function_type.
8623         Delete `endlink' variable.
8624
8625 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8626
8627         * config/avr/avr.c (avr_init_builtins): Call
8628         build_function_type_list instead of build_function_type.
8629
8630 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8631
8632         * config/picochip/picochip.c (picochip_init_builtins): Call
8633         build_function_type_list instead of build_function_type.
8634         Delete `endlink' variable.
8635
8636 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8637
8638         * config/bfin/bfin.c (bfin_init_builtins): Call
8639         build_function_type_list instead of build_function_type.
8640
8641 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8642
8643         From Bernd Schmidt
8644         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
8645         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
8646
8647 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8648
8649         From Jie Zhang:
8650         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
8651         libbffastfp overrides libgcc when -mfast-fp.
8652
8653 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8654
8655         Originally from Bernd Schmidt
8656         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
8657         * config/bfin/bfin.c (override_options): Test it and error if
8658         TARGET_FDPIC.
8659
8660 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8661
8662         Originally From Bernd Schmidt
8663         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
8664         FD-PIC.
8665
8666 2011-05-03  Jeff Law  <law@redhat.com>
8667
8668         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
8669         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
8670         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
8671         than accessing AUX field directly.  Free the AUX field before
8672         clearing it.
8673         (thread_block, thread_through_loop_header): Likewise.
8674         (thread_single_edge, mark_threaded_blocks): Likewise.
8675         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
8676         (register_jump_thread): Do not attempt to thread to a NULL edge.
8677
8678 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
8679
8680         * function.c (init_function_start): Call decide_function_section.
8681         * varasm.c (decide_function_section): New function.
8682         (assemble_start_function): When not using
8683         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
8684         or first_function_block_is_cold.
8685         * rtl.h (decide_function_section): Declare.
8686
8687 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
8688             Jakub Jelinek  <jakub@redhat.com>
8689
8690         PR target/48774
8691         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
8692         only succeed if req_mode is the same as set_mode.
8693
8694 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
8695
8696         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
8697         * genemit.c (gen_exp): Handle RETURN.
8698         * emit-rtl.c (verify_rtx_sharing): Likewise.
8699         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
8700         * rtl.c (copy_rtx): RETURN is shared.
8701         * rtl.h (enum global_rtl_index): Add GR_RETURN.
8702         (ret_rtx): New.
8703         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
8704         * config/s390/s390.c (s390_emit_epilogue): Likewise.
8705         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
8706         * config/cris/cris.c (cris_expand_return): Likewise.
8707         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
8708         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
8709         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
8710         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
8711         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
8712         Likewise.
8713         * config/v850/v850.c (expand_epilogue): Likewise.
8714         * config/bfin/bfin.c (bfin_expand_call): Likewise.
8715         * config/arm/arm.md (epilogue): Likewise.
8716         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
8717         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
8718         variable to ret_reg.
8719
8720 2011-05-03  Richard Guenther  <rguenther@suse.de>
8721
8722         PR lto/48846
8723         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
8724         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
8725         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
8726
8727 2011-05-03  Richard Guenther  <rguenther@suse.de>
8728
8729         * c-decl.c (grokdeclarator): Instead of looking at
8730         TREE_OVERFLOW check if the constant fits in the index type.
8731
8732 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8733
8734         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
8735         (vec_store_lanes<mode><mode>): Likewise.
8736
8737 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8738
8739         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
8740         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
8741         convert_optab_index values.
8742         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
8743         * genopinit.c (optabs): Initialize the new optabs.
8744         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
8745         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
8746         (expand_STORE_LANES): New functions.
8747         * tree.h (build_array_type_nelts): Declare.
8748         * tree.c (build_array_type_nelts): New function.
8749         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
8750         (vect_model_load_cost): Likewise.
8751         (vect_store_lanes_supported, vect_load_lanes_supported)
8752         (vect_record_strided_load_vectors): Declare.
8753         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
8754         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
8755         (vect_transform_strided_load): Split out statement recording into...
8756         (vect_record_strided_load_vectors): ...this new function.
8757         * tree-vect-stmts.c (create_vector_array, read_vector_array)
8758         (write_vector_array, create_array_ref): New functions.
8759         (vect_model_store_cost): Add store_lanes_p argument.
8760         (vect_model_load_cost): Add load_lanes_p argument.
8761         (vectorizable_store): Try to use store-lanes functions for
8762         interleaved stores.
8763         (vectorizable_load): Likewise load-lanes and loads.
8764         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
8765         to vect_model_store_cost.
8766         (vect_build_slp_tree): Likewise vect_model_load_cost.
8767
8768 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8769
8770         * hooks.h (hook_bool_mode_uhwi_false): Declare.
8771         * hooks.c (hook_bool_mode_uhwi_false): New function.
8772         * target.def (array_mode_supported_p): New hook.
8773         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
8774         * doc/tm.texi: Regenerate.
8775         * stor-layout.c (mode_for_array): New function.
8776         (layout_type): Use it.
8777         * config/arm/arm.c (arm_array_mode_supported_p): New function.
8778         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
8779
8780 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
8781
8782         PR target/48723
8783         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
8784         for -fstack-check if the size to allocate is negative.
8785
8786 2011-05-02  Lawrence Crowl  <crowl@google.com>
8787
8788         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
8789         (timevar_cond_start): New for starting a timer only when it is not
8790         already running.
8791         (timevar_cond_stop): New for stopping a timer when it was not already
8792         running.
8793
8794         * timevar.c (timevar_stop): Enable start/stop timers to start again.
8795         (timevar_cond_start): New as above.
8796         (timevar_cond_stop): New as above.
8797
8798         * timevar.def: Add start/stop timers for compiler phases,
8799         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
8800         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
8801         and TV_PHASE_FINALIZE.
8802         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
8803         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
8804         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
8805         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
8806         Make unused TV_OVERLOAD into a start/stop timer.
8807
8808         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
8809         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
8810         to indicate that they are start/stop timers.
8811
8812         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
8813         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
8814         Move initialization to do_compile.
8815         (do_compile): Add initialization from above.
8816         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
8817
8818         * c-decl.c (c_write_global_declarations): Add start/stop of
8819         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
8820
8821         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
8822         or TV_PARSE_INLINE, as appropriate.
8823         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
8824         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
8825
8826 2011-05-02  Jason Merrill  <jason@redhat.com>
8827
8828         PR c++/40975
8829         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
8830
8831 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
8832
8833         PR c/35445
8834         * c-decl.c (finish_decl): Only create a composite if the types are
8835         compatible.
8836
8837 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
8838
8839         * config/fr30/fr30-protos.h (Mmode): Don't define.
8840         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
8841         definition where used.
8842         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
8843         define.  Expand definitions where used.
8844         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
8845         Expand definitions where used.
8846         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
8847         rx_function_arg, rx_function_arg_advance,
8848         rx_function_arg_boundary): Expand definitions of those macros.
8849         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
8850         definition where used.
8851
8852 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8853
8854         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
8855         reg<->xmm moves.
8856         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
8857         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
8858         with *movv2sf_internal_rex64_avx.
8859         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
8860         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
8861         Use %v prefix in insn mnemonic to handle TARGET_AVX.
8862         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
8863         "vex" in "prefix" attribute calculation.
8864         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
8865
8866 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
8867
8868         PR target/47951
8869         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
8870         inputs match the output.
8871
8872 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
8873
8874         PR target/47955
8875         * config/m68k/m68k.c (m68k_expand_prologue): Set
8876         current_function_static_stack_size.
8877
8878 2011-05-02   Jan Hubicka  <jh@suse.cz>
8879
8880         * lto-streamer.c (lto_streamer_cache_insert_1,
8881         lto_streamer_cache_lookup, lto_streamer_cache_create,
8882         lto_streamer_cache_delete): Use pointer map instead of hashtable.
8883         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
8884
8885 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
8886
8887         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
8888         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
8889         config/m68k/t-opts: New files.
8890         * config/m68k/m68k-tables.opt: New file (generated).
8891         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
8892         extra_options and m68k/t-opts to tmake_file.
8893         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
8894         (all_isas): Initialize using m68k-isas.def.
8895         (all_microarchs): Initialize using m68k-microarchs.def.
8896         (m68k_find_selection): Remove.
8897         (m68k_handle_option): Don't assert that global structures are in
8898         use.  Use error_at.  Access variables via opts pointer.  Don't
8899         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
8900         directly for -m68020-40 and -m68020-60.
8901         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
8902         m68k_tune_entry here.
8903         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
8904         to m68k-opts.h.
8905         (m68k_library_id_string): Remove declaration.
8906         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
8907         (m68k_library_id_string): New Variable.
8908         (march=, mcpu=, mtune=): Use Enum and Var.
8909
8910 2011-05-02  Richard Guenther  <rguenther@suse.de>
8911
8912         * varasm.c (output_constructor_regular_field): Compute zero-based
8913         index with double-ints.  Make sure to ICE instead of producing
8914         wrong code.
8915         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
8916         in asserts.  Properly use a signed type.
8917
8918 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8919
8920         * config/i386/sse.md (V): New mode iterator.
8921         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
8922         TARGET_SSE2.
8923         (V_256): Rename from AVX256MODE.
8924         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
8925         condition to all users.
8926         (VF1): Ditto.
8927         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
8928         condition to all users.
8929         (VF_128): Make V4SF mode unconditional.
8930         (VF_256): Rename from AVX256MODEF2P.
8931         (VI4F_128): Rename from SSEMODE4S.
8932         (VI8F_128): Rename from SSEMODE2D.
8933         (VI4F_256): Rename from AVX256MODE8P.
8934         (VI8F_256): Rename from AVX256MODE4P.
8935         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
8936         (ssescalarmodesuffix): Remove SF and DF modes.
8937         (SSEMODE124): Remove.
8938         (SSEMODE1248): Ditto.
8939         (SSEMODEF2P): Ditto.
8940         (AVXMODEF2P): Ditto.
8941         (AVXMODEFDP): Ditto.
8942         (AVXMODEFSP): Ditto.
8943         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
8944         unconditional.
8945         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
8946         unconditional.
8947         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
8948         xop_pcmov_<mode>256.  Use V mode iterator.
8949
8950         Adjust RTX patterns globally for renamed mode attributes.
8951
8952 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8953
8954         * haifa-sched.c (sched_emit_insn): Emit insn before first
8955         non-scheduled insn.  Inform back-end about new insn.  Add
8956         new insn to scheduled_insns list.
8957
8958 2011-05-02  Richard Guenther  <rguenther@suse.de>
8959
8960         PR tree-optimization/48822
8961         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
8962         (process_scc): Indicate which iteration we start.
8963
8964 2011-05-02  Jan Hubicka  <jh@suse.cz>
8965
8966         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
8967         (lto_section_overrun): New.
8968         * lto-section-out.c (append_block): Rename to ...
8969         (lto_append_block): ... this one; export.
8970         (lto_output_1_stream): Move lto lto-streamer.h
8971         (lto_output_data_stream): Update.
8972         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
8973         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
8974         functions.
8975
8976 2011-05-02  Richard Guenther  <rguenther@suse.de>
8977
8978         * tree.c (tree_code_counts): New global array.
8979         (record_node_allocation_statistics): Count individual tree codes.
8980         (dump_tree_statistics): Dump individual code stats.
8981
8982 2011-05-01  Jan Hubicka  <jh@suse.cz>
8983
8984         * ipa-inline.c (caller_growth_limits): Fix thinko when
8985         looking for largest stack frame.
8986         * ipa-inline.h (dump_inline_summary): Declare.
8987         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
8988         on stack usage.
8989         (dump_inline_summary): Export.
8990         (debug_inline_summary): Declare as DEBUG_FUNCTION.
8991
8992 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
8993
8994         * reginfo.c (memory_move_cost): Change rclass argument type form
8995         'enum reg_class' to reg_class_t.
8996         * reload.h (memory_move_cost): Update prototype.
8997         * postreload.c reload_cse_simplify_set): Change type dclass var to
8998         reg_class_t.
8999         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
9000         Update prototype.
9001         (ira_allocate_and_set_costs): Change aclass argument type form
9002         'enum reg_class' to reg_class_t.
9003         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
9004         Change aclass argument type to reg_class_t.
9005         (update_conflict_hard_reg_costs): Change type aclass and pref vars
9006         to reg_class_t.
9007         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
9008         memory_move_cost call.
9009
9010         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
9011         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
9012         Change type tmp var to reg_class_t.
9013
9014 2011-04-30  Jan Hubicka  <jh@suse.cz>
9015
9016         * ipa-inline.c (can_inline_edge_p): Disregard limits when
9017         inlining into function with flatten attribute.
9018         (want_inline_small_function_p): Be more realistic about inlining
9019         cold calls where callee size grows.
9020
9021 2011-04-30  Jan Hubicka  <jh@suse.cz>
9022
9023         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
9024         flags.
9025
9026 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
9027
9028         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
9029         PRINT_OPERAND_PUNCT_VALID_P): Remove.
9030         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
9031         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
9032         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9033         (print_operand): Rename to...
9034         (sparc_print_operand): ...this. Make static. Adjust
9035         sparc_print_operand function call.
9036         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
9037         functions.
9038
9039 2011-04-30  Jan Hubicka  <jh@suse.cz>
9040
9041         PR middle-end/48752
9042         * ipa-inline.c (early_inliner): Disable when doing late
9043         addition of function.
9044
9045 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
9046
9047         * dwarf2out.c (get_address_mode): New inline.
9048         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
9049         if not dwarf_strict emit
9050         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
9051         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
9052         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
9053         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
9054         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
9055         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
9056         mem_loc_descriptor callers.
9057         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
9058         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
9059         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
9060         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
9061         (base_types): New variable.
9062         (get_base_type_offset, calc_base_type_die_sizes,
9063         base_type_for_mode, mark_base_types, base_type_cmp,
9064         move_marked_base_types): New functions.
9065         (calc_die_sizes): Assert that die_offset is 0 or equal to
9066         next_die_offset.
9067         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
9068         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
9069         callers.  If not dwarf_strict, call mem_loc_descriptor even for
9070         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
9071         (gen_subprogram_die): Don't give up on call site parameters
9072         with non-integral or large integral modes.  Adjust
9073         mem_loc_descriptor callers.
9074         (prune_unused_types): Call prune_unused_types_mark on base_types
9075         vector entries.
9076         (resolve_addr): Call mark_base_types.
9077         (dwarf2out_finish): Call move_marked_base_types.
9078
9079         PR tree-optimization/48809
9080         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
9081         type.
9082         (gen_inbound_check): Don't compute index_expr - range_min in utype
9083         again, instead reuse SSA_NAME initialized in build_arrays.
9084         Remove two useless gsi_for_stmt calls.
9085
9086 2011-04-29  Jeff Law  <law@redhat.com>
9087
9088         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
9089
9090 2011-04-29  Martin Jambor  <mjambor@suse.cz>
9091
9092         * cgraph.h (cgraph_postorder): Remove declaration.
9093         * ipa-utils.h (ipa_free_postorder_info): Declare.
9094         (ipa_reverse_postorder): Likewise.
9095         * cgraphunit.c: Include ipa-utils.h.
9096         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
9097         * ipa-inline.c: Include ipa-utils.h.
9098         (ipa_inline): Update call to ipa_reverse_postorder.
9099         * ipa-pure-const.c (propagate_pure_const): Update call to
9100         ipa_reduced_postorder and ipa_print_order.  Call
9101         ipa_free_postorder_info to clean up.
9102         (propagate_nothrow): Likewise.
9103         * ipa-reference.c (propagate): Removed a useless call to
9104         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
9105         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
9106         * ipa.c: Include ipa-utils.h.
9107         (ipa_profile): Update call to ipa_reverse_postorder.
9108         (cgraph_postorder): Moved to...
9109         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
9110         (ipa_utils_print_order): Renamed to ipa_print_order.
9111         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
9112         comments.
9113         (ipa_free_postorder_info): New function.
9114         * passes.c: Include ipa-utils.h.
9115         (do_per_function_toporder): Update call to ipa_reverse_postorder.
9116         (ipa_write_summaries): Likewise.
9117         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
9118         (cgraphunit.o): Likewise.
9119         (ipa.o): Likewise.
9120         (ipa-inline.o): Likewise.
9121
9122 2011-04-29  Jan Hubicka  <jh@suse.cz>
9123
9124         * gcc.dg/tree-ssa/inline-10.c: New testcase.
9125         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
9126         * ipa-inline.h (clause_t): Turn into unsigned int.
9127         * ipa-inline-analysis.c (add_clause): Do more simplification.
9128         (and_predicates): Shortcut more cases.
9129         (predicates_equal_p): Move forward; check that clauses are properly
9130         ordered.
9131         (or_predicates): Shortcut more cases.
9132         (edge_execution_predicate): Rewrite as...
9133         (set_cond_stmt_execution_predicate): ... this function; handle
9134         __builtin_constant_p.
9135         (set_switch_stmt_execution_predicate): New .
9136         (compute_bb_predicates): New.
9137         (will_be_nonconstant_predicate): Update TODO.
9138         (estimate_function_body_sizes): Use compute_bb_predicates
9139         and free them later, always try to estimate if stmt is constant.
9140         (estimate_time_after_inlining, estimate_size_after_inlining):
9141         Gracefully handle optimized out edges.
9142         (read_predicate): Fix off by one error.
9143
9144 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9145
9146         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
9147
9148 2011-04-27  Xinliang David Li  <davidxl@google.com>
9149
9150         * tree-profile.c (init_ic_make_global_vars): Set
9151         tls attribute on ic vars.
9152         * coverage.c (coverage_end_function): Initialize
9153         function_list with zero.
9154
9155 2011-04-29  Richard Guenther  <rguenther@suse.de>
9156
9157         * builtins.c (fold_builtin_classify_type): Use integer_type_node
9158         for the type of the result.
9159         (fold_builtin_isascii): Likewise.
9160         (fold_builtin_toascii): Use integer_type_node where appropriate.
9161         (fold_builtin_logb): Likewise.
9162         (fold_builtin_frexp): Likewise.
9163         (fold_builtin_strstr): Likewise.
9164         (fold_builtin_strpbrk): Likewise.
9165         (fold_builtin_fputs): Likewise.
9166         (fold_builtin_sprintf): Likewise.
9167         (fold_builtin_snprintf): Likewise.
9168         (fold_builtin_printf): Likewise.
9169         (do_mpfr_remquo): Use a proper type for the assigned constant.
9170         (do_mpfr_lgamma_r): Likewise.
9171         * dwarf2out.c (resolve_one_addr): Use size_int.
9172         * except.c (init_eh): Likewise.
9173         (assign_filter_values): Use integer_type_node for filter values.
9174         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
9175         indices.
9176         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
9177         for EH region numbers.
9178         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
9179         for the shift amount.
9180
9181 2011-04-29  Richard Guenther  <rguenther@suse.de>
9182
9183         * expr.h (expand_shift): Rename to ...
9184         (expand_variable_shift): ... this.
9185         (expand_shift): Take a constant shift amount.
9186         * expmed.c (expand_shift): Rename to ...
9187         (expand_variable_shift): ... this.
9188         (expand_shift): New wrapper around expand_variable_shift.
9189         * expr.c (convert_move, emit_group_load_1, emit_group_store,
9190         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
9191         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
9192         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
9193         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
9194         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
9195         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
9196         emit_store_flag_1, emit_store_flag): Likewise.
9197         * builtins.c (expand_builtin_signbit): Likewise.
9198         * calls.c (load_register_parameters): Likewise.
9199         * function.c (assign_parm_setup_block): Likewise.
9200         * lower-subreg.c (resolve_shift_zext): Likewise.
9201         * optabs.c (widen_bswap, expand_abs_nojump,
9202         expand_one_cmpl_abs_nojump, expand_float): Likewise.
9203         * spu/spu.c (spu_expand_extv): Likewise.
9204         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
9205
9206 2011-04-29  Richard Guenther  <rguenther@suse.de>
9207
9208         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
9209         for the remapped region number.
9210         * predict.c (build_predict_expr): Use integer_type_node for the
9211         predict kind.
9212         * fold-const.c (fold_binary_loc): Use integer_type_node for
9213         the shift amount.  Use a proper type for the PLUS_EXPR operand.
9214
9215 2011-04-29  Michael Matz  <matz@suse.de>
9216
9217         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
9218         other trees that just builtins.
9219         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
9220
9221 2011-04-29  Richard Guenther  <rguenther@suse.de>
9222
9223         * tree-nested.c (get_trampoline_type): Use size_int.
9224         (get_nl_goto_field): Likewise.
9225         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
9226         for all indexes.
9227         (lower_eh_constructs_2): Likewise.
9228         (lower_resx): Likewise.
9229         (lower_eh_dispatch): Likewise.
9230         * tree-mudflap.c (mf_build_string): Use size_int.
9231         (mudflap_register_call): Use integer_type_node for the flag.
9232         (mudflap_enqueue_constant): Use size_int.
9233         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
9234         instead of rebuilding it.
9235
9236 2011-04-29  Richard Guenther  <rguenther@suse.de>
9237
9238         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
9239         Handle OBJ_TYPE_REF.
9240         (find_func_aliases_for_call): Use it more consistently.
9241
9242 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
9243
9244         * haifa-sched.c (last_nondebug_scheduled_insn): New.
9245         (rank_for_schedule): Use it.
9246         (schedule_block): Set it.
9247
9248 2011-04-28  David Li  <davidxl@google.com>
9249
9250         * tree.c (crc32_string): Use crc32_byte.
9251         (crc32_byte): New function.
9252         * tree.h (crc32_byte): New function.
9253         * gcov.c (read_graph_file): Handle new cfg_cksum.
9254         (read_count_file): Ditto.
9255         * profile.c (instrument_values): Ditto.
9256         (get_exec_counts): Ditto.
9257         (read_profile_edge_counts): Ditto.
9258         (compute_branch_probabilities): Ditto.
9259         (compute_value_histograms): Ditto.
9260         (branch_prob): Ditto.
9261         (end_branch_prob): Ditto.
9262         * coverage.c (read_counts_file): Ditto.
9263         (get_coverage_counts): Ditto.
9264         (tree_coverage_counter_addr): Ditto.
9265         (coverage_checksum_string): Ditto.
9266         (coverage_begin_output): Ditto.
9267         (coverage_end_function): Ditto.
9268         (build_fn_info_type): Ditto.
9269         (build_fn_info_value): Ditto.
9270         * libgcov.c (gcov_exit): Ditto.
9271         * gcov-dump.c (tag_function): Ditto.
9272         (compute_checksum): Remove.
9273
9274 2011-04-29  Alan Modra  <amodra@gmail.com>
9275
9276         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
9277         unspec plus offset.  Tidy macho code.
9278
9279 2011-04-29  Martin Jambor  <mjambor@suse.cz>
9280
9281         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
9282         node instead of a decl.  Update all callers.
9283         * cgraph.h: Update declaration.
9284
9285 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
9286
9287         PR tree-optimization/48765
9288         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
9289         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
9290         to indicate if loop aware SLP is being used.  Scan the statements
9291         and update the vectorization factor according to the type of
9292         vectorization before statement analysis.
9293         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
9294         pass it to vect_analyze_loop_operations.
9295         (vectorizable_reduction): Set number of copies to 1 in case of pure
9296         SLP statement.
9297         * tree-vect-stmts.c (vectorizable_conversion,
9298         vectorizable_assignment, vectorizable_shift,
9299         vectorizable_operation, vectorizable_type_demotion,
9300         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
9301         Likewise.
9302         (vectorizable_condition): Move the check that it is not SLP
9303         vectorization before the number of copies check.
9304         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
9305         to vectorize the loop using SLP.
9306
9307 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
9308
9309         PR middle-end/48597
9310         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
9311         inline asm.
9312
9313 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
9314
9315         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
9316         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
9317         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
9318         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
9319         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
9320         linux*.h headers.
9321         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
9322         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9323         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9324         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9325         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9326         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
9327         REG_NAME.
9328         * config/i386/linux.h (REG_NAME): Don't define.
9329         * config/i386/linux64.h (REG_NAME): Don't define.
9330         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
9331         Undefine before defining.
9332
9333 2011-04-28  Jan Hubicka  <jh@suse.cz>
9334
9335         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
9336         nonconstant_names array.
9337         (estimate_function_body_sizes): Build nonconstant_names array; handle
9338         BUILT_IN_CONSTANT_P.
9339
9340 2011-04-28  Richard Guenther  <rguenther@suse.de>
9341
9342         PR bootstrap/48804
9343         Revert
9344         2011-04-28  Richard Guenther  <rguenther@suse.de>
9345
9346         * tree-ssa-structalias.c (solve_constraints): Build succ graph
9347         as late as possible.
9348
9349 2011-04-28  Richard Guenther  <rguenther@suse.de>
9350
9351         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
9352         (debug_constraint): Do it here.
9353         (dump_constraints): And here.
9354         (rewrite_constraints): And here.
9355         (dump_constraint_edge): Remove.
9356         (dump_constraint_graph): Rewrite to produce DOT output.
9357         (solve_constraints): Build succ graph as late as possible.
9358         Dump constraint graphs before and after solving.
9359
9360 2011-04-28  Richard Guenther  <rguenther@suse.de>
9361
9362         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
9363         New function split out from ...
9364         (find_func_aliases): ... here.  Call it.
9365         (find_func_aliases_for_call): Likewise.
9366
9367 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9368
9369         * internal-fn.h (internal_fn_name_array): Declare.
9370         (internal_fn_flags_array): Likewise.
9371
9372 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
9373
9374         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
9375         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
9376         Move from sse.md.
9377         (ssemodefsuffix): Remove.
9378         (ssevecmodesuffix): New mode attribute.
9379         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
9380         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
9381         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
9382         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
9383         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
9384         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
9385         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
9386         ssemodesuffix mode attribute.
9387         (float splitters): Use ssevecmodesuffix mode attribute.
9388         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
9389         (sseinsmode): Rename from avxvecmode.
9390         (avxsizesuffix): Rename from avxmodesuffix.
9391         (sseintvecmode): Rename from avxpermvecmode.
9392         (ssedoublevecmode): Rename from ssedoublesizemode.
9393         (ssehalfvecmode): Rename from avxhalfvecmode.
9394         (ssescalarmode): Rename from avxscalarmode.
9395         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
9396         templates for ssemodesuffix mode attribute.
9397         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
9398         mode attribute.
9399
9400         Adjust RTX patterns globally for renamed mode attributes.
9401
9402 2011-04-27  Jan Hubcika  <jh@suse.cz>
9403
9404         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
9405         * ipa-inline-analysis.c: Include alloc-pool.h.
9406         (edge_predicate_pool): New.
9407         (trye_predicate_p): New function
9408         (false_predicate_p): New function.
9409         (add_clause): Sanity check that false clauses are "optimized";
9410         never add clauses to predicate that is already known to be false.
9411         (and_predicate): Use flase_predicate_p.
9412         (evaulate_predicate): Rename to ...
9413         (evaluate_predicate): ... this one; update all callers; assert
9414         that false is not listed among possible truths.
9415         (dump_predicate): Use true_predicate_p.
9416         (account_size_time): Use false_predicate_p.
9417         (evaulate_conditions_for_edge): Rename to ...
9418         (evaluate_conditions_for_edge) ... this one.
9419         (edge_set_predicate): New function.
9420         (inline_edge_duplication_hook): Duplicate edge predicates.
9421         (inline_edge_removal_hook): Free edge predicates.
9422         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
9423         (dump_inline_summary): Update.
9424         (estimate_function_body_sizes): Set edge predicates.
9425         (estimate_calls_size_and_time): Handle predicates.
9426         (estimate_callee_size_and_time): Update.
9427         (remap_predicate): Add toplev_predicate; update comment.
9428         (remap_edge_predicates): New function.
9429         (inline_merge_summary): Compute toplev predicate; update.
9430         (read_predicate): New function.
9431         (read_inline_edge_summary): Use it.
9432         (inline_read_section): Likewise.
9433         (write_predicate): New function.
9434         (write_inline_edge_summary): Use it.
9435         (inline_write_summary): Likewise.
9436         (inline_free_summary): Free alloc pool and edge summary vec.
9437
9438 2011-04-27  Richard Guenther  <rguenther@suse.de>
9439
9440         * tree-ssa-structalias.c (changed_count): Remove.
9441         (changed): Use a bitmap.
9442         (unify_nodes): Adjust.
9443         (do_sd_constraint): Likewise.
9444         (do_ds_constraint): Likewise.
9445         (do_complex_constraint): Likewise.
9446         (solve_graph): Likewise.
9447
9448 2011-04-27  Jan Hubicka  <jh@suse.cz>
9449
9450         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
9451
9452 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
9453
9454         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
9455         (avx_vperm2f128_*_operand): Ditto.
9456         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
9457         Use avx_vpermilp_parallel in insn condition.
9458         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
9459         Use avx_vperm2f128_parallel in insn condition.
9460
9461 2011-04-27  Richard Guenther  <rguenther@suse.de>
9462
9463         * Makefile.in (tree-ssa-structalias.o): Remove
9464         gt-tree-ssa-structalias.h dependency.
9465         (GTFILES): Remove tree-ssa-structalias.c.
9466         * tree.c (allocate_decl_uid): New function.
9467         (make_node_stat): Use it.
9468         (copy_node_stat): Likewise.
9469         * tree.h (allocate_decl_uid): Declare.
9470         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
9471         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
9472         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
9473         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
9474         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
9475         (struct heapvar_map): Likewise.
9476         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
9477         heapvar_insert): Likewise.
9478         (make_heapvar_for): Rename to ...
9479         (make_heapvar): ... this.  Simplify.
9480         (fake_var_decl_obstack): New global var.
9481         (build_fake_var_decl): New function.
9482         (make_constraint_from_heapvar): Adjust.
9483         (handle_lhs_call): Likewise.
9484         (create_function_info_for): Likewise.
9485         (intra_create_variable_infos): Likewise.
9486         (init_alias_vars): Allocate fake_var_decl_obstack.
9487         (init_alias_heapvars, delete_alias_heapvars): Remove.
9488         (compute_points_to_sets): Do not call init_alias_heapvars.
9489         (ipa_pta_execute): Likewise.
9490         (delete_points_to_sets): Free fake_var_decl_obstack.
9491
9492 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9493
9494         * config/spu/divmovti4.c (union qword_UTItype): New data type.
9495         (si_from_UTItype, si_to_UTItype): New functions.
9496         (__udivmodti4): Use them to implement type-punning.
9497         * config/spu/multi3.c (union qword_TItype): New data type.
9498         (si_from_TItype, si_to_TItype): New functions.
9499         (__multi3): Use them to implement type-punning.
9500
9501 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9502
9503         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
9504
9505 2011-04-27  Jan Hubicka  <jh@suse.cz>
9506
9507         * ipa-prop.c (function_insertion_hook_holder): New holder.
9508         (ipa_add_new_function): New function.
9509         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
9510         Register/deregister holder.
9511
9512 2011-04-27  Richard Guenther  <rguenther@suse.de>
9513
9514         PR tree-optimization/48772
9515         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9516
9517 2011-04-27  Richard Guenther  <rguenther@suse.de>
9518
9519         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
9520         TARGET_MEM_REF handling.
9521
9522 2011-04-27  Nick Clifton  <nickc@redhat.com>
9523
9524         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
9525         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
9526         (REG_CLASS_NAMES): Likewise.
9527         (REG_CLASS_CONTENTS): Likewise.
9528         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
9529         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
9530         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
9531         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
9532         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
9533         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
9534         duplicate register classes.
9535         (frv_class_likely_spilled_p): Likewise.
9536         (frv_register_move_cost): Likewise.
9537
9538         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
9539         end of the regno_reg_class array.
9540
9541 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
9542
9543         PR c/48742
9544         * c-typeck.c (build_binary_op): Don't wrap arguments if
9545         int_operands is true.
9546
9547 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
9548
9549         PR target/48767
9550         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
9551         targetm.calls.must_pass_in_stack for void type.
9552
9553 2011-04-26  Jan Hubicka  <jh@suse.cz>
9554
9555         * cgraphbuild.c (build_cgraph_edges): Update call
9556         of cgraph_create_edge and cgraph_create_indirect_edge.
9557         * cgraph.c (cgraph_create_edge_including_clones,
9558         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
9559         cgraph_update_edges_for_call_stmt_node): Do not take nest
9560         argument; do not initialize call_stmt_size/time.
9561         (dump_cgraph_node): Do not dump nest.
9562         (cgraph_clone_edge): Do not take loop_nest argument;
9563         do not propagate it; do not clone call_stmt_size/time.
9564         (cgraph_clone_node): Likewise.
9565         (cgraph_create_virtual_clone): Update.
9566         * cgraph.h (struct cgraph_edge): Remove
9567         call_stmt_size/call_stmt_time/loop_nest.
9568         (cgraph_create_edge, cgraph_create_indirect_edge,
9569         cgraph_create_edge_including_clones, cgraph_clone_node): Update
9570         prototype.
9571         * tree-emutls.c (gen_emutls_addr): Update.
9572         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
9573         loop_nest; handle indirect calls, too.
9574         (clone_inlined_nodes): Do not care about updating inline summaries.
9575         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
9576         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
9577         stream call_stmt_size/call_stmt_time/loop_nest.
9578         * ipa-inline.c (edge_badness): Update.
9579         (ipa_inline): dump summaries after inlining.
9580         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
9581         New.
9582         (inline_edge_summary): New function.
9583         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
9584         (inline_edge_removal_hook): Handle edge summaries.
9585         (inline_edge_duplication_hook): New hook.
9586         (inline_summary_alloc): Alloc hooks.
9587         (initialize_growth_caches): Do not register removal hooks.
9588         (free_growth_caches); Do not free removal hook.
9589         (dump_inline_edge_summary): New function.
9590         (dump_inline_summary): Use it.
9591         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
9592         (inline_update_callee_summaries): New function.
9593         (inline_merge_summary): Use it.
9594         (do_estimate_edge_time, do_estimate_edge_growth): Update.
9595         (read_inline_edge_summary): New function.
9596         (inline_read_section): Use it.
9597         (write_inline_edge_summary): New function.
9598         (inline_write_summary): Use it.
9599         (inline_free_summary): Free edge new holders.
9600         * tree-inline.c (copy_bb): Update.
9601
9602 2011-04-26  Jason Merrill  <jason@redhat.com>
9603
9604         * tree-eh.c (lower_try_finally_switch): Create the label along with
9605         the CASE_LABEL_EXPR.
9606
9607 2011-04-26  David S. Miller  <davem@davemloft.net>
9608             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9609
9610         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
9611         * configure: Regenerate.
9612
9613 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9614
9615         PR target/48258
9616         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
9617         reduction.
9618         (VEC_reduc): New code iterator and splitters for vector reduction.
9619         (VEC_reduc_name): Ditto.
9620         (VEC_reduc_rtx): Ditto.
9621         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
9622         (reduc_<VEC_reduc_name>_v4sf): Ditto.
9623
9624         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
9625         support for extracting SF on VSX.
9626
9627         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
9628         generating xscvspdp.
9629         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
9630         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
9631         double add, minimum, maximum vector reduction.
9632         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
9633         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
9634         optimize double vector reduction.
9635         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
9636
9637 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
9638
9639         * config/fr30/fr30.h (inhibit_libc): Don't define.
9640         * config/m32r/m32r-protos.h: Correct comment.
9641         * config/v850/v850.h (GHS_default_section_names,
9642         GHS_current_section_names): Use tree, not union tree_node *.
9643
9644 2011-04-26  Xinliang David Li  <davidxl@google.com>
9645
9646         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
9647         * c-family/c-opts.c (c_common_handle_option): Set
9648         warn_maybe_uninitialized.
9649         * opts.c (common_handle_option): Ditto.
9650         * common.opt:  New option.
9651         * tree-ssa.c (warn_uninit): Add one more parameter.
9652         (warn_uninitialized_var): Pass warning code.
9653         * tree-flow.h: Interface change.
9654
9655 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9656
9657         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9658         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
9659         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
9660
9661 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9662
9663         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
9664         * config/mips/mips.opt (mmips-tfile): Remove.
9665
9666         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
9667         mips-tdump reference to ...
9668         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
9669         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
9670         reference by Tru64 UNIX.
9671
9672 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
9673
9674         PR debug/48768
9675         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
9676         is error_mark_node, set value to NULL.
9677
9678         PR tree-optimization/48734
9679         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
9680         if return value from maybe_fold_*_comparsions isn't something
9681         the code is prepared to handle.
9682
9683 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
9684
9685         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
9686         mode check.
9687         (ext_QIreg_nomode_operands): Remove.
9688         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
9689         (*andsi_1): Ditto.
9690         (*andhi_1): Ditto.
9691
9692 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
9693
9694         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
9695
9696 2011-04-26  Richard Guenther  <rguenther@suse.de>
9697
9698         * c-typeck.c (build_unary_op): Do not expand array-refs via
9699         pointer arithmetic.  Only adjust qualifiers for function types.
9700
9701 2011-04-26  Richard Guenther  <rguenther@suse.de>
9702
9703         PR middle-end/48694
9704         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
9705         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
9706         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
9707         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
9708
9709 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
9710
9711         * doc/extend.texi: Document __underlying_type.
9712
9713 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
9714
9715         * config/rs6000/titan.md (automata_option "progress"): Remove.
9716
9717 2011-04-25  Jeff Law  <law@redhat.com>
9718
9719         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
9720
9721 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
9722
9723         * system.h (ENUM_BITFIELD): Remove.
9724
9725 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
9726             Eric Botcazou  <ebotcazou@adacore.com>
9727
9728         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
9729         for STORE_FLAG_VALUE==-1 case.
9730
9731 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
9732
9733         PR target/43804
9734         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
9735         LEGITIMATE_PIC_OPERAND_P.
9736
9737 2011-04-24  Jan Hubicka  <jh@suse.cz>
9738
9739         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
9740         WPA hack.
9741         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
9742         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
9743         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
9744         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
9745         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
9746         Sanity check predicate length.
9747         (remap_predicate): Likewise; sanity check jump functions.
9748         (inline_read_section, inline_write_summary): Sanity check
9749         predicate length.
9750
9751 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
9752
9753         PR other/48748
9754         * doc/extend.texi (Type Traits): Document __is_standard_layout,
9755         __is_literal_type, and __is_trivial; update throughout about
9756         possibly cv-qualified void types.
9757
9758 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
9759
9760         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
9761         testsuite and make it version agnostic.
9762
9763 2011-04-22  Jan Hubicka  <jh@suse.cz>
9764
9765         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
9766
9767 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
9768
9769         PR c/48685
9770         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
9771         to VOID_TYPE even around MODIFY_EXPR.
9772
9773 2011-04-22  Mike Stump  <mikestump@comcast.net>
9774
9775         * gensupport.c (read_md_rtx): Fix typo in comment.
9776         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
9777         comment.
9778
9779 2011-04-22  Jan Hubicka  <jh@suse.cz>
9780
9781         * gengtype.c (open_base_files): Add ipa-inline.h include.
9782         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
9783         ipa-prop.c; update all uses.
9784         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
9785         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
9786         merge summary of inlined function into former caller.
9787         * ipa-inline.c (max_benefit): Remove.
9788         (edge_badness): Compensate for removal of benefits.
9789         (update_caller_keys): Use
9790         reset_node_growth_cache/reset_edge_growth_cache.
9791         (update_callee_keys): Likewise.
9792         (update_all_callee_keys): Likewise.
9793         (inline_small_functions): Do not collect max_benefit; do not reset
9794         estimated_growth; call free_growth_caches and initialize_growth_caches.
9795         * ipa-inline.h (struct condition, type clause_t, struct predicate,
9796         struct size_time_entry): New structures.
9797         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
9798         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
9799         and estimated_growth.
9800         (edge_growth_cache_entry): New structure.
9801         (node_growth_cache, edge_growth_cache): New global vars.
9802         (estimate_growth): Turn into inline.
9803         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
9804         initialize_growth_caches, free_growth_caches): Declare.
9805         (estimate_edge_growth): Rewrite.
9806         (estimate_edge_time): Implement as inline cache lookup.
9807         (reset_node_growth_cache, reset_edge_growth_cache): New inline
9808         functions.
9809         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
9810         (NUM_CONDITIONS): New constant.
9811         (predicate_conditions): New enum.
9812         (IS_NOT_CONSTANT): New constant.
9813         (edge_removal_hook_holder): New var.
9814         (node_growth_cache, edge_growth_cache): New global vars.
9815         (true_predicate, single_cond_predicate, false_predicate,
9816         not_inlined_predicate, add_condition, add_clause, and_predicates,
9817         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
9818         dump_clause, dump_predicate, account_size_time,
9819         evaulate_conditions_for_edge): New functions.
9820         (inline_summary_alloc): Move to heap.
9821         (inline_node_removal_hook): Clear condition and entry vectors.
9822         (inline_edge_removal_hook): New function.
9823         (initialize_growth_caches, free_growth_caches): New function.
9824         (dump_inline_summary): Update.
9825         (edge_execution_predicate): New function.
9826         (will_be_nonconstant_predicate): New function.
9827         (estimate_function_body_sizes): Compute BB and constantness predicates.
9828         (compute_inline_parameters): Do not clear estimated_growth.
9829         (estimate_edge_size_and_time): New function.
9830         (estimate_calls_size_and_time): New function.
9831         (estimate_callee_size_and_time): New function.
9832         (remap_predicate): New function.
9833         (inline_merge_summary): New function.
9834         (do_estimate_edge_time): New function based on...
9835         (estimate_edge_time): ... this one.
9836         (do_estimate_edge_growth): New function.
9837         (do_estimate_growth): New function based on....
9838         (estimate_growth): ... this one.
9839         (inline_analyze_function): Analyze after deciding on jump functions.
9840         (inline_read_section): New function.
9841         (inline_read_summary): Use it.
9842         (inline_write_summary): Write all the new data.
9843         * ipa-prop.c (ipa_get_param_decl_index): Export.
9844         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
9845         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
9846         Declare.
9847         (ipa_get_lattice): Move here from ipa-cp.c
9848         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
9849         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
9850         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
9851         cgraph_edge_inlinable_p): Remove.
9852         * cgraphunit.c: Include ipainline.h
9853         (cgraph_process_new_functions): Update call of
9854         compute_inline_parameters.
9855
9856 2011-04-22  Richard Guenther  <rguenther@suse.de>
9857
9858         * tree.c (build_int_cst): Properly create canonicalized integer
9859         constants.
9860         (build_int_cst_type): Remove scary comments.
9861
9862 2011-04-22  Xinliang David Li  <davidxl@google.com>
9863
9864         * toplev.c (process_options): Enable -Werror=coverage-mismatch
9865         by default when -Wno-error is not specified.
9866         * opts-global.c (decode_options): Remove call to
9867         control_warning_options.
9868
9869 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
9870
9871         PR tree-optimization/48717
9872         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
9873         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
9874
9875 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
9876
9877         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
9878         definition where used.
9879
9880 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
9881
9882         PR c/48716
9883         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
9884         TREE_STATIC variables declared inside of some OpenMP construct.
9885
9886 2011-04-22  Martin Jambor  <mjambor@suse.cz>
9887
9888         PR middle-end/48585
9889         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
9890
9891 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
9892
9893         PR c/36750
9894         * c-typeck.c (pop_init_level): Do not warn about initializing
9895         with ` = {0}'.
9896
9897 2011-04-22  Alan Modra  <amodra@gmail.com>
9898
9899         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
9900         when returning call_cookie.
9901         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
9902         pointers, to functions with no more vector args than the current
9903         function, and some non-local calls for ABI_V4.
9904         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
9905         sibcall_nonlocal_aix64): Combine to ..
9906         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
9907         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
9908         (sibcall_value_nonlocal_aix<mode>): ..likewise.
9909         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
9910         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
9911         operand.
9912         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
9913         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
9914         sibcall_value_symbolic_64): Delete.
9915
9916 2011-04-21  Xinliang David Li  <davidxl@google.com>
9917
9918         * cgraph.h: Remove pid.
9919         * cgraph.c: Remove pid.
9920         * value-prof.c (init_node_map): New function.
9921         (del_node_map): New function.
9922         (find_func_by_funcdef_no): New function.
9923         (gimple_ic_transform): Call new function.
9924         * cgraphunit.c (cgraph_finalize_function): Remove pid.
9925         * function.c (get_last_funcdef_no): New function.
9926         * function.h (get_last_funcdef_no): New function.
9927         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
9928         to libgcov function.
9929         (tree-profiling): Call node map init and delete function.
9930
9931 2011-04-21  Ian Lance Taylor  <iant@google.com>
9932
9933         * godump.c (go_format_type): Use exported Go name for anonymous
9934         field name.
9935
9936 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9937
9938         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
9939         Call builtin_function_type_list instead of builtin_function_type.
9940         (UNARY, BINARY, TRINARY, QUAD): Likewise.
9941
9942 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9943
9944         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
9945         build_function_type_list instead of build_function_type.
9946         Delete variable `endlink'.
9947
9948 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9949
9950         * config/s390/s390.c (s390_init_builtins): Call
9951         build_function_type_list instead of build_function_type.
9952
9953 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9954
9955         * config/ia64/ia64.c (ia64_init_builtins): Call
9956         build_function_type_list instead of builtin_function_type.
9957
9958 2011-04-21  Easwaran Raman  <eraman@google.com>
9959
9960         * cfgexpand.c (stack_var): Remove OFFSET...
9961         (add_stack_var): ...and its reference here...
9962         (expand_stack_vars): ...and here.
9963         (stack_var_cmp): Sort by descending order of size.
9964         (partition_stack_vars): Change heuristic.
9965         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
9966         (dump_stack_var_partition): Add newline after each partition.
9967
9968 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
9969             Jeff Law  <law@redhat.com>
9970
9971         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
9972         * gengtype.c (matching_file_name_substitute): Likewise.
9973
9974 2011-04-21  Richard Guenther  <rguenther@suse.de>
9975
9976         PR lto/48703
9977         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
9978
9979 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
9980
9981         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
9982
9983 2011-04-21  Richard Guenther  <rguenther@suse.de>
9984
9985         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
9986         file name.
9987
9988 2011-04-21  Richard Guenther  <rguenther@suse.de>
9989
9990         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
9991         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
9992         Use DECL_P, not SSA_VAR_P.
9993         (ptr_derefs_may_alias_p): Likewise.
9994         (ptr_deref_may_alias_ref_p_1): Likewise.
9995         (decl_refs_may_alias_p): Likewise.
9996         (refs_may_alias_p_1): Likewise.
9997         (ref_maybe_used_by_call_p_1): Likewise.
9998         (call_may_clobber_ref_p_1): Likewise.
9999         (indirect_ref_may_alias_decl_p): Assume indirect refrences
10000         are either MEM_REF or TARGET_MEM_REF.
10001         (indirect_refs_may_alias_p): Likewise.
10002         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
10003         for MEM_EXPR of indirect calls.
10004
10005 2011-04-21  Tristan Gingold  <gingold@adacore.com>
10006
10007         * vmsdbgout.c (write_srccorr): Compute file length from the string.
10008         (dst_file_info_struct): Remove flen field.
10009         (lookup_filename): Remove code that set flen field.
10010
10011 2011-04-21  Tristan Gingold  <gingold@adacore.com>
10012
10013         * config/ia64/ia64.c (ia64_start_function): Add a guard.
10014
10015 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
10016
10017         PR target/48708
10018         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
10019         vec_extract and vec_concat for non-SSE4_1 targets.
10020
10021 2011-04-21  Richard Guenther  <rguenther@suse.de>
10022
10023         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
10024         return statements.
10025
10026 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
10027
10028         * config/i386/cygming.h (union tree_node, TREE): Don't define or
10029         undefine.
10030         (FILE): Don't undefine.
10031
10032 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
10033
10034         * config/alpha/alpha.c (struct machine_function): Use rtx, not
10035         struct rtx_def *.
10036         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
10037         struct rtx_def *.
10038         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
10039         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
10040         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
10041         rtx_def *.
10042         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
10043         definitions where used.
10044         * config/microblaze/microblaze.h (struct microblaze_args): Use
10045         rtx, not struct rtx_def *.
10046         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
10047         rtx_def *.
10048         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
10049         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
10050         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
10051         not struct rtx_def *.
10052         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
10053         struct rtx_def *.
10054         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
10055         rtx_def *.
10056         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
10057
10058 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
10059
10060         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
10061         operand_equal_p to compare DR_BASE_ADDRESSes.
10062         (vect_check_interleaving): Likewise.
10063
10064 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
10065
10066         PR target/46329
10067         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
10068         for all Neon struct constants.
10069
10070 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
10071
10072         * target.def (legitimate_constant_p): New hook.
10073         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
10074         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
10075         * doc/tm.texi: Regenerate.
10076         * hooks.h (hook_bool_mode_rtx_true): Declare.
10077         * hooks.c (hook_bool_mode_rtx_true): Define.
10078         * system.h (LEGITIMATE_CONSTANT_P): Poison.
10079         * calls.c (precompute_register_parameters): Replace uses of
10080         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
10081         (emit_library_call_value_1): Likewise.
10082         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
10083         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
10084         * ira-costs.c (scan_one_insn): Likewise.
10085         * recog.c (general_operand, immediate_operand): Likewise.
10086         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
10087         * reload1.c (init_eliminable_invariants): Likewise.
10088
10089         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
10090         mode argument.
10091         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
10092         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
10093         argument.
10094         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10095         * config/alpha/predicates.md (input_operand): Update call to
10096         alpha_legitimate_constant_p.
10097
10098         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
10099         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
10100         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
10101         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10102         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
10103         (arm_legitimate_constant_p): New functions.
10104         (arm_cannot_force_const_mem): Make static.
10105
10106         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
10107
10108         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
10109         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
10110         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
10111         instead of bfin_legitimate_constant_p.
10112         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
10113         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10114
10115         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
10116
10117         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
10118
10119         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
10120         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
10121         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10122         (frv_legitimate_constant_p): Make static.  Add a mode argument.
10123
10124         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
10125         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
10126         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
10127
10128         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
10129         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
10130         * config/i386/i386.c (legitimate_constant_p): Rename to...
10131         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
10132         argument.
10133         (ix86_cannot_force_const_mem): Update accordingly.
10134         (ix86_legitimate_address_p): Likewise.
10135         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10136         * config/i386/i386.md: Update commentary.
10137
10138         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
10139         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
10140         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10141         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
10142
10143         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
10144
10145         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
10146         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
10147         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10148         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
10149
10150         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
10151         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
10152         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
10153
10154         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
10155         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10156         (m32r_legitimate_constant_p): New function.
10157
10158         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
10159         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
10160         LEGITIMATE_CONSTANT_P.
10161         (LEGITIMATE_CONSTANT_P): Delete.
10162         * config/m68k/m68k.c (m68k_expand_prologue): Call
10163         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
10164         (m68k_legitimate_constant_p): New function.
10165         * config/m68k/m68k.md: Update comments.
10166
10167         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
10168         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10169         (mcore_legitimate_constant_p): New function.
10170
10171         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
10172         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
10173         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
10174         Add a mode argument.
10175         (mep_legitimate_address): Update accordingly.
10176         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10177
10178         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
10179         Delete.
10180         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
10181         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
10182         static.  Check OP's mode for VOIDmode.
10183         (microblaze_legitimate_constant_p): New function.
10184         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10185
10186         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
10187         * config/mips/mips.c (mips_legitimate_constant_p): New function.
10188         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
10189         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10190         * config/mips/predicates.md: Update comments.
10191
10192         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
10193         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
10194         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10195         (mmix_legitimate_constant_p): Make static, return a bool, and take
10196         a mode argument.
10197         (mmix_print_operand_address): Update accordingly.
10198
10199         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
10200         Delete.
10201         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
10202         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
10203         static.  Add a mode argument.
10204         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10205
10206         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
10207
10208         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
10209         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10210         (pa_legitimate_constant_p): New function.
10211
10212         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
10213
10214         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
10215         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10216         (pdp11_legitimate_constant_p): New function.
10217
10218         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
10219         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10220         (rs6000_legitimate_constant_p): New function.
10221
10222         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
10223         (rx_legitimate_constant_p): ...this.
10224         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
10225         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
10226         (rx_legitimate_constant_p): ...this.
10227         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10228         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
10229
10230         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
10231         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
10232         * config/s390/s390.c (legitimate_constant_p): Rename to...
10233         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
10234         and add a mode argument.
10235         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10236
10237         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
10238
10239         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
10240         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10241         (sh_legitimate_constant_p): New function.
10242
10243         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
10244         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
10245         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10246         (legitimate_constant_p): Rename to...
10247         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
10248         argument.
10249         (constant_address_p): Update accordingly.
10250
10251         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
10252         argument and return a bool.
10253         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
10254         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10255         (spu_legitimate_constant_p): Add a mode argument and return a bool.
10256         (spu_rtx_costs): Update accordingly.
10257         * config/spu/predicates.md (vec_imm_operand): Likewise.
10258
10259         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
10260
10261         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
10262         * config/v850/v850.c (v850_legitimate_constant_p): New function.
10263         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10264
10265         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
10266         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
10267         * config/vax/vax.c (legitimate_constant_p): Likewise.
10268
10269         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
10270         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10271         (xtensa_legitimate_constant_p): New function.
10272
10273 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
10274
10275         * target.def (cannot_force_const_mem): Add a mode argument.
10276         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
10277         * doc/tm.texi: Regenerate.
10278         * hooks.h (hook_bool_mode_rtx_false): Declare.
10279         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
10280         (hook_bool_mode_const_rtx_true): Likewise.
10281         (hook_bool_mode_rtx_false): New function.
10282         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
10283         to be non-VOID.  Update call to cannot_force_const_mem.
10284         (find_reloads): Update accordingly.
10285         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
10286         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
10287         argument.
10288         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
10289         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
10290         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
10291         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
10292         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
10293         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
10294         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
10295         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
10296         (m68k_cannot_force_const_mem): ...this new function.
10297         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
10298         argument.
10299         (mips_const_insns, mips_legitimize_const_move): Update calls.
10300         (mips_secondary_reload_class): Likewise.
10301         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
10302         (pa_cannot_force_const_mem): ...this new function.
10303         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
10304         (rs6000_cannot_force_const_mem): ...this new function.
10305         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
10306         argument.
10307         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
10308         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
10309         to...
10310         (xtensa_cannot_force_const_mem): ...this new function.
10311
10312 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
10313
10314         * config/mips/mips.c (mips16_build_function_stub): Call
10315         build_function_type_list instead of build_function_type.
10316         (mips16_build_call_stub): Likewise.
10317
10318 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
10319
10320         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
10321         instead of build_function_type.
10322
10323 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
10324
10325         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
10326         instead of build_function_type.
10327
10328 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
10329
10330         PR target/48678
10331         * config/i386/i386.md (insv): Change operand 0 constraint to
10332         "register_operand".  Change operand 1 and 2 constraint to
10333         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
10334         * config/i386/sse.md (sse4_1_pinsrb): Export.
10335         (sse2_pinsrw): Ditto.
10336         (sse4_1_pinsrd): Ditto.
10337         (sse4_1_pinsrq): Ditto.
10338         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
10339         * config/i386/i386.c (ix86_expand_pinsr): New.
10340
10341 2011-04-20  Easwaran Raman  <eraman@google.com>
10342
10343         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
10344         containing union type only with -fstrict-aliasing.
10345
10346 2011-04-20  Jim Meyering  <meyering@redhat.com>
10347
10348         Remove useless if-before-free tests.
10349         * calls.c (expand_call, save_area): Likewise.
10350         * cfgcleanup.c (try_forward_edges): Likewise.
10351         * collect2.c (collect_execute): Likewise.
10352         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
10353         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
10354         * coverage.c (coverage_checksum_string): Likewise.
10355         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
10356         * cselib.c (cselib_init): Likewise.
10357         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
10358         (df_set_clean_cfg): Likewise.
10359         * function.c (free_after_compilation): Likewise.
10360         * gcc.c (do_spec_1, main): Likewise.
10361         * gcov.c (create_file_names): Likewise.
10362         * gensupport.c (identify_predicable_attribute): Likewise.
10363         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
10364         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
10365         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
10366         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
10367         * ipa-pure-const.c (local_pure_const): Likewise.
10368         * ipa-reference.c (propagate): Likewise.
10369         * ira-costs.c (free_ira_costs): Likewise.
10370         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
10371         * matrix-reorg.c (mat_free): Likewise.
10372         * prefix.c (get_key_value): Likewise.
10373         * profile.c (compute_value_histograms): Likewise.
10374         * reload1.c (free_reg_equiv): Likewise.
10375         * sched-deps.c (free_deps): Likewise.
10376         * sel-sched-ir.c (fence_clear): Likewise.
10377         * sese.c (set_rename, if_region_set_false_region): Likewise.
10378         * tree-data-ref.c (free_rdg): Likewise.
10379         * tree-eh.c (lower_try_finally): Likewise.
10380         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
10381         * tree-ssa-live.c (delete_var_map): Likewise.
10382         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
10383         * tree-ssa-pre.c (phi_trans_add): Likewise.
10384
10385 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
10386
10387         PR tree-optimization/48611
10388         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
10389         beyond ERT_MUST_NOT_THROW region.
10390
10391 2011-04-20  Catherine Moore  <clm@codesourcery.com>
10392
10393         * config/mips/mips.opt (mfix-24k): New.
10394         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
10395         * config/mips/mips.md (length): Increase by 4 for stores if
10396         fixing 24K errata.
10397         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
10398         all noreorder if fixing 24K errata.
10399         * doc/invoke.texi: Document mfix-24k.
10400
10401 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
10402
10403         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
10404         quad-word modes, reduce to 9-bit index range when above 1016 limit.
10405
10406 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
10407
10408         * config/arm/arm.c (arm_gen_constant): Move movw support ....
10409         (const_ok_for_op): ... to here.
10410
10411 2011-04-20  Kai Tietz  <ktietz@redhat.com>
10412
10413         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
10414         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
10415
10416 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
10417
10418         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
10419
10420 2011-04-20  Richard Guenther  <rguenther@suse.de>
10421
10422         PR tree-optimization/47892
10423         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
10424         are if-convertible.
10425
10426 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
10427
10428         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
10429
10430 2011-04-20  Tristan Gingold  <gingold@adacore.com>
10431
10432         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
10433
10434 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
10435
10436         PR target/18145
10437
10438         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
10439         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
10440         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
10441         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
10442         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
10443
10444         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
10445         New prototype.
10446
10447         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
10448         (avr_asm_named_section, avr_asm_output_aligned_common,
10449         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
10450         New functions to update...
10451         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
10452         (avr_asm_init_sections): Overwrite section callbacks for
10453         data_section, bss_section.
10454         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
10455         from here to...
10456         (avr_file_end): ...here.
10457
10458 2011-04-20  Richard Guenther  <rguenther@suse.de>
10459
10460         PR middle-end/48695
10461         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
10462         objects and types here.  Adjust for their offset before comparing.
10463
10464 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
10465
10466         * tree-vect-stmts.c (vectorizable_store): Only chain one related
10467         statement per copy.
10468
10469 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
10470
10471         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
10472         (GIMPLE_H): Include $(INTERNAL_FN_H).
10473         (OBJS-common): Add internal-fn.o.
10474         (internal-fn.o): New rule.
10475         * internal-fn.def: New file.
10476         * internal-fn.h: Likewise.
10477         * internal-fn.c: Likewise.
10478         * gimple.h: Include internal-fn.h.
10479         (GF_CALL_INTERNAL): New gf_mask.
10480         (gimple_statement_call): Put fntype into a union with a new
10481         internal_fn field.
10482         (gimple_build_call_internal): Declare.
10483         (gimple_build_call_internal_vec): Likewise.
10484         (gimple_call_same_target_p): Likewise.
10485         (gimple_call_internal_p): New function.
10486         (gimple_call_internal_fn): Likewise.
10487         (gimple_call_fntype): Return null for internal calls.
10488         (gimple_call_set_fntype): Assert that the function is not internal.
10489         (gimple_call_set_fn): Likewise.
10490         (gimple_call_set_fndecl): Likewise.
10491         (gimple_call_set_internal_fn): New function.
10492         (gimple_call_addr_fndecl): Handle null functions.
10493         (gimple_call_return_type): Likewise null types.
10494         * gimple.c (gimple_build_call_internal_1): New function.
10495         (gimple_build_call_internal): Likewise.
10496         (gimple_build_call_internal_vec): Likewise.
10497         (gimple_call_same_target_p): Likewise.
10498         (gimple_call_flags): Handle calls to internal functions.
10499         (gimple_call_fnspec): New function.
10500         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
10501         (gimple_has_side_effects): Handle null functions.
10502         (gimple_rhs_has_side_effects): Likewise.
10503         (gimple_call_copy_skip_args): Handle calls to internal functions.
10504         * cfgexpand.c (expand_call_stmt): Likewise.
10505         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
10506         * gimple-fold.c (gimple_fold_call): Handle null functions.
10507         (gimple_fold_stmt_to_constant_1): Don't fold
10508         calls to internal functions.
10509         * gimple-low.c (gimple_check_call_args): Handle calls to internal
10510         functions.
10511         * gimple-pretty-print.c (dump_gimple_call): Likewise.
10512         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
10513         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
10514         (do_warn_unused_result): Likewise.
10515         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
10516         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
10517         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
10518         the target of a call.
10519         (initialize_hash_element): Update accordingly.
10520         (hashable_expr_equal_p): Use gimple_call_same_target_p.
10521         (iterative_hash_hashable_expr): Handle calls to internal functions.
10522         (print_expr_hash_elt): Likewise.
10523         * tree-ssa-pre.c (can_value_number_call): Likewise.
10524         (eliminate): Handle null functions.
10525         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
10526         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
10527         (find_func_aliases): Likewise.
10528         * value-prof.c (gimple_ic_transform): Likewise.
10529         (gimple_indirect_call_to_profile): Likewise.
10530         * lto-streamer-in.c (input_gimple_stmt): Likewise.
10531         * lto-streamer-out.c (output_gimple_stmt): Likewise.
10532
10533 2011-04-19  Jan Hubicka  <jh@suse.cz>
10534
10535         * ipa-inline-transform.c (save_inline_function_body): Add comments.
10536         * ipa-inline.c (inline_small_functions): Compute summaries first,
10537         populate heap later.
10538
10539 2011-04-19  Jan Hubicka  <jh@suse.cz>
10540
10541         * cgraph.h (save_inline_function_body): Remove.
10542         * ipa-inline-transform.c: New file, broke out of...
10543         * ipa-inline.c: ... this one; Update toplevel comment.
10544         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
10545         make global.
10546         (update_noncloned_frequencies): Move to ipa-inline-transform.c
10547         (cgraph_mark_inline_edge): Rename to inline_call; move to
10548         ipa-inline-transform.c.
10549         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
10550         move to ipa-inline-transform.c
10551         (recursive_inlining, inline_small_functions, flatten_function,
10552         ipa_inline, inline_always_inline_functions,
10553         early_inline_small_functions): Update.
10554         (inline_transform): Move to ipa-inline-transform.c.
10555         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
10556         Declare.
10557         * Makefile.in (ipa-inline-transform.o): New file.
10558         * cgraphunit.c (save_inline_function_body): Move to
10559         ipa-inline-transform.c
10560
10561 2011-04-19  DJ Delorie  <dj@redhat.com>
10562
10563         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
10564         registers if we already know there aren't any.
10565         (m32c_emit_epilogue): Don't emit a barrier here.
10566         (m32c_emit_eh_epilogue): Likewise.
10567         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
10568         operands at expand time.
10569         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
10570         int" wchar type.
10571         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
10572         duplicates.  Provide aliases instead.
10573         * config/m32c/prologue.md (eh_return): Emit a barrier here.
10574         (eh_epilogue): Add a "(return)" here as a hint to other parts of
10575         the compiler.
10576
10577 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
10578
10579         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
10580         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
10581         (general_or_i64_p, sparc_register_move_cost): New function.
10582
10583 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10584
10585         * doc/install.texi (Configuration, --enable-threads): Remove mach.
10586         Add lynx, mipssde.  Sort table.
10587
10588 2011-04-19  Xinliang David Li  <davidxl@google.com>
10589
10590         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
10591         not negative.
10592
10593 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
10594
10595         PR target/48678
10596         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
10597         is a SUBREG with non-MODE_INT mode inside of it.
10598
10599 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10600
10601         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
10602         also according to actual contants.
10603         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
10604         (gimple_fold_call): Use it.
10605         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
10606
10607 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10608
10609         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
10610         non-pointer assignments.
10611
10612 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10613
10614         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
10615         account anc_offset and otr_type from the indirect edge info.
10616         * ipa-prop.c (get_ancestor_addr_info): New function.
10617         (compute_complex_ancestor_jump_func): Assignment analysis moved to
10618         get_ancestor_addr_info, call it.
10619         (ipa_note_param_call): Do not initialize information about polymorphic
10620         calls, return the indirect call graph edge.  Remove the last
10621         parameter, adjust all callers.
10622         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
10623         parameters.  Initialize polymorphic information in the indirect edge.
10624
10625 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10626
10627         PR lto/48148
10628         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
10629         the types if they have different enumeration identifiers.
10630
10631 2011-04-19  Jan Hubicka  <jh@suse.cz>
10632
10633         * cgraph.h (cgraph_optimize_for_size_p): Declare.
10634         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
10635         * predict.c (cgraph_optimize_for_size_p): Break out from ...
10636         (optimize_function_for_size_p) ... here.
10637
10638 2011-04-19  Richard Guenther  <rguenther@suse.de>
10639
10640         PR lto/48207
10641         * tree.c (free_lang_data): Do not reset the decl-assembler-name
10642         langhook.
10643
10644 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10645
10646         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
10647         if DECL_NO_INLINE_WARNING_P is set on the function.
10648
10649 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
10650
10651         PR fortran/47976
10652         * reload1.c (inc_for_reload): Return void. All callers changed.
10653         (emit_input_reload_insns): Don't try to delete previous output
10654         reloads to a register, or record spill_reg_store for autoincs.
10655
10656 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
10657
10658         * gengtype.h: Updated copyright year.
10659         (struct input_file_st): Add inpisplugin field.
10660         (type_fileloc): New function.
10661         * gengtype.c
10662         (write_typed_struct_alloc_def): Add gcc_assert.
10663         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
10664         (write_typed_alloc_defns): Don't output for plugin files.
10665         (input_file_by_name): Clear inpisplugin field.
10666         (main): Set inpisplugin field for plugin files.
10667
10668 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
10669
10670         * gengtype-state.c (string_eq): New.
10671         (read_state): Use string_eq instead of strcmp when creating the
10672         state_ident_tab.
10673
10674 2011-04-19  Wei Guozhi  <carrot@google.com>
10675
10676         PR target/47855
10677         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
10678         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
10679         linkage.
10680         * config/arm/constraints.md (Uu): New constraint.
10681         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
10682
10683 2011-04-19  Tristan Gingold  <gingold@adacore.com>
10684
10685         * config.gcc (-*-*-*vms): Added.
10686         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
10687         definitions moved.
10688         * config/vms/vms-ld.c: New file.
10689         * config/vms/vms-ar.c: New file.
10690         * config/vms/t-vmsnative: New file.
10691
10692 2011-04-18  Xinliang David Li  <davidxl@google.com>
10693
10694         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
10695
10696 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
10697
10698         PR middle-end/48661
10699         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
10700         if TREE_TYPE (v) is non-NULL.
10701
10702         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
10703         gimple_get_virt_mehtod_for_binfo.
10704         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
10705         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
10706         callers.
10707         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
10708
10709 2011-04-18  Michael Matz  <matz@suse.de>
10710             Steve Ellcey  <sje@cup.hp.com>
10711
10712         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
10713         use its mode as source mode if it isn't VOIDmode.
10714
10715 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
10716
10717         * doc/passes.texi: Fill crossref nodes.
10718
10719 2011-04-18  Jim Meyering  <meyering@redhat.com>
10720
10721         Fix doubled-word typos in comments and strings
10722         * config/alpha/vms-unwind.h: s/for for/for/
10723         * config/arm/unwind-arm.h: Likewise.
10724         * config/microblaze/microblaze.c: Likewise.
10725         * config/sh/constraints.md: s/in in/in/
10726         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
10727
10728 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
10729
10730         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
10731         (AVX_FLOAT_MODE_P): Ditto.
10732         (AVX128_VEC_FLOAT_MODE_P): Ditto.
10733         (AVX256_VEC_FLOAT_MODE_P): Ditto.
10734         (AVX_VEC_FLOAT_MODE_P): Ditto.
10735         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
10736         (UNSPEC_MASKSTORE): Ditto.
10737         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
10738         Merge from <sse>_movmsk<ssemodesuffix> and
10739         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
10740         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
10741         iterator.
10742         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
10743         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
10744         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
10745
10746 2011-04-18  Jan Hubicka  <jh@suse.cz>
10747
10748         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
10749
10750         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
10751         (want_inline_function_called_once_p): Break out the logic from
10752         ipa_inline.
10753         (edge_badness): Ensure that profile is not misupdated.
10754         (lookup_recursive_calls): Prioritize by call frequencies.
10755         (inline_small_functions): Move program size estimates here;
10756         actually process whole queue even when unit growth has been
10757         met. (to properly compute inline_failed reasons and for the
10758         case unit size decrease.) Revisit comments on recursive inlining.
10759         (ipa_inline): Remove unit summary code; first inline hot calls
10760         of functions called once, cold calls next.
10761         (order, nnodes): Remove unused variables.
10762         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
10763         (GTFILES): Remove ipa-inline.c
10764         * sel-sched.c (fill_insns): Silence uninitialized var warning.
10765
10766 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
10767
10768         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
10769
10770 2011-04-18  Jie Zhang  <jie@codesourcery.com>
10771             Richard Earnshaw  <rearnsha@arm.com>
10772
10773         * arm.c (neon_builtin_type_bits): Remove.
10774         (typedef enum neon_builtin_mode): New.
10775         (T_MAX): Don't define.
10776         (typedef enum neon_builtin_datum): Remove bits, codes[],
10777         num_vars and base_fcode.  Add mode, code and fcode.
10778         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
10779         VAR10): Change accordingly.
10780         (neon_builtin_data[]): Change accordingly
10781         (arm_init_neon_builtins): Change accordingly.
10782         (neon_builtin_compare): Remove.
10783         (locate_neon_builtin_icode): Remove.
10784         (arm_expand_neon_builtin): Change accordingly.
10785
10786         * arm.h (enum arm_builtins): Move to ...
10787         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
10788
10789         * arm.c (arm_builtin_decl): Declare.
10790         (TARGET_BUILTIN_DECL): Define.
10791         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
10792         (arm_builtin_decls[]): New.
10793         (arm_init_neon_builtins): Store builtin declarations in
10794         arm_builtin_decls[].
10795         (arm_init_tls_builtins): Likewise.
10796         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
10797         (arm_builtin_decl): New.
10798
10799 2011-04-18  Richard Guenther  <rguenther@suse.de>
10800
10801         * tree.c (upper_bound_in_type): Build properly canonicalized
10802         INTEGER_CSTs.
10803         (lower_bound_in_type): Likewise.
10804
10805 2011-04-18  Richard Guenther  <rguenther@suse.de>
10806
10807         * gimple.h (gimple_call_addr_fndecl): New function.
10808         (gimple_call_fndecl): Use it.
10809         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
10810         for direct calls.
10811         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
10812         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
10813
10814 2011-04-18  Richard Guenther  <rguenther@suse.de>
10815
10816         PR middle-end/48650
10817         * tree.c (build_string): STRING_CST is now derived from tree_typed.
10818
10819 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
10820
10821         PR lto/48492
10822         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
10823         DECL_IN_CONSTANT_POOL without RTL.
10824
10825 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
10826             Ira Rosen  <ira.rosen@linaro.org>
10827
10828         PR target/48252
10829         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
10830         to match neon_vzip/vuzp/vtrn_internal.
10831         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
10832         outputs explicitly dependent on both inputs.
10833         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
10834
10835 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
10836
10837         PR tree-optimization/48616
10838         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
10839         whether the shift is by scalar or vector based on whether all SLP
10840         scalar stmts have the same rhs.
10841
10842 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
10843
10844         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
10845         memory operands.
10846
10847 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
10848
10849         PR target/43700
10850         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
10851         registers.
10852
10853 2011-04-17  Jan Hubicka  <jh@suse.cz>
10854
10855         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
10856         * cgrpahunit.c (cgraph_finalize_function): Do not set
10857         finalized_by_frontend.
10858         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
10859         finalized_by_frontend.
10860
10861 2011-04-17  Jan Hubicka  <jh@suse.cz>
10862
10863         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
10864         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
10865         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
10866         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
10867         method.
10868         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
10869         gimple-fold.c
10870         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
10871
10872 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
10873
10874         PR lto/48538
10875         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
10876         is non-null before accessing it.
10877         (input_cgraph): Remove trailing spaces.
10878
10879 2011-04-17  Revital Eres  <revital.eres@linaro.org>
10880
10881         * params.def (sms-min-sc): New param flag.
10882         * modulo-sched.c (sms_schedule): Use it.
10883         * doc/invoke.texi (sms-min-sc): Document it.
10884
10885 2011-04-17  Jan Hubicka  <jh@suse.cz>
10886
10887         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
10888         present, also set gimple_call_set_cannot_inline.
10889         * ipa-inline.c: Update toplevel comment.
10890         (MAX_TIME): Remove.
10891         (cgraph_clone_inlined_nodes): Fix linebreaks.
10892         (cgraph_check_inline_limits): Restructure to ...
10893         (caller_growth_limits): ... this one; be more tolerant
10894         on growth in nested inline chains; add explanatory comment;
10895         fix stack accounting thinko introduced by previous patch.
10896         (cgraph_default_inline_p): Remove.
10897         (report_inline_failed_reason): New function.
10898         (can_inline_edge_p): New function.
10899         (can_early_inline_edge_p): New function.
10900         (leaf_node_p): Move upwards in file.
10901         (want_early_inline_function_p): New function.
10902         (want_inline_small_function_p): New function.
10903         (want_inline_self_recursive_call_p): New function.
10904         (cgraph_edge_badness): Rename to ...
10905         (edge_badness) ... this one; fix linebreaks.
10906         (update_edge_key): Update call of edge_baddness; add
10907         detailed dump about queue updates.
10908         (update_caller_keys): Use can_inline_edge_p and
10909         want_inline_small_function_p.
10910         (cgraph_decide_recursive_inlining): Rename to...
10911         (recursive_inlining): Use can_inline_edge_p and
10912         want_inline_self_recursive_call_p; simplify and remove no longer
10913         valid FIXME.
10914         (cgraph_set_inline_failed): Remove.
10915         (add_new_edges_to_heap): Use can_inline_edge_p and
10916         want_inline_small_function_p.
10917         (cgraph_decide_inlining_of_small_functions): Rename to ...
10918         (inline_small_functions): ... this one; cleanup; use
10919         can/want predicates; cleanup debug ouput; work edges till fibheap
10920         is exhausted and do not stop once unit growth is reached; remove
10921         later loop processing remaining edges.
10922         (cgraph_flatten): Rename to ...
10923         (flatten_function): ... this one; use can_inline_edge_p
10924         and can_early_inline_edge_p predicates.
10925         (cgraph_decide_inlining): Rename to ...
10926         (ipa_inline): ... this one; remove unreachable nodes before
10927         inlining functions called once; simplify the pass.
10928         (cgraph_perform_always_inlining): Rename to ...
10929         (inline_always_inline_functions): ... this one; use
10930         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
10931         (cgraph_decide_inlining_incrementally): Rename to ...
10932         (early_inline_small_functions): ... this one; simplify
10933         using new predicates; cleanup; make dumps prettier.
10934         (cgraph_early_inlining): Rename to ...
10935         (early_inliner): newer inline regular functions into always-inlines;
10936         fix updating of call stmt summaries.
10937         (pass_early_inline): Update for new names.
10938         (inline_transform): Fix formating.
10939         (gate_cgraph_decide_inlining): Rename to ...
10940         (pass_ipa_inline): ... this one.
10941         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
10942         * ipa-inline-analysis.c (dump_inline_summary): Update.
10943         (compute_inline_parameters): Do not compute disregard_inline_limits;
10944         look for mismatching arguments.
10945         (estimate_growth): Fix handlig of non-trivial self recursion.
10946         (inline_read_summary): Do not read info->disregard_inline_limits.
10947         (inline_write_summary): Do not write info->disregard_inline_limits.
10948         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
10949         and move all checks into can_inline_edge_p predicate; re-enable code
10950         comparing optimization levels.
10951         (expand_call_inline): Do not test inline_forbidden_into_p.
10952         * Makefile.in (ipa-inline.o): Update arguments.
10953
10954 2011-04-17  Revital Eres  <revital.eres@linaro.org>
10955
10956         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
10957
10958 2011-04-17  Revital Eres  <revital.eres@linaro.org>
10959
10960         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
10961
10962 2011-04-17  Michael Matz  <matz@suse.de>
10963
10964         PR tree-optimization/48622
10965         PR lto/48645
10966         * ipa-inline-analysis.c (inline_read_summary): Read size/time
10967         in same order as they're written.
10968
10969 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10970
10971         * config/pa/predicates.md: Reorganize and simplify predicates.
10972         Eliminate duplicate code checks.
10973         (arith_operand): Rename to arith14_operand
10974         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
10975         * config/pa/pa.md: Use renamed operands.
10976         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
10977         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
10978         arith11_operand, adddi3_operand, indexed_memory_operand,
10979         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
10980         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
10981         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
10982         move_dest_operand, move_src_operand, prefetch_cc_operand,
10983         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
10984         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
10985         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
10986         div_operand, int5_operand, movb_comparison_operator,
10987         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
10988         arith_double_operand, ireg_operand, lhs_lshift_operand,
10989         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
10990         integer_store_memory_operand): Likewise.
10991         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
10992         (integer_store_memory_operand, read_only_operand,
10993         function_label_operand, borx_reg_operand,
10994         non_hard_reg_operand): Likewise.
10995         (eq_neq_comparison_operator): Delete unused operator.
10996         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
10997         function_label_operand.
10998         (emit_move_sequence): Likewise.
10999
11000 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
11001
11002         * config/i386/sse.md (sseunpackmode): New mode attribute.
11003         (ssepackmode): Ditto.
11004         (vec_pack_trunc_<mode>): Macroize expander from
11005         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
11006         (vec_unpacks_lo_<mode>): Macroize expander from
11007         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11008         (vec_unpacks_hi_<mode>): Macroize expander from
11009         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11010         (vec_unpacku_lo_<mode>): Macroize expander from
11011         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11012         (vec_unpacku_hi_<mode>): Macroize expander from
11013         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11014         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
11015         ix86_expand_sse4_unpack.
11016         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
11017
11018 2011-04-16  Jan Hubicka  <jh@suse.cz>
11019
11020         * cgraphbuild.c: Include ipa-inline.h.
11021         (reset_inline_failed): Use initialize_inline_failed.
11022         * cgraph.c: Include ipa-inline.h.
11023         (cgraph_create_node_1): Do not initialize estimated_growth.
11024         (initialize_inline_failed): More to ipa-inline-analysis.c
11025         (dump_cgraph_node): Do not dump inline flags.
11026         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
11027         and disregard_inline_limits flags.
11028         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
11029         time, size, estimated_growth.
11030         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
11031         Update.
11032         * cgraphunit.c (cgraph_decide_is_function_needed): Use
11033         DECL_DISREGARD_INLINE_LIMITS.
11034         (cgraph_analyze_function): Do not initialize
11035         node->local.disregard_inline_limits.
11036         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
11037         inlinable, versionable and disregard_inline_limits.
11038         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
11039         cgraph_check_inline_limits, cgraph_default_inline_p,
11040         cgraph_edge_badness, update_caller_keys, update_callee_keys,
11041         add_new_edges_to_heap): Update.
11042         (cgraph_decide_inlining_of_small_function): Update; set
11043         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
11044         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
11045         cgraph_decide_inlining_incrementally): Update.
11046         * ipa-inline.h (inline_summary): Add inlinable, versionable,
11047         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
11048         time, size and estimated_growth parameters.
11049         (estimate_edge_growth): Update.
11050         (initialize_inline_failed): Declare.
11051         * ipa-split.c: Include ipa-inline.h
11052         (execute_split_functions): Update.
11053         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
11054         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
11055         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
11056         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
11057         estimated_growth to INT_MIN.
11058         (inline_node_duplication_hook): Likewise.
11059         (dump_inline_summary): Dump new fields.
11060         (compute_inline_parameters): Update.
11061         (estimate_edge_time, estimate_time_after_inlining,
11062         estimate_size_after_inlining, estimate_growth, inline_read_summary,
11063         inline_write_summary):
11064         (initialize_inline_failed): Move here from cgraph.c.
11065         * tree-sra.c: Include ipa-inline.h.
11066         (ipa_sra_preliminary_function_checks): Update.
11067         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
11068         ipa-inline.h.
11069
11070 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
11071
11072         * config/i386/sse.md (V16): New mode iterator.
11073         (VI1, VI8): Ditto.
11074         (AVXMODEQI, AVXMODEDI): Remove.
11075         (sse2, sse3): New mode attribute.
11076         (mov<mode>): Use V16 mode iterator.
11077         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
11078         (push<mode>1): Use V16 mode iterator.
11079         (movmisalign<mode>): Ditto.
11080         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
11081         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
11082         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
11083         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
11084         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
11085         avx_movdqu<avxmodesuffix>.
11086         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
11087         *avx_movdqu<avxmodesuffix>.
11088         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
11089         avx_lddqu<avxmodesuffix>.
11090         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
11091         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
11092         avx_movnt<AVXMODEDI:mode>.
11093         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
11094         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
11095
11096 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
11097
11098         PR target/48629
11099         * haifa-sched.c (prune_ready_list, schedule_block): Use
11100         sched_pressure_p rather than flag_sched_pressure.
11101
11102 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
11103
11104         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
11105         cgraph_get_node instead of cgraph_get_create_node.
11106
11107 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
11108
11109         * cfgexpand.c (expand_debug_expr): Use
11110         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
11111
11112 2011-04-15  Michael Matz  <matz@suse.de>
11113
11114         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
11115         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
11116         * function.c (gimplify_parameters): Ditto.
11117         * gimplify.c (gimplify_vla_decl): Ditto.
11118
11119         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
11120         (gimple_call_set_alloca_for_var): New inline function.
11121         (gimple_call_alloca_for_var_p): Ditto.
11122         * gimple.c (gimple_build_call_from_tree): Remember
11123         CALL_ALLOCA_FOR_VAR_P state.
11124         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
11125
11126         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
11127         calls if they were for VLA objects.
11128
11129 2011-04-15  Martin Jambor  <mjambor@suse.cz>
11130
11131         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
11132         of ADR_EXPRs.
11133
11134 2011-04-15  Martin Jambor  <mjambor@suse.cz>
11135
11136         PR middle-end/48601
11137         * tree-emutls.c (lower_emutls_function_body): Call
11138         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
11139         result is non-NULL.
11140
11141 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
11142
11143         * c-decl.c (detect_field_duplicates): Call
11144         objc_detect_field_duplicates instead of objc_get_interface_ivars.
11145
11146 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
11147
11148         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
11149         * gimple.c (gimple_asm_clobbers_memory_p): Define.
11150         * ipa-pure-const.c (check_stmt): Call it.
11151         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
11152
11153 2011-04-15  Richard Guenther  <rguenther@suse.de>
11154
11155         PR tree-optimization/48290
11156         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
11157         Properly decide inhibiting propagation based on the valueized
11158         operand.  Do loop-closed SSA form preserving here ...
11159         (init_copy_prop): ... not here.
11160
11161 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
11162
11163         PR target/48612
11164         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
11165         (*ieee_smax<mode>3): Likewise.
11166
11167 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11168
11169         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
11170         Replace match_operand with match_dup for the third operand in
11171         these expanders.
11172
11173 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
11174
11175         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
11176         to track processing of conditionals.  Update all callers.
11177         (try_combine, simplify_if_then_else): Update.
11178
11179 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
11180
11181         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
11182         -fsched-pressure.
11183
11184 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
11185
11186         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
11187         instead of match_operand for operand 3.
11188
11189 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
11190
11191         * recog.h (insn_operand_data): Add an "allows_mem" field.
11192         * genoutput.c (output_operand_data): Initialize it.
11193         * optabs.c (maybe_legitimize_operand_same_code): New function.
11194         (maybe_legitimize_operand): Use it when matching the original
11195         op->value.
11196
11197 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
11198
11199         * gimplify.c: Fix issues in comments throughout.
11200         (voidify_wrapper_expr): Fix long line.
11201         (build_stack_save_restore): Likewise.
11202         (gimplify_loop_expr): Likewise.
11203         (gimplify_compound_lval): Likewise.
11204         (gimplify_init_ctor_eval): Likewise.
11205         (gimplify_modify_expr_rhs): Likewise.
11206         (omp_notice_threadprivate_variable): Likewise.
11207
11208 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
11209
11210         * cfgexpand.c (expand_call_stmt): Convert the function type to the
11211         original one if this is not a builtin function.
11212
11213 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
11214
11215         PR target/48605
11216         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
11217         offset it as needed based on top 2 bits in operands[3], change
11218         MEM mode to SFmode and mask those 2 bits away from operands[3].
11219
11220 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
11221
11222         * c-parser.c (c_parser_objc_protocol_definition): Updated for
11223         change from objc_declare_protocols() to objc_declare_protocol().
11224
11225 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
11226
11227         * config/i386/sse.md (sse4_1): New mode attribute.
11228         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
11229         avx_blend<ssemodesuffix><avxmodesuffix> and
11230         sse4_1_blend<ssemodesuffix> using VF mode iterator.
11231         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
11232         avx_blendv<ssemodesuffix><avxmodesuffix> and
11233         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
11234         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
11235         avx_dp<ssemodesuffix><avxmodesuffix> and
11236         sse4_1_dp<ssemodesuffix> using VF mode iterator.
11237         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
11238         (sse4_1_packusdw): Merge with *avx_packusdw.
11239         (sse4_1_pblendvb): Merge with *avx_pblendvb.
11240         (sse4_1_pblendw): Merge with *avx_pblendw.
11241         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
11242         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
11243         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
11244         VF mode iterator.
11245         (sse4_1_round<ssescalarmodesuffix>): Merge with
11246         *avx_round<ssescalarmodesuffix>.
11247         (aesenc): Merge with *avx_aesenc.
11248         (aesenclast): Merge with *avx_aesenclast.
11249         (aesdec): Merge with *avx_aesdec.
11250         (aesdeclast): Merge with *avx_aesdeclast.
11251         (pclmulqdq): Merge with *pclmulqdq.
11252         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
11253         New predicate.
11254         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
11255
11256 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
11257
11258         PR middle-end/48608
11259         * cfgexpand.c (get_decl_align_unit): Renamed to ...
11260         (align_local_variable): This.  Update DECL_ALIGN.
11261         (add_stack_var): Updated.
11262         (expand_one_stack_var): Likewise.
11263
11264 2011-04-14  Richard Guenther  <rguenther@suse.de>
11265
11266         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
11267         Remove.
11268         (dse_initialize_block_local_data, dse_leave_block,
11269         record_voperand_set, get_stmt_uid): Likewise.
11270         (dse_possible_dead_store_p): Allow any kind of killing stmt.
11271         (dse_optimize_stmt): Remove voperand set handling code.
11272         Simplify and improve to handle any kind of killing stmt.
11273         (dse_record_phi): Remove.
11274         (dse_enter_block): Simplify.
11275         (tree_ssa_dse): Likewise.
11276         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
11277
11278 2011-04-14  Jan Hubicka  <jh@suse.cz>
11279
11280         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
11281         * cgraph.h (struct inline_summary): Move to ipa-inline.h
11282         (cgraph_local_info): Remove inline_summary.
11283         * ipa-cp.c: Include ipa-inline.h.
11284         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
11285         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
11286         accesor.
11287         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
11288         (input_overwrite_node): Do not set inline summary.
11289         (input_node): Do not stream inline summary.
11290         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
11291         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
11292         growth; we do not have inline parameters computed for that anyway.
11293         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
11294         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
11295         (inline_summary_t): New type and VECtor.
11296         (debug_inline_summary, dump_inline_summaries): Declare.
11297         (inline_summary): Use VOCtor.
11298         (estimate_edge_growth): Kill hack computing call stmt size directly.
11299         * lto-section-in.c (lto_section_name): Add inline section.
11300         * ipa-inline-analysis.c: Include lto-streamer.h
11301         (node_removal_hook_holder, node_duplication_hook_holder): New holders
11302         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
11303         (inline_summary_vec): Define.
11304         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
11305         dump_inline_summaries): New functions.
11306         (estimate_function_body_sizes): Properly compute size/time of outgoing
11307         calls.
11308         (compute_inline_parameters): Alloc inline_summary; do not compute
11309         size/time of incomming calls.
11310         (estimate_edge_time): Avoid missing time summary hack.
11311         (inline_read_summary): Read inline summary info.
11312         (inline_write_summary): Write inline summary info.
11313         (inline_free_summary): Free all hooks and inline summary vector.
11314         * lto-streamer.h: Add LTO_section_inline_summary section.
11315         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
11316         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
11317
11318 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11319
11320         * tree-vectorizer.h (vect_strided_store_supported): Add a
11321         HOST_WIDE_INT argument.
11322         (vect_strided_load_supported): Likewise.
11323         (vect_permute_store_chain): Return void.
11324         (vect_transform_strided_load): Likewise.
11325         (vect_permute_load_chain): Delete.
11326         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
11327         count argument.  Check that the count is a power of two.
11328         (vect_strided_load_supported): Likewise.
11329         (vect_permute_store_chain): Return void.  Update after above changes.
11330         Assert that the access is supported.
11331         (vect_permute_load_chain): Likewise.
11332         (vect_transform_strided_load): Return void.
11333         * tree-vect-stmts.c (vectorizable_store): Update calls after
11334         above interface changes.
11335         (vectorizable_load): Likewise.
11336         (vect_analyze_stmt): Don't check for strided powers of two here.
11337
11338 2011-04-14  Richard Guenther  <rguenther@suse.de>
11339
11340         PR tree-optimization/48590
11341         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
11342         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
11343         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
11344         BUILT_IN_STACK_SAVE.
11345         * tree-ssa-dce.c (propagate_necessity): Handle
11346         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
11347
11348 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
11349
11350         * c-parser.c (c_parser_objc_class_declaration): Updated call to
11351         objc_declare_class.
11352
11353 2011-04-14  Richard Guenther  <rguenther@suse.de>
11354
11355         * tree.h (get_object_alignment_1): Declare.
11356         * builtins.c (get_object_alignment_1): Split out worker from ...
11357         (get_object_alignment): ... here.
11358         * fold-const.c (get_pointer_modulus_and_residue): Use
11359         get_object_alignment_1.
11360
11361 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11362
11363         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
11364         type parameter.
11365         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
11366         parameter.  Generalise code to handle arrays as well as vectors.
11367         (vect_setup_realignment): Update accordingly.
11368         * tree-vect-stmts.c (vectorizable_store): Likewise.
11369         (vectorizable_load): Likewise.
11370
11371 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11372
11373         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
11374         within the per-copy loop.
11375
11376 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11377
11378         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
11379         in the dump file.
11380
11381 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11382
11383         * doc/options.texi (Negative): Explicitly mention that the
11384         Negative chain must be circular.
11385
11386 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
11387
11388         * function.h (block_chainon): Declare.
11389         * function.c (block_chainon): Define.
11390
11391 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
11392             Eric Weddington  <eric.weddington@atmel.com>
11393             Georg-Johann Lay  <avr@gjlay.de>
11394
11395         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
11396         New Includes
11397         (avr_init_builtins, avr_expand_builtin,
11398         avr_expand_delay_cycles, avr_expand_unop_builtin,
11399         avr_expand_binop_builtin ): New functions.
11400         (avr_builtin_id): New enum
11401         (struct avr_builtin_description): New struct
11402         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
11403         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
11404
11405         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
11406         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
11407         UNSPECV_DELAY_CYCLES): new enumeration values
11408         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
11409         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
11410         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
11411         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
11412         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
11413         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
11414         "fmulsu"): New insns
11415
11416         * config/avr/avr-c.c: fix line endings
11417         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
11418         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
11419         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
11420         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
11421         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
11422
11423         * doc/extend.texi (AVR Built-in Functions): New node
11424         (Target Builtins): Add documentation of AVR
11425         built-in functions.
11426
11427 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
11428
11429         PR target/44643
11430         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
11431         alone. Error if non-const data has attribute progmem.
11432
11433 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11434
11435         * tree.h (struct tree_constructor): Include tree_typed instead of
11436         tree_common.
11437         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
11438         TS_TYPED instead of TS_COMMON.
11439
11440 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
11441
11442         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
11443         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
11444         (sse2_psadbw): Merge with *avx_psadbw.
11445         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
11446         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
11447         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
11448         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
11449         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
11450         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
11451         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
11452         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
11453         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
11454         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
11455         (ssse3_palignrti): Merge with *avx_palignrti.
11456
11457 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11458
11459         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
11460         * tree-ssanames.c (fini_ssanames): VEC_free it.
11461         (make_ssa_name_fn): Update for VECness of free_ssanames.
11462         (release_ssa_name, release_dead_ssa_names): Likewise.
11463         * tree.h (struct tree_ssa_name): Include tree_typed instead of
11464         tree_common.
11465         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
11466         TS_TYPED instead of TS_COMMON.
11467
11468 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11469
11470         * postreload-gcse.c (gcse_after_reload_main): Add calls to
11471         statistics_counter_event.
11472         * tree-ssa-copyrename.c (stats): Define.
11473         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
11474         statistics_counter_event.
11475         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
11476         (bswap_stats, widen_mul_stats): Define.
11477         (insert_reciprocals): Increment rdivs_inserted.
11478         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
11479         rfuncs_inserted.  Add calls to statistics_counter_event.
11480         (execute_cse_sincos_1): Increment inserted.
11481         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
11482         statistics_counter_event.
11483         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
11484         of bswap_stats.  Add calls to statistics_counter_event.
11485         (convert_mult_to_widen): Increment widen_mults_inserted.
11486         (convert_plusminus_to_widen): Increment maccs_inserted.
11487         (convert_mult_to_fma): Increment fmas_inserted.
11488         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
11489         calls to statistics_counter_event.
11490
11491 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
11492
11493         PR rtl-optimization/48455
11494         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
11495         `temp_costs->mem_cost'.
11496
11497 2011-04-13  Jan Hubicka  <jh@suse.cz>
11498
11499         * ipa-inline.h: New file.
11500         * ipa-inline-analysis.c: New file. Broken out of ...
11501         * ipa-inline.c: ... this file; update toplevel comment;
11502         include ipa-inline.h
11503         (inline_summary): Move to ipa-inline.h
11504         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
11505         ipa-inline-analysis.c.
11506         (cgraph_estimate_time_after_inlining): Rename to
11507         estiamte_time_after_inlining; move to ipa-inline-analysis.c
11508         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
11509         to estimate_edge_growth.
11510         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
11511         rename to estimate_size_after_inlining.
11512         (cgraph_mark_inline_edge): Update for new naming convention.
11513         (cgraph_check_inline_limits): Likewise.
11514         (cgraph_edge_badness): Likewise.
11515         (cgraph_decide_recursive_inlining): Likewise.
11516         (cgraph_decide_inlining_of_small_functions): Likewise.
11517         (cgraph_decide_inlining_incrementally): Likewise.
11518         (cgraph_estimate_growth): Rename to estimate_growth; move to
11519         ipa-inline-analysis.c.
11520         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
11521         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
11522         (compute_inline_parameters): Likewise.
11523         (compute_inline_parameters_for_current): Likewise.
11524         (pass_inline_parameters): Likewise.
11525         (inline_indirect_intraprocedural_analysis): Likewise.
11526         (analyze_function): Rename to inline_analyze_function; likewise.
11527         (add_new_function): Move to ipa-inline-analysis.c.
11528         (inline_generate_summary): Likewise.
11529         (inline_read_summary): Likewise.
11530         (inline_write_summary): Likewise.
11531         * Makefile.in (ipa-inline-analysis.c): New file.
11532
11533 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11534
11535         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
11536         * configure: Regenerate.
11537
11538 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11539
11540         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
11541         instead of tree_common.
11542         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
11543         Likewise.
11544         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
11545         TS_TYPED rather than TS_COMMON.
11546         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
11547
11548 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
11549
11550         PR target/45263
11551         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
11552         r20 around calls of __tablejump_elpm__
11553
11554 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
11555
11556         PR middle-end/48591
11557         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
11558         NULL.
11559         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
11560
11561 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
11562
11563         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
11564         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
11565         (cfi_vec): New typedef.
11566         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
11567         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
11568         (cie_cfi_vec): New static variable.
11569         (cie_cfi_head): Delete.
11570         (add_cfi): Accept a cfi_vec * as first argument. All callers and
11571         declaration changed. Use vector rather than list operations.
11572         (new_cfi): Don't initialize the dw_cfi_next field.
11573         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
11574         rather than list operations.
11575         (lookup_cfa): Use vector rather than list operations.
11576         (output_cfis): New argument upto. Accept a cfi_vec rather than
11577         a dw_cfi_ref list head as argument. All callers changed.
11578         Iterate over the vector using upto as a maximum index.
11579         (output_all_cfis): New static function.
11580         (output_fde): Use vector rather than list operations. Use the
11581         new upto argument for output_cfis rather than manipulating a
11582         list.
11583         (dwarf2out_begin_prologue): Change initializations to match
11584         new struct members.
11585         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
11586         from the vector length rather than searching for the end of a list.
11587         Use output_all_cfis.
11588         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
11589
11590 2011-04-13  Nick Clifton  <nickc@redhat.com>
11591
11592         * config/rx/rx.md (movmemsi): Do not use this pattern when
11593         volatile pointers are involved.
11594
11595 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
11596
11597         * config/i386/sse.md (pinsrbits): Remove.
11598         (sse2_packsswb): Merge with *avx_packsswb.
11599         (sse2_packssdw): Merge with *avx_packssdw.
11600         (sse2_packuswb): Merge with *avx_packuswb.
11601         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
11602         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
11603         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
11604         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
11605         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
11606         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
11607         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
11608         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
11609         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
11610         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
11611         (sse2_loadld): Merge with *avx_loadld.
11612         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
11613         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
11614         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
11615         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
11616         (vec_concatv2di): Merge with *vec_concatv2di_avx.
11617
11618 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
11619
11620         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
11621         calling TREE_CHAIN.
11622         * print-tree.c (print_node): Likewise.
11623         * tree-inline.c (copy_tree_r): Likewise.
11624         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
11625         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
11626         instead of TS_COMMON.
11627         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
11628         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
11629         (copy_node_stat): Zero TREE_CHAIN only if necessary.
11630         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
11631         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
11632         ...and these...
11633         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
11634         * tree.h: ...here.
11635         (TREE_CHAIN): Check for a TS_COMMON structure.
11636         (TREE_TYPE): Check for a TS_TYPED structure.
11637
11638 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
11639
11640         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
11641         cgraph_get_create_node instead of cgraph_node.
11642
11643 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11644
11645         * c-parser.c (c_parser_initelt): Updated call to
11646         objc_build_message_expr.
11647         (c_parser_postfix_expression): Likewise.
11648
11649 2011-04-12  Kai Tietz  <ktietz@redhat.com>
11650
11651         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
11652         MASK_MS_BITFIELD_LAYOUT bit.
11653
11654 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11655
11656         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
11657         assert it is always true.
11658         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
11659         moves.
11660
11661 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11662
11663         * c-parser.c (c_lex_one_token): Rewritten conditional used when
11664         compiling Objective-C to be more efficient.
11665
11666 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
11667
11668         * opts-common.c (decode_cmdline_options_to_array): Remove variable
11669         argv_copied.
11670
11671 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11672
11673         * recog.h, genoutput.c, optabs.c: Revert last patch.
11674
11675 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11676
11677         PR target/48090
11678         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
11679
11680 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11681
11682         * recog.h (insn_operand_data): Add an "allows_mem" field.
11683         * genoutput.c (output_operand_data): Initialize it.
11684         * optabs.c (maybe_legitimize_operand_same_code): New function.
11685         (maybe_legitimize_operand): Use it when matching the original
11686         op->value.
11687
11688 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11689
11690         * genpreds.c (process_define_predicate): Move most processing
11691         to gensupport.c.  Continue to validate the expression.
11692         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
11693         (process_define_predicate): Move processing to gensupport.c.
11694         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
11695         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
11696         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
11697         argument.
11698         (valid_predicate_name_p): New function, split out from old
11699         genpreds.c:process_define_predicate.
11700         (process_define_predicate): New function, combining code from
11701         old genpreds.c and genrecog.c functions.
11702         (process_rtx): Call it for DEFINE_PREDICATE and
11703         DEFINE_SPECIAL_PREDICATE.
11704
11705 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11706
11707         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
11708         size of a '%A' memory reference.
11709         (T_DREG, T_QREG): New neon_builtin_type_bits.
11710         (arm_init_neon_builtins): Assert that the load and store operands
11711         are neon_struct_operands.
11712         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
11713         (NEON_ARG_MEMORY): New builtin_arg.
11714         (neon_dereference_pointer): New function.
11715         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
11716         Handle NEON_ARG_MEMORY.
11717         (arm_expand_neon_builtin): Update after above interface changes.
11718         Use NEON_ARG_MEMORY for loads and stores.
11719         * config/arm/predicates.md (neon_struct_operand): New predicate.
11720         * config/arm/iterators.md (V_two_elem): Tweak formatting.
11721         (V_three_elem): Use BLKmode for accesses that have no associated mode.
11722         (V_four_elem): Tweak formatting.
11723         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
11724         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
11725         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
11726         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
11727         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
11728         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
11729         (neon_vst4<mode>): Replace pointer operand with a memory operand.
11730         Use %A in the output template.
11731         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
11732         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
11733         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
11734         the width of the memory access.  Remove post-increment.
11735         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
11736
11737 2011-04-12  Nick Clifton  <nickc@redhat.com>
11738
11739         * config/v850/v850.c (expand_prologue): Do not use the CALLT
11740         instruction for interrupt handlers if the target is the basic V850
11741         architecture.
11742         (expand_epilogue): Likewise.
11743
11744 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11745
11746         PR rtl-optimization/48549
11747         * combine.c (propagate_for_debug): Also stop after BB_END of
11748         this_basic_block.  Process LAST and just stop processing after it.
11749         (combine_instructions): If last_combined_insn has been deleted,
11750         set last_combined_insn to its PREV_INSN.
11751
11752 2011-04-12  Richard Guenther  <rguenther@suse.de>
11753
11754         PR tree-optimization/46076
11755         * gimple.h (struct gimple_statement_call): Add fntype field.
11756         (gimple_call_fntype): Adjust.
11757         (gimple_call_set_fntype): New function.
11758         * gimple.c (gimple_build_call_1): Set the call function type.
11759         * gimplify.c (gimplify_call_expr): Preserve the function
11760         type the frontend used for the call.
11761         (gimplify_modify_expr): Likewise.
11762         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
11763         function type.
11764         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
11765         function type.
11766         * tree-ssa.c (useless_type_conversion_p): Function pointer
11767         conversions are useless.
11768
11769 2011-04-12  Martin Jambor  <mjambor@suse.cz>
11770
11771         * cgraph.h (cgraph_node): Remove function declaration.
11772         (cgraph_create_node): Declare.
11773         (cgraph_get_create_node): Likewise.
11774         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
11775         Updated all callers.
11776         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
11777         the decl does not already exist.  Call cgraph_get_create_node instead
11778         of cgraph_node.
11779         (cgraph_get_create_node): New function.
11780         (cgraph_same_body_alias): Update comment.
11781         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
11782         assert it does not return NULL.
11783         (cgraph_update_edges_for_call_stmt): Likewise.
11784         (cgraph_clone_edge): Likewise.
11785         (cgraph_create_virtual_clone): Likewise.
11786         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
11787         instead of cgraph_node.
11788         (cgraph_add_new_function): Call cgraph_create_node or
11789         cgraph_get_create_node instead of cgraph_node.
11790         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
11791         instead of cgraph_node.
11792         (record_eh_tables): Likewise.
11793         (mark_address): Likewise.
11794         (mark_load): Likewise.
11795         (build_cgraph_edges): Call cgraph_get_create_node instead
11796         of cgraph_node.
11797         (rebuild_cgraph_edges): Likewise.
11798         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
11799         instead of cgraph_node.
11800         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
11801         cgraph_node.
11802         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
11803         cgraph_create_node instead of cgraph_node.
11804         * c-decl.c (finish_function): Call cgraph_get_create_node instead
11805         of cgraph_node.
11806         * lto-cgraph.c (input_node): Likewise.
11807         * lto-streamer-in.c (input_function): Likewise.
11808         * varasm.c (mark_decl_referenced): Likewise.
11809         (assemble_alias): Likewise.
11810
11811 2011-04-12  Martin Jambor  <mjambor@suse.cz>
11812
11813         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
11814         instead of cgraph_node and assert it does not return NULL.
11815         * lto-streamer-in.c (lto_read_body): Likewise.
11816         * omp-low.c (new_omp_context): Likewise.
11817         (create_task_copyfn): Likewise.
11818         * tree-emutls.c (lower_emutls_function_body): Likewise.
11819         * matrix-reorg.c (transform_allocation_sites): Likewise.
11820
11821 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11822
11823         PR c/48552
11824         * c-typeck.c (build_asm_expr): Error out on attempts to use
11825         void type outputs or inputs for constraints that allow reg or
11826         don't allow memory.
11827
11828 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
11829             Richard Earnshaw  <rearnsha@arm.com>
11830
11831         PR target/48250
11832         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
11833         to use sign-magnitude offsets. Reject unsupported unaligned
11834         cases. Add detailed description in comments.
11835         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
11836         condition from TARGET_32BIT to TARGET_ARM.
11837
11838 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
11839
11840         * tree.h (struct typed_tree): New.
11841         (struct tree_common): Include it instead of tree_base.
11842         (TREE_TYPE): Update for new location of type field.
11843         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
11844         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
11845         (union tree_node): Add typed field.
11846         * treestruct.def (TS_TYPED): New.
11847         * lto-streamer.c (check_handled_ts_structures): Handle it.
11848         * tree.c (MARK_TS_TYPED): New macro.
11849         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
11850
11851 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
11852
11853         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
11854         (force_nonfallthru): Do not alter the loop nest if no basic block
11855         was created.
11856
11857 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
11858
11859         * config/i386/sse.md (VI): New mode iterator.
11860         (SSEMODEI): Remove.
11861         (AVX256MODEI): Ditto.
11862         (AVXMODEF4P): Ditto.
11863         (avxvecpsmode): Ditto.
11864         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
11865         (sse2_andnot<mode>3): New expander.
11866         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
11867         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
11868         (<any_logic:code><mode>3): Use VI mode iterator.
11869         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
11870         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
11871         (*andnottf3): Handle AVX three-operand constraints.
11872         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
11873
11874 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11875             Robert Millan  <rmh@gnu.org>
11876
11877         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
11878         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
11879         GNU_USER_DYNAMIC_LINKER64): Define.
11880         (REG_NAME): Don't undefine.
11881         (MD_UNWIND_SUPPORT): Undefine.
11882         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
11883         (REG_NAME): Don't undefine.
11884         (MD_UNWIND_SUPPORT): Undefine.
11885         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
11886
11887 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11888
11889         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
11890         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
11891
11892 2011-04-11  Xinliang David Li  <davidxl@google.com>
11893
11894         * value-profile.c (check_ic_target): New function.
11895         (gimple_ic_transform): Sanity check indirect call target.
11896         * gimple-low.c (gimple_check_call_args): Interface change.
11897         (gimple_check_call_matching_types): New function.
11898         * tree-inline.c (tree_can_inline_p): Call new function.
11899
11900 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
11901
11902         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
11903         tree-pretty-print.h & realmpfr.h.
11904
11905 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
11906
11907         PR middle-end/48464
11908         * ira.c (setup_pressure_classes): Fix typo in loop condition.
11909         (setup_allocno_and_important_classes): Ditto.
11910
11911 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11912
11913         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
11914         GNU_USER_DYNAMIC_LINKER.
11915         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
11916         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11917         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
11918         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11919         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11920         GNU_USER_TARGET_OS_CPP_BUILTINS.
11921         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
11922         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11923         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
11924         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11925         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
11926         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11927         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11928         GNU_USER_TARGET_OS_CPP_BUILTINS.
11929         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11930         GNU_USER_DYNAMIC_LINKER.
11931         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11932         GNU_USER_TARGET_OS_CPP_BUILTINS.
11933         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
11934         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11935         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
11936         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11937         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
11938         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
11939         GNU_USER_DYNAMIC_LINKER64): Remove.
11940         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
11941         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11942         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11943         GNU_USER_DYNAMIC_LINKER.
11944         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11945         GNU_USER_TARGET_OS_CPP_BUILTINS.
11946         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11947         GNU_USER_TARGET_OS_CPP_BUILTINS.
11948         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
11949         to GNU_USER_TARGET_OS_CPP_BUILTINS.
11950         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11951         GNU_USER_TARGET_OS_CPP_BUILTINS.
11952         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
11953         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
11954         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
11955         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
11956         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11957         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11958         GNU_USER_DYNAMIC_LINKER.
11959         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11960         GNU_USER_TARGET_OS_CPP_BUILTINS.
11961         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
11962         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11963         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11964         GNU_USER_DYNAMIC_LINKER.
11965         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
11966         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11967         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
11968         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11969         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11970         GNU_USER_DYNAMIC_LINKER.
11971         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
11972         GNU_USER_DYNAMIC_LINKERN32.
11973         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
11974         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
11975         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
11976         GNU_USER_DYNAMIC_LINKER32.
11977         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
11978         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11979         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11980         GNU_USER_DYNAMIC_LINKER.
11981         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
11982         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11983         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
11984         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11985         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11986         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
11987         GNU_USER_DYNAMIC_LINKER32.
11988         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
11989         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
11990         GNU_USER_DYNAMIC_LINKER.
11991         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
11992         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11993         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
11994         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
11995         GNU_USER_DYNAMIC_LINKER64.
11996         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
11997         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11998         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11999         GNU_USER_DYNAMIC_LINKER.
12000         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
12001         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12002         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12003         GNU_USER_DYNAMIC_LINKER.
12004         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
12005         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12006         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
12007         GNU_USER_DYNAMIC_LINKER32.
12008         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
12009         GNU_USER_DYNAMIC_LINKER64.
12010         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
12011         GNU_USER_DYNAMIC_LINKER64.
12012         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
12013         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12014         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
12015         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12016         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
12017
12018 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
12019
12020         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
12021         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
12022         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
12023         GNU_USER_DYNAMIC_LINKER.
12024         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
12025         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
12026         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
12027         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
12028         GNU_USER_DYNAMIC_LINKER64.
12029         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
12030         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
12031         GNU_USER_LINK_EMULATION.
12032         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
12033         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
12034         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
12035         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
12036         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
12037         CPP_SPEC, CC1_SPEC): Remove.
12038         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
12039         (GNU_USER_DYNAMIC_LINKER): Define.
12040         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
12041         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
12042         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
12043         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
12044         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
12045         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
12046         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
12047         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
12048         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
12049         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
12050         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
12051         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
12052         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
12053         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
12054         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
12055         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
12056         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12057         GNU_USER_DYNAMIC_LINKER.
12058         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12059         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
12060         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12061         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
12062         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12063         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
12064         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
12065         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
12066         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
12067         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
12068
12069 2011-04-11  Kai Tietz  <ktietz@redhat.com>
12070
12071         PR target/9601
12072         PR target/11772
12073         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
12074         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
12075         comment.
12076         (ix86_is_msabi_thiscall): Removed.
12077         (ix86_is_type_thiscall): Likewise.
12078         (ix86_get_callcvt): New function.
12079         (ix86_comp_type_attributes): Simplify check.
12080         (ix86_function_regparm): Use ix86_get_callcvt for calling
12081         convention attribute checks.
12082         (ix86_return_pops_args): Likewise.
12083         (ix86_static_chain): Likewise.
12084         (x86_this_parameter): Likewise.
12085         (x86_output_mi_thunk): Likewise.
12086         (ix86_function_type_abi): Optimize check for types without attributes.
12087         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
12088         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
12089         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
12090         by flag-values.
12091         (IX86_BASE_CALLCVT): Helper macro.
12092         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
12093         Use ix86_get_callcvt for calling convention attribute checks and avoid
12094         symbol-decoration for stdcall in TARGET_RTD case.
12095         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
12096         Likewise.
12097         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
12098         for declaration.
12099
12100 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
12101
12102         * config/i386/sse.md (VI_128): New mode iterator.
12103         (VI12_128): Rename from SSEMODE12.
12104         (VI14_128): Rename from SSEMODE14.
12105         (VI124_128): New mode iterator.
12106         (VI24_128): Rename from SSEMODE248.
12107         (VI248_128): Rename from SSEMODE248.
12108         (SSEMODE124C8): Remove.
12109         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
12110         (*sse2_<plusminus_insn><mode>3): Merge with
12111         *avx_<plusminus_insn><mode>3.
12112         (*mulv8hi3): Merge with *avx_mulv8hi3.
12113         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
12114         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
12115         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
12116         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
12117         (ashr<mode>3): Merge with *avx_ashr<mode>3.
12118         (lshr<mode>3): Merge with *avx_lshr<mode>3.
12119         (ashl<mode>3): Merge with *avx_ashl<mode>3.
12120         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
12121         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
12122         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12123         (*<smaxmin:code>v8hi3): Ditto.
12124         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
12125         (*<smaxmin:code>v16qi3): Ditto.
12126         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
12127         (*sse2_eq<mode>3): Ditto.
12128         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
12129         (*sse2_gt<mode>3): Ditto.
12130         (vcondv2di): Split out of vcond<mode>.
12131         (vconduv2di): Split out of vcondu<mode>.
12132
12133 2011-04-11  Richard Guenther  <rguenther@suse.de>
12134
12135         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
12136         before calling tree_low_cst.
12137
12138 2011-04-11  Richard Guenther  <rguenther@suse.de>
12139
12140         * stor-layout.c (layout_type): Compute all array index size operations
12141         in the original type.
12142         (initialize_sizetypes): Add comment.
12143         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
12144
12145 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
12146
12147         * common.opt (Tbss=, Tdata=, Ttext=): New options.
12148
12149 2011-04-11  Martin Jambor  <mjambor@suse.cz>
12150
12151         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
12152         of cgraph_node, handle NULL return value.
12153         (cgraph_global_info): Likewise.
12154         (cgraph_rtl_info): Likewise.
12155         * tree-inline.c (estimate_num_insns): Likewise.
12156         * gimplify.c (unshare_body): Likewise.
12157         (unvisit_body): Likewise.
12158         (gimplify_body): Likewise.
12159         * predict.c (optimize_function_for_size_p): Likewise.
12160         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
12161         (call_may_clobber_ref_p_1): Likewise.
12162         * varasm.c (function_section_1): Likewise.
12163         (assemble_start_function): Likewise.
12164
12165 2011-04-11  Martin Jambor  <mjambor@suse.cz>
12166
12167         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
12168         of cgraph_node.
12169         * final.c (rest_of_clean_state): Likewise.
12170         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
12171         * passes.c (pass_init_dump_file): Likewise.
12172         (execute_all_ipa_transforms): Likewise.
12173         (function_called_by_processed_nodes_p): Likewise.
12174         * predict.c (maybe_hot_frequency_p): Likewise.
12175         (probably_never_executed_bb_p): Likewise.
12176         (compute_function_frequency): Likewise.
12177         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
12178         (unnest_nesting_tree_1): Likewise.
12179         (lower_nested_functions): Likewise.
12180         * tree-optimize.c (execute_fixup_cfg): Likewise.
12181         (tree_rest_of_compilation): Likewise.
12182         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
12183         * tree-sra.c (ipa_early_sra): Likewise.
12184         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
12185         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
12186         * ipa.c (record_cdtor_fn): Likewise.
12187         * ipa-inline.c (cgraph_early_inlining): Likewise.
12188         (compute_inline_parameters_for_current): Likewise.
12189         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
12190         * ipa-pure-const.c (local_pure_const): Likewise.
12191         * ipa-split.c (split_function): Likewise.
12192         (execute_split_functions): Likewise.
12193         * cgraphbuild.c (build_cgraph_edges): Likewise.
12194         (rebuild_cgraph_edges): Likewise.
12195         (cgraph_rebuild_references): Likewise.
12196         (remove_cgraph_callee_edges): Likewise.
12197         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
12198         (verify_cgraph_node): Likewise.
12199         (cgraph_analyze_functions): Likewise.
12200         (cgraph_preserve_function_body_p): Likewise.
12201         (save_inline_function_body): Likewise.
12202         (save_inline_function_body): Likewise.
12203         * tree-inline.c (copy_bb): Likewise.
12204         (optimize_inline_calls): Likewise.
12205
12206 2011-04-11  Martin Jambor  <mjambor@suse.cz>
12207
12208         PR tree-optimization/48195
12209         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
12210         ipa_check_create_edge_args.
12211         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
12212         ipa_check_create_edge_args.
12213         * ipa-inline.c (inline_generate_summary): Do not call
12214         ipa_check_create_node_params and ipa_check_create_edge_args.
12215         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
12216         ipa_check_create_edge_args.
12217
12218 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
12219
12220         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
12221         instead of loop.
12222         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
12223         * function.c (record_hard_reg_sets): Likewise.
12224         * ira.c (compute_regs_asm_clobbered): Likewise.
12225         * sched-deps.c (sched_analyze_1): Likewise.
12226         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
12227
12228 2011-04-09  Xinliang David Li  <davidxl@google.com>
12229
12230         PR tree-optimization/PR48484
12231         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
12232         has_valid_pred lazily
12233
12234 2011-04-09  Duncan Sands  <baldrick@free.fr>
12235
12236         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
12237
12238 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
12239
12240         * combine.c (combine_validate_cost): Adjust comments.  Set registered
12241         cost of I0 to zero at the end, if any.
12242
12243 2011-04-08  Xinliang David Li  <davidxl@google.com>
12244
12245         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
12246         to insane profile data.
12247
12248 2011-04-08  Xinliang David Li  <davidxl@google.com>
12249
12250         * ipa-cp.c (ipcp_update_profiling): Correct
12251          negative scale factor due to insane profile data.
12252
12253 2011-04-08  Xinliang David Li  <davidxl@google.com>
12254
12255         * final.c (dump_basic_block_info): New function.
12256         (final): Dump basic block.
12257         (final_scan_insn): Remove old dump.
12258
12259 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
12260
12261         PR target/47829
12262         * config.gcc (i386-*-freebsd): Disable unwind table generation for
12263         crtbegin/crtend.
12264
12265 2011-04-08  Michael Matz  <matz@suse.de>
12266
12267         PR middle-end/48389
12268         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
12269         functions.
12270         (rebuild_jump_labels): Call rebuild_jump_labels_1.
12271         * rtl.h (rebuild_jump_labels_chain): Declare.
12272         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
12273         insns inserted on edges.
12274
12275 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
12276
12277         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
12278         * config/arm/arm-arches.def: New.
12279         * config/arm/arm-opts.h: New.
12280         * config/arm/genopt.sh: New.
12281         * config/arm/arm-tables.opt: New (generated).
12282         * config/arm/arm.c (arm_handle_option, arm_target_help,
12283         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
12284         (all_architectures): Get most table contents from arm-arches.def.
12285         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
12286         arm_selected_tune here.
12287         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
12288         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
12289         (march=, mcpu=, mtune=): Use Enum and Var.
12290         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
12291         (arm.o): Update dependencies.
12292
12293 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
12294
12295         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
12296         of header_file.
12297         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
12298         (write_typed_alloc_defns): Likewise.
12299         (main): Calls write_typed_alloc_defns with output_header.
12300
12301 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
12302
12303         PR inline-asm/48435
12304         * ira-color.c (setup_profitable_hard_regs): Add comments.
12305         Don't take prohibited hard regs into account.
12306         (setup_conflict_profitable_regs): Rename to
12307         get_conflict_profitable_regs.
12308         (check_hard_reg_p): Check prohibited hard regs.
12309
12310 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
12311
12312         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
12313         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
12314         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
12315
12316 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12317
12318         PR target/48366
12319         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
12320         move from floating point to shift amount register.
12321         (emit_move_sequence): Remove secondary reload support for floating
12322         point to shift amount amount register copies.
12323         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
12324         amount register copies.
12325         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
12326         register, return false if mode isn't a scalar integer mode.
12327         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
12328
12329 2011-04-08  Richard Guenther  <rguenther@suse.de>
12330
12331         * gimple.c (gimple_call_flags): Remove kludge.
12332
12333 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12334
12335         * sel-sched.c (sel_region_init): Move call to
12336         sel_setup_region_sched_flags after setup_current_loop_nest.
12337
12338 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
12339
12340         PR rtl-optimization/48272
12341         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
12342         init_insn_reg_pressure_info.  Adjust a caller.
12343         * sched-int.h (init_insn_reg_pressure_info): Declare.
12344         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
12345         when sched-pressure is enabled.
12346
12347 2011-04-08  Richard Guenther  <rguenther@suse.de>
12348
12349         * gimple.c (gimple_set_modified): Do not queue calls to
12350         MODIFIED_NORETURN_CALLS here ...
12351         * tree-ssa-operands.c (update_stmt_operands): ... but here.
12352
12353 2011-04-08  Richard Guenther  <rguenther@suse.de>
12354
12355         PR lto/48467
12356         * toplev.c (lang_dependent_init): Do not open asm_out_file
12357         in WPA mode, nor perform debug machinery initialization.
12358         (finalize): Do not unlink asm_out_file in WPA mode.
12359
12360 2011-04-08  Richard Guenther  <rguenther@suse.de>
12361
12362         * gimple.h (gimple_call_fntype): New function.
12363         (gimple_call_return_type): Use it.
12364         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
12365         * gimple-low.c (gimple_check_call_args): Likewise.
12366         * gimple.c (gimple_call_flags): Likewise.
12367         (gimple_call_arg_flags): Likewise.
12368         (gimple_call_return_flags): Likewise.
12369         * tree-cfg.c (verify_gimple_call): Likewise.
12370         (do_warn_unused_result): Likewise.
12371         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
12372         * value-prof.c (gimple_ic_transform): Fix fndecl check.
12373
12374 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
12375
12376         PR rtl-optimization/48235
12377         * sel-sched.c (code_motion_process_successors): Recompute the last
12378         insn in basic block if control flow changed.
12379         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
12380         Update condition for ilist_remove.
12381
12382 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12383
12384         PR rtl-optimization/48302
12385         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
12386         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
12387         it to record added preheader blocks.
12388         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
12389         on to sel_add_loop_preheaders.
12390         (sel_region_init): Move call to setup_current_loop_nest after
12391         sel_init_bbs.
12392
12393 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12394
12395         PR target/48273
12396         * cfgloop.h (loop_has_exit_edges): New helper.
12397         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
12398         non-clonable.
12399         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
12400         that have no exit edges.
12401
12402 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12403
12404         PR rtl-optimization/48442
12405         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
12406         all callers.  Adjust assert.
12407
12408 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
12409
12410         PR tree-optimization/48377
12411         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
12412         is_packed to true even for types with smaller TYPE_ALIGN than
12413         TYPE_SIZE.
12414
12415 2011-04-08  Richard Guenther  <rguenther@suse.de>
12416
12417         PR bootstrap/48513
12418         * doc/tm.texi: Re-generate.
12419
12420 2011-04-08  Wei Guozhi  <carrot@google.com>
12421
12422         PR target/47855
12423         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
12424         * config/arm/arm.c (arm_attr_length_push_multi): New function.
12425         * config/arm/arm.md (*push_multi): Change the length computation to
12426         call a C function.
12427
12428 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
12429
12430         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
12431         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
12432         * doc/tm.texi: Regenerate.
12433         * system.h (ASM_OUTPUT_BSS): Poison.
12434         * varasm.c (asm_output_bss): Remove function.
12435         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
12436
12437         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
12438         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
12439         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
12440         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12441         Likewise.
12442         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12443         Likewise.
12444         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12445         Likewise.
12446         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
12447
12448 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
12449
12450         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
12451         EnumValue lines.
12452
12453 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
12454
12455         * config/m68k/m68k.c (m68k_handle_option): Don't handle
12456         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
12457         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
12458         OPT_mcpu32.
12459         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
12460         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
12461         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
12462         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
12463         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
12464         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
12465         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
12466         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
12467         options.  Don't map other m68k options manually.  Don't handle
12468         old-style options as canonical.
12469         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
12470         * doc/install.texi (m68k-*-*): Document binutils version requirement.
12471
12472 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
12473
12474         * basic-block.h (force_nonfallthru): Move to...
12475         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
12476         (force_nonfallthru): ...here.
12477         * cfghooks.c (force_nonfallthru): New function.
12478         * cfgrtl.c (force_nonfallthru): Rename into...
12479         (rtl_force_nonfallthru): ...this.
12480         (commit_one_edge_insertion): Do not set AUX field.
12481         (commit_edge_insertions): Do not discover new basic blocks.
12482         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
12483         (cfg_layout_rtl_cfg_hooks): Likewise.
12484         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
12485         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
12486         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
12487
12488 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
12489
12490         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12491         Remove macros.
12492
12493 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
12494
12495         * config/i386/sse.md: Update copyright year.
12496         (avxcvtvecmode): Remove.
12497         (sse_movhlps): Merge with *avx_movhlps.
12498         (sse_movlhps): Merge with *avx_movlhps.
12499         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
12500         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
12501         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
12502         (sse_loadhps): Merge with *avx_loadhps.
12503         (sse_storelps): Merge with *avx_storelps.
12504         (sse_loadlps): Merge with *avx_loadlps.
12505         (sse_movss): Merge with *avx_movss.
12506         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
12507         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
12508         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
12509         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
12510         (vec_set<mode>_0): Ditto.
12511         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
12512         (sse4_1_insertps): Merge with *avx_insertps.
12513         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
12514         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
12515         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
12516         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
12517         (sse2_storehpd): Merge with *avx_storehpd.
12518         (sse2_loadhpd): Merge with *avx_loadhpd.
12519         (sse2_loadlpd): Merge with *avx_loadlpd.
12520         (sse2_movsd): Merge with *avx_movsd.
12521         (*vec_concatv2df): Merge with *vec_concatv2df.
12522
12523 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
12524
12525         PR debug/48343
12526         * combine.c (combine_instructions): Add last_combined_insn,
12527         update it if insn is after it, pass it to all try_combine calls.
12528         (try_combine): Add last_combined_insn parameter, pass it instead of
12529         i3 to propagate_for_debug.
12530
12531 2011-04-07  Nick Clifton  <nickc@redhat.com>
12532
12533         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
12534         to handle MDR <-> data register transfers.
12535         (movhi_internal): Likewise.
12536
12537 2011-04-07  Alan Modra  <amodra@gmail.com>
12538
12539         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
12540         previous stack info.
12541
12542 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12543
12544         PR target/43920
12545         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
12546         flow_find_cross_jump.  Swap variables to implement backward replacement.
12547         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
12548
12549 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12550
12551         PR target/43920
12552         * cfgcleanup.c (walk_to_nondebug_insn): New function.
12553         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
12554         and bb2.
12555         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
12556         src1 or src2.  Redirect edges to the last basic block.  Update
12557         frequency and count on multiple basic blocks in case of fallthru.
12558
12559 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12560
12561         PR target/43920
12562         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
12563         function.
12564         (old_insns_match_p): Change return type.  Replace return false/true
12565         with return dir_none/dir_both.  Use can_replace_by.
12566         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
12567         direction from dir_p.  Register replacement direction in dir, last_dir
12568         and afterlast_dir.  Handle new return type of old_insns_match_p using
12569         merge_dir.  Return replacement direction in dir_p.
12570         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
12571         return type of old_insns_match_p.
12572         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
12573         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
12574         flow_find_cross_jump.
12575         * basic-block.h (enum replace_direction): New type.
12576         (flow_find_cross_jump): Add parameter to declaration.
12577
12578 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
12579
12580         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
12581         (AVXMODEDCVTPS2DQ): Ditto.
12582         (VEC_FLOAT_MODE): Ditto.
12583         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
12584         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
12585         (<any_logic:code><mode>3): Use VF mode iterator.
12586         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
12587         Use VF mode iterator.
12588         (copysign<mode>3): Use VF mode iterator.
12589         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
12590         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
12591         (*<any_logic:code><MODEF:mode>3): Merge with
12592         *avx_<any_logic:code><MODEF:mode>3.
12593         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
12594         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
12595         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
12596         (avx_cvtdq2ps<avxmodesuffix>): Remove.
12597         (sse2_cvtdq2ps): Use %v modifier.
12598         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
12599         (avx_cvtps2dq<avxmodesuffix>): Remove.
12600         (sse2_cvtps2dq): Use %v modifier.
12601         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
12602         (avx_cvttps2dq<avxmodesuffix>): Remove.
12603         (sse2_cvttps2dq): Use %v modifier.
12604         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
12605         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
12606         (sse2_cvtsd2siq): Fix insn template.
12607         (sse2_cvtsd2siq_2): Ditto.
12608         (sse2_cvttsd2siq): Ditto.
12609         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
12610         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
12611
12612 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
12613
12614         * gcov-io.c: Use GCC Runtime Library Exception.
12615
12616 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
12617
12618         PR debug/48466
12619         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
12620         as base_reg whatever register reg has been eliminated to, instead
12621         of hardcoding STACK_POINTER_REGNUM.
12622
12623 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
12624
12625         * doc/tm.texi.in: Document C target hooks as separate from general
12626         target hooks.
12627         * doc/tm.texi: Regenerate.
12628         * genhooks.c (struct hook_desc): Add docname field.
12629         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
12630         docname field.
12631         (hook_array): Include c-target.def.
12632         (emit_documentation): Use docname field in output.
12633         (emit_init_macros): Take docname argument.  Only emit definitions
12634         for hooks matching docname.
12635         (main): Expect additional arguments in all cases.  Pass argument
12636         to emit_init_macros.
12637         * target.def: Move initial macro definitions and comments to
12638         target-hooks-macros.h.
12639         (gcc_targetcm): Move to c-family/c-target.def.
12640         * target.h (targetcm): Move declaration to c-family/c-target.h.
12641         * targhooks.c (default_handle_c_option): Move to
12642         c-family/c-opts.c.
12643         * targhooks.h (default_handle_c_option): Move declaration to
12644         c-family/c-common.h.
12645         * target-hooks-macros.h: New file.
12646         * config.gcc (target_has_targetcm): Define and use to add to
12647         c_target_objs and cxx_target_objs.
12648         * config/default-c.c: New file.
12649         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
12650         of target.h and target-def.h.
12651         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
12652         (darwin_objc_construct_string, darwin_cfstring_ref_p,
12653         darwin_check_cfstring_format_arg): Make static.
12654         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
12655         TARGET_STRING_OBJECT_REF_TYPE_P,
12656         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
12657         * config/darwin-protos.h (darwin_objc_construct_string,
12658         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
12659         declare.
12660         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
12661         TARGET_STRING_OBJECT_REF_TYPE_P,
12662         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
12663         * config/t-darwin (darwin-c.o): Update dependencies.
12664         * system.h (TARGET_HAS_TARGETCM): Poison.
12665         * Makefile.in (TARGET_H): Update.
12666         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
12667         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
12668         (default-c.o): New target.
12669         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
12670         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
12671         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
12672         c-target.def.
12673         (build/genhooks.o): Update dependencies.
12674
12675 2011-04-06  Richard Guenther  <rguenther@suse.de>
12676
12677         * ipa-inline.c (enum inlining_mode): Remove.
12678         (cgraph_flatten): Use some other token.
12679         (cgraph_edge_early_inlinable_p): New function, split out from ...
12680         (cgraph_perform_always_inlining): New function, split out from ...
12681         (cgraph_decide_inlining_incrementally): ... here.
12682         (cgraph_mark_inline_edge): Adjust.
12683         (cgraph_early_inlining): Re-structure.
12684         (pass_early_inline): Require SSA form.
12685
12686 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
12687             Julian Brown  <julian@codesourcery.com>
12688             Mark Shinwell  <shinwell@codesourcery.com>
12689
12690         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
12691         LO_REGS only for Thumb-1.
12692         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
12693         be used in short instructions when optimising for size on Thumb-2.
12694
12695 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12696
12697         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
12698         associated with user returns to be preserved.
12699
12700 2011-04-06  Tristan Gingold  <gingold@adacore.com>
12701
12702         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
12703         symbol_queue_size, DBXOUT_DECR_NESTING,
12704         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
12705         if XCOFF_DEBUGGING_INFO.
12706
12707 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
12708
12709         * config/i386/i386.md (attribute isa): New.
12710         (attribute enabled): New.
12711         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
12712         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
12713         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
12714         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
12715         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
12716         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12717         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
12718         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
12719
12720         * config/i386/sse.md (VF): New mode iterator.
12721         (VF1): Ditto.
12722         (VF2): Ditto.
12723         (VF_128): Ditto.
12724         (SSEMODEF4): Remove.
12725         (attribute sse): Handle V8SF and V4DF modes.
12726         (<absneg:code><mode>2): Use VF mode iterator.
12727         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
12728         mode iterator.
12729         (<plusminus_insn><mode>3): Use VF mode iterator.
12730         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
12731         Use VF mode iterator.
12732         (<sse>_vm<plusminus_insn><mode>3): Merge with
12733         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
12734         (mul<mode>3): Use VF mode iterator.
12735         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
12736         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
12737         mode iterator.
12738         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
12739         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
12740         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
12741         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
12742         mode iterator.
12743         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
12744         Use VF1 mode iterator.
12745         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
12746         (sqrt<VF2:mode>2): New expander.
12747         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
12748         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
12749         and sqrtv2df2.  Use VF mode iterator.
12750         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
12751         mode iterator.
12752         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
12753         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
12754         Use VF1 mode iterator.
12755         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
12756         (<smaxmin:code><mode>3): Use VF mode iterator.
12757         (*<smaxmin:code><mode>3_finite): Merge with
12758         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
12759         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12760         (<sse>_vm<smaxmin:code><mode>2): Merge with
12761         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
12762         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
12763         mode iterator.
12764         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
12765         mode iterator.
12766         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
12767         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
12768         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
12769         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
12770         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
12771         VF mode iterator.
12772         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
12773         Use VF_128 mode iterator.
12774         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
12775         mode iterator.
12776         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
12777         VF_128 mode iterator.
12778         (vcond<mode>): Use VF mode iterator.
12779         * config/i386/predicates.md (sse_comparison_operator): Merge with
12780         avx_comparison_float_operator.  Do not declare as special_predicate.
12781         * config/i386/i386.c (struct builtin_description): Update for renamed
12782         compare patterns.
12783         (ix86_expand_args_builtin): Ditto.
12784         (ix86_expand_sse_compare_mask): Ditto.
12785
12786 2011-04-06  Richard Guenther  <rguenther@suse.de>
12787
12788         * tree-inline.c (estimate_num_insns): For calls simply account
12789         for all passed arguments and a used return value.
12790
12791 2011-04-06  Richard Guenther  <rguenther@suse.de>
12792
12793         PR tree-optimization/47663
12794         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
12795         call_stmt_time fields.
12796         (cgraph_edge_inlinable_p): Declare.
12797         (cgraph_edge_recursive_p): New inline function.
12798         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
12799         (cgraph_clone_edge): Copy it.
12800         * ipa-inline.c (cgraph_estimate_edge_time): New function.
12801         Account for call stmt time.
12802         (cgraph_estimate_time_after_inlining): Take edge argument.
12803         (cgraph_estimate_edge_growth): Account call stmt size.
12804         (cgraph_estimate_size_after_inlining): Take edge argument.
12805         (cgraph_mark_inline_edge): Adjust.
12806         (cgraph_check_inline_limits): Likewise.
12807         (cgraph_recursive_inlining_p): Remove.
12808         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
12809         (cgraph_decide_recursive_inlining): Take edge argument and
12810         adjust.
12811         (cgraph_decide_inlining_of_small_functions): Do not avoid
12812         diags for recursive inlining here.
12813         (cgraph_flatten): Adjust.
12814         (cgraph_decide_inlining_incrementally): Likewise.
12815         (estimate_function_body_sizes): Remove call cost handling.
12816         (compute_inline_parameters): Initialize caller edge call costs.
12817         (cgraph_estimate_edge_growth): New function.
12818         (cgraph_estimate_growth): Use it.
12819         (cgraph_edge_badness): Likewise.
12820         (cgraph_check_inline_limits): Take an edge argument.
12821         (cgraph_decide_inlining_of_small_functions): Adjust.
12822         (cgraph_decide_inlining): Likewise.
12823         * tree-inline.c (estimate_num_insns): Only account for call
12824         return value if it is used.
12825         (expand_call_inline): Avoid diagnostics on recursive inline
12826         functions here.
12827         * lto-cgraph.c (lto_output_edge): Output edge call costs.
12828         (input_edge): Input edge call costs.
12829
12830 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12831
12832         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
12833
12834 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
12835
12836         * doc/invoke.texi (Spec Files): Fix typo.
12837
12838 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12839
12840         * profile.c (branch_prob): Move declaration of local variable.  Remove
12841         obsolete ??? comment.  Expand the location explicitly instead of using
12842         the LOCATION_FILE and LOCATION_LINE macros.
12843
12844 2011-04-06  Wei Guozhi  <carrot@google.com>
12845
12846         PR target/47855
12847         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
12848         (arm_cond_branch): Likewise.
12849         (arm_cond_branch_reversed): Likewise.
12850         (arm_jump): Likewise.
12851         (push_multi): Likewise.
12852         * config/arm/constraints.md (Py): New constraint.
12853
12854 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12855
12856         PR bootstrap/48471
12857         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
12858         Move these...
12859         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
12860         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
12861         #ifdef DBX_DEBUGGING_INFO.
12862
12863 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
12864
12865         PR bootstrap/48403
12866         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
12867         if old and new states differ.
12868
12869 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
12870
12871         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
12872         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
12873         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
12874         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
12875         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
12876         mcfv4e): Use Alias.
12877         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
12878         ColdFire options to -mcpu= options.
12879
12880 2011-04-05  Jeff Law  <law@redhat.com>
12881
12882         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
12883         check if BB is a successor of LOOP->header and return
12884         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
12885
12886 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
12887
12888         * cprop.c (struct reg_use): Remove.
12889         (reg_use_table): Make an array of RTX.
12890         (find_used_regs, constprop_register, local_cprop_pass,
12891         bypass_block): Simplify users of reg_use_table.
12892         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
12893         on one of the uses found by find_used_regs.
12894
12895 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12896
12897         PR bootstrap/48469
12898         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
12899         declaration.
12900
12901 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12902
12903         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
12904         as an rtx.
12905         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
12906
12907 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
12908
12909         PR middle-end/48441
12910         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
12911
12912 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12913
12914         * combine.c: Include obstack.h.
12915         (struct insn_link): Define.
12916         (uid_log_links): Adjust type.
12917         (FOR_EACH_LOG_LINK): New macro.
12918         (insn_link_obstack): Declare.
12919         (alloc_insn_link): Define.
12920         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
12921         type of link variables.
12922         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
12923         (try_combine, record_promoted_values, distribute_notes): Likewise.
12924         (distribute_links): Likewise.  Tweak prototype.
12925         (clear_log_links): Delete.
12926         (adjust_for_new_dest): Call alloc_insn_link.
12927         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
12928
12929 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12930
12931         * gcse.c (modify_mem_list): Convert to an array of VECs.
12932         (canon_modify_mem_list, compute_transp): Tweak formatting.
12933         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
12934         (load_killed_in_block_p): Likewise.
12935         (record_last_mem_set_info): Likewise.
12936         (clear_modify_mem_tables): Likewise.
12937
12938 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12939
12940         PR middle-end/48461
12941         * function.c (emit_use_return_register_into_block): Only define if
12942         HAVE_return.
12943
12944 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
12945
12946         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
12947
12948 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
12949
12950         * config/rx/rx-opts.h: New.
12951         * config/rx/rx.c (rx_cpu_type): Remove.
12952         (rx_handle_option): Don't assert that global structures are in
12953         use.  Access variables via opts pointer.  Defer most handling of
12954         OPT_mint_register_.  Use error_at.
12955         (rx_option_override): Handle deferred OPT_mint_register_ here.
12956         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
12957         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
12958         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
12959         (rx_cpu_types): New Enum and EnumValue entries.
12960         (mint-register=): Use Defer and use Var accordingly.
12961
12962 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12963
12964         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
12965         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
12966         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
12967         Move these...
12968         (debug_free_queue, debug_nesting, symbol_queue_index):
12969         ...and these...
12970         * dbxout.c: ...to here.  Make static.
12971
12972 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12973
12974         * gcse.c (modify_pair): Define.  Define a VEC of it.
12975         (canon_modify_mem_list): Convert to an array of VECs.
12976         (free_insn_expr_list_list): Delete.
12977         (clear_modify_mem_tables): Call VEC_free instead.
12978         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
12979         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
12980         (canon_list_insert, compute_transp): Likewise.
12981
12982 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12983
12984         PR target/43920
12985         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
12986         for size.
12987
12988 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12989
12990         PR target/43920
12991         * function.c (emit_use_return_register_into_block): New function.
12992         (thread_prologue_and_epilogue_insns): Use
12993         emit_use_return_register_into_block.
12994
12995 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12996
12997         PR target/43920
12998         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
12999         insn.
13000
13001 2011-04-05  Tom de Vries  <tom@codesourcery.com>
13002
13003         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
13004
13005 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
13006
13007         * config/arm/arm.md (define_constants for unspec): Replace with
13008         define_c_enum.
13009         (define_constants for unspecv): Replace with define_c_enum.
13010         * config/arm/neon.md (define_constants for unspec): Replace with
13011         define_c_enum.
13012
13013 2011-04-04  Richard Henderson  <rth@redhat.com>
13014
13015         PR bootstrap/48400
13016         * dwarf2out.c (output_line_info): Always emit line info from
13017         at least one section.
13018         (dwarf2out_init): Create text_section_line_info here ...
13019         (set_cur_line_info_table): ... not here.
13020
13021 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
13022
13023         PR target/48380
13024         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
13025         not called.
13026
13027         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
13028
13029 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
13030
13031         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
13032         (expr_equiv_p): Remove.
13033         (insert_set_in_table): Look at <dest, src> pair instead of expr.
13034         (hash_scan_set): Update call to insert_set_in_table.
13035         (dump_hash_table): Dump <dest, src> pair.
13036         (lookup_set): Simplify.  Lookup <dest, src> pair.
13037         (compute_transp): Remove, fold heavily simplified code into...
13038         (compute_local_properties): ...here.  Expect COMP and TRANSP
13039         unconditionally.
13040         (find_avail_set): Take set directly from struct expr.
13041         (find_bypass-set): Likewise.
13042         (bypass_block): Likewise.
13043         (cprop_insn): Likewise.  Remove redundant INSN_P test.
13044
13045         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
13046         checks on form of COND from find_implicit_sets to here.
13047         (find_implicit_sets): Cleanup control flow. Split critical edges
13048         if it exposes implicit sets.  Allocate/resize implicit_sets as
13049         necessary.
13050         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
13051         changed something.  Run df_analyze after find_implicit_sets if any
13052         edges were split.  Do not allocate implicit_sets here.
13053
13054         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
13055         (gcse_obstack): Renamed to cprop_obstack.
13056         (GNEW, GNEWVEC, GNEWVAR): Remove.
13057         (gmalloc): Remove.
13058         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
13059         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
13060         (gcse_alloc): Likewise, and rename to cprop_alloc.
13061         (alloc_gcse_men, free_gcse_mem): Remove.
13062         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
13063         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
13064         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
13065
13066         * cprop.c (oprs_not_set_p): Remove.
13067         (mark_set, mark_clobber): Remove.
13068         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
13069         (reg_not_set_p): New function.
13070         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
13071         (cprop_insn): Likewise.
13072         (cprop_jump): Use FOR_EACH_EDGE.
13073
13074 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
13075
13076         PR bootstrap/48403
13077         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
13078         (rank_for_schedule): Use scheduled_insns vector instead of
13079         last_scheduled_insn.
13080         (ok_for_early_queue_removal): Likewise.
13081         (queue_to_ready): Search forward in nonscheduled_insns_begin if
13082         we have a dbg_cnt.
13083         (choose_ready): Likewise.
13084         (commit_schedule): Use VEC_iterate.
13085         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
13086         a dbg_cnt, use it and ensure the first insn is in the ready list.
13087         (haifa_sched_init): Allocate scheduled_insns.
13088         (sched_extend_ready_list): Don't allocate it; reserve space.
13089         (haifa_sched_finish): Free it.
13090
13091 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
13092
13093         * optc-gen.awk: Always remove type from Variable entry before
13094         recording in var_seen.
13095
13096 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
13097
13098         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
13099         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
13100         call to tidy_fallthru_edges.
13101
13102 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
13103
13104         * doc/options.texi (ToLower): Document.
13105         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
13106         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
13107         * opts.h (cl_option): Add cl_tolower field.
13108         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
13109         arguments with lowercase strings.
13110         * config/rx/rx.opt (mcpu=): Add ToLower.
13111         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
13112         argument.
13113
13114 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
13115
13116         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
13117
13118 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
13119
13120         * config/vax/vax.c: Include reload.h.
13121
13122 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
13123
13124         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
13125         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13126         (sparc_preferred_reload_class): New function.
13127
13128 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
13129
13130         PR debug/48401
13131         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
13132         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
13133
13134 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
13135
13136         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
13137         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
13138
13139 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
13140
13141         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
13142         (ASM_OUTPUT_ALIGNED_BSS): Define.
13143
13144 2011-04-03  Michael Matz  <matz@suse.de>
13145
13146         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
13147         and next_slot members.
13148         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
13149         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
13150         (lto_streamer_cache_append): Declare.
13151         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
13152         unsigned index, remove offset parameter, ensure that we append
13153         or update existing entries.
13154         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
13155         parameter, update next_slot for append.
13156         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
13157         parameter.
13158         (lto_streamer_cache_insert_at): Likewise.
13159         (lto_streamer_cache_append): New function.
13160         (lto_streamer_cache_lookup): Use unsigned index.
13161         (lto_streamer_cache_get): Likewise.
13162         (lto_record_common_node): Don't test tree_node_can_be_shared.
13163         (preload_common_node): Adjust call to lto_streamer_cache_insert.
13164         (lto_streamer_cache_delete): Don't free offsets member.
13165         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
13166         (lto_output_string_with_length): Use lto_output_data_stream.
13167         (lto_output_tree_header): Remove ix parameter, don't write it.
13168         (lto_output_builtin_tree): Likewise.
13169         (lto_write_tree): Adjust callers to above, don't track and write
13170         offset, write unsigned index.
13171         (output_unreferenced_globals): Don't emit all global vars.
13172         (write_global_references): Use unsigned indices.
13173         (lto_output_decl_state_refs): Likewise.
13174         (write_symbol): Likewise.
13175         * lto-streamer-in.c (lto_input_chain): Move earlier.
13176         (input_function): Use unsigned index.
13177         (input_alias_pairs): Don't read and then ignore all global vars.
13178         (lto_materialize_tree): Remove ix_p parameter, don't read index,
13179         don't pass it back, use lto_streamer_cache_append.
13180         (lto_register_var_decl_in_symtab): Use unsigned index.
13181         (lto_register_function_decl_in_symtab): Likewise.
13182         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
13183         index.
13184         (lto_get_builtin_tree): Don't read index, use
13185         lto_streamer_cache_append.
13186         (lto_read_tree): Adjust call to lto_materialize_tree.
13187
13188         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
13189         don't use function calls in arguments to MIN.
13190
13191         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
13192         twice.
13193
13194         * gimple.c (gimple_type_leader_entry): Mark deletable.
13195
13196 2011-04-03  Alan Modra  <amodra@gmail.com>
13197
13198         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
13199
13200 2011-04-03  Michael Matz  <matz@suse.de>
13201
13202         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
13203         an integer.
13204         * tree.h (tree_decl_non_common.vindex): Adjust comment.
13205
13206 2011-04-03  Michael Matz  <matz@suse.de>
13207
13208         * cgraphbuild.c (record_reference): Canonicalize constructor values.
13209         * gimple-fold.c (canonicalize_constructor_val): Accept being called
13210         without function context.
13211         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
13212         current_function_decl and cfun.
13213
13214 2011-04-03  Michael Matz  <matz@suse.de>
13215
13216         * tree.c (decl_init_priority_insert): Don't create entry for
13217         default priority.
13218         (decl_fini_priority_insert): Ditto.
13219         (fields_compatible_p, find_compatible_field): Remove.
13220         * tree.h (fields_compatible_p, find_compatible_field): Remove.
13221         * gimple.c (gimple_compare_field_offset): Adjust block comment.
13222
13223 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
13224
13225         * combine.c (try_combine): Remove useless local variable.
13226
13227 2011-04-03  Richard Guenther  <rguenther@suse.de>
13228             Ira Rosen  <ira.rosen@linaro.org>
13229
13230         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
13231         non-variable offsets and compare the remaining bases of the two
13232         accesses instead of looking for exact same data-ref.
13233
13234 2011-04-02  Kai Tietz  <ktietz@redhat.com>
13235
13236         PR target/48416
13237         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
13238
13239         * i386.c (ix86_is_msabi_thiscall): New helper function.
13240         (ix86_is_type_thiscall): New helper function.
13241         (ix86_comp_type_attributes): Handle thiscall for method-functions
13242         special.
13243         (init_cumulative_args): Likewise.
13244         (find_drap_reg): Likewise.
13245         (ix86_static_chain): Likewise.
13246         (x86_this_parameter): Likewise.
13247         (x86_output_mi_thunk): Likewise.
13248
13249 2011-04-01  Olivier Hainque  <hainque@adacore.com>
13250             Nicolas Setton  <setton@adacore.com>
13251             Eric Botcazou  <ebotcazou@adacore.com>
13252
13253         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
13254         (add_gnat_descriptive_type_attribute): New function.
13255         (gen_array_type_die): Call it.
13256         (gen_enumeration_type_die): Likewise.
13257         (gen_struct_or_union_type_die): Likewise.
13258         (modified_type_die): Likewise.
13259         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
13260         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
13261         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
13262
13263 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
13264
13265         PR bootstrap/48148
13266         * dwarf2out.c (resolve_addr): Don't call force_decl_die
13267         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
13268
13269         Revert:
13270         2011-03-17  Richard Guenther  <rguenther@suse.de>
13271
13272         PR bootstrap/48148
13273         * lto-cgraph.c (input_overwrite_node): Clear the abstract
13274         origin for decls in other ltrans units.
13275         (input_varpool_node): Likewise.
13276
13277 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
13278
13279         PR middle-end/48335
13280         * expr.c (expand_assignment): Handle all possibilities
13281         if TO_RTX is CONCAT.
13282         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
13283         (store_split_bit_field): If SUBREG_REG (op0) or
13284         op0 itself has smaller mode than word, return it
13285         for offset 0 and const0_rtx for out-of-bounds stores.
13286         If word is const0_rtx, skip it.
13287
13288 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
13289
13290         * config/h8300/h8300.c (print_operand_address): Rename to...
13291         (h8300_print_operand_address): ...this. Make static. Adjust comments.
13292         Call h8300_print_operand and h8300_print_operand_address instead of
13293         print_operand and print_operand_address. Declare.
13294         (print_operand): Renake to...
13295         (h8300_print_operand): ...this. Make static. Adjust comments.
13296         Call h8300_print_operand instead of print_operand. Declare.
13297         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
13298         (h8300_register_move_cost): Likewise.
13299         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
13300         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
13301         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
13302         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
13303         * config/h8300/h8300-protos.h (print_operand): Delete.
13304         (print_operand_address): Delete.
13305
13306 2011-04-01  Richard Henderson  <rth@redhat.com>
13307
13308         PR 48400
13309         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
13310         in strict mode before dwarf4.  Re-order tests to early out
13311         before switching sections.
13312
13313 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
13314
13315         * config/h8300/constraints.md: New file.
13316         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
13317         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
13318         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
13319         * config/h8300/predicates.md (bit_operand): Likewise.
13320         (incdec_operand): Use satisfies_constraint_M and
13321         satisfies_constraint_O.  Don't use C code block.
13322         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
13323         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
13324         (compute_mov_length): Use satisfies_constraint_G.
13325         (fix_bit_operand): Use satisfies_constraint_U.
13326         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
13327         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
13328         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
13329         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
13330         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
13331         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
13332         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13333         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
13334         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
13335         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
13336         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
13337         (EXTRA_MEMORY_CONSTRAINT): Delete.
13338
13339 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
13340             Michael Meissner  <meissner@linux.vnet.ibm.com>
13341
13342         PR target/48262
13343         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
13344         operands, as per the specifications.
13345
13346         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
13347         (vec_extract_evenv4sf): Ditto.
13348         (vec_extract_evenv8hi): Ditto.
13349         (vec_extract_evenv16qi): Ditto.
13350         (vec_extract_oddv4si): Ditto.
13351
13352 2011-03-31  Mark Wielaard  <mjw@redhat.com>
13353
13354         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
13355         high_pc attribute if the CU has no associated code. Only output
13356         DW_AT_entry_pc for CU if not generating strict dwarf and
13357         dwarf_version < 4.
13358
13359 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
13360
13361         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
13362         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
13363         out of ...
13364         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
13365         * final.c (final_start_function): Call the new function rather
13366         than using a NULL argument for dwarf2out_frame_debug.
13367
13368         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
13369         that contains the prologue.
13370
13371         * haifa-sched.c (queue_insn): New arg REASON.  All callers
13372         changed.  Print it in debugging output.
13373
13374         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
13375
13376         * sched-ebb.c (begin_schedule_ready): Remove second argument.
13377         Split most of the code into...
13378         (begin_move_insn): ... here.  New function.
13379         (ebb_sched_info): Add a pointer to it.
13380         * haifa-sched.c (scheduled_insns): New static variable.
13381         (sched_extend_ready_list): Allocate it.
13382         (schedule_block): Use it to record the order of scheduled insns.
13383         Perform RTL changes to move insns only after all scheduling
13384         decisions have been made.
13385         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
13386         begin_move_insn field.
13387         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
13388         * sched-int.h (struct haifa_sched_info): Remove second argument
13389         from begin_schedule_ready hook.  Add new member begin_move_insn.
13390         * sched-rgn.c (begin_schedule_ready): Remove second argument.
13391         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
13392
13393         * haifa-sched.c (prune_ready_list): New function, broken out of
13394         schedule_block.
13395         (schedule_block): Use it.
13396
13397 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13398
13399         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
13400
13401 2011-04-01  Kai Tietz  <ktietz@redhat.com>
13402
13403         * config.gcc (*-*-mingw*): Allow as option the
13404         posix threading model.
13405         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
13406         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
13407         definition.
13408         (CPP_SPEC): Add pthread/no-pthread handling.
13409         (LIB_SPEC): Likewise.
13410         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
13411         (LIB_SPEC): Likewise.
13412         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
13413         flag to pass -pthread option for shared libgcc build.
13414         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
13415         for shared libgcc build.
13416         * config/i386/t-mingw-pthread: New file.
13417         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
13418         New define to enable use of library pthread by default.
13419         * config/i386/mingw.opt (pthread): New driver option.
13420         (no-pthread): New driver option.
13421         * config/i386/cygming.opt: Make sure trailing empty line is retained.
13422         * config/i386/mingw-w64.opt: Likewise.
13423
13424 2011-04-01  Gary Funck  <gary@intrepid.com>
13425
13426         * c-decl.c (grokdeclarator): Fix formatting.
13427
13428 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13429
13430         * expr.c (emit_block_move_via_movmem): Use n_generator_args
13431         instead of n_operands.
13432         (set_storage_via_setmem): Likewise.
13433         * optabs.c (maybe_gen_insn): Likewise.
13434         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
13435         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
13436         (mips_expand_builtin_direct): Likewise.
13437         * config/spu/spu.c (expand_builtin_args): Likewise.
13438
13439 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13440
13441         * recog.h (insn_data_d): Add n_generator_args.
13442         * genoutput.c (data): Likewise.
13443         (output_insn_data): Print it.
13444         (max_opno, num_dups): Delete.
13445         (scan_operands): Just fill in "d->operand[...]".
13446         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
13447
13448 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13449
13450         * gensupport.h (pattern_stats): New structure.
13451         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
13452         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
13453         (max_operand_1, max_operand_vec): Delete.
13454         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
13455
13456 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
13457
13458         * emit-rtl.c (emit_pattern_after_setloc): New function.
13459         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
13460         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
13461         (emit_pattern_after): New function.
13462         (emit_insn_after, emit_jump_insn_after): Call it.
13463         (emit_call_insn_after, emit_debug_insn_after): Likewise.
13464         (emit_pattern_before_setloc): New function.
13465         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
13466         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
13467         Likewise.
13468         (emit_pattern_before): New function.
13469         (emit_insn_before, emit_jump_insn_before): Call it.
13470         (emit_call_insn_before, emit_debug_insn_before): Likewise.
13471
13472 2011-03-31  Richard Henderson  <rth@redhat.com>
13473
13474         * dwarf2out.c (dw_separate_line_info_ref): Remove.
13475         (dw_separate_line_info_entry): Remove.
13476         (enum dw_line_info_opcode): New.
13477         (dw_line_info_entry): Use it.
13478         (dw_line_info_table, dw_line_info_table_p): New.
13479         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
13480         (line_info_table, line_info_label_num): Remove.
13481         (line_info_table_in_use): Remove.
13482         (separate_line_info_table): Remove.
13483         (separate_line_info_table_allocated): Remove.
13484         (separate_line_info_table_in_use): Remove.
13485         (LINE_INFO_TABLE_INCREMENT): Remove.
13486         (line_info_label_num): New.
13487         (cur_line_info_table): New.
13488         (text_section_line_info, cold_text_section_line_info): New.
13489         (separate_line_info): New.
13490         (SEPARATE_LINE_CODE_LABEL): Remove.
13491         (print_dwarf_line_table): Remove.
13492         (debug_dwarf): Don't dump it.
13493         (output_one_line_info_table): New.
13494         (output_line_info): Use it.
13495         (new_line_info_table): New.
13496         (set_cur_line_info_table): New.
13497         (dwarf2out_switch_text_section): Use it.
13498         (dwarf2out_begin_function): Likewise.
13499         (push_dw_line_info_entry): New.
13500         (dwarf2out_source_line): Rewrite for new line info tables.
13501         (dwarf2out_init): Remove dead initailizations.
13502
13503 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
13504
13505         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
13506         various flags.
13507         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
13508         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
13509         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
13510         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
13511         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
13512         * opt-functions.awk (flag_init, switch_bit_fields): New.
13513         (switch_flags): Don't handle flags moved to bit-fields.  Don't
13514         generate CL_MISSING_OK or CL_SAVE.
13515         * optc-gen.awk: Update to generate bit-field output as well as
13516         flags field.
13517         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
13518         bit-field instead of CL_REJECT_DRIVER flag.
13519         * opts-common.c (generate_canonical_option,
13520         decode_cmdline_option): Use bit-fields instead of CL_* flags.
13521         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
13522         instead of CL_REJECT_NEGATIVE flag.
13523         * toplev.c (print_switch_values): Use cl_report bit-field instead
13524         of CL_REPORT flag.
13525
13526 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
13527
13528         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
13529         a zero minimum index only if it is redundant.
13530
13531 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
13532
13533         PR rtl-optimization/48381
13534         * ira-color.c (assign_hard_reg): Use hard reg set intersection
13535         instead of ira_class_hard_reg_index for calculating conflicting
13536         hard registers.
13537
13538 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
13539
13540         * cprop.c: Clean up hash table building.
13541         (reg_avail_info): Remove.
13542         (oprs_available_p): Remove.
13543         (record_last_reg_set_info): Remove.
13544         (record_last_set_info): Remove.
13545         (reg_available_p): New function.
13546         (gcse_constant_p): Do not treat unfolded conditions as constants.
13547         (make_set_regs_unavailable): New function.
13548         (hash_scan_set): Simplify with new reg_available_p.
13549         (compute_hash_table_work): Traverse insns stream only once.
13550         Do not compute reg_avail_info. Traverse insns in reverse order.
13551         Record implicit sets after recording explicit sets from the block.
13552
13553 2011-03-31  Michael Matz  <matz@suse.de>
13554
13555         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
13556
13557 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
13558
13559         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
13560         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
13561         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13562         (h8300_mode_dependent_address_p): New function.
13563         (h8300_get_index): Make static.
13564
13565 2011-03-31  Jeff Law  <law@redhat.com>
13566
13567         * reload1.c (elimination_effects): Fix typo in recent change.
13568
13569         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
13570         typo potentially leading to null pointer dereference.
13571
13572         * caller-save.c (new_saved_hard_reg): Eliminate return value.
13573         (setup_save_areas): Corresponding changes to avoid useless
13574         assignments.
13575
13576         * jump.c (reversed_comparison_code_parts): Avoid successive return
13577         statements when REVERSE_CONDITION is defined.
13578
13579         * expr.c (expand_assignment): Avoid useless assignments.
13580         (expand_expr_real_1): Likewise.
13581         (expand_expr_real_2): Avoid useless statements.
13582
13583         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
13584
13585         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
13586
13587         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
13588         statements.
13589
13590         * stmt.c (expand_expr_stmt): Avoid useless assignment.
13591
13592 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
13593
13594         PR target/47109
13595         * doc/tm.texi.in (TARGET_VERSION): Remove.
13596         * doc/tm.texi: Regenerate.
13597         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
13598         * collect2.c (main): Don't use TARGET_VERSION.
13599         * mips-tdump.c (main): Don't use TARGET_VERSION.
13600         * mips-tfile.c (main): Don't use TARGET_VERSION.
13601         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
13602         * config/rs6000/vxworksae.h: Remove.
13603         * config/alpha/alpha.h (TARGET_VERSION): Remove.
13604         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
13605         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
13606         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
13607         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
13608         * config/arm/arm.h (TARGET_VERSION): Remove.
13609         * config/arm/coff.h (TARGET_VERSION): Remove.
13610         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
13611         * config/arm/elf.h (TARGET_VERSION): Remove.
13612         * config/arm/freebsd.h (TARGET_VERSION): Remove.
13613         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
13614         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
13615         * config/arm/pe.h (TARGET_VERSION): Remove.
13616         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
13617         * config/arm/semi.h (TARGET_VERSION): Remove.
13618         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
13619         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
13620         * config/arm/vxworks.h (TARGET_VERSION): Remove.
13621         * config/avr/avr.h (TARGET_VERSION): Remove.
13622         * config/bfin/bfin.h (TARGET_VERSION): Remove.
13623         * config/fr30/fr30.h (TARGET_VERSION): Remove.
13624         * config/frv/frv.h (TARGET_VERSION): Remove.
13625         * config/h8300/h8300.h (TARGET_VERSION): Remove.
13626         * config/i386/cygwin.h (TARGET_VERSION): Remove.
13627         * config/i386/darwin.h (TARGET_VERSION): Remove.
13628         * config/i386/darwin64.h (TARGET_VERSION): Remove.
13629         * config/i386/djgpp.h (TARGET_VERSION): Remove.
13630         * config/i386/freebsd.h (TARGET_VERSION): Remove.
13631         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
13632         * config/i386/gnu.h (TARGET_VERSION): Remove.
13633         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
13634         * config/i386/i386elf.h (TARGET_VERSION): Remove.
13635         * config/i386/linux.h (TARGET_VERSION): Remove.
13636         * config/i386/linux64.h (TARGET_VERSION): Remove.
13637         * config/i386/lynx.h (TARGET_VERSION): Remove.
13638         * config/i386/mingw32.h (TARGET_VERSION): Remove.
13639         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
13640         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
13641         * config/i386/netware.h (TARGET_VERSION): Remove.
13642         * config/i386/nto.h (TARGET_VERSION): Remove.
13643         * config/i386/openbsd.h (TARGET_VERSION): Remove.
13644         * config/i386/vxworks.h (TARGET_VERSION): Remove.
13645         * config/ia64/elf.h (TARGET_VERSION): Remove.
13646         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
13647         * config/ia64/hpux.h (TARGET_VERSION): Remove.
13648         * config/ia64/linux.h (TARGET_VERSION): Remove.
13649         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
13650         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
13651         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
13652         * config/lm32/lm32.h (TARGET_VERSION): Remove.
13653         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
13654         * config/m32c/m32c.h (TARGET_VERSION): Remove.
13655         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
13656         * config/m32r/m32r.h (TARGET_VERSION): Remove.
13657         * config/m68k/linux.h (TARGET_VERSION): Remove.
13658         * config/m68k/m68k.h (TARGET_VERSION): Remove.
13659         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
13660         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
13661         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
13662         * config/mep/mep.h (TARGET_VERSION): Remove.
13663         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
13664         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
13665         * config/mips/iris6.h (MACHINE_TYPE): Remove.
13666         * config/mips/linux.h (TARGET_VERSION): Remove.
13667         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
13668         * config/mips/vxworks.h (TARGET_VERSION): Remove.
13669         * config/mmix/mmix.h (TARGET_VERSION): Remove.
13670         * config/mn10300/linux.h (TARGET_VERSION): Remove.
13671         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
13672         * config/pa/pa.h (TARGET_VERSION): Remove.
13673         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
13674         * config/picochip/picochip.h (TARGET_VERSION): Remove.
13675         * config/rs6000/aix.h (TARGET_VERSION): Remove.
13676         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
13677         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
13678         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
13679         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
13680         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
13681         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
13682         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
13683         * config/rs6000/linux.h (TARGET_VERSION): Remove.
13684         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
13685         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
13686         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
13687         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
13688         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
13689         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
13690         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
13691         * config/s390/linux.h (TARGET_VERSION): Remove.
13692         * config/s390/s390.h (TARGET_VERSION): Remove.
13693         * config/s390/tpf.h (TARGET_VERSION): Remove.
13694         * config/score/score.h (TARGET_VERSION): Remove.
13695         * config/sh/linux.h (TARGET_VERSION): Remove.
13696         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
13697         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
13698         * config/sh/sh.h (TARGET_VERSION): Remove.
13699         * config/sh/sh64.h (TARGET_VERSION): Remove.
13700         * config/sh/superh.h (TARGET_VERSION): Remove.
13701         * config/sh/vxworks.h (TARGET_VERSION): Remove.
13702         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
13703         * config/sparc/linux.h (TARGET_VERSION): Remove.
13704         * config/sparc/linux64.h (TARGET_VERSION): Remove.
13705         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
13706         TARGET_NAME32, TARGET_NAME): Remove.
13707         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
13708         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
13709         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
13710         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
13711         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
13712         * config/spu/spu.h (TARGET_VERSION): Remove.
13713         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
13714         * config/v850/v850.h (TARGET_VERSION): Remove.
13715         * config/vax/linux.h (TARGET_VERSION): Remove.
13716         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
13717         * config/xtensa/elf.h (TARGET_VERSION): Remove.
13718         * config/xtensa/linux.h (TARGET_VERSION): Remove.
13719
13720 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
13721
13722         PR target/48142
13723         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
13724         frame-related from frame-unrelated adjustments to the stack pointer.
13725
13726 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
13727
13728         * common.opt (fdebug-types-section): Move earlier.
13729         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
13730
13731 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
13732
13733         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
13734         var.
13735
13736 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
13737
13738         * tree.h (CASE_CHAIN): Define.
13739         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
13740         (gimple_redirect_edge_and_branch): Likewise.
13741
13742 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13743
13744         PR middle-end/48367
13745         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
13746         calculation.
13747
13748 2011-03-30  Jeff Law  <law@redhat.com>
13749
13750         * PR bootstrap/48371
13751         * reload1.c (reload): Fix botch in last change.
13752
13753         * reload.h (struct reload): Fix typo introduced in last change.
13754
13755 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13756
13757         * config/arm/arm.opt (mhard-float, msoft-float): Mark
13758         Undocumented.  Remove help text.
13759         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
13760         -mhard-float.
13761
13762 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13763
13764         * doc/options.texi (NegativeAlias): Document.
13765         (Alias): Mention NegativeAlias.
13766         * opt-functions.awk: Handle NegativeAlias.
13767         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
13768         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
13769         * opts.h (CL_NEGATIVE_ALIAS): Define.
13770         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
13771         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
13772         OPT_mspe_.
13773         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
13774         Alias entries.
13775         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
13776         mno-spe and mno-isel instead of mspe=no and -misel=no.
13777
13778 2011-03-29  Mark Wielaard  <mjw@redhat.com>
13779
13780         * common.opt (fdebug-types-section): New flag.
13781         * doc/invoke.texi: Document new -fno-debug-types-section flag.
13782         * dwarf2out.c (use_debug_types): New define.
13783         (struct die_struct): Mark die_id with GTY desc use_debug_types.
13784         (print_die): Guard output of type unit signatures using
13785         use_debug_types.
13786         (build_abbrev_table): Replace assert of dwarf_version >= 4
13787         with assert on use_debug_types.
13788         (size_of_die): Likewise.
13789         (unmark_dies): Likewise.
13790         (value_format): Decide AT_ref_external form on use_debug_types.
13791         (output_die): Replace dwarf_version version check guard with
13792         use_debug_types where appropriate.
13793         (modified_type_die): Likewise.
13794         (gen_reference_type_die): Likewise.
13795         (dwarf2out_start_source_file): Likewise.
13796         (dwarf2out_end_source_file): Likewise.
13797         (prune_unused_types_walk_attribs): Likewise.
13798         (dwarf2out_finish): Likewise.
13799
13800 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13801
13802         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
13803
13804 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13805
13806         PR rtl-optimization/48332
13807         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
13808         mode of input operand N and modeN to its actual mode.
13809
13810 2011-03-30  Jeff Law  <law@redhat.com>
13811
13812         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
13813         define accessor macro.
13814         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
13815         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
13816         (reg_equiv_init): Likewise.
13817         (reg_equivs_size): New variable.
13818         (reg_equiv_init_size): Remove.
13819         (allocate_initial_values): Move prototype to here from....
13820         * integrate.h (allocate_initial_values): Remove prototype.
13821         * integrate.c: Include reload.h.
13822         (allocate_initial_values): Corresponding changes.
13823         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
13824         (fix_reg_equiv_init, no_equiv): Corresponding changes.
13825         (update_equiv_regs): Corresponding changes.
13826         (ira): Corresponding changes.
13827         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
13828         (push_secondary_reload): Corresponding changes.
13829         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
13830         (make_memloc, find_reloads_address): Corresponding changes.
13831         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
13832         (find_reloads_address_1): Corresponding changes.
13833         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
13834         (refers_to_regno_for_reload_p): Corresponding changes.
13835         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
13836         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
13837         * reload1.c: Include ggc.h.
13838         (grow_reg_equivs): New function.
13839         (replace_pseudos_in, reload): Corresponding changes.
13840         (calculate_needs_all_insns, alter_regs): Corresponding changes.
13841         (eliminate_regs_1, elimination_effects): Corresponding changes.
13842         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
13843         (delete_output_reload): Likewise.
13844         * caller-save.c (mark_referenced_regs): Corresponding changes.
13845         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
13846         * frv/predicates.md (frv_load_operand): Corresponding changes.
13847         * microblaze/microblaze.c (double_memory_operand): Corresponding
13848         changes.
13849         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
13850         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
13851         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
13852         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
13853         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
13854         changes.
13855         * pa/pa.c (emit_move_sequence): Corresponding changes.
13856         * vax/vax.c (nonindexed_address_p): Corresponding changes.
13857
13858 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13859
13860         PR target/47551
13861         * config/arm/arm.c (coproc_secondary_reload_class): Handle
13862         structure modes.  Don't check neon_vector_mem_operand for
13863         vector or structure modes.
13864
13865 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13866             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13867
13868         PR target/43590
13869         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
13870         operand 1 and reshuffle the operands to match.
13871         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
13872
13873 2011-03-30  Christian Schüler  <cschueler@gmx.de>
13874
13875         PR driver/48208
13876         * config/c.opt (F): Added 'Driver' to -F option.
13877
13878         PR driver/48260
13879         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
13880           handler function.
13881         * config/darwin.opt: Added '-arch' option.
13882
13883 2011-03-30  Nick Clifton  <nickc@redhat.com>
13884
13885         * config/rx/rx.md: Add peepholes and patterns to combine
13886         extending loads and simple arithmetic instructions.
13887         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
13888         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
13889         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
13890         modes to use pre-decrement and post-increment addressing.
13891         (rx_is_restricted_memory_address): Add range checking of REG+INT
13892         addresses.
13893         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
13894         (rx_memory_move_cost): Adjust cost of stores.
13895         (rx_adjust_insn_length): New function.
13896
13897 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
13898
13899         PR c/48305
13900         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
13901         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
13902         matching arg00/arg01 types.
13903
13904 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
13905
13906         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
13907         last_location to UNKNOWN_LOCATION.
13908
13909 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
13910
13911         PR target/48349
13912         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
13913         FLOAT_SSE_REGS.
13914
13915 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13916             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13917
13918         PR bootstrap/48337
13919         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
13920         Init(PROCESSOR_V7).
13921         (sparc_cpu): Likewise.
13922         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
13923         PROCESSOR_V7.
13924
13925 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13926
13927         PR target/48336
13928         PR middle-end/48342
13929         PR rtl-optimization/48345
13930         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
13931         hard regs for given mode from profitable regs when doing secondary
13932         allocation.
13933
13934 2011-03-29  Jeff Law  <law@redhat.com>
13935
13936         PR bootstrap/48327
13937         * tree-ssa-threadupdate.c (struct redirection_data): Remove
13938         do_not_duplicate field.
13939         (lookup_redirection_data): Corresponding changes.
13940         (create_duplicates): Always create a template block.
13941         (redirect_edges): Remove code which reused the original block
13942         when it was going to become unreachable code.
13943         (thread_block): Don't set do_not_duplicate field.
13944
13945 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
13946
13947         * lto-opts.c (register_user_option_p, lto_register_user_option):
13948         Make type argument unsigned.
13949         * lto-streamer.h (lto_register_user_option): Make type argument
13950         unsigned.
13951         * opth-gen.awk: Make CL_* macros unsigned.
13952         * opts-common.c (find_opt): Make lang_mask argument unsigned.
13953         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
13954         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
13955         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
13956         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
13957         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
13958         (find_opt): Make lang_mask argument unsigned.
13959
13960 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13961
13962         PR rtl-optimization/48331
13963         PR rtl-optimization/48334
13964         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
13965         for any used algorithm.
13966
13967 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13968
13969         * ira-conflicts.c (build_object_conflicts): Add unused attribute
13970         to parent_max.
13971
13972 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
13973
13974         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
13975         (alpha_option_override): Don't set alpha_sr_alias_set.
13976         (emit_frame_store_1): Use gen_frame_mem rather than calling
13977         set_mem_alias_set.
13978         (alpha_expand_epilogue): Ditto.
13979
13980 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
13981
13982         PR tree-optimization/48290
13983         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
13984         vectorization, check that relevant phis in the basic block after
13985         the inner loop are really inner loop's exit phis.
13986
13987 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
13988
13989         PR debug/48190
13990         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
13991         (cached_dw_loc_list_def): New structure.
13992         (cached_dw_loc_list): New typedef.
13993         (cached_dw_loc_list_table): New variable.
13994         (cached_dw_loc_list_table_hash): New function.
13995         (cached_dw_loc_list_table_eq): Likewise.
13996         (add_location_or_const_value_attribute): Take a bool cache_p.
13997         Cache the list when the parameter is true.
13998         (gen_formal_parameter_die): Update caller.
13999         (gen_variable_die): Likewise.
14000         (dwarf2out_finish): Likewise.
14001         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
14002         while generating debug info for the decl.
14003         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
14004         (dwarf2out_init): Initialize cached_dw_loc_list_table.
14005         (resolve_addr): Cache the result of resolving a chain of
14006         location lists.
14007
14008 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
14009
14010         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
14011         conflict object hard regset nodes have intersecting hard reg sets.
14012
14013         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
14014         after regstat_init_n_sets_and_refs.
14015
14016         * ira.c: Add more comments at the top.
14017         (setup_stack_reg_pressure_class, setup_pressure_classes):
14018         Add comments how we compute the register pressure classes.
14019         (setup_allocno_and_important_classes): Add more comments.
14020         (setup_class_translate_array, reorder_important_classes)
14021         (setup_reg_class_relations): Add comments.
14022
14023         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
14024         start of the file.
14025
14026         * ira-color.c: Add 2011 to the Copyright line.
14027         (assign_hard_reg):  Add more comments.
14028         (improve_allocation): Ditto.
14029
14030         * ira-costs.c: Add 2011 to the Copyright line.
14031         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
14032         comments.
14033         (setup_regno_cost_classes_by_mode): Ditto.
14034
14035         Initial patches from ira-improv branch:
14036
14037         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
14038
14039         * ira-build.c (ira_create_object): Remove initialization of
14040         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
14041         (ira_create_allocno): Remove initialization of
14042         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
14043         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
14044         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
14045         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
14046         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
14047         Initialize ALLOCNO_ADD_DATA.
14048         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
14049         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
14050         ALLOCNO_REG.
14051         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
14052         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
14053
14054         * ira.c (ira_reallocate): Remove.
14055         (setup_pressure_classes): Call
14056         ira_init_register_move_cost_if_necessary.  Use
14057         ira_register_move_cost instead of ira_get_register_move_cost.
14058         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
14059         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
14060
14061         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
14062         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
14063         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
14064         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
14065         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
14066         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
14067         Fix formatting.
14068         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
14069         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
14070         (struct allocno_color_data): New.
14071         (allocno_color_data_t): New typedef.
14072         (allocno_color_data): New definition.
14073         (ALLOCNO_COLOR_DATA): New macro.
14074         (struct object_color_data): New.
14075         (object_color_data_t): New typedef.
14076         (object_color_data): New definition.
14077         (OBJECT_COLOR_DATA): New macro.
14078         (update_copy_costs, calculate_allocno_spill_cost): Call
14079         ira_init_register_move_cost_if_necessary.  Use
14080         ira_register_move_cost instead of ira_get_register_move_cost.
14081         (move_spill_restore, update_curr_costs): Ditto.
14082         (allocno_spill_priority): Make it inline.
14083         (color_pass): Allocate and free allocno_color_dat and object_color_data.
14084         (struct coalesce_data, coalesce_data_t): New.
14085         (allocno_coalesce_data): New definition.
14086         (ALLOCNO_COALESCE_DATA): New macro.
14087         (merge_allocnos, coalesced_allocno_conflict_p): Use
14088         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
14089         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
14090         (coalesce_allocnos): Ditto.
14091         (setup_coalesced_allocno_costs_and_nums): Ditto.
14092         (collect_spilled_coalesced_allocnos): Ditto.
14093         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
14094         (setup_slot_coalesced_allocno_live_ranges): Ditto.
14095         (coalesce_spill_slots): Ditto.
14096         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
14097         free allocno_coalesce_data.
14098
14099         * ira-conflicts.c: Fix formatting.
14100         (process_regs_for_copy): Call
14101         ira_init_register_move_cost_if_necessary.  Use
14102         ira_register_move_cost instead of ira_get_register_move_cost.
14103         (build_object_conflicts): Optimize.
14104
14105         * ira-costs.c (record_reg_classes): Optimize.  Call
14106         ira_init_register_move_cost_if_necessary.  Use
14107         ira_register_move_cost, ira_may_move_in_cost, and
14108         ira_may_move_out_cost instead of ira_get_register_move_cost and
14109         ira_get_may_move_cost.
14110         (record_address_regs): Ditto.
14111         (scan_one_insn): Optimize.
14112         (find_costs_and_classes): Optimize.
14113         (process_bb_node_for_hard_reg_moves): Call
14114         ira_init_register_move_cost_if_necessary.  Use
14115         ira_register_move_cost instead of ira_get_register_move_cost.
14116
14117         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
14118         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
14119         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
14120         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
14121         definitions.
14122         (ira_initiate_emit_data, ira_finish_emit_data)
14123         (create_new_allocno): New functions.
14124         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
14125         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
14126         Use ira_register_move_cost instead of ira_get_register_move_cost.
14127
14128         * ira-int.h: Fix some comments.
14129         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
14130         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
14131         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
14132         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
14133         add_data.
14134         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
14135         bitfield after mode.  Make hard_regno a short int.  Make
14136         hard_regno short.  Remove first_coalesced_allocno and
14137         next_coalesced_allocno.  Move mem_optimized_dest_p,
14138         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
14139         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
14140         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
14141         temp, colorable_p.  Add new member add_data.
14142         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
14143         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
14144         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
14145         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
14146         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
14147         (ALLOCNO_ADD_DATA): New macro.
14148         (ira_emit_data_t): New typedef.
14149         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
14150         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
14151         from struct ira_allocno.
14152         (ALLOCNO_EMIT_DATA): New macro.
14153         (ira_allocno_emit_data, allocno_emit_reg): New.
14154         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
14155         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
14156         (OBJECT_ADD_DATA): New macro.
14157         (ira_reallocate): Remove.
14158         (ira_initiate_emit_data, ira_finish_emit_data): New.
14159         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
14160         (ira_init_register_move_cost_if_necessary): New.
14161         (ira_object_conflict_iter_next): Merge into
14162         ira_object_conflict_iter_cond.
14163         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
14164
14165         * ira-live.c (process_single_reg_class_operands): Call
14166         ira_init_register_move_cost_if_necessary.  Use
14167         ira_register_move_cost instead of ira_get_register_move_cost.
14168
14169         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
14170
14171         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
14172
14173         * ira-costs.c: Fix formatting.
14174         (cost_classes, cost_classes_num): Remove.
14175         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
14176         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
14177         (cost_classes_del, cost_classes_htab): New.
14178         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
14179         (initiate_regno_cost_classes, setup_cost_classes): New.
14180         (setup_regno_cost_classes_by_aclass): New.
14181         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
14182         (record_reg_classes): Use regno_cost_classes instead of
14183         cost_classes.  Move checking opposite operand up.
14184         (record_address_regs): Use regno_cost_classes
14185         instead of cost_classes.
14186         (scan_one_insn): Ditto.  Use always general register.
14187         (print_allocno_costs): Use regno_cost_classes instead of
14188         cost_classes.
14189         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
14190         (find_costs_and_classes): Set up cost classes for each registers.
14191         Use also their mode for this.  Use regno_cost_classes instead of
14192         cost_classes.
14193         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
14194         cost_classes.
14195         (free_ira_costs, ira_init_costs): Don't use cost_classes.
14196         (ira_costs, ira_set_pseudo_classes): Call
14197         initiate_regno_cost_classes and finish_regno_cost_classes.
14198
14199         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
14200
14201         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
14202
14203         * target.def (ira_cover_classes): Remove.
14204
14205         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
14206
14207         * doc/tm.texi.in: Ditto.
14208
14209         * ira-conflicts.c: Remove mentioning cover classes from the file.
14210         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
14211         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
14212
14213         * targhooks.c (default_ira_cover_classes): Remove.
14214
14215         * targhooks.h (default_ira_cover_classes): Ditto.
14216
14217         * haifa-sched.c: Remove mentioning cover classes from the file.
14218         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
14219         ira_pressure_classes and ira_pressure_classes_num instead of
14220         ira_reg_class_cover_size and ira_reg_class_cover.  Use
14221         sched_regno_pressure_class instead of sched_regno_cover_class.
14222         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
14223         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14224
14225         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
14226         classes from the file.
14227         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
14228         (struct object_hard_regs, struct object_hard_regs_node): New.
14229         (struct ira_object): New members profitable_hard_regs,
14230         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
14231         (struct ira_allocno): Rename cover_class to aclass.  Rename
14232         cover_class_cost and updated_cover_class_cost to class_cost and
14233         updated_class_cost.  Remove splay_removed_p and
14234         left_conflict_size.  Add new members colorable_p.
14235         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
14236         (ALLOCNO_COLORABLE_P): New macro.
14237         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
14238         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
14239         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
14240         (OBJECT_...): Rename parameter C to O.
14241         (OBJECT_PROFITABLE_HARD_REGS): New macro.
14242         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
14243         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
14244         (struct target_ira_int): New members x_ira_max_memory_move_cost,
14245         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
14246         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
14247         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
14248         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
14249         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
14250         x_ira_reg_class_subunion.
14251         (ira_max_memory_move_cost, ira_max_register_move_cost)
14252         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
14253         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
14254         (ira_important_class_nums, ira_reg_class_superunion): New macros.
14255         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
14256         (ira_reg_class_union): Rename to ira_reg_class_subunion.
14257         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
14258         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
14259         (ira_tune_allocno_costs_and_cover_classes): Rename to
14260         ira_tune_allocno_costs.
14261         (ira_debug_hard_regs_forest): New.
14262         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
14263         (ira_object_conflict_iter_next): Fix comments.
14264         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
14265         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
14266         cover_class to aclass.
14267         (ira_allocate_and_accumulate_costs): Ditto.
14268         (ira_allocate_and_set_or_copy_costs): Ditto.
14269
14270         * opts.c (decode_options): Remove ira_cover_class check.
14271
14272         * ira-color.c: Remove mentioning cover classes from the file.  Use
14273         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
14274         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
14275         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
14276         (splay-tree.h): Remove include.
14277         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
14278         before copy_freq_compare_func.
14279         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
14280         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
14281         New definitions.
14282         (hard_regs_roots, hard_regs_node_vec): Ditto.
14283         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
14284         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
14285         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
14286         (create_new_object_hard_regs_node): Ditto.
14287         (add_new_object_hard_regs_node_to_forest): Ditto.
14288         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
14289         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
14290         Ditto.
14291         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
14292         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
14293         (remove_unused_object_hard_regs_nodes): Ditto.
14294         (enumerate_object_hard_regs_nodes): Ditto.
14295         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
14296         (object_hard_regs_subnode_t): Ditto.
14297         (struct object_hard_regs_subnode): Ditto.
14298         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
14299         (setup_object_hard_regs_subnode_index): Ditto.
14300         (get_object_hard_regs_subnodes_num): Ditto.
14301         (form_object_hard_regs_nodes_forest): Ditto.
14302         (finish_object_hard_regs_nodes_tree): Ditto.
14303         (finish_object_hard_regs_nodes_forest): Ditto.
14304         (allocnos_have_intersected_live_ranges_p): Rename to
14305         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
14306         (pseudos_have_intersected_live_ranges_p): Rename to
14307         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
14308         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
14309         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
14310         (update_copy_costs): Remove assert.  Skip cost update if the hard
14311         reg does not belong the class.
14312         (assign_hard_reg): Process only profitable hard regs.
14313         (uncolorable_allocnos_num): Make it scalar.
14314         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
14315         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
14316         and ira_reg_class_max_nregs.
14317         (bucket_allocno_compare_func): Check frequency first.
14318         (sort_bucket): Add compare function as a parameter.
14319         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
14320         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
14321         (push_allocno_to_stack): Rewrite for checking new allocno
14322         colorability.
14323         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
14324         (push_only_colorable): Pass new parameter to sort_bucket.
14325         (push_allocno_to_spill): Remove.
14326         (allocno_spill_priority_compare): Make it inline and rewrite.
14327         (splay_tree_allocate, splay_tree_free): Remove.
14328         (allocno_spill_sort_compare): New function.
14329         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
14330         build and use splay tree.  Choose first allocno in uncolorable
14331         allocno bucket to spill.  Remove setting spill cost.
14332         (all_conflicting_hard_regs): Remove.
14333         (setup_allocno_available_regs_num): Check only profitable hard
14334         regs.  Print info about hard regs nodes.
14335         (setup_allocno_left_conflicts_size): Remove.
14336         (put_allocno_into_bucket): Don't call
14337         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
14338         (improve_allocation): New.
14339         (color_allocnos): Call setup_profitable_hard_regs,
14340         form_object_hard_regs_nodes_forest, improve_allocation,
14341         finish_object_hard_regs_nodes_forest.  Setup spill cost.
14342         (print_loop_title): Use pressure classes.
14343         (color_allocnso): Ditto.
14344         (do_coloring): Remove allocation and freeing splay_tree_node_pool
14345         and allocnos_for_spilling.
14346         (ira_sort_regnos_for_alter_reg): Don't setup members
14347         {first,next}_coalesced_allocno.
14348         (color): Remove allocating and freeing removed_splay_allocno_vec.
14349         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
14350         prohibited_class_mode_regs.
14351
14352         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
14353         formatting.
14354         (update_allocno_pressure_excess_length): Use pressure classes.
14355         (inc_register_pressure, dec_register_pressure): Check for pressure
14356         class.
14357         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
14358         pressure class.  Use ira_reg_class_nregs instead of
14359         ira_reg_class_max_nregs.
14360         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
14361         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
14362         (single_reg_class): Use ira_reg_class_nregs instead of
14363         ira_reg_class_max_nregs.
14364         (process_bb_node_lives): Use pressure classes.
14365
14366         * ira-emit.c: Remove mentioning cover classes from the file.  Use
14367         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
14368         (change_loop): Use pressure classes.
14369         (modify_move_list): Call ira_set_allocno_class instead of
14370         ira_set_allocno_cover_class.
14371
14372         * ira-build.c: Remove mentioning cover classes from the file.  Use
14373         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
14374         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
14375         ALLOCNO_UPDATED_CLASS_COST instead of
14376         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
14377         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
14378         (ira_create_allocno): Remove initialization of
14379         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
14380         ALLOCNO_COLORABLE_P.
14381         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
14382         Update conflict regs for the objects.
14383         (create_cap_allocno): Remove assert.  Don't propagate
14384         ALLOCNO_AVAILABLE_REGS_NUM.
14385         (ira_free_allocno_costs): New function.
14386         (finish_allocno): Change a part of code into call of
14387         ira_free_allocno_costs.
14388         (low_pressure_loop_node_p): Use pressure classes.
14389         (object_range_compare_func): Don't compare classes.
14390         (setup_min_max_conflict_allocno_ids): Ditto.
14391
14392         * loop-invariant.c: Remove mentioning cover classes from the file.
14393         Use ira_pressure_classes and ira_pressure_classes_num instead of
14394         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
14395         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
14396         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14397         Use reg_allocno_class instead of reg_cover_class.
14398         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
14399         STACK_REG_COVER_CLASS.
14400         (get_regno_cover_class): Rename to get_regno_pressure_class.
14401         (move_loop_invariants): Initialize and finalize regstat.
14402
14403         * ira.c: Remove mentioning cover classes from the file.  Add
14404         comments about coloring without cover classes.  Use ALLOCNO_CLASS
14405         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
14406         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
14407         setup_class_subset_and_memory_move_costs.
14408         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
14409         (setup_cover_and_important_classes): Rename to
14410         setup_allocno_and_important_classes.
14411         (setup_class_translate_array): New.
14412         (setup_class_translate): Call it for allocno and pressure classes.
14413         (cover_class_order): Rename to allocno_class_order.
14414         (comp_reg_classes_func): Use ira_allocno_class_translate instead
14415         of ira_class_translate.
14416         (reorder_important_classes): Set up ira_important_class_nums.
14417         (setup_reg_class_relations): Set up ira_reg_class_superunion.
14418         (print_class_cover): Rename to print_classes.  Add parameter.
14419         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
14420         Print pressure classes too.
14421         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
14422         setup_reg_subclasses.
14423         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
14424         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
14425         (setup_prohibited_class_mode_regs): Use
14426         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
14427         (clarify_prohibited_class_mode_regs): New function.
14428         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
14429         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
14430         (ira_init_once): Initialize them.
14431         (free_register_move_costs): Process them.
14432         (ira_init): Move calls of find_reg_classes and
14433         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
14434         Call clarify_prohibited_class_mode_regs.
14435         (ira_no_alloc_reg): Remove.
14436         (too_high_register_pressure_p): Use pressure classes.
14437
14438         * sched-deps.c: Remove mentioning cover classes from the file.
14439         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
14440         ira_pressure_classes and ira_pressure_classes_num instead of
14441         ira_reg_class_cover_size and ira_reg_class_cover.
14442         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
14443         sched_regno_pressure_class instead of sched_regno_cover_class.
14444         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
14445         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14446
14447         * ira.h: Add 2010 to Copyright.
14448         (ira_no_alloc_reg): Remove external.
14449         (struct target_ira): Rename x_ira_hard_regno_cover_class,
14450         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
14451         x_ira_class_translate to x_ira_hard_regno_allocno_class,
14452         x_ira_allocno_classes_num, x_ira_allocno_classes, and
14453         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
14454         x_ira_pressure_classes, x_ira_pressure_class_translate, and
14455         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
14456         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
14457         x_ira_no_alloc_regs.
14458         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
14459         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
14460         ira_allocno_classes_num and ira_allocno_classes.
14461         (ira_class_translate): Rename to ira_allocno_class_translate.
14462         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
14463         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
14464         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
14465         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
14466         (ira_no_alloc_regs): New.
14467
14468         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
14469         classes from the file.  Use ALLOCNO_CLASS instead of
14470         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
14471         ALLOCNO_COVER_CLASS_COST.
14472         (regno_cover_class): Rename to regno_aclass.
14473         (record_reg_classes): Use ira_reg_class_subunion instead of
14474         ira_reg_class_union.
14475         (record_address_regs): Check overflow.
14476         (scan_one_insn): Ditto.
14477         (print_allocno_costs): Print total mem cost fore regional allocation.
14478         (print_pseudo_costs): Use REG_N_REFS.
14479         (find_costs_and_classes): Use classes intersected with them on the
14480         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
14481         ira_reg_class_union.  Use ira_allocno_class_translate and
14482         regno_aclass instead of ira_class_translate and regno_cover_class.
14483         Modify code for finding regno_aclass.  Setup preferred classes for
14484         the next pass.
14485         (setup_allocno_cover_class_and_costs): Rename to
14486         setup_allocno_class_and_costs.  Use regno_aclass instead of
14487         regno_cover_class.  Use ira_set_allocno_class instead of
14488         ira_set_allocno_cover_class.
14489         (init_costs, finish_costs): Use regno_aclass instead of
14490         regno_cover_class.
14491         (ira_costs): Use setup_allocno_class_and_costs instead of
14492         setup_allocno_cover_class_and_costs.
14493         (ira_tune_allocno_costs_and_cover_classes): Rename to
14494         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
14495         by processing objects.  Use ira_reg_class_max_nregs instead of
14496         ira_reg_class_nregs.
14497
14498         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
14499
14500         * sched-int.h: Remove mentioning cover classes from the file.
14501         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
14502
14503         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
14504         classes from the file.
14505         (struct reg_pref): Rename coverclass into allocnoclass.
14506         (reg_cover_class): Rename to reg_allocno_class.
14507
14508         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
14509
14510         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
14511
14512         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
14513
14514         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
14515
14516         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
14517
14518         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
14519
14520         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
14521
14522         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
14523
14524         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
14525
14526         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
14527
14528         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
14529         (i386_ira_cover_classes): Ditto.
14530
14531         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
14532
14533         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
14534
14535         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
14536
14537         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
14538
14539         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
14540
14541         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
14542
14543         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
14544         (mips_ira_cover_classes): Ditto.
14545
14546         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
14547
14548         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
14549
14550         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
14551
14552         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
14553
14554         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
14555
14556         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
14557         (IRA_COVER_CLASSES_VSX): Ditto.
14558
14559         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
14560         (rs6000_ira_cover_classes): Ditto.
14561
14562         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
14563
14564         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
14565
14566         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
14567
14568         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
14569
14570         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
14571
14572         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
14573
14574         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
14575
14576         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
14577
14578         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
14579
14580         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
14581
14582 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
14583
14584         PR debug/48253
14585         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
14586         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
14587         dw_fde_unlikely_section_end_label, cold_in_std_section,
14588         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
14589         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
14590         fields.
14591         (output_fde): Use dw_fde_second_{begin,end} if second is
14592         true, otherwise dw_fde_{begin,end}.
14593         (output_call_frame_info): Test dw_fde_second_begin != NULL
14594         instead of dw_fde_switched_sections.
14595         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
14596         fields, initialize new fields.  Initialize in_std_section
14597         unconditionally from the first partition.
14598         (dwarf2out_end_epilogue): Don't override dw_fde_end when
14599         dw_fde_second_begin is non-NULL.
14600         (dwarf2out_switch_text_section): Stop initializing removed
14601         dw_fde_struct fields, initialize new fields, initialize
14602         also dw_fde_end here.  Set dw_fde_switch_cfi even when
14603         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
14604         (struct var_loc_list_def): Add last_before_switch field.
14605         (arange_table, arange_table_allocated, arange_table_in_use,
14606         ARANGE_TABLE_INCREMENT, add_arange): Removed.
14607         (size_of_aranges): Count !in_std_section and !second_in_std_section
14608         hunks in fdes, instead of looking at arange_table_in_use.
14609         (output_aranges): Add aranges_length argument, don't call
14610         size_of_aranges here.  Instead of using aranges_table*
14611         emit ranges for fdes when !in_std_section resp.
14612         !second_in_std_section.
14613         (dw_loc_list): Break ranges crossing section switch.
14614         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
14615         use dw_fde_second_end instead of dw_fde_end as end of last range.
14616         (gen_subprogram_die): Don't call add_arange.  Use
14617         dw_fde_{begin,end} for first partition and if switched
14618         section dw_fde_second_{begin,end} for the second.
14619         (var_location_switch_text_section_1,
14620         var_location_switch_text_section): New functions.
14621         (dwarf2out_begin_function): Initialize cold_text_section even
14622         when function_section () isn't text_section.
14623         (prune_unused_types): Don't walk arange_table.
14624         (dwarf2out_finish): Don't needlessly test
14625         flag_reorder_blocks_and_partition when testing cold_text_section_used.
14626         If info_section_emitted, call size_of_aranges and if it indicates
14627         non-empty .debug_aranges, call output_aranges with the computed
14628         size.  Stop using removed dw_fde_struct fields, use
14629         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
14630         for second.
14631
14632         PR debug/48203
14633         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
14634         create ENTRY_VALUE if incoming or address of incoming's MEM
14635         is a hard REG.
14636         * dwarf2out.c (mem_loc_descriptor): Don't emit
14637         DW_OP_GNU_entry_value of DW_OP_fbreg.
14638         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
14639         on ENTRY_VALUE is able to find the canonical parameter VALUE.
14640         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
14641         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
14642         ENTRY_VALUE_EXPs.
14643         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
14644         is a REG_P or MEM_P with REG_P address, compute hash directly
14645         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
14646         (preserve_only_constants): Don't clear VALUES forwaring
14647         ENTRY_VALUE to some other VALUE.
14648
14649 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
14650
14651         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
14652         instead of GEN_INT.
14653
14654 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
14655
14656         * cfgexpand.c (expand_gimple_cond): Always set the source location and
14657         block before expanding the statement.
14658         (expand_gimple_stmt_1): Likewise.  Set them here...
14659         (expand_gimple_stmt): ...and not here.  Tidy.
14660         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
14661         unknown.
14662
14663 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
14664
14665         * Makefile.in: New rule for cprop.o.
14666         * gcse.c: Move constant/copy propagation to cprop.c.
14667         (compute_local_properties): Only handle expression tables.
14668         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
14669         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
14670         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
14671         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
14672         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
14673         compute_cprop_data, find_used_regs, try_replace_reg,
14674         find_avail_set, cprop_jump, constprop_register, cprop_insn,
14675         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
14676         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
14677         find_bypass_set, reg_killed_on_edge, bypass_block,
14678         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
14679         execute_rtl_cprop, pass_rtl_cprop): Move to...
14680         * cprop.c: ...here.  New file, constant/copy propagation for RTL
14681         moved from gcse.c to here with minor cleanups in duplicated code.
14682
14683 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
14684
14685         * config/i386/i386.c (flag_opts): Fix a typo in
14686         -mavx256-split-unaligned-store.
14687
14688 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
14689
14690         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
14691         LIBCALL_VALUE): Remove macros.
14692         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14693         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14694         (h8300_function_value, h8300_libcall_value,
14695         h8300_function_value_regno_p): New functions.
14696
14697 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
14698
14699         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
14700
14701 2011-03-28  Jeff Law  <law@redhat.com>
14702
14703         * tree-ssa-threadupdate.c (redirect_edges): Call
14704         create_edge_and_update_destination_phis as needed.
14705         (create_edge_and_update_destination_phis): Accept new BB argument.
14706         All callers updated.
14707         (thread_block): Do not update the profile when threading around
14708         intermediate blocks.
14709         (thread_single_edge): Likewise.
14710         (determine_bb_domination_status): If BB is not a successor of the
14711         loop header, return NONDOMINATING.
14712         (register_jump_thread): Note when we register a jump thread around
14713         an intermediate block.
14714         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
14715         (thread_across_edge): Use it.
14716
14717 2011-03-28  Tristan Gingold  <gingold@adacore.com>
14718
14719         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
14720         when for_return is 2.
14721
14722 2011-03-28  Jeff Law  <law@redhat.com>
14723
14724         * var-tracking.c (canonicalize_values_mark): Delete unused
14725         lhs assignment.
14726         (canonicalize_values_star, set_variable_part): Likewise.
14727         (clobber_variable_part, delete_variable_part): Likewise.
14728
14729 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
14730
14731         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
14732
14733 2011-03-28  Martin Jambor  <mjambor@suse.cz>
14734
14735         * tree-inline.c (expand_call_inline): Do not check that destination
14736         node is analyzed.
14737         (optimize_inline_calls): Assert that destination node is analyzed.
14738         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
14739         not call tree_lowering_passes.
14740         * cgraph.h (cgraph_analyze_function): Declare.
14741         * cgraphunit.c (cgraph_analyze_function): Make public.
14742
14743 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
14744
14745         * config/sparc/sparc-opts.h: New.
14746         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
14747         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
14748         (sparc_option_override): Store processor_type enumeration rather
14749         than string in cpu_default.  Remove name and enumeration from
14750         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
14751         without using sparc_select.  Use target_flags_explicit instead of
14752         fpu_option_set.
14753         * config/sparc/sparc.h (enum processor_type): Move to
14754         sparc-opts.h.
14755         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
14756         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
14757         HeaderInclude entry.
14758         (mcpu=, mtune=): Use Var and Enum.
14759         (sparc_processor_type): New Enum and EnumValue entries.
14760
14761 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14762             Iain Sandoe  <iains@gcc.gnu.org>
14763
14764         PR target/48245
14765         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
14766
14767 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
14768
14769         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
14770         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
14771         Insert new statements at it in lieu of STMT.
14772         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
14773         * tree-vect-stmts.c (vectorizable_store): Likewise.
14774         (vectorizable_load): Likewise.
14775
14776 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
14777
14778         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
14779         (divtf3): Ditto.
14780         (multf3): Ditto.
14781         (subtf3): Ditto.
14782
14783 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14784
14785         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
14786         unaligned 256bit load/store.
14787         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
14788         (*avx_movdqu<avxmodesuffix>): Likewise.
14789
14790 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14791
14792         PR target/48288
14793         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
14794         * config/pa/pa.md (iordi3): Use new predicate in expander.
14795         (iorsi3): Likewise.
14796
14797 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
14798
14799         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
14800         FUNCTION_VALUE_REGNO_P): Remove macros.
14801         * config/mips/mips-protos.h (mips_function_value): Remove.
14802         * config/mips/mips.c (mips_function_value): Rename to...
14803         (mips_function_value_1): ... this. Make static.  Handle receiving
14804         the function type in 'fn_decl_or_type' argument.
14805         (mips_function_value, mips_libcall_value,
14806         mips_function_value_regno_p): New function.
14807         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14808         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14809
14810 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14811
14812         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
14813         and -mavx256-split-unaligned-store.
14814         (ix86_option_override_internal): Split 32-byte AVX unaligned
14815         load/store by default.
14816         (ix86_avx256_split_vector_move_misalign): New.
14817         (ix86_expand_vector_move_misalign): Use it.
14818
14819         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
14820         -mavx256-split-unaligned-store.
14821
14822         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
14823         256bit load/store.  Generate unaligned store on misaligned memory
14824         operand.
14825         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
14826         256bit load/store.
14827         (*avx_movdqu<avxmodesuffix>): Likewise.
14828
14829         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
14830         -mavx256-split-unaligned-store.
14831
14832 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
14833
14834         PR target/38598
14835         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
14836         Update commentary.
14837
14838 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
14839
14840         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
14841         opno arguments with an expand_operand.  Use create_input_operand.
14842         (mips_prepare_builtin_target): Delete.
14843         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
14844         functions.
14845         (mips_expand_builtin_direct): Use create_output_operand and
14846         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
14847         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
14848         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
14849
14850 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
14851
14852         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
14853         function.
14854         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
14855
14856 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
14857
14858         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
14859         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
14860         basic blocks and call commit_edge_insertions directly.
14861         (fixup_abnormal_edges): Move from here to...
14862         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
14863         on the edges and return whether some have actually been inserted.
14864         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
14865         compensation code.
14866
14867 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
14868
14869         PR rtl-optimization/48144
14870         * sel-sched-ir.c (merge_history_vect): Factor out from ...
14871         (merge_expr_data): ... here.
14872         (av_set_intersect): Rename to av_set_code_motion_filter.
14873         Update all callers.  Call merge_history_vect when an expression
14874         is found in both sets.
14875         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
14876
14877 2011-03-26  Alan Modra  <amodra@gmail.com>
14878
14879         * config/rs6000/predicates.md (word_offset_memref_op): Handle
14880         cmodel medium addresses.
14881         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
14882         64-bit gpr loads and stores.
14883         (rs6000_secondary_reload_ppc64): New function.
14884         * config/rs6000/rs6000-protos.h: Declare it.
14885         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
14886
14887 2011-03-26  Alan Modra  <amodra@gmail.com>
14888
14889         PR target/47487
14890         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
14891         GNU Go in traceback table.
14892
14893 2011-03-25  Richard Henderson  <rth@redhat.com>
14894
14895         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
14896         if there are exactly 6 operands.
14897         (set_storage_via_setmem): Similarly.
14898
14899 2011-03-25  Kai Tietz  <ktietz@redhat.com>
14900
14901         * collect2.c (write_c_file_stat): Handle backslash
14902         as right-hand directory separator.
14903         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
14904         checking just for slash.
14905         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
14906         instead of checking for trailing slash.
14907         * gcc.c (record_temp_file): Use filename_cmp instead
14908         of strcmp.
14909         (do_spec_1): Likewise.
14910         (replace_outfile_spec_function): Likewise.
14911         (is_directory): Use filename_ncmp instead of strncmp.
14912         (print_multilib_info): Likewise.
14913         * gcov.c (find_source): Use filename_cmp instead
14914         instead of strcmp.
14915         (make_gcov_file_name): Fix order of slash/backslash
14916         checks.
14917         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
14918         (add_standard_paths): Likewise.
14919         * mips-tfile.c (saber_stop): Handle backslash.
14920         * prefix.c (update_path): Use filename_ncmp instead of
14921         strncmp.
14922         * profile.c (output_location): Use filename_cmp instead
14923         of strcmp.
14924         * read-md.c (handle_toplevel_file): Handle backslash.
14925         * tlink.c (frob_extension):  Likewise.
14926         * tree-cfg.c (same_line_p): Use filename_cmp instead of
14927         strcmp.
14928         * tree-dump.c (dequeue_and_dump): Handle backslash.
14929         * tree.c (get_file_function_name): Likewise.
14930         * gengtype.c (read_input_list): Likewise.
14931         (get_file_realbasename): Likewise.
14932         (get_output_file_with_visibility): Use filename_cmp
14933         instead of strcmp.
14934
14935 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
14936
14937         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
14938         case to VFPv1.
14939
14940 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
14941
14942         * fold-const.c (expr_location_or): New function.
14943         (fold_truth_not_expr): Call it.
14944
14945 2011-03-25  Jeff Law  <law@redhat.com>
14946
14947         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
14948         va_end.
14949         * c-family/c-common.c (def_fn_type): Likewise.
14950         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
14951         * emit-rtl.c (gen_rtvec): Likewise.
14952         * lto/lto-lang.c (def_fn_type): Likewise.
14953
14954 2011-03-25  Richard Guenther  <rguenther@suse.de>
14955
14956         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
14957         also generate copies.
14958         (fini_copy_prop): Handle constant values properly.
14959
14960 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
14961
14962         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
14963         mode size instead of bitsize with DWARF2_ADDR_SIZE.
14964         (hash_loc_operands, compare_loc_operands): Handle
14965         DW_OP_GNU_entry_value.
14966
14967 2011-03-25  Kai Tietz  <ktietz@redhat.com>
14968
14969         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
14970         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
14971         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
14972         comment and use macro TARGET_64BIT_MS_ABI instead.
14973         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
14974         and change default behavior for 32-bit MS_ABI.
14975         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
14976         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
14977         32-bit, too.
14978         (ix86_cfun_abi): Likewise.
14979         (ix86_maybe_switch_abi): Adjust comment.
14980         (init_cumulative_args): Check for bit-ness in MS_ABI case.
14981         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
14982         instead of checking for SYSV_ABI.
14983         (ix86_nsaved_sseregs): Likewise.
14984         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
14985         to 16 bytes.
14986         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
14987         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
14988         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
14989         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
14990         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
14991
14992 2011-03-25  Richard Guenther  <rguenther@suse.de>
14993
14994         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
14995         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
14996         (verify_gimple): Remove.
14997         * tree-cfg.c (verify_gimple_call): Merge verification
14998         from verify_stmts.
14999         (verify_gimple_phi): Merge verification from verify_stmts.
15000         (verify_gimple_label): New function.
15001         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
15002         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
15003         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
15004         (verify_stmts): Rename to verify_gimple_in_cfg.
15005         (verify_gimple_in_cfg): New function.
15006         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
15007         * tree-ssa.c (verify_ssa): Likewise.
15008         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
15009
15010 2011-03-25  Richard Guenther  <rguenther@suse.de>
15011
15012         * passes.c (init_optimization_passes): Add FRE pass after
15013         early SRA.
15014
15015 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
15016             Andrew Stubbs  <ams@codesourcery.com>
15017
15018         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
15019         for Cortex-A8.
15020         (arm_movdi_vfp_cortexa8): New pattern.
15021         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
15022         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
15023         instructions when tuning for Cortex-A8.  Set attribute "arch".
15024         * config/arm/arm.md: Move include arm-tune.md up a bit.
15025         (define_attr "arch"): Add "onlya8" and "nota8" values.
15026         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
15027
15028 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
15029
15030         PR bootstrap/48282
15031         Revert:
15032         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15033
15034         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
15035         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
15036         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
15037         * passes.c (init_optimization_passes): Move
15038         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
15039
15040 2011-03-25  Kai Tietz  <ktietz@redhat.com>
15041
15042         * c-typeck.c (comptypes_internal): Replace target
15043         hook call of comp_type_attributes by version in tree.c file.
15044         * gimple.c (gimple_types_compatible_p_1): Likewise.
15045         * tree-ssa.c (useless_type_conversion_p): Likewise.
15046         * tree.c (build_type_attribute_qual_variant): Likewise.
15047         (attribute_value_equal): New static helper function.
15048         (comp_type_attributes): New function.
15049         (merge_attributes): Use attribute_value_equal for comparison.
15050         (attribute_list_contained): Likewise.
15051         * tree.h (comp_type_attributes): New prototype.
15052
15053 2011-03-25  Richard Guenther  <rguenther@suse.de>
15054
15055         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
15056         of complex types at -O0.
15057         (verify_gimple_assign_binary): Likewise.
15058         (verify_gimple_assign_ternary): Likewise.
15059
15060 2011-03-24  Mark Wielaard  <mjw@redhat.com>
15061
15062         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
15063         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
15064
15065 2011-03-24  Mark Wielaard  <mjw@redhat.com>
15066
15067         PR debug/48041
15068         * dwarf2out.c (output_abbrev_section): Only write table when
15069         abbrev_die_table_in_use > 1.
15070
15071 2011-02-24  Richard Henderson  <rth@redhat.com>
15072
15073         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
15074         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
15075         (alpha_expand_unaligned_load_words): Use extql.
15076         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
15077         (emit_insxl): Handle all modes for consistency.
15078
15079 2011-02-24  Richard Henderson  <rth@redhat.com>
15080
15081         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
15082         (alpha_expand_unaligned_load): Likewise.
15083         (alpha_expand_unaligned_store): Likewise.
15084         (alpha_expand_unaligned_load_words): Likewise.
15085         (alpha_expand_unaligned_store_words): Likewise.
15086         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
15087         (alpha_split_lock_test_and_set_12): Likewise.
15088         (print_operand, alpha_fold_builtin_extxx): Likewise.
15089         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
15090         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
15091         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
15092         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
15093         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
15094         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
15095         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
15096         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
15097         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
15098         (extwl, extll, extql): Similarly.
15099         (inswh, inslh, insqh): Similarly.
15100         (mskbl, mskwl, mskll, mskql): Similarly.
15101         (mskwh, msklh, mskqh): Similarly.
15102
15103 2011-02-24  Richard Henderson  <rth@redhat.com>
15104
15105         * config/alpha/alpha.md (attribute isa): Add er, ner.
15106         (attribute enabled): Handle them.
15107         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
15108
15109 2011-02-24  Richard Henderson  <rth@redhat.com>
15110
15111         * config/alpha/alpha.md (attribute isa): Add vms.
15112         (attribute enabled): Handle it.
15113         (*movsf): Merge *movsf_{nofix,fix,nofp}.
15114         (*movdf): Merge *movdf_{nofix,fix,nofp}.
15115         (*movtf): Rename from *movtf_internal for consistency.
15116         (*movsi): Merge with *movsi_nt_vms.
15117         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
15118         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
15119         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
15120         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
15121
15122 2011-02-24  Richard Henderson  <rth@redhat.com>
15123
15124         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
15125         (extendqisi2, extendhisi2): Likewise.
15126         (extendqidi2): Simplify BWX/non-BWX expansions.
15127         (extendhidi2): Similarly.
15128
15129 2011-02-24  Richard Henderson  <rth@redhat.com>
15130
15131         * config/alpha/alpha.md (attribute isa): New.
15132         (attribute enabled): New.
15133         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
15134         (zero_extendqisi2, zero_extendqidi2): Similarly.
15135         (zero_extendhisi2, zero_extendhidi2): Similarly.
15136         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
15137
15138 2011-02-24  Richard Henderson  <rth@redhat.com>
15139
15140         * config/alpha/predicates.md (input_operand): Revert last change;
15141         update comment to mention 32-bit VMS rather than Windows.
15142
15143 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15144
15145         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
15146         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
15147         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
15148         * passes.c (init_optimization_passes): Move
15149         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
15150
15151 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
15152
15153         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
15154
15155 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
15156
15157         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
15158         correctly.
15159
15160 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
15161
15162         PR debug/48204
15163         * simplify-rtx.c (simplify_const_unary_operation): Call
15164         real_convert when changing mode class with FLOAT_EXTEND.
15165
15166 2011-03-24  Nick Clifton  <nickc@redhat.com>
15167
15168         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
15169         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
15170         * config/rx/rx.c (rx_option_override): Set align_jumps,
15171         align_loops and align_labels if not set by the user.
15172         (rx_align_for_label): New function.
15173         (rx_max_skip_for_label): New function.
15174         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
15175         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
15176         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
15177         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
15178         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
15179
15180 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
15181
15182         PR rtl-optimization/48263
15183         * optabs.c (expand_binop_directly): Reinstate convert_modes code
15184         and original commutative_p handling.  Use maybe_gen_insn.
15185
15186 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15187
15188         * reload.c (find_reloads_subreg_address): Add address_reloaded
15189         parameter and return true there if the full address has been
15190         reloaded.
15191         (find_reloads_toplev): Pass address_reloaded flag.
15192         (find_reloads_address_1): Don't use address_reloaded parameter.
15193
15194 2011-03-24  Jeff Law  <law@redhat.com>
15195
15196         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
15197         unused variable "ann".
15198         (remove_unused_locals): Likewise.
15199
15200         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
15201         statement.
15202
15203         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
15204         after it is freed.
15205
15206 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15207
15208         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
15209         for invalid symbolic addresses.
15210         (s390_secondary_reload): Don't use s390_check_symref_alignment for
15211         larl operands.
15212
15213 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
15214
15215         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
15216         the argument in calls to fold_truth_not_expr.
15217
15218 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15219
15220         * tree.c (record_node_allocation_statistics): New function.
15221         (make_node_stat, copy_node_stat, build_string): Call it.
15222         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
15223         (build1_stat, build_omp_clause): Likewise.
15224
15225 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
15226
15227         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
15228         last commit.
15229
15230 2011-03-24  Richard Guenther  <rguenther@suse.de>
15231
15232         PR tree-optimization/48271
15233         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
15234         blocks that still exist.
15235
15236 2011-03-24  Richard Guenther  <rguenther@suse.de>
15237
15238         PR tree-optimization/48270
15239         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
15240         not free datarefs before ddrs.
15241
15242 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
15243
15244         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
15245         from the address built for a reference with variable offset.
15246
15247 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
15248
15249         PR target/48237
15250         * config/i386/i386.md (*movdf_internal_rex64): Do not split
15251         alternatives that can be handled with movq or movabsq insn.
15252         (*movdf_internal): Disable for !TARGET_64BIT.
15253         (*movdf_internal_nointeger): Ditto.
15254         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
15255
15256 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15257
15258         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
15259         (FUNCTION_ARG_ADVANCE): Likewise.
15260         * tm.texi.in: Change references to them to hook references.
15261         * tm.texi: Regenerate.
15262         * targhooks.c (default_function_arg): Eliminate check for target macro.
15263         (default_function_incoming_arg): Likewise.
15264         (default_function_arg_advance): Likewise.
15265         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
15266         (function_arg_advance): Likewise.
15267         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
15268
15269 2011-03-24  Richard Guenther  <rguenther@suse.de>
15270
15271         PR middle-end/48269
15272         * tree-object-size.c (addr_object_size): Do not double-account
15273         for MEM_REF offsets.
15274
15275 2011-03-24  Diego Novillo  <dnovillo@google.com>
15276
15277         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
15278         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
15279         (lto_input_data_block): Move from lto-opts.c.  Make extern.
15280         Update all users.
15281         (lto_input_string): Rename from input_string.  Make extern.
15282         Update all users.
15283         * lto-streamer-out.c (lto_output_string_with_length): Rename from
15284         output_string_with_length.
15285         Output 0 to indicate a non-NULL string.  Update all callers to
15286         not emit 0.
15287         (lto_output_string): Rename from output_string.  Make extern.
15288         Update all users.
15289         (lto_output_decl_state_streams): Make extern.
15290         (lto_output_decl_state_refs): Make extern.
15291         * lto-streamer.h (lto_input_string): Declare.
15292         (lto_input_data_block): Declare.
15293         (lto_output_string): Declare.
15294         (lto_output_string_with_length): Declare.
15295         (lto_output_decl_state_streams): Declare.
15296         (lto_output_decl_state_refs): Declare.
15297
15298 2011-03-24  Richard Guenther  <rguenther@suse.de>
15299
15300         PR tree-optimization/46562
15301         * tree.c (build_invariant_address): New function.
15302         * tree.h (build_invariant_address): Declare.
15303         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
15304         a renamed function moved ...
15305         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
15306         Take valueization callback parameter.
15307         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
15308         * gimple-fold.h: New file.
15309         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
15310         (ccp_fold, fold_const_aggregate_ref,
15311         fold_ctor_reference, fold_nonarray_ctor_reference,
15312         fold_array_ctor_reference, fold_string_cst_ctor_reference,
15313         get_base_constructor): Move ...
15314         * gimple-fold.c: ... here.
15315         (gimple_fold_stmt_to_constant_1): New function
15316         split out from ccp_fold.  Take a valueization callback parameter.
15317         Valueize all operands.
15318         (gimple_fold_stmt_to_constant): New wrapper function.
15319         (fold_const_aggregate_ref_1): New function split out from
15320         fold_const_aggregate_ref.  Take a valueization callback parameter.
15321         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
15322         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
15323         invariant POINTER_PLUS_EXPRs to invariant form.
15324         (vn_valueize): New function.
15325         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
15326         * tree-vrp.c (vrp_valueize): New function.
15327         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
15328         to fold statements to constants.
15329         * tree-ssa-pre.c (eliminate): Properly guard propagation of
15330         function declarations.
15331         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
15332         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
15333
15334 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
15335
15336         * config/h8300/predicates.md (jump_address_operand): Fix register
15337         mode check.
15338
15339 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
15340
15341         * doc/invoke.texi (max-stores-to-sink): Document.
15342         * params.h (MAX_STORES_TO_SINK): Define.
15343         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
15344         if either vectorization or if-conversion is disabled.
15345         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
15346         tree-vect-data-refs.c vect_equal_offsets.
15347         (dr_equal_offsets_p): New function.
15348         (find_data_references_in_bb): Remove static.
15349         * tree-data-ref.h (find_data_references_in_bb): Declare.
15350         (dr_equal_offsets_p): Likewise.
15351         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
15352         (vect_drs_dependent_in_basic_block): Update calls to
15353         vect_equal_offsets.
15354         (vect_check_interleaving): Likewise.
15355         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
15356         (cond_if_else_store_replacement): Rename to...
15357         (cond_if_else_store_replacement_1): ... this.  Change arguments and
15358         documentation.
15359         (cond_if_else_store_replacement): New function.
15360         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
15361         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
15362
15363 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
15364
15365         PR target/46934
15366         * config/arm/arm.md (casesi): Use the gen_int_mode() function
15367         to subtract lower bound instead of GEN_INT().
15368
15369 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
15370
15371         PR other/48179
15372         PR other/48221
15373         PR other/48234
15374         * doc/extend.texi (Alignment): Move section to match order in TOC.
15375         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
15376         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
15377
15378 2011-03-23  Jeff Law  <law@redhat.com>
15379
15380         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
15381         before removing the edge.
15382
15383         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
15384         it may have been freed by redirect_branch_edge or
15385         redirect_edge_succ_nodup.
15386
15387 2011-03-23  Richard Guenther  <rguenther@suse.de>
15388
15389         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
15390         (check_va_list_escapes): Likewise.
15391         (check_all_va_list_escapes): Likewise.
15392
15393 2011-03-23  Richard Guenther  <rguenther@suse.de>
15394
15395         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
15396         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
15397         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
15398         (alias.o): Likewise.
15399         (ipa-type-escape.o): Remove.
15400         (ipa-struct-reorg.o): Likewise.
15401         (GTFILES): Remove ipa-struct-reorg.c.
15402         * alias.c: Do not include ipa-type-escape.h.
15403         * tree-ssa-alias.c: Likewise.
15404         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
15405         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
15406         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
15407         and ipa-type-escape passes.
15408         * tree-pass.h (pass_ipa_type_escape): Remove.
15409         (pass_ipa_struct_reorg): Likewise.
15410         * ipa-struct-reorg.h: Remove.
15411         * ipa-struct-reorg.c: Likewise.
15412         * ipa-type-escape.h: Likewise.
15413         * ipa-type-escape.c: Likewise.
15414         * doc/invoke.texi (-fipa-struct-reorg): Remove.
15415         (--param struct-reorg-cold-struct-ratio): Likewise.
15416         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
15417         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
15418         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
15419
15420 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15421
15422         * config/s390/2084.md: Enable all insn reservations also for z9_ec
15423         cpu attribute value.
15424         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
15425         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
15426         * config/s390/s390.c (processor_flags_table): New constant array.
15427         (s390_handle_arch_option): Remove.
15428         (s390_handle_option): Remove s390_handle_arch_option invocations
15429         and OPT_mwarn_framesize_ handling.
15430         (s390_option_override): Remove s390_handle_arch_option invocation.
15431         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
15432         warnings.
15433         * config/s390/s390.md (cpu attribute): Add z9_ec value.
15434         * config/s390/s390.opt (s390_tune, s390_arch)
15435         (march=): Replace s390_arch_option enum and values with
15436         processor_type.  Set variable name to s390_arch.  Set
15437         initialization value.
15438         (mtune=): Replace s390_arch_option with processor_type.  Set
15439         variable name to s390_tune.  Set initialization value.
15440
15441 2011-03-23  Julian Brown  <julian@codesourcery.com>
15442
15443         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
15444         accesses which are not naturally aligned.
15445
15446 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
15447
15448         PR target/47553
15449         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
15450
15451 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
15452
15453         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
15454         parameter from "int" to "enum insn_code".
15455         (expand_operand_type): New enum.
15456         (expand_operand): New structure.
15457         (create_expand_operand): New function.
15458         (create_fixed_operand, create_output_operand): Likewise
15459         (create_input_operand, create_convert_operand_to): Likewise.
15460         (create_convert_operand_from, create_address_operand): Likewise.
15461         (create_integer_operand): Likewise.
15462         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
15463         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
15464         (expand_insn, expand_jump_insn): Likewise.
15465         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
15466         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
15467         (expand_movstr, expand_builtin___clear_cache): Likewise.
15468         (expand_builtin_lock_release): Likewise.
15469         * explow.c (allocate_dynamic_stack_space): Likewise.
15470         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
15471         and use the default handling in that case.
15472         * expmed.c (check_predicate_volatile_ok): Delete.
15473         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
15474         (emit_cstore): Likewise.
15475         * expr.c (emit_block_move_via_movmem): Likewise.
15476         (set_storage_via_setmem, expand_assignment): Likewise.
15477         (emit_storent_insn, try_casesi): Likewise.
15478         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
15479         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
15480         (expand_vec_shift_expr, expand_binop_directly): Likewise.
15481         (expand_twoval_unop, expand_twoval_binop): Likewise.
15482         (expand_unop_direct, emit_indirect_jump): Likewise.
15483         (emit_conditional_move, vector_compare_rtx): Likewise.
15484         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
15485         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
15486         (expand_sync_lock_test_and_set): Likewise.
15487         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
15488         (emit_unop_insn): Likewise.
15489         (expand_copysign_absneg): Change icode to an insn_code.
15490         (create_convert_operand_from_type): New function.
15491         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
15492         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
15493         (expand_insn, expand_jump_insn): Likewise.
15494         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
15495         than const_int_operand for operand 2.
15496
15497 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15498
15499         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
15500         if possible.
15501
15502 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15503
15504         * emit-rtl.c (emit_pattern_before_noloc): New function.
15505         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
15506         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
15507         (emit_pattern_after_noloc): New function.
15508         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
15509         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
15510
15511 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15512
15513         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
15514         (__ffsDI2): Likewise.
15515
15516 2011-03-22  Richard Henderson  <rth@redhat.com>
15517
15518         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
15519         of !TARGET_ABI_OPEN_VMS.
15520         (alpha_trampoline_init, alpha_start_function): Likewise.
15521         (alpha_expand_epilogue, alpha_file_start): Likewise.
15522         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
15523         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
15524         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
15525         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
15526         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
15527
15528 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15529
15530         * config/s390/s390-opts.h: New.
15531         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
15532         s390_arch_flags, s390_warn_framesize, s390_stack_size,
15533         s390_stack_guard): Remove.
15534         (s390_handle_arch_option): Return void.  Take enum
15535         s390_arch_option value instead of string and searching array.
15536         (s390_handle_option): Don't assert that global structures are in
15537         use.  Access variables via opts pointer.  Use error_at.  Don't use
15538         sscanf for -mstack-guard= or -mstack-size=.  Update call to
15539         s390_handle_arch_option.
15540         (s390_option_override): Update call to s390_handle_arch_option.
15541         (s390_emit_prologue): Use %d format for s390_stack_size in
15542         diagnostic.  Use %wd for HOST_WIDE_INT.
15543         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
15544         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
15545         * config/s390/s390.opt (config/s390/s390-opts.h): New
15546         HeaderInclude entry.
15547         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
15548         s390_arch_flags, s390_warn_framesize): New Variable entries.
15549         (s390_arch_option): New Enum and EnumValue entries.
15550         (march=): Use Enum instead of Var.
15551         (mstack-guard=, mstack-size=): Use UInteger and Var.
15552         (mtune=): Use Enum.
15553
15554 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15555
15556         * config/score/score.c (score_handle_option): Don't assert that
15557         global structures are in use.  Access target_flags via opts
15558         pointer.  Use value of -march= option to determine target_flags
15559         settings.
15560         * config/score/score.opt (march=): Use Enum.
15561         (score_arch): New Enum and EnumValue entries.
15562
15563 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15564
15565         * config/mep/mep.c (option_mtiny_specified): Remove.
15566         (mep_option_override): Move register handling for -mivc2 from
15567         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
15568         instead of option_mtiny_specified.
15569         (mep_handle_option): Access target_flags via opts pointer.  Don't
15570         assert that global structures are in use.  Defer part of -mivc2
15571         handling and move it to mep_option_override.
15572         * config/mep/mep.opt (IVC2): New Mask entry.
15573         (mivc2): Use Var and Defer instead of Mask.
15574
15575 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15576
15577         * config/v850/v850-opts.h: New.
15578         * config/v850/v850.c (small_memory): Replace with
15579         small_memory_physical_max array.  Make that array static const.
15580         (v850_handle_memory_option): Take integer value of argument.  Take
15581         gcc_options pointer, option text and location.  Return void.
15582         Update for changes to small memory structures.
15583         (v850_handle_option): Access target_flags via opts pointer.  Don't
15584         assert that global structures are in use.  Update calls to
15585         v850_handle_memory_option.
15586         (v850_encode_data_area): Update references to small memory settings.
15587         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
15588         (enum small_memory_type): Move to v850-opts.h.
15589         * config/v850/v850.opt (config/v850/v850-opts.h): New
15590         HeaderInclude entry.
15591         (small_memory_max): New Variable entry.
15592         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
15593         (mtda, mzda): Likewise.
15594
15595 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15596
15597         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
15598         pointer.  Don't assert that global structures are in use.
15599
15600 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15601
15602         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
15603         via opts pointer.  Don't assert that global structures are in use.
15604
15605 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15606
15607         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
15608         (munix=93): Use Var.
15609         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
15610         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
15611         * config/pa/pa-opts.h: New.
15612         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
15613         (pa_handle_option): Don't assert that global structures are in
15614         use.  Access target_flags via opts pointer.  Don't handle
15615         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
15616         OPT_munix_98 here.
15617         (pa_option_override): Handle deferred OPT_mfixed_range_.
15618
15619 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15620
15621         * config/mn10300/mn10300-opts.h: New.
15622         * config/mn10300/mn10300.c (mn10300_processor,
15623         mn10300_tune_string): Remove.
15624         (mn10300_handle_option): Don't assert that global structures are
15625         in use.  Access mn10300_processor via opts pointer.  Don't handle
15626         OPT_mtune_ here.
15627         * config/mn10300/mn10300.h (enum processor_type): Move to
15628         mn10300-opts.h.
15629         (mn10300_processor): Remove.
15630         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
15631         HeaderInclude entry.
15632         (mn10300_processor): New Variable entry.
15633         (mtune=): Use Var.
15634
15635 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15636
15637         * config/microblaze/microblaze.c: Don't include opts.h.
15638         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
15639         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
15640         (mno-clearbss): Use Var and Warn.
15641
15642 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15643
15644         * config/m32r/m32r-opts.h: New.
15645         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
15646         (m32r_handle_option): Don't assert that global structures are in
15647         use.  Access target_flags and m32r_cache_flush_func via opts
15648         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
15649         OPT_mno_flush_trap here.
15650         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
15651         include of m32r-opts.h.
15652         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
15653         HeaderInclude entry.
15654         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
15655         (mmodel=): Use Enum and Var.
15656         (m32r_model): New Enum and EnumValue entries.
15657         (mno-flush-trap): Use Var.
15658         (msdata=): Use Enum and Var.
15659         (m32r_sdata): New Enum and EnumValue entries.
15660
15661 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15662
15663         * config/m32c/m32c.c: Don't include opts.h.
15664         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
15665         m32c_handle_option): Remove.
15666         (m32c_option_override): Check global_options_set.x_target_memregs
15667         instead of target_memregs_set.
15668         * config/m32c/m32c.h (target_memregs): Remove.
15669         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
15670         variable.
15671
15672 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15673
15674         * config/iq2000/iq2000-opts.h: New.
15675         * config/iq2000/iq2000.c: Don't include opts.h.
15676         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
15677         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
15678         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
15679         HeaderInclude entry.
15680         (iq2000_tune): New Variable entry.
15681         (march=): Add comment.  Use Enum.
15682         (iq2000_arch): New Enum and EnumValue entries.
15683         (mcpu=): Use Enum and Var.
15684         (iq2000_tune): New Enum and EnumValue entries.
15685
15686 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15687
15688         * config/ia64/ia64-opts.h: New.
15689         * config/ia64/ia64.c (ia64_tune): Remove.
15690         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
15691         here.  Use error_at.
15692         (ia64_option_override): Handle deferred OPT_mfixed_range_.
15693         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
15694         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
15695         HeaderInclude entry.
15696         (ia64_tune): New Variable entry.
15697         (mfixed-range=): Use Defer and Var.
15698         (mtune=): Use Enum and Var.
15699         (ia64_tune): New Enum and EnumValue entries.
15700
15701 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15702
15703         * config/frv/frv-opts.h: New.
15704         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
15705         frv-opts.h.
15706         (frv_cpu_type): Remove.
15707         * config/frv/frv.c: Don't include opts.h.
15708         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
15709         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
15710         (frv_cpu_type): New Variable entry.
15711         (frv_cpu): New Enum and EnumValue entries.
15712
15713 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15714
15715         * config/cris/cris.c (cris_handle_option): Access target_flags via
15716         opts pointer.  Don't assert that global structures are in use.
15717         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
15718         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
15719
15720 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15721
15722         * config/bfin/bfin-opts.h: New.
15723         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
15724         bfin_si_revision, bfin_workarounds): Remove.
15725         (bfin_cpus): Make static const.
15726         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
15727         not bfin_lib_id_given.
15728         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
15729         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
15730         pointer. Use error_at.  Don't assert that global structures are in use.
15731         * config/bfin/bfin.h: Include bfin-opts.h.
15732         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
15733         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
15734         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
15735         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
15736         entries.
15737
15738 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15739
15740         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
15741         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
15742         or -msoft-float here.
15743         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
15744         -msoft-float and -mhard-float.
15745         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
15746         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
15747         msoft-float.
15748         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
15749         -msoft-float.
15750         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
15751         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
15752         not mhard-float.
15753         (LIBGCC_SPEC): Don't handle -msoft-float.
15754         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
15755         -mhard-float.
15756         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
15757         msoft-float.
15758         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
15759         -mfloat-abi=*, not -msoft-float and -mhard-float.
15760         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
15761         -msoft-float.
15762         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
15763         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
15764         mhard-float and msoft-float.
15765         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
15766         mfloat-abi=soft in comments, not mhard-float and msoft-float.
15767         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15768         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
15769         mhard-float.
15770         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
15771         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
15772         msoft-float.
15773         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
15774         not mhard-float.
15775         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
15776         not msoft-float.
15777
15778 2011-03-22  Richard Henderson  <rth@redhat.com>
15779
15780         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
15781         TARGET_ABI_WINDOWS_NT.
15782         (alpha_output_function_end_prologue): Likewise.
15783         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
15784         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
15785         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
15786         (trap, *movsi_nt_vms): Likewise.
15787         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
15788         (*tablejump_osf_nt_internal): Remove.
15789         * config/alpha/predicates.md (input_operand): Only test Pmode.
15790
15791 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15792
15793         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
15794         via opts pointer.  Use error_at.  Don't assert that global
15795         structures are in use.
15796
15797 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15798
15799         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
15800         (ix86_handle_option): Access ix86_isa_flags and
15801         ix86_isa_flags_explicit via opts pointer.  Don't assert that
15802         global structures are in use.
15803         (ix86_function_specific_save, ix86_function_specific_restore):
15804         Update ix86_isa_flags_explicit field name.
15805         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
15806         (ix86_isa_flags_explicit): Rename TargetSave entry to
15807         x_ix86_isa_flags_explicit.
15808
15809 2011-03-22  Richard Henderson  <rth@redhat.com>
15810
15811         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
15812         (alpha_option_override, direct_return): Likewise.
15813         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
15814         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
15815         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
15816         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
15817         (alpha_expand_epilogue, alpha_end_function): Likewise.
15818         (alpha_init_libfuncs): Likewise.
15819         (struct machine_function): Remove unicosmk members.
15820         (print_operand) ['t']: Remove.
15821         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
15822         unicosmk_output_module_name, unicosmk_output_common,
15823         current_section_align, unicosmk_output_text_section_asm_op,
15824         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
15825         unicosmk_section_type_flags, unicosmk_unique_section,
15826         unicosmk_asm_named_section, unicosmk_insert_attributes,
15827         unicosmk_output_align, unicosmk_defer_case_vector,
15828         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
15829         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
15830         unicosmk_output_ssib, unicosmk_add_call_info_word,
15831         unicosmk_extern_head, unicosmk_output_default_externs,
15832         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
15833         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
15834         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
15835         * config/alpha/alpha-protos.h: Update.
15836         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
15837         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
15838         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
15839         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
15840         (*mulsi_se, mulvsi3): Likewise.
15841         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
15842         (*divmodsi_internal, call, call_value, realign): Likewise.
15843         (moddi3, umoddi3): Likewise; remove duplicate expander.
15844         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
15845         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
15846         (*movdi_nofix): Remove r/U alternative.
15847         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
15848         * config/alpha/constraints.md ("U"): Remove.
15849         * config/alpha/predicates.md (call_operand"): Don't test
15850         TARGET_ABI_UNICOSMK.
15851
15852 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15853
15854         * target.def (handle_option): Take gcc_options and
15855         cl_decoded_option pointers and location_t.
15856         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
15857         * doc/tm.texi: Regenerate.
15858         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
15859         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
15860         * lto-opts.c (lto_reissue_options): Generate option structure for
15861         targetm.handle_option call.
15862         * opts.c (target_handle_option): Update call to
15863         targetm.handle_option.  Remove assertions about values now passed
15864         down to hook.
15865         * targhooks.c (default_target_handle_option): New.
15866         * targhooks.h (default_target_handle_option): Declare.
15867         * config/alpha/alpha.c: Include opts.h.
15868         (alpha_handle_option): Update to new hook interface.
15869         * config/arm/arm.c: Include opts.h.
15870         (arm_handle_option): Update to new hook interface.
15871         * config/arm/t-arm (arm.o): Update dependencies.
15872         * config/bfin/bfin.c: Include opts.h.
15873         (bfin_handle_option): Update to new hook interface.
15874         * config/cris/cris.c: Include opts.h.
15875         (cris_handle_option): Update to new hook interface.
15876         * config/frv/frv.c: Include opts.h.
15877         (frv_handle_option): Update to new hook interface.
15878         * config/i386/i386.c: Include opts.h.
15879         (ix86_handle_option): Update to new hook interface.
15880         (ix86_valid_target_attribute_inner_p): Generate option structure
15881         for call to ix86_handle_option.
15882         * config/i386/t-i386 (i386.o): Update dependencies.
15883         * config/ia64/ia64.c: Include opts.h.
15884         (ia64_handle_option): Update to new hook interface.
15885         * config/ia64/t-ia64 (ia64.o): Update dependencies.
15886         * config/iq2000/iq2000.c: Include opts.h.
15887         (iq2000_handle_option): Update to new hook interface.
15888         * config/m32c/m32c.c: Include opts.h.
15889         (m32c_handle_option): Update to new hook interface.
15890         * config/m32r/m32r.c: Include opts.h.
15891         (m32r_handle_option): Update to new hook interface.
15892         * config/m68k/m68k.c: Include opts.h.
15893         (m68k_handle_option): Update to new hook interface.
15894         * config/mep/mep.c: Include opts.h.
15895         (mep_handle_option): Update to new hook interface.
15896         * config/microblaze/microblaze.c: Include opts.h.
15897         (microblaze_handle_option): Update to new hook interface.
15898         * config/mips/mips.c: Include opts.h.
15899         (mips_handle_option): Update to new hook interface.
15900         * config/mn10300/mn10300.c: Include opts.h.
15901         (mn10300_handle_option): Update to new hook interface.
15902         * config/pa/pa.c: Include opts.h.
15903         (pa_handle_option): Update to new hook interface.
15904         * config/pdp11/pdp11.c: Include opts.h.
15905         (pdp11_handle_option): Update to new hook interface.
15906         * config/rs6000/rs6000.c: Include opts.h.
15907         (rs6000_handle_option): Update to new hook interface.
15908         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
15909         * config/rx/rx.c: Include opts.h.
15910         (rx_handle_option): Update to new hook interface.
15911         * config/s390/s390.c: Include opts.h.
15912         (s390_handle_option): Update to new hook interface.
15913         * config/score/score.c: Include opts.h.
15914         (score_handle_option): Update to new hook interface.
15915         * config/sh/sh.c: Include opts.h.
15916         (sh_handle_option): Update to new hook interface.
15917         * config/sparc/sparc.c: Include opts.h.
15918         (sparc_handle_option): Update to new hook interface.
15919         * config/v850/v850.c: Include opts.h.
15920         (v850_handle_option): Update to new hook interface.
15921
15922 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15923
15924         * gcc.c (driver_unknown_option_callback): Only permit and save
15925         unknown -Wno- options.
15926         (driver_wrong_lang_callback): Save options directly instead of via
15927         driver_unknown_option_callback.
15928
15929 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
15930
15931         * combine.c (simplify_set): Try harder to find the best CC mode when
15932         simplifying a nested COMPARE on the RHS.
15933
15934 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15935
15936         * config/alpha/gnu.h: Remove.
15937         * config/arc: Remove directory.
15938         * config/arm/netbsd.h: Remove.
15939         * config/arm/t-pe: Remove.
15940         * config/crx: Remove directory.
15941         * config/i386/netbsd.h: Remove.
15942         * config/m68hc11: Remove directory.
15943         * config/m68k/uclinux-oldabi.h: Remove.
15944         * config/mcore/mcore-pe.h: Remove.
15945         * config/mcore/t-mcore-pe: Remove.
15946         * config/netbsd-aout.h: Remove.
15947         * config/rs6000/gnu.h: Remove.
15948         * config/sh/sh-symbian.h: Remove.
15949         * config/sh/symbian-base.c: Remove.
15950         * config/sh/symbian-c.c: Remove.
15951         * config/sh/symbian-cxx.c: Remove.
15952         * config/sh/symbian-post.h: Remove.
15953         * config/sh/symbian-pre.h: Remove.
15954         * config/sh/t-symbian: Remove.
15955         * config/svr3.h: Remove.
15956         * config/vax/netbsd.h: Remove.
15957         * config.build: Don't handle i[34567]86-*-pe.
15958         * config.gcc: Remove handling of deprecations for most deprecated
15959         targets.
15960         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
15961         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
15962         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
15963         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
15964         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
15965         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
15966         Remove cases.
15967         * config.host: Don't handle i[34567]86-*-pe.
15968         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
15969         (ASM_SPEC32): Don't handle -mcall-gnu.
15970         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
15971         -mcall-gnu.
15972         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
15973         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
15974         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
15975         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
15976         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
15977         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
15978         conditional on SYMBIAN.
15979         * configure.ac: Don't handle powerpc*-*-gnu*.
15980         * configure: Regenerate.
15981         * doc/extend.texi (interrupt attribute): Don't mention CRX.
15982         * doc/install-old.texi (m6811, m6812): Don't mention.
15983         * doc/install.texi (arc-*-elf*): Don't document multilib option.
15984         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
15985         (m68k-uclinuxoldabi): Don't mention.
15986         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
15987         Remove.
15988         (-mcall-gnu): Remove.
15989         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
15990         families): Remove constraint documentation.
15991
15992 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
15993
15994         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
15995         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
15996         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
15997
15998 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
15999
16000         PR target/48226
16001         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
16002         vector when peeking at the next token for vector, don't expand the
16003         keywords.
16004
16005 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
16006
16007         * config/avr/avr-protos.h (expand_epilogue): Change prototype
16008         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
16009         * config/avr/avr.c (init_cumulative_args)
16010         (avr_function_arg_advance): Use it.
16011         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
16012         sibcall epilogues.
16013         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
16014         (avr_function_ok_for_sibcall): ...this new function.
16015         (avr_lookup_function_attribute1): New static Function.
16016         (avr_naked_function_p, interrupt_function_p)
16017         (signal_function_p, avr_OS_task_function_p)
16018         (avr_OS_main_function_p): Use it.
16019         * config/avr/avr.md ("sibcall", "sibcall_value")
16020         ("sibcall_epilogue"): New expander.
16021         ("*call_insn", "*call_value_insn"): New insn.
16022         ("call_insn", "call_value_insn"): Remove
16023         ("call", "call_value", "epilogue"): Change expander to handle
16024         sibling calls.
16025
16026 2011-03-21  Nick Clifton  <nickc@redhat.com>
16027
16028         * doc/invoke.texi (Overall Options): Move closing brace to end of
16029         options list.
16030         (Optimization Options): Add missing @gol.
16031         (Directory Options): Likewise.
16032         (i386 and x86-64 Options): Likewise.
16033         (RS6000 and PowerPC Options): Likewise.
16034         (i386 and x86-64 Windows Options): Likewise.
16035         (V850 Options): Add text missing from descriptions.
16036
16037 2011-03-22  Richard Henderson  <rth@redhat.com>
16038
16039         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
16040         (avr_incoming_return_addr_rtx): New.
16041         (emit_push_byte): New.
16042         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
16043         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
16044         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
16045         (emit_pop_byte): New.
16046         (expand_epilogue): Use it.  Pop frame pointer by bytes.
16047         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
16048         (INCOMING_RETURN_ADDR_RTX): New.
16049         (INCOMING_FRAME_SP_OFFSET): New.
16050         (ARG_POINTER_CFA_OFFSET): New.
16051         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
16052         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
16053         (pophi): Remove.
16054
16055         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
16056
16057 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
16058
16059         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
16060         (FUNCTION_ARG_ADVANCE): Likewise.
16061         * tm.texi.in: Change references to them to hook references.
16062         * tm.texi: Regenerate.
16063         * targhooks.c (default_function_arg): Eliminate check for target
16064         macro.
16065         (default_function_incoming_arg): Likewise.
16066         (default_function_arg_advance): Likewise.
16067         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
16068         (function_arg_advance): Likewise.
16069         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
16070
16071 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
16072
16073         * tree.c (build_call_1): New function.
16074         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
16075
16076 2011-03-22  Richard Guenther  <rguenther@suse.de>
16077
16078         PR tree-optimization/48228
16079         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
16080         for single-arg PHIs.
16081
16082 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
16083
16084         PR rtl-optimization/48143
16085         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
16086         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
16087         sse2_cvtps2pd): Likewise.
16088
16089 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16090
16091         * recog.c (canonicalize_change_group): Use validate_unshare_change.
16092
16093 2011-03-22  Richard Guenther  <rguenther@suse.de>
16094
16095         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
16096         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
16097         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
16098         and REALIGN_LOAD_EXPR.
16099         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
16100         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
16101         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
16102         DOT_PROD_EXPR case ...
16103         (expand_expr_real_2): ... here.
16104         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
16105         and REALIGN_LOAD_EXPR.
16106         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
16107         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
16108         (vect_create_epilog_for_reduction): Likewise.
16109         (vectorizable_reduction): Likewise.
16110         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
16111         * tree-vect-stmts.c (vectorizable_load): Likewise.
16112
16113 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
16114
16115         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
16116
16117 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16118
16119         * config/s390/s390.c (s390_delegitimize_address): Fix offset
16120         handling for PLTOFF/GOTOFF.
16121
16122 2011-03-22  Nick Clifton  <nickc@redhat.com>
16123
16124         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
16125         trailing backslash from the end of the macro definition.
16126
16127 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16128
16129         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
16130         and PLT unspecs.
16131
16132 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
16133
16134         * expr.h (prepare_operand): Move to...
16135         * optabs.h (prepare_operand): ...here and change the insn code
16136         parameter from "int" to "enum insn_code".
16137         (insn_operand_matches): Declare.
16138         * expr.c (init_expr_target): Use insn_operand_matches.
16139         (compress_float_constant): Likewise.
16140         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
16141         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
16142         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
16143         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
16144         Likewise.
16145         (gen_cond_trap): Likewise.
16146         (prepare_operand): Likewise.  Change icode to an insn_code.
16147         (insn_operand_matches): New function.
16148         * reload.c (find_reloads_address_1): Use insn_operand_matches.
16149         * reload1.c (gen_reload): Likewise.
16150         * targhooks.c (default_secondary_reload): Likewise.
16151
16152 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
16153
16154         * config/alpha/alpha.md (unspec): New define_c_enum.
16155         (unspecv): Ditto.
16156
16157 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
16158
16159         PR debug/48214
16160         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
16161         between a call and its CALL_ARG_LOCATION note.
16162
16163 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
16164
16165         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
16166
16167 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
16168
16169         PR c/42544
16170         PR c/48197
16171         * c-common.c (shorten_compare): If primopN is first sign-extended
16172         to opN and then zero-extended to result type, set primopN to opN.
16173
16174 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
16175
16176         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
16177         for barrier handlers.
16178
16179 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
16180
16181         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
16182         UNSPEC constants to be in the unspec enumeration, and redefine
16183         all UNSPECV constants to be in the unspecv enumeration, so that
16184         dumps print which unspec/unspec_volatile this is.
16185         * config/rs6000/vector.md (UNSPEC_*): Ditto.
16186         * config/rs6000/paired.md (UNSPEC_*): Ditto.
16187         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
16188         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
16189         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
16190
16191         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
16192         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
16193         UNSPECV_LWSYNC, since these are used as unspec_volatile.
16194         * config/rs6000/sync.md (isync, lwsync): Ditto.
16195
16196 2011-03-21  Richard Guenther  <rguenther@suse.de>
16197
16198         * params.def (lto-min-partition): Fix typo.
16199
16200 2011-03-21  Richard Guenther  <rguenther@suse.de>
16201
16202         PR c/47939
16203         * c-decl.c (grokdeclarator): Drop to the main variant only
16204         for array types.  Drop flag_gen_aux_info check.
16205
16206 2011-03-21  Richard Guenther  <rguenther@suse.de>
16207
16208         PR translation/47911
16209         * params.def (lto-partitions): Fix typo.
16210         (lto-min-partition): Fix wording.
16211
16212 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
16213
16214         * config/rs6000/t-freebsd: Remove duplication from file.
16215
16216 2011-03-21  Richard Guenther  <rguenther@suse.de>
16217
16218         PR middle-end/47661
16219         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
16220
16221 2011-03-21  Richard Guenther  <rguenther@suse.de>
16222
16223         PR lto/48210
16224         * params.def (lto-partitions): Require at least 1 partition.
16225
16226 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16227
16228         * gthr-solaris.h: Remove.
16229         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
16230         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
16231         (LIB_SPEC): Likewise.
16232         * config/sol2.opt (threads): Remove.
16233         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
16234         (sparc*-*-solaris2*): Likewise.
16235         * configure.ac (enable_threads): Enable solaris support.
16236         * configure: Regenerate.
16237         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
16238         * doc/install.texi (Configuration, --enable-threads=lib): Remove
16239         solaris.
16240
16241 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16242
16243         * config.gcc: Obsolete *-*-solaris2.8*.
16244         * doc/install.texi (Specific, *-*-solaris2*): Document it.
16245
16246 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16247
16248         PR bootstrap/48135
16249         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
16250         reference.  Solaris 8 perl works.
16251
16252 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16253
16254         PR bootstrap/48135
16255         * doc/install.texi (Prerequisites): Move jar etc. up.
16256         Explain support library version requirements.
16257
16258 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16259
16260         PR bootstrap/48135
16261         * doc/install.texi (Prerequisites): Move Perl to build
16262         requirements.  Always necessary on Solaris 2 with Sun ld.
16263
16264 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16265
16266         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
16267         binutils 2.21.
16268         (Specific, i?86-*-solaris2.[89]): Likewise.
16269         (Specific, i?86-*-solaris2.10): Likewise.
16270         (Specific, mips-sgi-irix6): Likewise.
16271         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
16272         Update for binutils 2.21.
16273
16274 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16275
16276         * configure.ac (gcc_cv_lto_plugin): Fix typo.
16277         Allow -fuse-linker-plugin for non-default plugin linker.
16278         * configure: Regenerate.
16279
16280 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
16281
16282         PR bootstrap/48167
16283         * gengtype.c (files_rules): Added rule for cp/parser.h.
16284
16285 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
16286
16287         PR target/48213
16288         * config/s390/s390.c (s390_delegitimize_address): Don't call
16289         lowpart_subreg if orig_x has BLKmode.
16290
16291 2011-03-21  Kai Tietz  <ktietz@redhat.com>
16292
16293         PR target/12171
16294         * doc/plugins.texi: Adjust documentation for plugin register_callback.
16295         * tree.h (attribute_spec): Add new member affects_type_identity.
16296         * attribs.c (empty_attribute_table): Adjust attribute_spec
16297         initializers.
16298         * config/alpha/alpha.c: Likewise.
16299         * config/arc/arc.c: Likewise.
16300         * config/arm/arm.c: Likewise.
16301         * config/avr/avr.c: Likewise.
16302         * config/bfin/bfin.c: Likewise.
16303         * config/crx/crx.c: Likewise.
16304         * config/darwin.h: Likewise.
16305         * config/h8300/h8300.c: Likewise.
16306         * config/i386/cygming.h: Likewise.
16307         * config/i386/i386.c: Likewise.
16308         * config/ia64/ia64.c: Likewise.
16309         * config/m32c/m32c.c: Likewise.
16310         * config/m32r/m32r.c: Likewise.
16311         * config/m68hc11/m68hc11.c: Likewise.
16312         * config/m68k/m68k.c: Likewise.
16313         * config/mcore/mcore.c: Likewise.
16314         * config/mep/mep.c: Likewise.
16315         * config/microblaze/microblaze.c: Likewise.
16316         * config/mips/mips.c: Likewise.
16317         * config/rs6000/rs6000.c: Likewise.
16318         * config/rx/rx.c: Likewise.
16319         * config/sh/sh.c: Likewise.
16320         * config/sol2.h: Likewise.
16321         * config/sparc/sparc.c: Likewise.
16322         * config/spu/spu.c: Likewise.
16323         * config/stormy16/stormy16.c: Likewise.
16324         * config/v850/v850.c: Likewise.
16325
16326 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
16327
16328         * simplify-rtx.c (simplify_binary_operation_1): Handle
16329         (xor (and A B) C) case when B and C are both constants.
16330
16331 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
16332
16333         * tree-dfa.c (add_referenced_var): Fix typo in comment.
16334
16335 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
16336
16337         PR bootstrap/48168
16338         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
16339
16340 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
16341
16342         PR rtl-optimization/48156
16343         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
16344         assume df and df_lr are not NULL.
16345
16346 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16347
16348         PR debug/48023
16349         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
16350         between a call and its CALL_ARG_LOCATION note.
16351
16352 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
16353
16354         PR debug/48178
16355         * config/sh/sh.c (find_barrier): Don't emit a constant pool
16356         between a call and its corresponding CALL_ARG_LOCATION note.
16357
16358 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
16359
16360         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
16361         instead of loop. Use HARD_REGISTER_NUM_P predicate.
16362         * haifa-sched.c (setup_ref_regs): Ditto.
16363         * caller-save.c (add_used_regs_1): Ditto.
16364         * dse.c (look_for_hardregs): Ditto.
16365         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
16366         * sched-rgn.c (check_live_1): Ditto.
16367
16368 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
16369
16370         * c-decl.c (diagnose_mismatched_decls): Give an error for
16371         redefining a typedef with variably modified type.
16372
16373 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
16374
16375         * c-decl.c (grokfield): Don't allow typedefs for structures or
16376         unions with no tag by default.
16377         * doc/extend.texi (Unnamed Fields): Update.
16378
16379 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
16380
16381         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
16382         Rewrite using indirect functions.
16383         (lwp_slwpcb): Ditto.
16384         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
16385         (avx_vinsertf128<mode>): Ditto.
16386
16387 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16388
16389         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
16390         unspecs.
16391
16392 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16393
16394         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
16395         splitting between a call and its corresponding CALL_ARG_LOCATION note.
16396
16397 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16398
16399         PR rtl-optimization/48170
16400         * gcse.c (hoist_code): Remove bogus asserts.
16401
16402 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
16403
16404         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
16405         computation for prologue/epilogue.
16406
16407 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16408
16409         * Makefile.in (check-consistency): Remove.
16410
16411 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
16412
16413         PR debug/48176
16414         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
16415         arange_table_in_use is 0, but either text_section_used or
16416         cold_text_section_used is true.  Don't call it if
16417         !info_section_emitted.
16418
16419 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
16420
16421         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
16422         FUNCTION_VALUE_REGNO_P): Remove.
16423         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
16424         Remove.
16425         * config/avr/avr.c (avr_ret_register): Make static inline.
16426         (avr_function_value_regno_p): New function.
16427         (avr_libcall_value): Make static. Add 'func' argument.
16428         (avr_function_value): Make static. Rename 'func' argument to
16429         'fn_decl_or_type', forward it to avr_libcall_value. Call
16430         avr_ret_register function instead of RET_REGISTER macro.
16431         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
16432
16433 2011-03-18  Jason Merrill  <jason@redhat.com>
16434
16435         PR c++/23372
16436         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
16437
16438 2011-03-18  Richard Guenther  <rguenther@suse.de>
16439
16440         * doc/install.texi (--enable-gold): Remove.
16441         (--with-plugin-ld): Document.
16442         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
16443
16444 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
16445
16446         PR middle-end/47790
16447         * expr.c (optimize_bitfield_assignment_op): Revamp to work
16448         again after expansion changes.
16449
16450 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
16451
16452         * combine.c (try_combine): Do simplification only call of
16453         subst() on i2 even when i1 is present. Update comments.
16454
16455 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16456
16457         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
16458         and UNSPEC_PCREL_SYMOFF.
16459
16460 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16461
16462         * config/s390/s390.md: Use define_c_enum for the unspec constant
16463         definitions.
16464
16465 2011-03-18  Richard Henderson  <rth@redhat.com>
16466             Jakub Jelinek  <jakub@redhat.com>
16467
16468         PR bootstrap/48161
16469         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
16470         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
16471
16472 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16473
16474         PR middle-end/47725
16475         * combine.c (cant_combine_insn_p): Don't check zero/sign
16476         extended hard registers.
16477
16478 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16479
16480         PR middle-end/47725
16481         * combine.c (cant_combine_insn_p): Check zero/sign extended
16482         hard registers.
16483
16484 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
16485
16486         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16487         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
16488         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
16489         Change return type to bool.
16490         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16491
16492 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16493
16494         PR debug/48163
16495         * var-tracking.c (prepare_call_arguments): If CALL target
16496         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
16497         pc instead of looking it up using cselib_lookup and use
16498         Pmode for it if x has VOIDmode.
16499         * dwarf2out.c (gen_subprogram_die): If also both first and
16500         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
16501
16502         PR debug/48163
16503         * function.c (assign_parms): For data.passed_pointer parms
16504         use MEM of data.entry_parm instead of data.entry_parm itself
16505         as DECL_INCOMING_RTL.
16506         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
16507         also when passed and declared mode is the same, DECL_RTL
16508         is a MEM with pseudo as address and DECL_INCOMING_RTL is
16509         a MEM too.
16510
16511 2011-03-16  Jeff Law  <law@redhat.com>
16512
16513         PR rtl-optimization/37273
16514         * ira-costs.c (scan_one_insn): Detect constants living in memory and
16515         handle them like argument loads from stack slots.  Do not double
16516         count memory for memory constants and argument loads from stack slots.
16517
16518 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16519
16520         PR debug/48160
16521         * var-tracking.c (prepare_call_arguments): Check SUBREG.
16522
16523 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16524
16525         PR target/48171
16526         * config/i386/i386.opt: Add Save to -mavx and -mfma.
16527
16528 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16529
16530         PR bootstrap/48153
16531         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
16532         if dwarf_strict.
16533         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
16534         Clear call_arg_locations and call_arg_loc_last always.
16535
16536         PR middle-end/48152
16537         * var-tracking.c (prepare_call_arguments): If argument needs to be
16538         passed by reference, adjust argtype and mode.
16539
16540 2011-03-17  Richard Guenther  <rguenther@suse.de>
16541
16542         PR middle-end/48134
16543         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
16544         a value make sure to fold the statement.
16545
16546 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
16547
16548         PR target/43872
16549         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
16550         return condition with !cfun->calls_alloca.
16551
16552 2011-03-17  Richard Guenther  <rguenther@suse.de>
16553
16554         PR bootstrap/48148
16555         * lto-cgraph.c (input_overwrite_node): Clear the abstract
16556         origin for decls in other ltrans units.
16557         (input_varpool_node): Likewise.
16558
16559 2011-03-17  Richard Guenther  <rguenther@suse.de>
16560
16561         PR middle-end/48165
16562         * tree-object-size.c (compute_object_offset): Properly return
16563         the offset operand of MEM_REFs as sizetype.
16564
16565 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16566
16567         PR rtl-optimization/48141
16568         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
16569         * dse.c: Include params.h.
16570         (active_local_stores_len): New variable.
16571         (add_wild_read, dse_step1): Clear it when setting active_local_stores
16572         to NULL.
16573         (record_store, check_mem_read_rtx): Decrease it when removing
16574         from the chain.
16575         (scan_insn): Likewise.  Increase it when adding to chain, if it
16576         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
16577         set active_local_stores to NULL before the addition.
16578         * Makefile.in (dse.o): Depend on $(PARAMS_H).
16579
16580         PR rtl-optimization/48141
16581         * dse.c (record_store): If no positions are needed in an insn
16582         that cannot be deleted, at least unchain it from active_local_stores.
16583
16584 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
16585
16586         PR debug/47510
16587         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
16588         (lookup_type_die_strip_naming_typedef): ... here.
16589         (get_context_die): Use it.
16590         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
16591         the anonymous struct named by the naming typedef.
16592
16593 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
16594
16595         PR target/48154
16596         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
16597         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
16598
16599 2011-03-16  Jeff Law  <law@redhat.com>
16600
16601         * tree-vrp.c (identify_jump_threads): Slightly simplify type
16602         check for operands of conditional.  Allow type to be a pointer.
16603
16604 2011-03-16  Richard Guenther  <rguenther@suse.de>
16605
16606         PR tree-optimization/48149
16607         * fold-const.c (fold_binary_loc): Fold
16608         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
16609
16610 2011-03-16  Richard Guenther  <rguenther@suse.de>
16611
16612         PR tree-optimization/26134
16613         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
16614         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
16615         (non_rewritable_mem_ref_base): Handle complex type component
16616         accesses, constrain offsets for vector and complex extracts
16617         more properly.
16618
16619 2011-03-16  Richard Guenther  <rguenther@suse.de>
16620
16621         PR tree-optimization/48146
16622         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
16623         operands avoiding the need for renaming.
16624
16625 2011-03-16  Richard Guenther  <rguenther@suse.de>
16626
16627         * gimple-fold.c (maybe_fold_reference): Open-code relevant
16628         constant folding.  Move MEM_REF canonicalization first.
16629         Rely on fold_const_aggregate_ref for initializer folding.
16630         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
16631
16632 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
16633
16634         PR middle-end/48136
16635         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16636         arg0/arg1 or their arguments are always fold converted to matching
16637         types.
16638
16639         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
16640         to nargs.
16641
16642 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16643
16644         PR lto/46944
16645         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
16646         Handle in-tree gold.
16647         (ld_vers): Extract binutils version for gold.
16648         (gcc_cv_ld_hidden): Handle gold here.
16649         (gcc_cv_lto_plugin): Determine level of linker plugin support.
16650         * configure: Regenerate.
16651         * config.in: Regenerate.
16652         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
16653         -fuse-linker-plugin otherwise.
16654         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
16655         (LINK_COMMAND_SPEC): Use it.
16656         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
16657
16658 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
16659
16660         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
16661         * calls.c: Remove debug.h include.
16662         (emit_call_1): Don't call virtual_call_token debug hook.
16663         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
16664         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
16665         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
16666         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
16667         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
16668         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
16669         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
16670         dwarf2out_virtual_call): Remove.
16671         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
16672         copy_call_info and virtual_call hooks.
16673         (dwarf2out_init): Don't initialize vcall_insn_table,
16674         debug_dcall_section and debug_vcall_section.
16675         (prune_unused_types): Don't mark nodes from dcall_table.
16676         (dwarf2out_finish): Don't output dcall or vcall tables.
16677         * final.c (final_scan_insn): Don't call direct_call or
16678         virtual_call debug hooks.
16679         * debug.h (struct gcc_debug_hooks): Remove direct_call,
16680         virtual_call_token, copy_call_info and virtual_call hooks.
16681         (debug_nothing_uid): Remove prototype.
16682         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
16683         copy_call_info and virtual_call hooks.
16684         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
16685         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
16686         * debug.c (do_nothing_debug_hooks): Likewise.
16687         (debug_nothing_uid): Remove.
16688         * doc/invoke.texi (-fenable-icf-debug): Remove.
16689         * common.opt (-fenable-icf-debug): Likewise.
16690
16691         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
16692         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
16693         call's MEM.  Handle functions returning aggregate through a hidden
16694         first pointer.  For virtual calls add clobbered pc to call arguments
16695         chain.
16696         * dwarf2out.c (gen_subprogram_die): Emit
16697         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
16698         can't be emitted.
16699
16700         PR debug/45882
16701         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
16702         * rtl.h (ENTRY_VALUE_EXP): Define.
16703         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
16704         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
16705         * print-rtl.c (print_rtx): Likewise.
16706         * gengtype.c (adjust_field_rtx_def): Likewise.
16707         * var-tracking.c (vt_add_function_parameter): Adjust
16708         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
16709         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
16710         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
16711         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
16712         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
16713
16714         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
16715         Call var_location debug hook even on CALL_INSNs.
16716         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
16717         * rtl.def (ENTRY_VALUE): New.
16718         * dwarf2out.c: Include cfglayout.h.
16719         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
16720         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
16721         (struct call_arg_loc_node): New type.
16722         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
16723         tail_call_site_count): New variables.
16724         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
16725         DW_TAG_GNU_call_site_parameter.
16726         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
16727         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
16728         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
16729         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
16730         and DW_AT_GNU_all_source_call_sites.
16731         (mem_loc_descriptor): Handle ENTRY_VALUE.
16732         (add_src_coords_attributes): Don't add enything if
16733         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
16734         (dwarf2out_abstract_function): Save and clear call_arg_location,
16735         call_site_count and tail_call_site_count around dwarf2out_decl call.
16736         (gen_call_site_die): New function.
16737         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
16738         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
16739         (dwarf2out_function_decl): Clear call_arg_locations,
16740         call_arg_loc_last, set call_site_count and tail_call_site_count
16741         to -1 and free block_map.
16742         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
16743         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
16744         followed by any real instructions.
16745         (dwarf2out_begin_function): Set call_site_count and
16746         tail_call_site_count to 0.
16747         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
16748         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
16749         attempt to force a DIE for it and worst case remove the attribute.
16750         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
16751         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
16752         the decl itself.
16753         * var-tracking.c: Include tm_p.h.
16754         (vt_stack_adjustments): For calls call note_register_arguments.
16755         (argument_reg_set): New variable.
16756         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
16757         ensure the VALUE is resolved.
16758         (call_arguments): New variable.
16759         (prepare_call_arguments): New function.
16760         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
16761         (struct expand_loc_callback_data): Add ignore_cur_loc field.
16762         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
16763         always use the best expression.
16764         (vt_expand_loc): Add ignore_cur_loc argument.
16765         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
16766         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
16767         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
16768         note for all calls.
16769         (vt_add_function_parameter): Use cselib_lookup_from_insn.
16770         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
16771         argument.  Don't call cselib_preserve_only_values and
16772         cselib_reset_table.
16773         (note_register_arguments): New function.
16774         (vt_initialize): Compute argument_reg_set.  Call
16775         vt_add_function_parameters before processing basic blocks instead of
16776         afterwards.  For calls call prepare_call_arguments before calling
16777         cselib_process_insn.
16778         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
16779         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
16780         (var-tracking.o): Depend on $(TM_P_H).
16781         * cfglayout.h (insn_scope): New prototype.
16782         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
16783         * cfglayout.c (insn_scope): No longer static.
16784         * insn-notes.def (CALL_ARG_LOCATION): New.
16785         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
16786         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
16787         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
16788         nothing for DECL_EXTERNAL BLOCK_VARS.
16789
16790 2011-03-16  Alan Modra  <amodra@gmail.com>
16791
16792         PR target/45844
16793         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
16794         create invalid offset address for vsx splat insn.
16795         * config/rs6000/predicates.md (splat_input_operand): New.
16796         * config/rs6000/vsx.md (vsx_splat_*): Use it.
16797
16798 2011-03-15  Xinliang David Li  <davidxl@google.com>
16799
16800         PR c/47837
16801         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
16802         (normalize_preds): New function.
16803         (is_use_properly_guarded): Normalize def predicates.
16804
16805 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16806
16807         PR target/46788
16808         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
16809         in the output template.
16810
16811 2011-03-15  Richard Guenther  <rguenther@suse.de>
16812
16813         PR middle-end/47650
16814         * tree-pretty-print.c (dump_function_declaration): Properly
16815         dump unprototyped and varargs function types.
16816
16817 2011-03-15  Richard Guenther  <rguenther@suse.de>
16818
16819         PR tree-optimization/13954
16820         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
16821         and friends.
16822
16823 2011-03-15  Richard Guenther  <rguenther@suse.de>
16824
16825         PR tree-optimization/48037
16826         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
16827         selects into BIT_FIELD_REFs.
16828         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
16829         vector select.
16830
16831 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
16832
16833         PR tree-optimization/48129
16834         * builtins.c (fold_builtin_snprintf): Convert to type of
16835         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
16836         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
16837
16838 2011-03-15  Richard Guenther  <rguenther@suse.de>
16839
16840         PR tree-optimization/41490
16841         * tree-ssa-dce.c (propagate_necessity): Handle returns without
16842         value but with VUSE.
16843         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
16844         return statements.
16845         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
16846         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
16847         * tree-tailcall.c (find_tail_calls): Ignore returns.
16848
16849 2011-03-15  Richard Guenther  <rguenther@suse.de>
16850
16851         PR middle-end/48031
16852         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
16853         or variable-indexed array accesses when in gimple form.
16854
16855 2011-03-15  Richard Guenther  <rguenther@suse.de>
16856
16857         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
16858
16859 2011-03-15  Alan Modra  <amodra@gmail.com>
16860
16861         PR target/48032
16862         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
16863         presume symbol_refs without a symbol_ref_decl are suitably
16864         aligned, nor other trees we may see here.  Handle anchor symbols.
16865         (legitimate_constant_pool_address_p): Comment.  Add mode param.
16866         Check cmodel=medium addresses.  Adjust all calls.
16867         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
16868         creating cmodel=medium optimized access to locals.
16869         * config/rs6000/constraints.md (R): Pass QImode to
16870         legitimate_constant_pool_address_p.
16871         * config/rs6000/predicates.md (input_operand): Pass mode to
16872         legitimate_constant_pool_address_p.
16873         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
16874         Update prototype.
16875
16876 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16877
16878         PR target/48053
16879         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
16880         64-bit constants being loaded into registers other than GPRs such
16881         as loading 0 into a VSX register.
16882
16883 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16884
16885         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
16886
16887 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16888
16889         PR middle-end/47917
16890         * builtins.c (fold_builtin_snprintf): New function.
16891         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
16892         (fold_builtin_4): Likewise.
16893
16894         PR middle-end/38878
16895         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
16896         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
16897         and C - X == X also strip nops from +/-/p+ operand.
16898         When optimizing -X == C, fold C to arg0's type.
16899
16900         PR debug/47946
16901         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
16902         emit it as add_AT_int instead of add_AT_unsigned.
16903
16904 2011-03-14  Tom Tromey  <tromey@redhat.com>
16905
16906         * unwind-dw2.c: Include sys/sdt.h if it exists.
16907         (_Unwind_DebugHook): Use STAP_PROBE2.
16908         * config.in, configure: Rebuild.
16909         * configure.ac: Check for sys/sdt.h.
16910
16911 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
16912
16913         * config/i386/i386.md (ROUND_FLOOR): New constant.
16914         (ROUND_CEIL): Ditto.
16915         (ROUND_TRUNC): Ditto.
16916         (ROUND_MXCSR): Ditto.
16917         (ROUND_NO_EXC): Ditto.
16918         (rint<mode>2): Use new defines instead of numerical constants.
16919         (floor<mode>2): Ditto.
16920         (ceil<mode>2): Ditto.
16921         (btrunc<mode>2): Ditto.
16922         * config/i386/i386-builtin-types.def: Define ROUND function type
16923         aliases.
16924         * config/i386/i386.c (enum ix86_builtins): Add
16925         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
16926         (struct builtin_description): Add
16927         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
16928         (ix86_expand_sse_round): New static function.
16929         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
16930         function types.
16931         (ix86_builtin_vectorized_function): Handle
16932         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
16933
16934 2011-03-14  Tom Tromey  <tromey@redhat.com>
16935
16936         * c-parser.c (c_parser_asm_string_literal): Clear
16937         warn_overlength_strings.
16938
16939 2011-03-14  Tom Tromey  <tromey@redhat.com>
16940
16941         * c-parser.c (disable_extension_diagnostics): Save
16942         warn_overlength_strings.
16943         (restore_extension_diagnostics): Restore warn_overlength_strings.
16944
16945 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16946
16947         * BASE-VER: Change to 4.7.0.
16948
16949 2011-03-14  Richard Guenther  <rguenther@suse.de>
16950
16951         PR middle-end/48098
16952         * tree.c (build_vector_from_val): Adjust assert to requirements
16953         and reality.
16954
16955 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16956
16957         PR bootstrap/48102
16958         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
16959
16960 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
16961
16962         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
16963         terms of target_flags_explicit. Adjust copyright year.
16964
16965         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
16966         * config/rs6000/t-freebsd: New file. Add override for
16967         LIB2FUNCS_EXTRA.
16968
16969 2011-03-13  Chris Demetriou  <cgd@google.com>
16970
16971         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
16972         (-fno-diagnostics-show-option): this, to reflect current default.
16973         (-Werror=): Update text about -fno-diagnostics-show-option.
16974
16975 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
16976
16977         PR target/48053
16978         * config/rs6000/predicates.md (easy_vector_constant_add_self,
16979         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
16980         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
16981         mode is not V2DImode or V2DFmode.
16982         (vspltis_constant): Do not handle V2DImode and V2DFmode.
16983         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
16984         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
16985         registers to 0.
16986         (movdi_internal64): Likewise.
16987
16988 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
16989
16990         PR tree-optimization/47127
16991         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
16992         parameter.
16993         (set_cloog_options): Same.
16994         (scop_to_clast): Same.
16995         (print_clast_stmt): Do not call cloog_state_malloc and
16996         cloog_state_free.
16997         (print_generated_program): Same.
16998         (gloog): Same.
16999         * graphite-clast-to-gimple.h (cloog_state): Declared.
17000         (scop_to_clast): Adjust declaration.
17001         * graphite.c (cloog_state): Defined here.
17002         (graphite_initialize): Call cloog_state_malloc.
17003         (graphite_finalize): Call cloog_state_free.
17004
17005 2011-03-11  Jason Merrill  <jason@redhat.com>
17006
17007         * attribs.c (lookup_attribute_spec): Take const_tree.
17008         * tree.h: Adjust.
17009
17010 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
17011
17012         * config/sparc/sparc.c (sparc_option_override): Use
17013         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
17014
17015 2011-03-11  Richard Guenther  <rguenther@suse.de>
17016
17017         PR tree-optimization/48067
17018         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
17019         multiplication result will be only used once on the target
17020         stmt.
17021
17022 2011-03-11  Richard Guenther  <rguenther@suse.de>
17023
17024         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
17025
17026 2011-03-11  Richard Guenther  <rguenther@suse.de>
17027
17028         PR lto/48073
17029         * tree.c (find_decls_types_r): Do not walk types only reachable
17030         from IDENTIFIER_NODEs.
17031
17032 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
17033
17034         PR middle-end/48044
17035         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
17036         all vnode->force_output nodes as needed.
17037
17038 2011-03-11  Jason Merrill  <jason@redhat.com>
17039
17040         PR c++/48069
17041         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
17042         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
17043
17044 2011-03-11  Martin Jambor  <mjambor@suse.cz>
17045
17046         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
17047         cgraph_node.
17048
17049 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
17050
17051         PR tree-optimization/48063
17052         * ipa-inline.c (cgraph_decide_inlining): Don't try to
17053         inline functions called once if !tree_can_inline_p (node->callers).
17054
17055 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
17056
17057         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
17058         extra_objs.
17059         * config/score/score3.c: Delete.
17060         * config/score/score3.h: Delete.
17061         * config/score/mul-div.S: Delete.
17062         * config/score/sfp-machine.h: Add new file.
17063         * config/score/constraints.md: Add new file.
17064         * config/score/t-score-softfp: Add new file.
17065         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
17066         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
17067         (score7_extra_constraint): Delete.
17068         (score7_option_override): Remove unused code.
17069         * config/score/score.c: Remove score3 and score5 define and code.
17070         * config/score/score.h: Remove score3 and score5 define and code.
17071         * config/score/score.md: Remove score3 template and unusual insn.
17072         * config/score/score.opt: Remove score3 and score5 options.
17073
17074 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17075
17076         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
17077         when _HPUX_SOURCE is defined.
17078         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
17079
17080 2011-03-10  Jason Merrill  <jason@redhat.com>
17081
17082         PR c++/48029
17083         * stor-layout.c (layout_type): Don't set structural equality
17084         on arrays of incomplete type.
17085         * tree.c (type_hash_eq): Handle comparing them properly.
17086
17087 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
17088
17089         PR debug/48043
17090         * config/s390/s390.c (s390_delegitimize_address): Make sure the
17091         result mode matches original rtl mode.
17092
17093 2011-03-10  Nick Clifton  <nickc@redhat.com>
17094
17095         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
17096         (andsi3, andsi3_flags): Fix timings for three operand alternative.
17097
17098 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
17099
17100         PR rtl-optimization/47866
17101         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
17102         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
17103         if target wasn't scalar.
17104         * function.c (assign_stack_temp_for_type): Assert that neither
17105         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
17106         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
17107         macro.
17108         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
17109
17110 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17111
17112         * config/s390/s390-protos.h (s390_label_align): New prototype.
17113         * config/s390/s390.c (s390_label_align): New function.
17114         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
17115
17116 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
17117
17118         PR target/47755
17119         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
17120         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
17121         (output_vec_const_move): Ditto.
17122
17123 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
17124
17125         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
17126         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
17127         * config/mips/mips.c (mips_preferred_reload_class): Make static.
17128         Change 'rclass' argument and result type to reg_class_t.
17129         (TARGET_PREFERRED_RELOAD_CLASS): Define.
17130
17131 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
17132
17133         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
17134         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
17135         (TARGET_MEMORY_MOVE_COST): Define.
17136         (avr_register_move_cost, avr_memory_move_cost): New Functions.
17137
17138 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
17139
17140         PR debug/47881
17141         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
17142         removed anything.
17143
17144         PR tree-optimization/48022
17145         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
17146         for EQ/NE_EXPR.
17147
17148 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
17149
17150         PR debug/47991
17151         * var-tracking.c (find_use_val): Return NULL for
17152         cui->sets && cui->store_p BLKmode MEMs.
17153
17154 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
17155
17156         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
17157         Remove.
17158         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
17159         xstormy16_print_operand_address): Remove.
17160         * config/stormy16/stormy16.c (xstormy16_print_operand,
17161         xstormy16_print_operand_address): Make static.
17162         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17163
17164 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
17165
17166         PR target/47862
17167         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
17168         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
17169         before definition.
17170
17171 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
17172
17173         PR bootstrap/48000
17174         * cfgloopmanip.c (fix_bb_placements): Return immediately
17175         if FROM is BASE_LOOP's header.
17176
17177 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
17178
17179         * gimplify.c (gimplify_function_tree): Fix building calls
17180         to __builtin_return_address.
17181
17182 2011-03-07  Alan Modra  <amodra@gmail.com>
17183
17184         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
17185         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
17186         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
17187         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
17188         return_mode args.
17189         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
17190         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
17191         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
17192         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
17193         * config/rs6000/rs6000.c
17194         (rs6000_elf_end_indicate_exec_stack): Rename to..
17195         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
17196         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
17197         (rs6000_file_start): ..here.
17198         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
17199         file scope variables.
17200         (call_ABI_of_interest): New function.
17201         (init_cumulative_args): Set above vars when function return value
17202         is a float, vector, or small struct.
17203         (rs6000_function_arg_advance_1): Likewise for function args.
17204         (rs6000_va_start): Set rs6000_passes_float if variable arg function
17205         references float args.
17206
17207 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
17208
17209         * doc/cfg.texi: Remove "See" before @ref.
17210         * doc/invoke.texi: Likewise.
17211
17212 2011-03-05  Jason Merrill  <jason@redhat.com>
17213
17214         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
17215
17216 2011-03-05  Anthony Green  <green@moxielogic.com>
17217
17218         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
17219
17220 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
17221
17222         PR rtl-optimization/47899
17223         * cfgloopmanip.c (fix_bb_placements): Fix first argument
17224         to flow_loop_nested_p when moving the loop upward.
17225
17226 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
17227
17228         PR target/47719
17229         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
17230
17231 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
17232
17233         PR tree-optimization/47967
17234         * ipa-cp.c (build_const_val): Return NULL instead of creating
17235         VIEW_CONVERT_EXPR for mismatching sizes.
17236         (ipcp_create_replace_map): Return NULL if build_const_val failed.
17237         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
17238         give up on versioning.
17239
17240 2011-03-05  Alan Modra  <amodra@gmail.com>
17241
17242         PR target/47986
17243         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
17244         full cmodel medium/large lo_sum + high addresses.
17245
17246 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17247
17248         * config/s390/s390.c (s390_decompose_address): Reject non-literal
17249         pool references in UNSPEC_LTREL_OFFSET.
17250
17251 2011-03-04  Jan Hubicka  <jh@suse.cz>
17252
17253         PR lto/47497
17254         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
17255         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
17256         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
17257         Add node pointers.
17258         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
17259         cgraph_add_thunk): Add node pointers.
17260         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
17261         associated to right node.
17262         (input_node): Update use of cgraph_same_body_alias
17263         and cgraph_add_thunk.
17264
17265 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
17266
17267         * config/i386/i386.opt (mprefer-avx128): New flag.
17268         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
17269         modes when the flag -mprefer-avx128 is on.
17270
17271 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
17272
17273         * dwarf2out.c (compare_loc_operands): Fix address handling.
17274
17275 2011-03-04  Alan Modra  <amodra@gmail.com>
17276
17277         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
17278
17279 2011-03-04  Richard Guenther  <rguenther@suse.de>
17280
17281         PR middle-end/47968
17282         * expmed.c (extract_bit_field_1): Prefer vector modes that
17283         vec_extract patterns can handle.
17284
17285 2011-03-04  Richard Guenther  <rguenther@suse.de>
17286
17287         PR middle-end/47975
17288         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
17289
17290 2011-03-04  Richard Henderson  <rth@redhat.com>
17291
17292         * explow.c (emit_stack_save): Remove 'after' parameter.
17293         (emit_stack_restore): Likewise.
17294         * expr.h: Update to match.
17295         * builtins.c, calls.c, stmt.c: Likewise.
17296         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
17297         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
17298         * function.c (expand_function_end): Insert the emit_stack_save
17299         sequence before parm_birth_insn instead of after.
17300
17301 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
17302
17303         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
17304         (ssse3_pmaddubsw128): Ditto.
17305         (ssse3_pmaddubsw): Ditto.
17306
17307 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
17308
17309         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
17310
17311 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
17312
17313         PR c/47963
17314         * gimplify.c (omp_add_variable): Only call omp_notice_variable
17315         on TYPE_SIZE_UNIT if it is a DECL.
17316
17317         PR debug/47283
17318         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
17319         first operand is not is_gimple_mem_ref_addr, try to fold it.
17320         If the operand still isn't is_gimple_mem_ref_addr, clear
17321         MEM_EXPR on op0.
17322
17323 2011-03-03  Richard Guenther  <rguenther@suse.de>
17324
17325         PR middle-end/47283
17326         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
17327         match comment.
17328         (refs_may_alias_p_1): For release branches return true if
17329         we are confused by our input.
17330
17331 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17332
17333         * config/s390/s390.c (s390_function_value): Rename to ...
17334         (s390_function_and_libcall_value): ... this.
17335         (s390_function_value): New function.
17336         (s390_libcall_value): New function.
17337         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
17338         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
17339         target macro definitions.
17340         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
17341
17342 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
17343
17344         * config/i386/freebsd64.h (CC1_SPEC): Define.
17345         * config/i386/linux64.h (CC1_SPEC): Define.
17346         * config/i386/x86-64.h (CC1_SPEC): Don't define.
17347
17348 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
17349
17350         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17351         Remove.
17352         * config/stormy16/stormy16.c: Include reload.h.
17353         (xstormy16_memory_move_cost): New function.
17354         (TARGET_MEMORY_MOVE_COST): Define.
17355
17356 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
17357
17358         PR rtl-optimization/47925
17359         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
17360         with side effects.  Remove the more-specific check for volatile asms.
17361
17362 2011-03-02  Alan Modra  <amodra@gmail.com>
17363
17364         PR target/47935
17365         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
17366         toc relative addresses for valid offsets.
17367
17368 2011-03-01  Richard Guenther  <rguenther@suse.de>
17369
17370         PR tree-optimization/47890
17371         * tree-vect-loop.c (get_initial_def_for_induction): Set
17372         related stmt properly.
17373
17374 2011-03-01  Richard Guenther  <rguenther@suse.de>
17375
17376         PR lto/47924
17377         * lto-streamer.c (lto_record_common_node): Also register
17378         the canonical type.
17379
17380 2011-03-01  Richard Guenther  <rguenther@suse.de>
17381
17382         PR lto/46911
17383         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
17384         Do not stream DECL_ABSTRACT_ORIGIN.
17385         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
17386         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
17387         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
17388         Do not stream DECL_ABSTRACT_ORIGIN.
17389         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
17390         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
17391
17392 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
17393
17394         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
17395         FUNCTION_VALUE_REGNO_P): Remove.
17396         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
17397         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
17398         Add 'outgoing' argument.
17399         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
17400         function.
17401         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17402         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17403
17404 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
17405
17406         PR debug/28047
17407         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
17408         (lookup_filename): Likewise.
17409         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
17410
17411 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
17412             Jakub Jelinek  <jakub@redhat.com>
17413
17414         PR middle-end/47893
17415         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
17416         (assign_stack_local_1): Change last argument type to int.
17417         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
17418         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
17419         don't record padding space into frame_space_list nor use those areas.
17420         (assign_stack_local): Adjust caller.
17421         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
17422         of assign_stack_local, pass 0 as last argument.
17423         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
17424         callers.
17425
17426 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
17427
17428         PR debug/47283
17429         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
17430         Use target address_mode and pointer_mode hooks instead of hardcoded
17431         Pmode and ptr_mode.  Handle some simple cases of extending if
17432         POINTERS_EXTEND_UNSIGNED < 0.
17433         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
17434         Call convert_debug_memory_address.
17435         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
17436         convert_debug_memory_address.
17437
17438         PR middle-end/46790
17439         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
17440         * configure: Regenerated.
17441         * config.in: Regenerated.
17442         * varasm.c (default_function_section): Return NULL
17443         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
17444
17445 2011-02-28  Martin Jambor  <mjambor@suse.cz>
17446
17447         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
17448         the description to match the printed values.
17449
17450 2011-02-28  Richard Guenther  <rguenther@suse.de>
17451
17452         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
17453         of the copied scope tree.
17454
17455 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17456
17457         * doc/extend.texi (Function Attributes): Avoid deeply (and
17458         wrongly) nested tables.
17459
17460 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
17461
17462         PR middle-end/47903
17463         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
17464         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
17465         r isn't op0 nor op1.
17466
17467 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
17468
17469         * config/avr/avr.md: Remove magic comment for emacs.
17470
17471 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
17472
17473         PR target/45261
17474         * config/avr/avr.c (avr_option_override): Use error on bad options.
17475         (avr_help): New function.
17476         (TARGET_HELP): Define.
17477
17478 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
17479
17480         PR target/42240
17481         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
17482         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
17483
17484 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
17485
17486         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
17487         (ARM Options): Ditto.
17488         (i386 and x86-64 Options): Ditto.
17489         (RX Options): Ditto.
17490         (SPARC Options): Ditto.
17491
17492 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
17493
17494         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
17495         FreeBSD 6 and later.  Generally use cpu generic.
17496
17497 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
17498
17499         * doc/cpp.texi: Update copyright years.
17500
17501 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
17502
17503         PR target/46898
17504         * config/lm32/lm32.md (ashrsi3): Added needed variable.
17505
17506 2011-02-25  Jon Beniston  <jon@beniston.com>
17507
17508         PR target/46898
17509         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
17510         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
17511         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
17512         (lm32_block_move_inline): Add type cast to remove warning.
17513         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
17514         (gen_int_relational): Move declarations to start of function.
17515
17516 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
17517
17518         PR tree-optimization/45470
17519         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
17520         can throw internally only.
17521         * tree-vect-stmts.c (vectorizable_call): Likewise.
17522
17523 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
17524
17525         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
17526         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
17527         * config/stormy16/stormy16-protos.h
17528         (xstormy16_preferred_reload_class): Remove.
17529         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
17530         static. Change 'rclass' argument and return type to reg_class_t.
17531         (TARGET_PREFERRED_RELOAD_CLASS,
17532         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
17533
17534 2011-02-24  Richard Guenther  <rguenther@suse.de>
17535
17536         * lto-streamer-in.c (input_bb): Do not find referenced vars
17537         in debug statements.
17538
17539 2011-02-23  Jason Merrill  <jason@redhat.com>
17540
17541         * common.opt (fabi-version): Document v5 and v6.
17542
17543 2011-02-23  Richard Guenther  <rguenther@suse.de>
17544
17545         PR tree-optimization/47849
17546         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
17547
17548 2011-02-23  Jie Zhang  <jie@codesourcery.com>
17549
17550         * opts-common.c (decode_cmdline_option): Print empty string
17551         argument as "" in decoded->orig_option_with_args_text.
17552         * gcc.c (execute): Print empty string argument as ""
17553         in the verbose output.
17554         (do_spec_1): Keep empty string argument.
17555
17556 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
17557
17558         * config.gcc: Declare score-* and crx-* obsolete.
17559
17560 2011-02-23  Jie Zhang  <jie@codesourcery.com>
17561
17562         PR rtl-optimization/47763
17563         * web.c (web_main): Ignore naked clobber when replacing register.
17564
17565 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
17566
17567         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
17568         Remove.
17569
17570 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
17571
17572         PR doc/47848
17573         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
17574
17575 2011-02-22  Mike Stump  <mikestump@comcast.net>
17576
17577         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
17578         assembler.
17579         * configure: Regenerate.
17580
17581 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
17582
17583         PR rtl-optimization/46002
17584         * ira-color.c (update_copy_costs): Change class intersection
17585         test to reg_class_contents[] test of 'hard_regno'.
17586
17587 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
17588
17589         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
17590         than Driver option.
17591         * config/hpux11.opt (mt): Likewise.
17592         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
17593         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
17594         * config/vax/elf.opt (mno-asm-pic): Likewise.
17595         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
17596
17597 2011-02-21  Mike Stump  <mikestump@comcast.net>
17598
17599         PR target/47822
17600         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
17601         tree so we can get save the type.
17602         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
17603         for CFString instead of trying to use past the end of the builtins.
17604         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
17605         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
17606         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
17607         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
17608         Rename to darwin_builtin_cfstring.
17609         (darwin_init_cfstring_builtins): Return the built type.
17610
17611 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
17612
17613         PR target/47840
17614         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
17615         (_mm256_insert_epi64): Use _mm_insert_epi64.
17616
17617 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
17618
17619         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17620         * config/stormy16/stormy16-protos.h
17621         (xstormy16_mode_dependent_address_p): Remove.
17622         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
17623         Make static. Change return type to bool. Change argument type to
17624         const_rtx. Remove dead code.
17625         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17626
17627 2011-02-21  Richard Guenther  <rguenther@suse.de>
17628
17629         PR lto/47820
17630         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
17631         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
17632         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
17633         TUs context.
17634         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
17635         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
17636
17637 2011-02-20  Richard Guenther  <rguenther@suse.de>
17638
17639         PR lto/47822
17640         * tree.c (free_lang_data_in_decl): Clean builtins from
17641         the TU decl BLOCK_VARS.
17642
17643 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
17644
17645         PR debug/47620
17646         PR debug/47630
17647         * haifa-sched.c (fix_tick_ready): Skip tick computation
17648         for debug insns.
17649
17650 2011-02-19  Richard Guenther  <rguenther@suse.de>
17651
17652         PR lto/47647
17653         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
17654         Remove lazy BLOCK_VARS streaming.
17655         (lto_input_ts_block_tree_pointers): Likewise.
17656         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
17657
17658 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
17659
17660         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
17661
17662 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
17663
17664         * config/i386/biarch32.h, config/i386/mach.h,
17665         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
17666
17667 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
17668
17669         PR target/47800
17670         * config/i386/i386.md (peephole2 for shift and plus): Use
17671         operands[1] original mode in the first insn.
17672
17673 2011-02-18  Mike Stump  <mikestump@comcast.net>
17674
17675         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
17676
17677 2011-02-18  Jan Hubicka  <jh@suse.cz>
17678
17679         PR middle-end/47788
17680         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
17681         to zero when the function is not inlinable at all.
17682
17683 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17684
17685         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
17686         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
17687         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
17688         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
17689         * config/pa/t-pa64: Likewise.
17690         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
17691
17692 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
17693
17694         PR driver/47787
17695         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
17696
17697 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17698
17699         PR target/47792
17700         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
17701
17702 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
17703
17704         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
17705         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
17706         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
17707         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
17708         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
17709         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
17710         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
17711         m32r_load_postinc_p, m32r_store_preinc_predec_p,
17712         m32r_legitimate_address_p): New functions.
17713         * config/m32r/constraints.md (constraint "S"): Don't use
17714         STORE_PREINC_PREDEC_P.
17715         (constraint "U"): Don't use LOAD_POSTINC_P.
17716
17717 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
17718
17719         PR rtl-optimization/46178
17720         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
17721         compute ira_hard_regno_cover_class[].
17722
17723 2011-02-18  Richard Guenther  <rguenther@suse.de>
17724
17725         PR lto/47798
17726         * lto-streamer.h (lto_global_var_decls): Declare.
17727         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
17728         statics for global var processing.
17729
17730 2011-02-18  Richard Guenther  <rguenther@suse.de>
17731
17732         PR tree-optimization/47737
17733         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
17734         edge dominance check.
17735
17736 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
17737
17738         PR debug/47780
17739         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
17740         avoid invalid rtx sharing.
17741
17742 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
17743
17744         * doc/cpp.texi (Obsolete Features): Add background on the
17745         origin of assertions.
17746
17747 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
17748
17749         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
17750         objc_abi == 2.
17751         * config/darwin.c (output_objc_section_asm_op): Added support for
17752         ABI v1 and v2.
17753         (is_objc_metadata): New.
17754         (darwin_objc2_section): New.
17755         (darwin_objc1_section): New.
17756         (machopic_select_section): Added support for ABI v1 and v2.
17757         (darwin_emit_objc_zeroed): New.
17758         (darwin_output_aligned_bss): Detect objc metadata and treat it
17759         appropriately.
17760         (darwin_asm_output_aligned_decl_common): Same.
17761         (darwin_asm_output_aligned_decl_local): Same.
17762         * config/darwin-sections.def: Updated for ABI v1 and v2.
17763         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
17764         compiling Objective-C code for the NeXT runtime, default to using
17765         ABI version 0 for 32-bit, and version 2 for 64-bit.
17766
17767 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17768
17769         * common.opt (optimize_fast): New Variable.
17770         * opts.c (default_options_optimization): Use opts->x_optimize_fast
17771         instead of local variable ofast.
17772
17773 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
17774
17775         * doc/invoke.texi (fobjc-abi-version): Documented.
17776         (fobjc-nilcheck): Documented.
17777         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
17778         version.
17779
17780 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17781
17782         PR driver/47390
17783         * common.opt (export-dynamic): New Driver option.
17784         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
17785
17786 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17787
17788         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
17789
17790 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
17791             Jan Hubicka  <jh@suse.cz>
17792
17793         PR debug/47106
17794         PR debug/47402
17795         * cfgexpand.c (account_used_vars_for_block): Remove.
17796         (estimated_stack_frame_size): Use referenced vars.
17797         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
17798         that were referenced in the original function.  Test src_fn
17799         rather than cfun.  Drop redundant get_var_ann.
17800         (setup_one_parameter): Drop redundant get_var_ann.
17801         (declare_return_variable): Likewise.
17802         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
17803         (copy_arguments_for_versioning): Drop redundant get_var_ann.
17804         * ipa-inline.c (compute_inline_parameters): Do not compute
17805         disregard_inline_limits here.
17806         (compute_inlinable_for_current, pass_inlinable): New.
17807         (pass_inline_parameters): Require PROP_referenced_vars.
17808         * cgraphunit.c (cgraph_process_new_functions): Don't run
17809         compute_inline_parameters explicitly unless function is in SSA form.
17810         (cgraph_analyze_function): Set .disregard_inline_limits.
17811         * tree-sra.c (convert_callers): Compute inliner parameters
17812         only for functions already in SSA form.
17813
17814 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17815
17816         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
17817         -mlittle-endian-data.
17818
17819 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17820
17821         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
17822         -mno-fpu, not -fpu and -no-fpu.
17823         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
17824         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
17825
17826 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
17827
17828         PR target/43653
17829         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
17830         input reload with PLUS RTX.
17831
17832 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17833
17834         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
17835         of InverseVar(MDMX).
17836
17837 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17838
17839         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
17840         --m4-340.
17841
17842 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17843
17844         * config/mn10300/mn10300.opt (mno-crt0): New.
17845
17846 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17847
17848         * config/m68k/uclinux.opt (static-libc): New Driver option.
17849
17850 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17851
17852         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
17853
17854 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17855
17856         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
17857         %{muser-extend-enabled}.
17858
17859 2011-02-16  Richard Guenther  <rguenther@suse.de>
17860
17861         PR tree-optimization/47738
17862         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
17863         the TODO from tree_predictive_commoning.
17864
17865 2011-02-15  Jeff Law  <law@redhat.com>
17866
17867         Revert
17868         2011-01-25  Jeff Law  <law@redhat.com>
17869
17870         PR rtl-optimization/37273
17871         * ira-costs.c (scan_one_insn): Detect constants living in memory and
17872         handle them like argument loads from stack slots.  Do not double
17873         count memory for memory constants and argument loads from stack slots.
17874
17875 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
17876
17877         PR middle-end/47725
17878         * combine.c (cant_combine_insn_p): Revert the last change.
17879
17880 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
17881
17882         PR target/47755
17883         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
17884         mode for vector constants.  Remove code that checks for TImode.
17885
17886 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17887
17888         PR debug/47106
17889         PR debug/47402
17890         * cgraph.h (compute_inline_parameters): Return void.
17891         * ipa-inline.c (compute_inline_parameters): Adjust.
17892
17893 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17894
17895         PR debug/47106
17896         PR debug/47402
17897         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
17898         rather than decl.
17899         * cfgexpand.c (estimated_stack_frame_size): Likewise.
17900         * ipa-inline.c (compute_inline_parameters): Adjust.
17901
17902 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17903
17904         PR debug/47106
17905         PR debug/47402
17906         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
17907         Adjust all users.  Pass FN to...
17908         * tree-flow-inline.h (first_referenced_var): ... this.  Add
17909         fn argument.
17910         * ipa-struct-reorg.c: Adjust.
17911         * tree-dfa.c: Adjust.
17912         * tree-into-ssa.c: Adjust.
17913         * tree-sra.c: Adjust.
17914         * tree-ssa-alias.c: Adjust.
17915         * tree-ssa-live.c: Adjust.
17916         * tree-ssa.c: Adjust.
17917         * tree-ssanames.c: Adjust.
17918         * tree-tailcall.c: Adjust.
17919
17920 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17921
17922         PR debug/47106
17923         PR debug/47402
17924         * tree-flow.h (referenced_var_lookup): Add fn parameter.
17925         Adjust all callers.
17926         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
17927         * tree-flow-inline.h: Adjust.
17928         * gimple-pretty-print.c: Adjust.
17929         * tree-into-ssa.c: Adjust.
17930         * tree-ssa.c: Adjust.
17931         * cfgexpand.c: Adjust.
17932
17933 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
17934
17935         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
17936         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17937         (EXTRA_CONSTRAINT): Delete.
17938         * config/iq2000/constraints.md: New file.
17939         * config/iq2000/iq2000.md: Include it.
17940         (define_insn ""): Delete.
17941         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
17942         unsupported constraint letters from patterns.
17943         (call_value, call_value_internal1): Likewise.
17944         (call_value_multiple_internal1): Likewise.
17945
17946 2011-02-15  Nick Clifton  <nickc@redhat.com>
17947
17948         * config/mn10300/mn10300.c: Include tm-constrs.h.
17949         (struct liw_data): New data structure describing an LIW candidate
17950         instruction.
17951         (extract_bundle): Use struct liw_data.  Allow small integer
17952         operands for some instructions.
17953         (check_liw_constraints): Use struct liw_data.  Remove swapped
17954         parameter.  Add comments describing the checks.  Fix bug when
17955         assigning the source of liw1 to the source of liw2.
17956         (liw_candidate): Delete.  Code moved into extract_bundle.
17957         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
17958         before swapping.
17959         * config/mn10300/predicates.md (liw_operand): New predicate.
17960         Allows registers and small integer constants.
17961         * config/mn10300/constraints.md (O): New constraint.  Accetps
17962         integers in the range -8 to +7 inclusive.
17963         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
17964         for moving a small integer into a register.  Give this alternative
17965         LIW attributes.
17966         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
17967         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
17968         using the J,K,L and M constraints,
17969         (liw): Remove SI mode on second operands to allow for HI and QI
17970         mode values.
17971         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
17972         instruction.
17973
17974 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
17975
17976         PR middle-end/47725
17977         * combine.c (cant_combine_insn_p): Check zero/sign extended
17978         hard registers.
17979
17980 2011-02-15  Richard Guenther  <rguenther@suse.de>
17981
17982         PR tree-optimization/47743
17983         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
17984         for a non-type-compatible VN lookup bail out.
17985
17986 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
17987
17988         * config/fr30/constraints.md: New file.
17989         * config/fr30/fr30.md: Include it.
17990         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
17991         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17992         (EXTRA_CONSTRAINT): Delete.
17993
17994 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
17995
17996         * config/frv/constraints.md: New file.
17997         * config/frv/predicates.md: Include it.
17998         * config/frv/frv.c (reg_class_from_letter): Delete.
17999         (frv_option_override): Don't initialize it.
18000         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
18001         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
18002         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
18003         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
18004         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
18005         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18006         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
18007         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
18008         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
18009         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
18010         (REG_CLASS_FROM_CONSTRAINT): Delete.
18011
18012 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
18013
18014         PR middle-end/47581
18015         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
18016         if frame size is 0 in a leaf function.
18017
18018 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18019
18020         PR pch/14940
18021         * config/alpha/host-osf.c: New file.
18022         * config/alpha/x-osf: New file.
18023         * config.host (alpha*-dec-osf*): Use it.
18024
18025 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
18026
18027         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18028         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
18029         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
18030         (rx_mode_dependent_address_p): ...this. Make static. Change argument
18031         type to const_rtx.
18032         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18033
18034 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
18035
18036         * config/stormy16/constraints.md: New file.
18037         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
18038         Use satisfies_constraint_Q and satisfies_constraint_R.
18039         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
18040         Delete.
18041         (xstormy16_legitiamte_address_p): Declare.
18042         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
18043         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18044         (EXTRA_CONSTRAINT): Delete.
18045         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
18046         Un-staticize.
18047         (xstormy16_extra_constraint_p): Delete.
18048
18049 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
18050
18051         PR tree-optimization/46494
18052         * loop-unroll.c (split_edge_and_insert): Adjust comment.
18053         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
18054         (pass_rtl_loop_done): Add TODO_verify_flow.
18055         * fwprop.c (pass_rtl_fwprop): Likewise.
18056         * modulo-sched.c (pass_sms): Likewise.
18057         * tree-ssa-dom.c (pass_dominator): Likewise.
18058         * tree-ssa-loop-ch.c (pass_ch): Likewise.
18059         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
18060         (pass_tree_loop_done): Likewise.
18061         * tree-ssa-pre.c (execute_pre): Likewise.
18062         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
18063         * tree-ssa-sink.c (pass_sink_code): Likewise.
18064         * tree-vrp.c (pass_vrp): Likewise.
18065
18066 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
18067
18068         * config/v850/constraints.md: New file.
18069         * config/v850/v850.md: Include it.
18070         * config/v850/predicates.md (reg_or_0_operand): Use
18071         satisfies_constraint_G.
18072         (special_symbolref_operand): Use satisfies_constraint_K.
18073         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
18074         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
18075         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
18076         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
18077         (EXTRA_CONSTRAINT): Delete.
18078         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
18079         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
18080         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
18081
18082 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
18083
18084         PR target/47696
18085         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
18086         description.
18087
18088 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
18089
18090         * config/mcore/constraints.md: New file.
18091         * config/mcore/mcore.md: Include it.
18092         * config/mcore/mcore.c (reg_class_from_letter): Delete.
18093         * config/mcore/mcore.h (reg_class_from_letter): Delete.
18094         (REG_CLASS_FROM_LETTER): Delete.
18095         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
18096         insn_const_int_ok_for_constraint.
18097         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
18098         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
18099         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18100         (EXTRA_CONSTRAINT): Delete.
18101
18102 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18103
18104         PR ada/41929
18105         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
18106         (IS_SIGHANDLER): Define.
18107         (sparc64_is_sighandler): New function, split off from
18108         sparc64_fallback_frame_state.
18109         (sparc_is_sighandler): New function, split off from
18110         sparc_fallback_frame_state.
18111         (sparc64_fallback_frame_state): Merge with ...
18112         (sparc_fallback_frame_state): ... this into ...
18113         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
18114         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
18115         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
18116         stack instead of hardcoded offsets.
18117
18118 2011-02-14  Andriy Gapon  <avg@freebsd.org>
18119
18120         PR target/45808
18121         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
18122
18123 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18124
18125         * configure: Regenerate.
18126
18127 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
18128
18129         PR driver/45731
18130         * gcc.c (asm_options): Correct spec matching --target-help.
18131
18132 2011-02-12  Martin Jambor  <mjambor@suse.cz>
18133
18134         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
18135         to gimple call error.
18136
18137 2011-02-12  Mike Stump  <mikestump@comcast.net>
18138
18139         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
18140         comments in backslash regions.
18141
18142 2011-02-12  Mike Stump  <mikestump@comcast.net>
18143             Jakub Jelinek  <jakub@redhat.com>
18144             Iain Sandoe  <iains@gcc.gnu.org>
18145
18146         PR target/47324
18147         * dwarf2out.c (output_cfa_loc): When required, apply the
18148         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
18149         (output_loc_sequence): Likewise.
18150         (output_loc_operands_raw): Likewise.
18151         (output_loc_sequence_raw): Likewise.
18152         (output_cfa_loc): Likewise.
18153         (output_loc_list): Suppress register number adjustment when
18154         calling output_loc_sequence()
18155         (output_die): Likewise.
18156
18157 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
18158
18159         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18160         Remove macros.
18161         * config/xtensa/xtensa.c (xtensa_register_move_cost,
18162         xtensa_memory_move_cost): New functions.
18163         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
18164
18165 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
18166
18167         PR lto/47225
18168         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
18169         in the current directory.
18170         * configure: Rebuilt.
18171
18172 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
18173
18174         * config/darwin.c (darwin_override_options): Add a hunk missed
18175         from the commit of r168571.  Trim comment line lengths and
18176         correct indents of the preceding block.
18177
18178 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
18179
18180         * gcc.c (driver_handle_option): Concatenate the argument to -F with
18181         the switch.
18182
18183 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
18184
18185         * common.opt (nostartfiles): New Driver option.
18186
18187 2011-02-11  Xinliang David Li  <davidxl@google.com>
18188
18189         PR tree-optimization/47707
18190         * tree-chrec.c (convert_affine_scev): Keep type precision.
18191
18192 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
18193
18194         PR tree-optimization/47420
18195         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
18196
18197 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
18198
18199         PR rtl-optimization/47614
18200         * rtl.h (check_for_inc_dec): Declare.
18201         * dse.c (check_for_inc_dec): Externalize...
18202         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
18203         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
18204
18205 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
18206
18207         PR driver/47678
18208         * gcc.c (main): Do not compile inputs if there were errors in
18209         option handling.
18210         * opts-common.c (read_cmdline_option): Check for wrong language
18211         after other error checks.
18212
18213 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
18214
18215         * cgraph.c: Fix comment typos.
18216         * cgraph.h: Likewise.
18217         * cgraphunit.c: Likewise.
18218         * ipa-cp.c: Likewise.
18219         * ipa-inline.c: Likewise.
18220         * ipa-prop.c: Likewise.
18221         * ipa-pure-const.c: Likewise.
18222         * ipa-ref.c: Likewise.
18223         * ipa-reference.c: Likewise.
18224
18225 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
18226
18227         PR debug/47684
18228         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
18229
18230 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18231
18232         PR testsuite/47400
18233         * doc/sourcebuild.texi (Require Support): Document
18234         dg-require-ascii-locale.
18235
18236 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
18237
18238         * doc/lto.texi (Write summary): Fix missing parentheses.
18239
18240 2011-02-10  DJ Delorie  <dj@redhat.com>
18241
18242         * config/m32c/m32c.c (m32c_option_override): Disable
18243         -fcombine-stack-adjustments until flag value tracking and compare
18244         optimization can be rewritten.
18245
18246 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
18247
18248         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
18249         PROCESSOR_POWER7.
18250         (PROCESSOR_DEFAULT64): Likewise.
18251
18252 2011-02-10  Richard Henderson  <rth@redhat.com>
18253
18254         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
18255         change from 2011-02-03.
18256         * config/rx/rx.c (flags_from_code): Likewise.
18257         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
18258         is valid, n/pz otherwise.
18259         (rx_select_cc_mode): Return CCmode if Y is not zero.
18260
18261 2011-02-10  Richard Guenther  <rguenther@suse.de>
18262
18263         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
18264
18265 2011-02-10  Richard Guenther  <rguenther@suse.de>
18266
18267         PR tree-optimization/47677
18268         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
18269
18270 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
18271
18272         PR target/47665
18273         * combine.c (make_compound_operation): Only change shifts into
18274         multiplication for SCALAR_INT_MODE_P.
18275
18276 2011-02-10  Jie Zhang  <jie@codesourcery.com>
18277
18278         PR testsuite/47622
18279         Revert
18280         2011-02-05  Jie Zhang  <jie@codesourcery.com>
18281         PR debug/42631
18282         * web.c (entry_register): Don't clobber the number of the
18283         first uninitialized reference in used[].
18284
18285 2011-02-09  Richard Guenther  <rguenther@suse.de>
18286
18287         PR tree-optimization/47664
18288         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
18289         all edges again.
18290
18291 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
18292
18293         PR target/46481
18294         PR target/47032
18295         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
18296         PROCESSOR_POWER7.
18297         (PROCESSOR_DEFAULT64): Same.
18298         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
18299
18300 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18301
18302         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
18303
18304 2011-02-09  Martin Jambor  <mjambor@suse.cz>
18305
18306         PR middle-end/45505
18307         * tree-sra.c (struct access): New flags grp_scalar_read and
18308         grp_scalar_write.  Changed description of assignment read and write
18309         flags.
18310         (dump_access): Dump new flags, reorder all of them.
18311         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
18312         to detect multiple scalar reads.
18313         (analyze_access_subtree): Use the new scalar read write flags instead
18314         of the old flags.  Adjusted comments.
18315
18316 2011-02-08  DJ Delorie  <dj@redhat.com>
18317
18318         PR target/47548
18319         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
18320         patterns.
18321
18322 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18323
18324         * config/m68k/uclinux.opt: New.
18325         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
18326
18327 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18328
18329         * config/cris/elf.opt (sim): New Driver option.
18330
18331 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18332
18333         * config/xtensa/elf.opt: New.
18334         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
18335
18336 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18337
18338         * config/vax/elf.opt: New.
18339         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
18340
18341 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18342
18343         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
18344
18345 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18346
18347         * config/gnu-user.opt: New.
18348         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
18349         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
18350         *-*-uclinux*): Use gnu-user.opt.
18351
18352 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
18353
18354         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
18355         * config/i386/gnu.h (CPP_SPEC): Likewise.
18356
18357 2011-02-08  Ian Lance Taylor  <iant@google.com>
18358
18359         * common.opt (fcx-limited-range): Add SetByCombined flag.
18360         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
18361         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
18362         (fassociative-math, freciprocal-math): Likewise.
18363         (funsafe-math-optimizations): Likewise.
18364         * opth-gen.awk: Handle SetByCombined.
18365         * optc-gen.awk: Likewise.
18366         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
18367         (set_unsafe_math_optimizations_flags): Likewise.
18368         * doc/options.texi (Option properties): Document SetByCombined.
18369
18370 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18371
18372         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
18373         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
18374         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
18375         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
18376         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
18377
18378 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
18379
18380         PR tree-optimization/46834
18381         PR tree-optimization/46994
18382         PR tree-optimization/46995
18383         * graphite-sese-to-poly.c (used_outside_reduction): New.
18384         (detect_commutative_reduction): Call used_outside_reduction.
18385         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
18386         translate_scalar_reduction_to_array only when at least one
18387         loop-phi/close-phi tuple has been detected.
18388
18389 2011-02-08  Richard Guenther  <rguenther@suse.de>
18390
18391         PR middle-end/47639
18392         * tree-vect-generic.c (expand_vector_operations_1): Update
18393         stmts here ...
18394         (expand_vector_operations): ... not here.  Cleanup EH info
18395         and the CFG if required.
18396
18397 2011-02-08  Richard Guenther  <rguenther@suse.de>
18398
18399         PR tree-optimization/47641
18400         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
18401         require type compatibility.
18402
18403 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18404
18405         * gimple-low.c (lower_function_body): Don't remove the location of
18406         the return statement here.
18407         (lower_gimple_return): Do it here instead but only if the return
18408         statement is actually used twice.
18409
18410 2011-02-08  Richard Guenther  <rguenther@suse.de>
18411
18412         PR tree-optimization/47632
18413         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
18414         unused up_to_stmt parameter, return whether cfg-cleanup is
18415         necessary, remove EH info properly.
18416         (forward_propagate_into_gimple_cond): Adjust caller.
18417         (forward_propagate_into_cond): Likewise.
18418         (forward_propagate_comparison): Likewise.
18419         (tree_ssa_forward_propagate_single_use_vars): Make
18420         forward_propagate_comparison case similar to the two others.
18421
18422 2011-02-08  Nick Clifton  <nickc@redhat.com>
18423
18424         * config/mn10300/mn10300.opt (mliw): New command line option.
18425         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
18426         (liw_bundling): New automaton.
18427         (liw): New attribute.
18428         (liw_op): New attribute.
18429         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
18430         (movsi_internal): Add LIW attributes.
18431         (andsi3): Likewise.
18432         (iorsi3): Likewise.
18433         (xorsi3): Likewise.
18434         (addsi3): Separate register and immediate alternatives.
18435         Add LIW attributes.
18436         (subsi3): Likewise.
18437         (cmpsi): Likewise.
18438         (aslsi3): Likewise.
18439         (lshrsi3): Likewise.
18440         (ashrsi3): Likewise.
18441         (liw): New pattern.
18442         * config/mn10300/mn10300.c (liw_op_names): New
18443         (mn10300_print_operand): Handle 'W' operand descriptor.
18444         (extract_bundle): New function.
18445         (check_liw_constraints): New function.
18446         (liw_candidate): New function.
18447         (mn10300_bundle_liw): New function.
18448         (mn10300_reorg): New function.
18449         (TARGET_MACHINE_DEPENDENT_REORG): Define.
18450         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
18451         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
18452         __LIW__ or __NO_LIW__.
18453         * doc/invoke.texi: Describe the -mliw command line option.
18454
18455 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18456
18457         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
18458         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
18459         pthread_mutex_unlock): Remove.
18460         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
18461         * config/pa/t-pa64: Likewise.
18462         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
18463         shared libc if not linking against libpthread.
18464         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
18465
18466 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
18467
18468         PR target/47558
18469         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
18470         on 10.6 and later to ensure that we always use the unwinder from
18471         the system.  Only add -no_compact_unwind when tarteting darwin
18472         10.6 or later.
18473
18474 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
18475
18476         PR target/46997
18477         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
18478         (vec_interleave_lowv2sf): Ditto.
18479         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
18480         (vec_extract_oddv2sf): Ditto.
18481
18482 2011-02-07  Mike Stump  <mikestump@comcast.net>
18483
18484         PR target/42333
18485         Add __ieee_divdc3 entry point.
18486         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
18487         entry point.
18488         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
18489         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
18490         * config/darwin.c (darwin_rename_builtins): Add.
18491         * config/darwin-protos.h (darwin_rename_builtins): Add.
18492
18493 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
18494
18495         PR target/47636
18496         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
18497         for the condition.
18498
18499 2011-02-07  Mike Stump  <mikestump@comcast.net>
18500
18501         * config/darwin.opt (mmacosx-version-min): Update default OS version.
18502
18503 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
18504
18505         PR target/47534
18506         * config/avr/libgcc.S (exit): Move .endfunc
18507
18508 2011-02-07  Richard Guenther  <rguenther@suse.de>
18509
18510         PR tree-optimization/47615
18511         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
18512         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
18513         (run_scc_vn): Initialize it.
18514         (visit_reference_op_load): Use it.
18515         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
18516
18517 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18518
18519         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
18520         DImode trapping arithmetic libfuncs.
18521
18522 2011-02-07  Richard Guenther  <rguenther@suse.de>
18523
18524         PR tree-optimization/47621
18525         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
18526         two duplicates ...
18527         (execute_update_addresses_taken): ... here.  Make it more
18528         conservative in what we accept.
18529
18530 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
18531
18532         * config/sparc/freebsd.h (ASM_SPEC): Define.
18533         * config/sparc/vxworks.h (ASM_SPEC): Define.
18534
18535 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
18536
18537         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
18538
18539 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
18540
18541         * doc/invoke.texi: Remove reference to compiler internals from
18542         user documentation.
18543
18544         * reg-notes.def: Remove REG_VALUE_PROFILE.
18545         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
18546
18547 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
18548
18549         PR middle-end/47610
18550         * varasm.c (default_section_type_flags): If decl is NULL,
18551         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
18552
18553 2011-02-05  Jie Zhang  <jie@codesourcery.com>
18554
18555         PR debug/42631
18556         * web.c (entry_register): Don't clobber the number of the
18557         first uninitialized reference in used[].
18558
18559 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
18560
18561         PR tree-optimization/46194
18562         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
18563         (build_classic_dist_vector_1): Do not represent classic distance
18564         vectors when the access functions are variating in different loops.
18565
18566 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18567
18568         * config/mips/iris6.opt: New.
18569         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
18570
18571 2011-02-04  Richard Henderson  <rth@redhat.com>
18572             Steve Ellcey  <sje@cup.hp.com>
18573
18574         PR target/46997
18575         * config/ia64/predicates.md (mux1_brcst_element): New.
18576         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
18577         * config/ia64/ia64.c (ia64_unpack_assemble): New.
18578         (ia64_unpack_sign): New.
18579         (ia64_expand_unpack): Rewrite using new routines.
18580         (ia64_expand_widen_sum): Ditto.
18581         (ia64_expand_dot_prod_v8qi): Ditto.
18582         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
18583         routines, add endian check.
18584         (pmpy2_even): Rename from pmpy2_r, add endian check.
18585         (pmpy2_odd): Rename from pmpy2_l, add endian check.
18586         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
18587         (vec_widen_smult_hi_v4hi): Ditto.
18588         (vec_widen_umult_lo_v4hi): Ditto.
18589         (vec_widen_umult_hi_v4hi): Ditto.
18590         (mulv2si3): Change endian checks.
18591         (sdot_prodv4hi): Rewrite with new calls.
18592         (udot_prodv4hi): New.
18593         (vec_pack_ssat_v4hi): Add endian check.
18594         (vec_pack_usat_v4hi): Ditto.
18595         (vec_pack_ssat_v2si): Ditto.
18596         (max1_even): Rename from max1_r, add endian check.
18597         (max1_odd): Rename from max1_l, add endian check.
18598         (*mux1_rev): Format change.
18599         (*mux1_mix): Ditto.
18600         (*mux1_shuf): Ditto.
18601         (*mux1_alt): Ditto.
18602         (*mux1_brcst_v8qi): Use new predicate.
18603         (vec_extract_evenv8qi): Remove endian check.
18604         (vec_extract_oddv8qi): Ditto.
18605         (vec_interleave_lowv4hi): Format change.
18606         (vec_interleave_highv4hi): Ditto.
18607         (mix2_even): Rename from mix2_r, add endian check.
18608         (mix2_odd): Rename from mux2_l, add endian check.
18609         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
18610         (vec_extract_evenodd_helper): Format change.
18611         (vec_extract_evenv4hi): Remove endian check.
18612         (vec_extract_oddv4hi): Remove endian check.
18613         (vec_interleave_lowv2si): Format change.
18614         (vec_interleave_highv2si): Format change.
18615         (vec_initv2si): Remove endian check.
18616         (vecinit_v2si): Add endian check.
18617         (reduc_splus_v2sf): Add endian check.
18618         (reduc_smax_v2sf): Ditto.
18619         (reduc_smin_v2sf): Ditto.
18620         (vec_initv2sf): Remove endian check.
18621         (fpack): Add endian check.
18622         (fswap): Add endian check.
18623         (vec_interleave_highv2sf): Add endian check.
18624         (vec_interleave_lowv2sf): Add endian check.
18625         (fmix_lr): Add endian check.
18626         (vec_setv2sf): Format change.
18627         (*vec_extractv2sf_0_be): Use shift to extract operand.
18628         (*vec_extractv2sf_1_be): New.
18629         (vec_pack_trunc_v4hi): Add endian check.
18630         (vec_pack_trunc_v2si): Format change.
18631
18632 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
18633
18634         PR inline-asm/23200
18635         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
18636         do bb, locus and block comparison and disallow loads if it is not set.
18637         (stmt_is_replaceable_p): New function.
18638         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
18639         callers.
18640         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
18641         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
18642         SSA_NAME_DEF_STMT.
18643         * tree-flow.h (stmt_is_replaceable_p): New prototype.
18644
18645 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18646
18647         * config/rs6000/xilinx.opt: New.
18648         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
18649
18650 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18651
18652         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
18653
18654 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
18655
18656         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
18657         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
18658         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
18659         secondary_reload_info, xtensa_secondary_reload): Remove.
18660         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
18661         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
18662         (xtensa_preferred_reload_class): Make static. Change return and
18663         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
18664         Use CONST_DOUBLE_P predicate.
18665         (xtensa_preferred_output_reload_class): New function.
18666         (xtensa_secondary_reload): Make static.
18667
18668 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
18669
18670         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
18671         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
18672         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
18673
18674 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18675
18676         PR middle-end/31490
18677         * output.h (SECTION_RELRO): Define.
18678         (SECTION_MACH_DEP): Adjust.
18679         (get_variable_section): New prototype.
18680         * varpool.c (varpool_finalize_named_section_flags): New function.
18681         (varpool_assemble_pending_decls): Call it.
18682         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
18683         * cgraphunit.c (cgraph_output_in_order): Call
18684         varpool_finalize_named_section_flags.
18685         * varasm.c (get_section): Allow section flags conflicts between
18686         relro and read-only sections if the section hasn't been declared yet.
18687         Set SECTION_OVERRIDE after diagnosing section type conflict.
18688         (get_variable_section): No longer static.
18689         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
18690         readonly sections that need relocations.
18691         (decl_readonly_section_1): New function.
18692         (decl_readonly_section): Use it.
18693
18694         Revert:
18695         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
18696                     Steve Ellcey  <sje@cup.hp.com>
18697
18698         PR middle-end/31490
18699         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
18700         if section attribute used.
18701
18702 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18703
18704         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
18705         * config/darwin.c (SECTION_NO_ANCHOR): Define.
18706         (darwin_init_sections): Remove assertion.
18707
18708 2011-02-03  Nick Clifton  <nickc@redhat.com>
18709
18710         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
18711         lt and ge.
18712         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
18713         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
18714         instead of "n" and "pz".
18715         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
18716         CC_FLAG_S.
18717
18718 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18719
18720         PR target/47312
18721         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
18722         fma, expand FMA_EXPR as fma{,f,l} call.
18723
18724         PR lto/47274
18725         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
18726         copy them into a unsigned char variable and pass address of it to
18727         lto_output_data_stream.
18728
18729         PR target/47564
18730         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
18731         around backend_init_target and lang_dependent_init_target calls.
18732         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
18733         (verify_cgraph_node): Don't call set_cfun here.  Use
18734         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
18735         Set error_found for incorrectly represented calls to thunks.
18736
18737 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
18738
18739         PR debug/43092
18740         PR rtl-optimization/43494
18741         * rtl.h (for_each_inc_dec_fn): New type.
18742         (for_each_inc_dec): Declare.
18743         * rtlanal.c (struct for_each_inc_dec_ops): New type.
18744         (for_each_inc_dec_find_inc_dec): New fn.
18745         (for_each_inc_dec_find_mem): New fn.
18746         (for_each_inc_dec): New fn.
18747         * dse.c (struct insn_size): Remove.
18748         (replace_inc_dec, replace_inc_dec_mem): Remove.
18749         (emit_inc_dec_insn_before): New fn.
18750         (check_for_inc_dec): Use it, along with for_each_inc_dec.
18751         (canon_address): Pass mem modes to cselib_lookup.
18752         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
18753         (cselib_lookup_from_insn): Likewise.
18754         (cselib_subst_to_values): Likewise.
18755         * cselib.c (find_slot_memmode): New var.
18756         (cselib_find_slot): New fn.  Use it instead of
18757         htab_find_slot_with_hash everywhere.
18758         (entry_and_rtx_equal_p): Use find_slot_memmode.
18759         (autoinc_split): New fn.
18760         (rtx_equal_for_cselib_p): Rename and implement in terms of...
18761         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
18762         Deal with autoinc.  Special-case recursion into MEMs.
18763         (cselib_hash_rtx): Likewise.
18764         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
18765         address and MEM modes.
18766         (cselib_subst_to_values): Add memmode, pass it on.
18767         Deal with autoinc.
18768         (cselib_lookup): Add memmode argument, pass it on.
18769         (cselib_lookup_from_insn): Add memmode.
18770         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
18771         (struct cselib_record_autoinc_data): New.
18772         (cselib_record_autoinc_cb): New fn.
18773         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
18774         mode to cselib_lookup.  Reset autoinced REGs here instead of...
18775         (cselib_process_insn): ... here.
18776         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
18777         to cselib_lookup.
18778         (add_uses): Likewise, also to cselib_subst_to_values.
18779         (add_stores): Likewise.
18780         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
18781         cselib_subst_to_values.
18782         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
18783         * gcse.c (do_local_cprop): Adjusted.
18784         * postreload.c (reload_cse_simplify_set): Adjusted.
18785         (reload_cse_simplify_operands): Adjusted.
18786         * sel-sched-dump (debug_mem_addr_value): Pass mode.
18787
18788 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
18789
18790         PR tree-optimization/45122
18791         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
18792         unsafe assumptions when there's more than one loop exit.
18793
18794 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
18795
18796         PR target/47272
18797         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
18798         Document using vector double with the load/store builtins, and
18799         that the load/store builtins always use Altivec instructions.
18800
18801         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
18802         to use altivec memory instructions, even on VSX.
18803         (vector_altivec_store_<mode>): Ditto.
18804
18805         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
18806         function.
18807
18808         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
18809         V2DF, V2DI support to load/store overloaded builtins.
18810
18811         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
18812         altivec load/store builtins for V2DF/V2DI types.
18813
18814         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
18815         set avoid indexed addresses on power6 if -maltivec.
18816         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
18817         vector_altivec_load/vector_altivec_store builtins.
18818         (altivec_expand_st_builtin): Ditto.
18819         (altivec_expand_builtin): Add VSX memory builtins.
18820         (rs6000_init_builtins): Add V2DI types to internal types.
18821         (altivec_init_builtins): Add support for V2DF/V2DI altivec
18822         load/store builtins.
18823         (rs6000_address_for_altivec): Insure memory address is appropriate
18824         for Altivec.
18825
18826         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
18827         vec_vsx_ld and vec_vsx_st.
18828         (vsx_store_<mode>): Ditto.
18829
18830         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
18831         variables to hold long long types for VSX vector memory builtins.
18832         (RS6000_BTI_unsigned_long_long): Ditto.
18833         (long_long_integer_type_internal_node): Ditti.
18834         (long_long_unsigned_type_internal_node): Ditti.
18835
18836         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
18837         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
18838         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
18839
18840         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
18841         short cuts.
18842         (vec_vsx_st): Ditto.
18843
18844 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18845
18846         * config/pa/pa-hpux10.opt: New.
18847         * config/hpux11.opt (pthread): New Driver option.
18848         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
18849         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
18850
18851 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18852
18853         * config/ia64/vms.opt: New.
18854         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
18855
18856 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
18857
18858         PR target/47580
18859         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
18860         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
18861         generator functions.
18862         (vsx_floatuns<VSi><mode>2): Ditto.
18863         (vsx_fix_trunc<mode><VSi>2): Ditto.
18864         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
18865
18866 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18867
18868         * config/i386/djgpp.opt (posix): New Driver option.
18869
18870 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
18871
18872         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
18873         Move to the unsupported targets list.
18874
18875 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
18876
18877         PR rtl-optimization/47525
18878         * df-scan.c: Update copyright years.
18879         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
18880         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
18881
18882 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18883
18884         * config/i386/sysv4.h (TARGET_VERSION): Remove.
18885         (SUBTARGET_RETURN_IN_MEMORY): Remove.
18886         (ASM_OUTPUT_ASCII): Remove.
18887         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
18888
18889 2011-02-02  Jeff Law  <law@redhat.com>
18890
18891         PR middle-end/47543
18892         * reload.c (find_reloads_address): Handle reg+d address where both
18893         components are invalid by reloading the entire address.
18894
18895 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
18896             Richard Guenther  <rguenther@suse.de>
18897
18898         PR tree-optimization/40979
18899         PR bootstrap/47044
18900         * passes.c (init_optimization_passes): After LIM call copy_prop
18901         and DCE to clean up.
18902         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
18903
18904 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
18905
18906         PR tree-optimization/47576
18907         PR tree-optimization/47555
18908         * doc/invoke.texi (scev-max-expr-complexity): Documented.
18909         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
18910         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
18911         * tree-scalar-evolution.c (follow_ssa_edge): Use
18912         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
18913
18914 2011-02-02  Richard Guenther  <rguenther@suse.de>
18915
18916         PR tree-optimization/47566
18917         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
18918
18919 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
18920
18921         PR debug/47106
18922         PR debug/47402
18923         * tree-inline.c (declare_return_variable): Remove unused caller
18924         variable.
18925
18926         PR debug/47106
18927         PR debug/47402
18928         * tree-flow-inline.h (clear_is_used, is_used_p): New.
18929         * cfgexpand.c (account_used_vars_for_block): Use them.
18930         * tree-nrv.c (tree_nrv): Likewise.
18931         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
18932         (dump_scope_block): Likewise.
18933         (remove_unused_locals): Likewise.
18934
18935         PR debug/47106
18936         PR debug/47402
18937         * tree-inline.c (declare_return_variable): Add result decl to
18938         local decls only once.
18939         * gimple-low.c (record_vars_into): Mark newly-created variables
18940         as referenced.
18941
18942 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
18943
18944         PR debug/47498
18945         PR debug/47501
18946         PR debug/45136
18947         PR debug/45130
18948         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
18949         debug insns.
18950         (no_real_insns_p, schedule_block, set_priorities): Drop special
18951         treatment of boundary debug insns.
18952         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
18953         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
18954         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
18955         (BOUNDARY_DEBUG_INSN_P): Likewise.
18956         (SCHEDULE_DEBUG_INSN_P): Likewise.
18957         * sched-rgn.c (init_ready_list): Drop special treatment of
18958         boundary debug insns.
18959         * final.c (rest_of_clean_state): Clear notes' BB.
18960
18961 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18962
18963         * config/openbsd.opt (assert=): New Driver option.
18964
18965 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18966
18967         * config/i386/nto.opt: New.
18968         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
18969
18970 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18971
18972         * config/i386/netware.opt: New.
18973         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
18974
18975 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18976
18977         * config/interix.opt (posix): New Driver option.
18978
18979 2011-02-01  DJ Delorie  <dj@redhat.com>
18980
18981         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
18982
18983         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
18984         class for A0/A1.
18985
18986 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
18987
18988         PR tree-optimization/47561
18989         * toplev.c (process_options): Print the Graphite flags.  Add
18990         flag_loop_flatten to the list of options requiring Graphite.
18991
18992 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18993
18994         * config/i386/cygming.opt (posix): New Driver option.
18995
18996 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18997
18998         * config/arm/vxworks.opt: New.
18999         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
19000
19001 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
19002
19003         * config/alpha/elf.opt: New.
19004         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
19005         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
19006
19007 2011-02-01  Richard Guenther  <rguenther@suse.de>
19008
19009         PR tree-optimization/47559
19010         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
19011         store-motion on references that can throw.
19012
19013 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
19014
19015         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
19016         * tree-pass.h (TDF_CSELIB): New macro.
19017         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
19018         cselib_lookup): Check for it rather than for TDF_DETAILS.
19019
19020 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
19021
19022         PR driver/47547
19023         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
19024         is HOST_BIT_BUCKET.
19025
19026         * opts.c (finish_options): Don't add x_aux_base_name if it is
19027         HOST_BIT_BUCKET.
19028
19029 2011-02-01  Richard Guenther  <rguenther@suse.de>
19030
19031         PR tree-optimization/47555
19032         Revert
19033         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
19034
19035         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
19036
19037 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
19038
19039         PR gcc/46692
19040         * config/lm32/t-lm32: Add multilib for all CPU options.
19041
19042 2011-02-01  Richard Guenther  <rguenther@suse.de>
19043
19044         PR tree-optimization/47541
19045         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
19046         sure to have a field at offset zero.
19047
19048 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
19049
19050         * config/arc/arc.opt (EB, EL): New Driver options.
19051
19052 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
19053
19054         * config/alpha/osf5.opt: New.
19055         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
19056
19057 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
19058
19059         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
19060
19061 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
19062
19063         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
19064         -floop-interchange.
19065         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
19066         is an alias of -floop-interchange and that it requires the
19067         Graphite infrastructure.
19068         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
19069         flag_loop_interchange based on the value of flag_tree_loop_linear.
19070
19071 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
19072             Richard Guenther  <rguenther@suse.de>
19073
19074         PR tree-optimization/47538
19075         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
19076         type instead of r1type, except for comparisons.  For right
19077         shifts and comparisons punt if there are mismatches in
19078         sizetype vs. non-sizetype types.
19079
19080 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19081
19082         * doc/sourcebuild.texi (Effective-Target Keywords): Document
19083         avx_runtime.
19084
19085 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19086
19087         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
19088         version number.
19089         * configure: Regenerate.
19090
19091 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19092
19093         * configure.ac (gcc_cv_ld_static_option): Define.
19094         (gcc_cv_ld_dynamic_option): Define.
19095         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
19096         instead.
19097         (HAVE_LD_STATIC_DYNAMIC): Update message.
19098         (LD_STATIC_OPTION): Define.
19099         (LD_DYNAMIC_OPTION): Define.
19100         * configure: Regenerate.
19101         * config.in: Regenerate.
19102         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
19103         HAVE_LD_STATIC_DYNAMIC]: Use them.
19104
19105 2011-01-31  Nick Clifton  <nickc@redhat.com>
19106
19107         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
19108         registers inside interrupt handlers if the handler is not a leaf
19109         function.
19110
19111 2011-01-31  Nick Clifton  <nickc@redhat.com>
19112
19113         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
19114         reg_renumber returning an INVALID_REGNUM.
19115
19116 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
19117
19118         PR libgcj/44341
19119         * doc/install.texi: Document host options discarded when cross
19120         configuring target libraries.
19121
19122 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
19123
19124         Reverted:
19125         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
19126         PR debug/45136
19127         PR debug/45130
19128         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
19129         debug insns.
19130         (no_real_insns_p, schedule_block, set_priorities): Drop special
19131         treatment of boundary debug insns.
19132         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
19133         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
19134         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19135         (BOUNDARY_DEBUG_INSN_P): Likewise.
19136         (SCHEDULE_DEBUG_INSN_P): Likewise.
19137         * sched-rgn.c (init_ready_list): Drop special treatment of
19138         boundary debug insns.
19139         * final.c (rest_of_clean-state): Clear notes' BB.
19140
19141 2011-01-31  Alan Modra  <amodra@gmail.com>
19142
19143         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
19144         toc relative expressions as we do in print_operand_address.
19145
19146 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
19147
19148         * doc/extend.texi: Follow spelling conventions.
19149         * doc/invoke.texi: Fix a typo.
19150
19151 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
19152
19153         * config/hpux11.opt: New.
19154         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
19155         ia64*-*-hpux*): Use hpux11.opt.
19156
19157 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
19158
19159         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
19160         to tmake_file.
19161
19162 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
19163
19164         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
19165         support sites.
19166
19167 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
19168
19169         * doc/install.texi (Binaries): Remove outdated reference for
19170         Motorola 68HC11/68HC12 downloads.
19171
19172 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
19173
19174         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
19175         Drepper's paper.
19176
19177 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
19178
19179         PR bootstrap/47147
19180         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
19181         used by NetBSD.
19182
19183 2011-01-28  Ahmad Sharif  <asharif@google.com>
19184
19185         * value-prof.c (check_counter): Corrected error message.
19186
19187 2011-01-29  Jie Zhang  <jie@codesourcery.com>
19188
19189         * config/arm/arm.c (arm_legitimize_reload_address): New.
19190         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
19191         arm_legitimize_reload_address.
19192         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
19193
19194 2011-01-28  Ian Lance Taylor  <iant@google.com>
19195
19196         * godump.c (go_define): Ignore macros whose definitions include
19197         two adjacent operands.
19198
19199 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
19200
19201         PR target/42894
19202         * varasm.c (force_const_mem): Store copy of x in desc->constant
19203         instead of x itself.
19204         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
19205         itself into REG_EQUAL note.
19206
19207 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
19208
19209         * config/freebsd.opt (posix, rdynamic): New Driver options.
19210
19211 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19212
19213         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
19214         -Bstatic/-Bdynamic.
19215         * configure: Regenerate.
19216
19217 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
19218
19219         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
19220         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
19221
19222 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
19223
19224         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
19225         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
19226         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
19227         (s390_preferred_reload_class): Make static. Change return and
19228         'rclass' argument type to reg_class_t.
19229
19230 2011-01-27  Jan Hubicka  <jh@suse.cz>
19231
19232         PR middle-end/46949
19233         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
19234         (process_function_and_variable_attributes): Check defined weakrefs.
19235
19236 2011-01-27  Martin Jambor  <mjambor@suse.cz>
19237
19238         PR tree-optimization/47228
19239         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
19240         build_ref_for_offset.
19241
19242 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19243
19244         * config/spu/spu-elf.h (ASM_SPEC): Remove.
19245
19246 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
19247
19248         PR rtl-optimization/46856
19249         * postreload.c (reload_combine_recognize_const_pattern): Do not
19250         separate cc0 setter and user on cc0 targets.
19251
19252 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
19253
19254         PR c/43082
19255         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
19256         passed a VOID_TYPE expression, immediately emit an error and
19257         return error_mark_node.
19258
19259 2011-01-26  Jeff Law  <law@redhat.com>
19260
19261         PR rtl-optimization/47464
19262         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
19263         rather than may_trap_p as needed.
19264
19265 2011-01-26  DJ Delorie  <dj@redhat.com>
19266
19267         PR rtl-optimization/46878
19268         * combine.c (insn_a_feeds_b): Check for the implicit cc0
19269         setter/user dependency as well.
19270
19271 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
19272
19273         PR rtl-optimization/44469
19274         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
19275         after removing trivially dead basic blocks.
19276
19277 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19278
19279         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
19280         * config/frv/frv.h (LINK_SPEC): Likewise.
19281         * config/i386/netware.h (LINK_SPEC): Likewise.
19282         * config/m68k/linux.h (ASM_SPEC): Likewise.
19283         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
19284         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
19285         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19286         * config/sparc/linux.h (ASM_SPEC): Likewise.
19287         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19288         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19289
19290 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19291
19292         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
19293         * config/frv/frv.h (ASM_SPEC): Likewise.
19294         * config/m68k/linux.h (ASM_SPEC): Likewise.
19295         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
19296         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
19297         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19298         * config/sparc/linux.h (ASM_SPEC): Likewise.
19299         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19300         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19301
19302 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19303
19304         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
19305         * config/frv/frv.h (LINK_SPEC): Likewise.
19306         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
19307
19308 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19309
19310         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
19311         * config/frv/frv.h (ASM_SPEC): Likewise.
19312         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
19313         * config/m68k/linux.h (ASM_SPEC): Likewise.
19314         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
19315         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
19316         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19317         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
19318         * config/sparc/linux.h (ASM_SPEC): Likewise.
19319         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19320         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19321         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
19322
19323 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
19324
19325         PR target/46997
19326         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
19327         (*mux2): Ditto.
19328         (vec_extract_evenodd_help): Ditto.
19329         (vec_extract_evenv4hi): Ditto.
19330         (vec_extract_oddv4hi): Ditto.
19331         (vec_interleave_lowv2si): Ditto.
19332         (vec_interleave_highv2si): Ditto.
19333         (vec_extract_evenv2si): Ditto.
19334         (vec_extract_oddv2si: Ditto.
19335         (vec_pack_trunc_v2si): Ditto.
19336
19337 2011-01-22  Jan Hubicka  <jh@suse.cz>
19338
19339         PR target/47237
19340         * cgraph.h (cgraph_local_info): New field can_change_signature.
19341         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
19342         signature can change.
19343         (ipcp_estimate_growth): Call sequence simplify only if calle signature
19344         can change.
19345         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
19346         (cgraph_function_versioning): We can not change signature of functions
19347         that don't allow that.
19348         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
19349         (lto_input_node): Likewise.
19350         * ipa-inline.c (compute_inline_parameters): Compute
19351         local.can_change_signature.
19352         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
19353         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
19354         functions that can not change signature.
19355         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
19356         init_cumulative_args): Do not use local calling conventions
19357         for functions that can not change signature.
19358
19359 2011-01-22  Jan Hubicka  <jh@suse.cz>
19360
19361         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
19362
19363 2011-01-26  Richard Guenther  <rguenther@suse.de>
19364
19365         PR tree-optimization/47190
19366         * cgraphunit.c (process_common_attributes): New function.
19367         (process_function_and_variable_attributes): Use it.
19368
19369 2011-01-26  Richard Guenther  <rguenther@suse.de>
19370
19371         PR lto/47423
19372         * cgraphbuild.c (record_eh_tables): Record reference to personality
19373         function.
19374
19375 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
19376
19377         PR debug/45454
19378         * sel-sched.c (moveup_expr): Don't let debug insns prevent
19379         non-debug insns from moving up.
19380
19381 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
19382
19383         PR target/40125
19384         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
19385         t-dlldir{,-x} fragment for build and add it to tmake_file.
19386         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
19387         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
19388         * config/i386/t-dlldir: New file.
19389         (SHLIB_DLLDIR): Define.
19390         * config/i386/t-dlldir-x: New file.
19391         (SHLIB_DLLDIR): Define.
19392         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
19393         (SHLIB_INSTALL): Use it.
19394
19395 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
19396
19397         PR target/47246
19398         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
19399         lower bound of the allowed Thumb-2 coprocessor load/store
19400         index range to -256. Add explaining comment.
19401
19402 2011-01-25  Ian Lance Taylor  <iant@google.com>
19403
19404         * godump.c (go_define): Improve lexing of macro expansion to only
19405         accept expressions which match Go spec.
19406
19407 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
19408
19409         PR c++/43601
19410         * tree.c (handle_dll_attribute): Handle it.
19411         * doc/extend.texi (@item dllexport): Mention it.
19412         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
19413
19414 2011-01-25  Ian Lance Taylor  <iant@google.com>
19415
19416         PR tree-optimization/26854
19417         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
19418         (decl_jump_unsafe): Move higher in file, with no other change.
19419         (bind): Set has_jump_unsafe_decl if appropriate.
19420         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
19421         (check_earlier_gotos): Likewise.
19422         (c_check_switch_jump_warnings): Likewise.
19423
19424 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
19425
19426         * doc/invoke.texi (Warning Options): Add missing hyphen.
19427         (-fprofile-dir): Minor grammatical fixes.
19428         (-fbranch-probabilities): Likewise.
19429
19430 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
19431
19432         PR debug/45136
19433         PR debug/45130
19434         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
19435         debug insns.
19436         (no_real_insns_p, schedule_block, set_priorities): Drop special
19437         treatment of boundary debug insns.
19438         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
19439         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
19440         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19441         (BOUNDARY_DEBUG_INSN_P): Likewise.
19442         (SCHEDULE_DEBUG_INSN_P): Likewise.
19443         * sched-rgn.c (init_ready_list): Drop special treatment of
19444         boundary debug insns.
19445         * final.c (rest_of_clean-state): Clear notes' BB.
19446
19447 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19448
19449         * Makefile.in (LAMBDA_H): Removed.
19450         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
19451         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
19452         lambda-trans.o, and tree-loop-linear.o.
19453         (lto-symtab.o): Remove dependence on LAMBDA_H.
19454         (tree-loop-linear.o): Remove rule.
19455         (lambda-mat.o): Same.
19456         (lambda-trans.o): Same.
19457         (lambda-code.o): Same.
19458         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
19459         (tree-vect-slp.o): Same.
19460         * hwint.h (gcd): Moved here.
19461         (least_common_multiple): Same.
19462         * lambda-code.c: Removed.
19463         * lambda-mat.c: Removed.
19464         * lambda-trans.c: Removed.
19465         * lambda.h: Removed.
19466         * tree-loop-linear.c: Removed.
19467         * lto-symtab.c: Do not include lambda.h.
19468         * omega.c (gcd): Removed.
19469         * passes.c (init_optimization_passes): Remove pass_linear_transform.
19470         * tree-data-ref.c (print_lambda_vector): Moved here.
19471         (lambda_vector_copy): Same.
19472         (lambda_matrix_copy): Same.
19473         (lambda_matrix_id): Same.
19474         (lambda_vector_first_nz): Same.
19475         (lambda_matrix_row_add): Same.
19476         (lambda_matrix_row_exchange): Same.
19477         (lambda_vector_mult_const): Same.
19478         (lambda_vector_negate): Same.
19479         (lambda_matrix_row_negate): Same.
19480         (lambda_vector_equal): Same.
19481         (lambda_matrix_right_hermite): Same.
19482         * tree-data-ref.h: Do not include lambda.h.
19483         (lambda_vector): Moved here.
19484         (lambda_matrix): Same.
19485         (dependence_level): Same.
19486         (lambda_transform_legal_p): Removed declaration.
19487         (lambda_collect_parameters): Same.
19488         (lambda_compute_access_matrices): Same.
19489         (lambda_vector_gcd): Same.
19490         (lambda_vector_new): Same.
19491         (lambda_vector_clear): Same.
19492         (lambda_vector_lexico_pos): Same.
19493         (lambda_vector_zerop): Same.
19494         (lambda_matrix_new): Same.
19495         * tree-flow.h (least_common_multiple): Removed declaration.
19496         * tree-parloops.c (lambda_trans_matrix): Moved here.
19497         (LTM_MATRIX): Same.
19498         (LTM_ROWSIZE): Same.
19499         (LTM_COLSIZE): Same.
19500         (LTM_DENOMINATOR): Same.
19501         (lambda_trans_matrix_new): Same.
19502         (lambda_matrix_vector_mult): Same.
19503         (lambda_transform_legal_p): Same.
19504         * tree-pass.h (pass_linear_transform): Removed declaration.
19505         * tree-ssa-loop.c (tree_linear_transform): Removed.
19506         (gate_tree_linear_transform): Removed.
19507         (pass_linear_transform): Removed.
19508         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
19509         flag_loop_interchange.
19510
19511 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19512
19513         PR tree-optimization/47265
19514         PR tree-optimization/47443
19515         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
19516         if name still has some uses.
19517
19518 2011-01-25  Martin Jambor  <mjambor@suse.cz>
19519
19520         PR tree-optimization/47382
19521         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
19522         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
19523
19524 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
19525
19526         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
19527         sjlj_except_unwind_info.
19528
19529 2011-01-25  Richard Guenther  <rguenther@suse.de>
19530
19531         PR tree-optimization/47426
19532         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
19533         visible functions results escape.
19534
19535 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19536
19537         PR target/45701
19538         * config/arm/arm.c (any_sibcall_uses_r3): New function.
19539         (arm_get_frame_offsets): Use it.
19540
19541 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19542             Jakub Jelinek  <jakub@redhat.com>
19543
19544         PR tree-optimization/47271
19545         * tree-if-conv.c (bb_postdominates_preds): New.
19546         (if_convertible_bb_p): Call bb_postdominates_preds.
19547         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
19548         (predicate_scalar_phi): Call bb_postdominates_preds.
19549
19550 2011-01-25  Nick Clifton  <nickc@redhat.com>
19551
19552         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
19553         * config/rx/rx.c (rx_function_value): Likewise.
19554         (rx_promote_function_mode): Likewise.
19555         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
19556         in order to make it legitimate.
19557         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
19558         make sure that the first operand is the same as the result register.
19559         (addsi3_unspec): Delete.
19560         (subdi3): Do not accept immediate operands.
19561         (subdi3_internal): Likewise.
19562
19563 2011-01-25  Jeff Law  <law@redhat.com>
19564
19565         PR rtl-optimization/37273
19566         * ira-costs.c (scan_one_insn): Detect constants living in memory and
19567         handle them like argument loads from stack slots.  Do not double
19568         count memory for memory constants and argument loads from stack slots.
19569
19570 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19571
19572         PR tree-optimization/47427
19573         PR tree-optimization/47428
19574         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19575         coalesce if the new root var would be TREE_READONLY.
19576
19577 2011-01-25  Richard Guenther  <rguenther@suse.de>
19578
19579         PR middle-end/47414
19580         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
19581         correct type for TBAA.
19582
19583 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19584
19585         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
19586         (close_phi_written_to_memory): Call for_each_index with
19587         dr_indices_valid_in_loop.
19588
19589 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19590
19591         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
19592         when it is initialized.
19593
19594 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19595
19596         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
19597         call to graphite_find_data_references_in_stmt.
19598         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
19599         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
19600         call to graphite_find_data_references_in_stmt.
19601         (analyze_drs_in_stmts): Same.
19602         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
19603         in which the scalar analysis of indices is performed.
19604         (create_data_ref): Same.  Update call to dr_analyze_indices.
19605         (find_data_references_in_stmt): Update call to create_data_ref.
19606         (graphite_find_data_references_in_stmt): Same.
19607         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
19608         declaration.
19609         (create_data_ref): Same.
19610         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
19611         call to create_data_ref.
19612
19613 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19614
19615         * graphite-sese-to-poly.c (build_poly_scop): Move
19616         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
19617
19618 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19619
19620         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
19621         VAR_DECL, PARM_DECL, and RESULT_DECL.
19622
19623 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19624
19625         * graphite-dependences.c (reduction_dr_1): Allow several reductions
19626         in a reduction PBB.
19627         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
19628         that have already been marked as PBB_IS_REDUCTION.
19629
19630 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19631
19632         * graphite-scop-detection.c (same_close_phi_node): New.
19633         (remove_duplicate_close_phi): New.
19634         (make_close_phi_nodes_unique): New.
19635         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
19636
19637 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19638
19639         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
19640         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
19641         of both data references to be the same.
19642
19643 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19644
19645         * graphite-dependences.c (build_lexicographical_constraint): Remove
19646         the gdim parameter.
19647         (build_lexicographical_constraint): Adjust call to
19648         ppl_powerset_is_empty.
19649         (dependence_polyhedron): Same.
19650         (graphite_legal_transform_dr): Same.
19651         (graphite_carried_dependence_level_k): Same.
19652         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
19653         parameter.
19654         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
19655
19656 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19657
19658         * graphite-sese-to-poly.c
19659         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
19660         (close_phi_written_to_memory): New.
19661         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
19662         and unshare_expr.
19663
19664 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19665
19666         * doc/install.texi: Update the expected version number of PPL to 0.11.
19667         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
19668         #if PPL_VERSION_MINOR < 11.
19669
19670 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19671
19672         * graphite-dependences.c: Include graphite-cloog-util.h.
19673         (new_poly_ddr): Inlined into dependence_polyhedron.
19674         (free_poly_ddr): Moved close by new_poly_ddr.
19675         (dependence_polyhedron_1): Renamed dependence_polyhedron.
19676         Early return NULL when ppl_powerset_is_empty returns true.
19677         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
19678         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
19679         (graphite_legal_transform_dr): Call new_poly_ddr.
19680         (graphite_carried_dependence_level_k): Same.
19681         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
19682         (dot_transformed_deps_stmt_1): Removed.
19683         (dot_deps_stmt_1): Call dot_deps_stmt_2.
19684         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
19685         (dot_deps_1): Call dot_deps_2.
19686         * Makefile.in (graphite-dependences.o): Add missing dependence on
19687         graphite-cloog-util.h.
19688
19689 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19690
19691         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
19692         (build_lexicographical_constraint): Same.
19693         (dependence_polyhedron_1): Same.
19694         (graphite_legal_transform_dr): Same.
19695         (graphite_carried_dependence_level_k): Same.
19696         * graphite-ppl.c (ppl_powerset_is_empty): New.
19697         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
19698         * tree-data-ref.c (dump_data_reference): Print the basic block index.
19699
19700 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19701
19702         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
19703         the "a followed by b" relation and document it.
19704
19705 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19706
19707         * graphite-dependences.c (build_lexicographical_constraint): Stop the
19708         iteration when the bag of constraints is empty.
19709
19710 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19711
19712         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
19713
19714 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19715
19716         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
19717         nest and two loop depths as parameters.
19718         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
19719         lst_perfect_nestify.
19720
19721 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19722
19723         * graphite-dependences.c (print_pddr): Call
19724         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
19725
19726 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19727
19728         * graphite-ppl.c (debug_gmp_value): New.
19729         * graphite-ppl.h (debug_gmp_value): Declared.
19730
19731 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
19732
19733         * doc/install.texi: Document availability of cloog-0.16.
19734
19735 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
19736
19737         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
19738         invalid postdominance info.
19739
19740 2011-01-24  Jan Hubicka  <jh@suse.cz>
19741
19742         PR c/21659
19743         * doc/extend.texi (weak pragma): Drop claim that it must
19744         appear before definition.
19745         * varasm.c (merge_weak, declare_weak): Only sanity check
19746         that DECL is not output at a time it is declared weak.
19747
19748 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
19749
19750         * machmode.def: Fixed comments.
19751
19752 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
19753
19754         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
19755
19756 2011-01-24  Paul Koning  <ni1d@arrl.net>
19757
19758         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
19759         WORDS_BIG_ENDIAN.
19760
19761 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19762
19763         PR target/46519
19764         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
19765         (block_info): Add scanned and prev.
19766         (move_or_delete_vzeroupper_2): Return if the basic block
19767         has been scanned and the upper 128bit state is unchanged
19768         from the last scan.
19769         (move_or_delete_vzeroupper_1): Return true if the exit
19770         state is changed.
19771         (move_or_delete_vzeroupper): Visit basic blocks using the
19772         work-list based algorithm based on vt_find_locations in
19773         var-tracking.c.
19774
19775         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
19776
19777 2011-01-24  Nick Clifton  <nickc@redhat.com>
19778
19779         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
19780         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
19781         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
19782         then define __v850e1__.
19783         * doc/invoke.texi: Document -mv850es.
19784
19785 2011-01-24  Richard Henderson  <rth@redhat.com>
19786
19787         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
19788         compound unordered comparisons.
19789         * config/rx/rx.c (rx_split_fp_compare): Remove.
19790         * config/rx/rx-protos.h: Update.
19791         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
19792         (cbranchsf4): Don't call rx_split_fp_compare.
19793         (*cbranchsf4): Use rx_split_cbranch.
19794         (*cmpsf): Don't accept "i" constraint.
19795         (*conditional_branch): Only valid after reload.
19796         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
19797
19798 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19799
19800         PR target/47385
19801         * config/rs6000/altivec.md (vector constant splitters): Add
19802         support for creating vector single precision constants if -mvsx is
19803         used and we would create the constant using Altivec primitives.
19804
19805 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
19806             Richard Sandiford  <rdsandiford@googlemail.com>
19807
19808         PR rtl-optimization/47166
19809         * reload1.c (emit_reload_insns): Disable the spill_reg_store
19810         mechanism for PRE_MODIFY and POST_MODIFY.
19811         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
19812         reloadreg.
19813
19814 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
19815
19816         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
19817
19818 2011-01-22  Jan Hubicka  <jh@suse.cz>
19819
19820         PR lto/47333
19821         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
19822
19823 2011-01-22  Jan Hubicka  <jh@suse.cz>
19824
19825         PR tree-optimization/43884
19826         PR lto/44334
19827         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
19828         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
19829
19830 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
19831
19832         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19833         * config/s390/s390.c (s390_register_move_cost,
19834         s390_memory_move_cost): New.
19835         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
19836
19837 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19838
19839         PR middle-end/47401
19840         * except.c (sjlj_assign_call_site_values): Move setting the
19841         crtl->uses_eh_lsda flag to ...
19842         (sjlj_mark_call_sites): ... here.
19843         (sjlj_emit_function_enter): Support NULL dispatch label.
19844         (sjlj_build_landing_pads): In a function with no landing pads
19845         that still has must-not-throw regions, generate code to register
19846         a personality function with empty LSDA.
19847
19848 2011-01-21  Richard Henderson  <rth@redhat.com>
19849
19850         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
19851
19852         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
19853
19854         * compare-elim.c: New file.
19855         * Makefile.in (OBJS-common): Add it.
19856         (compare-elim.o): New.
19857         * common.opt (fcompare-elim): New.
19858         * opts.c (default_options_table): Add OPT_fcompare_elim.
19859         * tree-pass.h (pass_compare_elim_after_reload): New.
19860         * passes.c (init_optimization_passes): Add it.
19861         * recog.h: Protect against re-inclusion.
19862         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
19863         * doc/invoke.texi (-fcompare-elim): Document it.
19864         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
19865         * doc/tm.texi: Rebuild.
19866
19867 2011-01-22  Nick Clifton  <nickc@redhat.com>
19868
19869         * config/rx/rx.md (cstoresf4): Pass comparison operator to
19870         rx_split_fp_compare.
19871
19872 2011-01-22  Nick Clifton  <nickc@redhat.com>
19873
19874         * config/rx/rx.md (UNSPEC_CONST): New.
19875         (deallocate_and_return): Wrap the amount popped off the stack in
19876         an UNSPEC_CONST in order to stop it being rejected by
19877         -mmax-constant-size.
19878         (pop_and_return): Add a "(return)" rtx.
19879         (call): Drop the immediate operand.
19880         (call_internal): Likewise.
19881         (call_value): Likewise.
19882         (call_value_internal): Likewise.
19883         (sibcall_internal): Likewise.
19884         (sibcall_value_internal): Likewise.
19885         (sibcall): Likewise.  Generate an explicit call using
19886         sibcall_internal.
19887         (sibcall_value): Likewise.
19888         (mov<>): FAIL if a constant operand is not legitimate.
19889         (addsi3_unpsec): New pattern.
19890
19891         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
19892         (ok_for_max_constant): New function.
19893         (gen_safe_add): New function.
19894         (rx_expand_prologue): Use gen_safe_add.
19895         (rx_expand_epilogue): Likewise.
19896         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
19897         UNSPEC CONSTs.
19898
19899 2011-01-21  Jeff Law  <law@redhat.com>
19900
19901         PR tree-optimization/47053
19902         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
19903         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
19904         statements are deleted.
19905         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
19906         is nonempty, then purge dead edges and cleanup the CFG.
19907
19908 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19909
19910         PR debug/47402
19911         Temporarily revert:
19912         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19913         PR debug/47106
19914         * tree-dfa.c (create_var_ann): Mark variable as used.
19915
19916 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19917
19918         PR middle-end/45566
19919         * except.c (convert_to_eh_region_ranges): Emit queued no-region
19920         notes from other section in hot/cold partitioning even if
19921         last_action is -3.  Increment call_site_base.
19922
19923         PR rtl-optimization/47366
19924         * fwprop.c (forward_propagate_into): Return bool.  If
19925         any changes are made, -fnon-call-exceptions is used and
19926         REG_EH_REGION note is present, call purge_dead_edges
19927         and return true if it purged anything.
19928         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
19929         any EH edges were purged.
19930
19931 2011-01-21  Jeff Law  <law@redhat.com>
19932
19933         PR rtl-optimization/41619
19934         * caller-save.c (setup_save_areas): Break out code to determine
19935         which hard regs are live across calls by examining the reload chains
19936         so that it is always used.
19937         Eliminate code which checked REG_N_CALLS_CROSSED.
19938
19939 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19940
19941         PR tree-optimization/47355
19942         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
19943         NOP has non-debug uses beyond PHIs in new_bb.
19944
19945 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19946
19947         PR debug/47106
19948         * cfgexpand.c (account_used_vars_for_block): Only account vars
19949         that are annotated as used.
19950         (estimated_stack_frame_size): Don't set TREE_USED.
19951         * tree-dfa.c (create_var_ann): Mark variable as used.
19952
19953 2011-01-21  Richard Guenther  <rguenther@suse.de>
19954
19955         PR middle-end/47395
19956         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
19957
19958 2011-01-21  Richard Guenther  <rguenther@suse.de>
19959
19960         PR tree-optimization/47365
19961         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
19962         (vn_reference_lookup_pieces): Adjust.
19963         (vn_reference_lookup): Likewise.
19964         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
19965         (vn_reference_lookup_3): Only look through kills if in
19966         VN_WALKREWRITE mode.
19967         (vn_reference_lookup_pieces): Adjust.
19968         (vn_reference_lookup): Likewise.
19969         (visit_reference_op_load): Likewise.
19970         (visit_reference_op_store): Likewise.
19971         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
19972         (compute_avail): Likewise.
19973         (eliminate): Likewise.
19974
19975 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19976
19977         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
19978         DECL_IGNORED_P non-reg vars if they are used.
19979
19980         PR tree-optimization/47391
19981         * varpool.c (const_value_known_p): Return false if
19982         decl is volatile.
19983
19984 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
19985
19986         PR bootstrap/47215
19987         * config/i386/i386.c (ix86_local_alignment): Handle
19988         case for va_list_type_node is nil.
19989         (ix86_canonical_va_list_type): Likewise.
19990
19991 2011-01-21  Alan Modra  <amodra@gmail.com>
19992
19993         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
19994         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
19995
19996 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19997
19998         * config/arm/arm.md (define_attr type): Rename f_load
19999         and f_store to f_fpa_load and f_fpa_store. Update.
20000         (write_conflict): Deal with rename fallout.
20001         (*push_fp_multi): Likewise.
20002         * config/arm/fpa.md (f_load): Use f_fpa_load.
20003         (f_store): Use f_fpa_store.
20004         (*movsf_fpa): Likewise.
20005         (*movdf_fpa): Likewise.
20006         (*movxf_fpa): Likewise.
20007         (*thumb2_movsf_fpa): Likewise.
20008         (*thumb2_movdf_fpa): Likewise.
20009         (*thumb2_movxf_fpa): Likewise.
20010         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
20011         f_loadd and f_stored.
20012         (*thumb2_movdi_vfp): Likewise.
20013         (*thumb2_movsf_vfp): Fix attribute to f_loads.
20014         (*thumb2_movsi_vfp): Likewise.
20015         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
20016         Use f_loads instead of f_load.
20017         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
20018
20019 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
20020
20021         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20022         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
20023         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20024         (xtensa_mode_dependent_address_p): New function.
20025         (constantpool_address_p): Make static. Change return type to bool.
20026         Change argument type to const_rtx. Use CONST_INT_P predicate.
20027
20028 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
20029
20030         PR debug/46583
20031         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
20032
20033 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
20034
20035         PR debug/47283
20036         * cfgexpand.c (expand_debug_expr): Instead of generating
20037         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
20038         etc. handling.
20039
20040 2011-01-20  Richard Guenther  <rguenther@suse.de>
20041
20042         PR middle-end/47370
20043         * tree-inline.c (remap_gimple_op_r): Recurse manually for
20044         the pointer operand of MEM_REFs.
20045
20046 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
20047
20048         PR tree-optimization/46130
20049         * ipa-split.c (consider_split): If return_bb contains non-virtual
20050         PHIs other than for retval or if split_function would not adjust it,
20051         refuse to split.
20052
20053 2011-01-20  Richard Guenther  <rguenther@suse.de>
20054
20055         PR tree-optimization/47167
20056         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
20057         Revert previous change, only avoid enumeral type changes.
20058
20059 2011-01-19  Mike Stump  <mikestump@comcast.net>
20060
20061         * doc/tm.texi.in (BRANCH_COST): Englishify.
20062         * doc/tm.texi (BRANCH_COST): Likewise.
20063
20064 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
20065
20066         PR c++/47291
20067         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
20068         (gen_scheduled_generic_parms_dies): New functions.
20069         (gen_struct_or_union_type_die): Schedule template parameters DIEs
20070         generation for the end of CU compilation.
20071         (dwarf2out_finish): Generate template parameters DIEs here.
20072
20073 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
20074
20075         PR debug/46240
20076         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
20077         debug bind stmt on merge edges.
20078
20079 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
20080
20081         PR debug/47079
20082         PR debug/46724
20083         * function.c (instantiate_expr): Instantiate incoming rtl of
20084         implicit arguments, and recurse on VALUE_EXPRs.
20085         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
20086         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
20087
20088 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
20089
20090         * c-parser.c (c_parser_for_statement): Initialize
20091         collection_expression.
20092
20093 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
20094
20095         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
20096
20097 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
20098
20099         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
20100         (LINK_SHLIB_SPEC): Don't use %(link_path).
20101         (SUBTARGET_EXTRA_SPECS): Remove link_path.
20102
20103 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
20104
20105         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
20106         (NO_SHARED_LIB_SUPPORT): Remove.
20107         (LINK_SHLIB_SPEC): Remove one conditional definition.
20108
20109 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
20110
20111         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
20112         %{call_shared}.
20113         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
20114         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
20115         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
20116         %{call_shared} and conditionals on these options not being passed.
20117         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
20118         %{call_shared}.
20119
20120 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
20121
20122         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
20123         simplify.
20124
20125         * ipa-split.c: Spelling fixes.
20126
20127 2011-01-19  Richard Henderson  <rth@redhat.com>
20128
20129         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
20130         (*mulsi3): Likewise.
20131
20132         * longlong.h [__mn10300__] (count_leading_zeros): New.
20133         [__mn10300__] (umul_ppmm, smul_ppmm): New.
20134         [__mn10300__] (add_ssaaaa, subddmmss): New.
20135         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
20136         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
20137
20138 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20139
20140         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
20141
20142 2011-01-19  Richard Henderson  <rth@redhat.com>
20143
20144         * config/mn10300/mn10300.md (addsi3_flags): New.
20145         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
20146         (subsi3_flags, subc_internal, subdi3): New.
20147         (subdi3_internal, *subdi3_degenerate): New.
20148         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
20149
20150         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
20151         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
20152         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
20153         * config/mn10300/mn10300-protos.h: Update.
20154         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
20155         (return_ret): Likewise.  Rename from return_internal_regs.
20156         (return_internal): Remove.
20157
20158         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
20159         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
20160         (mn10300_legitimate_constant_p): Likewise.
20161         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
20162         (mn10300_frame_size): New.
20163         (mn10300_expand_prologue): Use it.
20164         (mn10300_expand_epilogue): Likewise.
20165         (mn10300_initial_offset): Likewise.
20166         * config/mn10300/mn10300-protos.h: Update.
20167         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
20168         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
20169         (prologue, epilogue, return_internal): Tidy output code.
20170         (mn10300_store_multiple_operation, return): Likewise.
20171         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
20172         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
20173         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
20174         (load_pic, am33_load_pic): New.
20175         (mn10300_load_pic0, mn10300_load_pic1): New.
20176
20177         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
20178         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
20179         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
20180         (cc_flags_for_mode, cc_flags_for_code): New.
20181         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
20182         overflow flag is not valid.  Validate that the flags we need
20183         for the comparison are valid.
20184         (mn10300_output_cmp): Remove.
20185         (mn10300_output_add): New.
20186         (mn10300_select_cc_mode): Use cc_flags_for_code.
20187         (mn10300_split_cbranch): New.
20188         (mn10300_match_ccmode): New.
20189         (mn10300_split_and_operand_count): New.
20190         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
20191         to the function.
20192         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
20193         (addsi3): ... here.  Use mn10300_output_add.
20194         (*addsi3_flags): New.
20195         (*am33_subsi3, *mn10300_subsi3): Merge...
20196         (subsi3): ... here.  Use attribute isa.
20197         (*subsi3_flags): New.
20198         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
20199         when possible.
20200         (*am33_andsi3, *mn10300_andsi3): Merge...
20201         (andsi3): ... here.
20202         (*andsi3_flags): New.
20203         (andsi3 splitters): New.
20204         (*am33_iorsi3, *mn10300_iorsi3): Merge...
20205         (iorsi3): ... here.
20206         (*iorsi3_flags): New.
20207         (*am33_xorsi3, *mn10300_xorsi3): Merge...
20208         (xorsi3): ... here.
20209         (*xorsi3_flags): New.
20210         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
20211         (one_cmplsi2): ... here.
20212         (*one_cmplsi2_flags): New.
20213         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
20214         instead of "dax" in constraints.  Use mn10300_split_cbranch.
20215         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
20216         use matching constraints to eliminate a self-comparison.
20217         (*integer_conditional_branch): Rename from integer_conditional_branch.
20218         Use int_mode_flags to match CC_REG.
20219         (*cbranchsi4_btst, *btstsi): New.
20220         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
20221         mn10300_split_cbranch.
20222         (*am33_cmpsf): Rename from am33_cmpsf.
20223         (*float_conditional_branch): Rename from float_conditional_branch.
20224         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
20225         (zero_extendqisi2): ... here.
20226         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
20227         (zero_extendhisi2): ... here.
20228         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
20229         (extendqisi2): ... here.
20230         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
20231         (extendhisi2): ... here.
20232         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
20233         (ashlsi3): ... here.
20234         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
20235         (lshrsi3): ... here.
20236         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
20237         (ashrsi3): ... here.
20238         (consecutive add peephole): Remove.
20239         * config/mn10300/predicates.md (label_ref_operand): New.
20240         (int_mode_flags): New.
20241         (CCZN_comparison_operator): New.
20242
20243         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
20244         (throughput_42_latency_43): New reservation.
20245         (mulsidi3, umulsidi3): New expanders.
20246         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
20247         the MDR register to allocation; separately allocate the low and
20248         high parts of the DImode result.
20249         (umulsidi3_internal): Similarly.
20250         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
20251         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
20252         (udivsi3, umodsi3): Remove.
20253         (udivmodsi4, divmodsi4): New expanders.
20254         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
20255         (*divmodsi4): Simiarly.
20256         (ext_internal): New.
20257
20258         * config/mn10300/constraints.md ("z"): New constraint.
20259         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
20260         (FIXED_REGISTERS): Don't fix MDR.
20261         (CALL_USED_REGSITERS): Reformat nicely.
20262         (REG_ALLOC_ORDER): Add MDR.
20263         (enum regclass): Add MDR_REGS.
20264         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
20265         (IRA_COVER_CLASSES): Add MDR_REGS.
20266         (REGNO_REG_CLASS): Handle MDR_REG.
20267         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
20268         (mn10300_register_move_cost): Likewise.
20269         * config/mn10300/mn10300.md (MDR_REG): New.
20270         (*movsi_internal): Handle moves to/from MDR_REGS.
20271
20272         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
20273         POST_MODIFY.
20274         (mn10300_secondary_reload): Tidy combination reload classes.
20275         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
20276         addresses for AM33.  Allow symbolic offsets for reg+imm.
20277         (mn10300_regno_in_class_p): New.
20278         (mn10300_legitimize_reload_address): New.
20279         * config/mn10300/mn10300.h (enum reg_class): Remove
20280         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
20281         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
20282         SP_OR_GENERAL_REGS.
20283         (REG_CLASS_NAMES): Update to match.
20284         (REG_CLASS_CONTENTS): Likewise.
20285         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
20286         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
20287         (REGNO_IN_RANGE_P): Remove.
20288         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
20289         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
20290         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
20291         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
20292         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
20293         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
20294         (REGNO_GENERAL_P): New.
20295         (HAVE_POST_MODIFY_DISP): New.
20296         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
20297         (LEGITIMIZE_RELOAD_ADDRESS): New.
20298         * config/mn10300/mn10300-protos.h: Update.
20299
20300         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
20301         DATA_REGS for AM33 stack-pointer destination.
20302         (mn10300_preferred_output_reload_class): Likewise.
20303         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
20304         into a form appropriate for ...
20305         (TARGET_SECONDARY_RELOAD): New.
20306         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
20307         * config/mn10300/mn10300-protos.h: Update.
20308         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
20309         reload_insi; use the "A" constraint for the scratch; handle AM33
20310         moves of sp to non-address registers.
20311
20312         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
20313         (*movqi_internal): ... here.
20314         (*am33_movhi, *mn10300_movhi): Merge into...
20315         (*movhi_internal): ... here.
20316         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
20317         as the source/destination of moves from/to SP.
20318         (movsf): Only allow for AM33-2.
20319         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
20320         any integer constant constraint.  Only allow for AM33-2.  Tidy
20321         all of the alternative outputs.
20322         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
20323         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
20324         for MN103.
20325         (udivsi3, umodsi3): New patterns for MN103 only.
20326
20327 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
20328
20329         * doc/tm.texi.in: Spell out that a lack of register class unions
20330         can lead to ICEs.
20331         * doc/tm.texi: Regenerate.
20332
20333 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
20334
20335         PR rtl-optimization/47337
20336         * dce.c (check_argument_store): New function.
20337         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
20338
20339         PR tree-optimization/47290
20340         * tree-eh.c (infinite_empty_loop_p): New function.
20341         (cleanup_empty_eh): Use it.
20342
20343 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
20344
20345         PR target/46997
20346         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
20347         (a64_expand_widen_sum): Ditto.
20348         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
20349         (vec_extract_evenodd_help): Ditto.
20350         (vec_extract_evenv4hi): Ditto.
20351         (vec_extract_oddv4hi): Ditto.
20352         (vec_extract_evenv2si): Ditto.
20353         (vec_extract_oddv2si): Ditto.
20354         (vec_extract_evenv2sf): Ditto.
20355         (vec_extract_oddv2sf): Ditto.
20356         (vec_pack_trunc_v4hi: Ditto.
20357         (vec_pack_trunc_v2si): Ditto.
20358         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
20359         (vec_interleave_highv8qi): Ditto.
20360         (mix1_r): Ditto.
20361         (vec_extract_oddv8qi): Ditto.
20362         (vec_interleave_lowv4hi): Ditto.
20363         (vec_interleave_highv4hi): Ditto.
20364         (vec_interleave_lowv2si): Ditto.
20365         (vec_interleave_highv2si): Ditto.
20366
20367 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20368
20369         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
20370         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
20371         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
20372         (pa_c_mode_for_suffix): New.
20373         (TARGET_EXPAND_BUILTIN): Define.
20374         (TARGET_C_MODE_FOR_SUFFIX): Define.
20375         (pa_builtins): Define.
20376         (pa_init_builtins): Register __float128 type and init new support
20377         builtins.
20378         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
20379         * config/pa/quadlib.c (_U_Qfcopysign): New.
20380
20381 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
20382
20383         PR middle-end/46894
20384         * explow.c (allocate_dynamic_stack_space): Do not assume more than
20385         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
20386         are defined.
20387
20388 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20389
20390         PR tree-optimization/47179
20391         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
20392         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
20393
20394 2011-01-18  Richard Guenther  <rguenther@suse.de>
20395
20396         PR rtl-optimization/47216
20397         * emit-rtl.c: Include tree-flow.h.
20398         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
20399         of replicating it with different semantics.
20400         * Makefile.in (emit-rtl.o): Adjust.
20401
20402 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20403
20404         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
20405         (cortex_a9_dp): Handle neon types correctly.
20406
20407 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
20408
20409         PR rtl-optimization/47299
20410         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
20411         subtarget.  Use normal multiplication if both operands are constants.
20412         * expmed.c (expand_widening_mult): Don't try to optimize constant
20413         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
20414         before using it.
20415
20416 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20417
20418         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
20419         spacing after 'e.g.', typos, comma, hyphenation.
20420
20421 2011-01-17  Richard Henderson  <rth@redhat.com>
20422
20423         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
20424         (rx_restricted_mem_operand): New.
20425         (rx_shift_operand): Use register_operand.
20426         (rx_source_operand, rx_compare_operand): Likewise.
20427         * config/rx/rx.md (addsi3_flags): New expander.
20428         (adddi3): Rewrite as expander.
20429         (adc_internal, *adc_flags, adddi3_internal): New patterns.
20430         (subsi3_flags): New expander.
20431         (subdi3): Rewrite as expander.
20432         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
20433
20434         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
20435         (rx_init_builtins): Remove sat builtin.
20436         (rx_expand_builtin): Likewise.
20437         * config/rx/rx.md (ssaddsi3): New.
20438         (*sat): Rename from sat.  Represent the CC_REG input.
20439
20440         * config/rx/predicates.md (rshift_operator): New.
20441         * config/rx/rx.c (rx_expand_insv): Remove.
20442         * config/rx/rx-protos.h: Update.
20443         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
20444         operand to the canonical position.
20445         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
20446         (*bitclr, *bitclr_in_memory): Similarly.
20447         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
20448         (insv): Retain the zero_extract in the expansion.
20449
20450         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
20451         (bswaphi2, bitinvert, revw): Likewise.
20452
20453         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
20454         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
20455         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
20456         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
20457         (bitset, bitset_in_memory): Likewise.
20458         (bitinvert, bitinvert_in_memory): Likewise.
20459         (bitclr, bitclr_in_memory): Likewise.
20460         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
20461         (rx_strend, rx_cmpstrn): Likewise.
20462         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
20463         (bitop peep2 patterns): Remove.
20464
20465         * config/rx/rx.c (rx_match_ccmode): New.
20466         * config/rx/rx-protos.h: Update.
20467         * config/rx/rx.md (abssi2): Clobber, don't set flags.
20468         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
20469         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
20470         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
20471         (fix_truncsfsi2, floatsisf2): Likewise.
20472         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
20473         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
20474         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
20475         (*subsi3_flags, *xorsi3_flags): New.
20476
20477         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
20478
20479         * config/rx/rx.c (rx_print_operand): Remove workaround for
20480         unsplit comparison operations.
20481
20482         * config/rx/rx.md (movsicc): Split after reload.
20483         (*movsicc): Merge *movsieq and *movsine via match_operator.
20484         (*stcc): New pattern.
20485
20486         * config/rx/rx.c (rx_float_compare_mode): Remove.
20487         * config/rx/rx.h (rx_float_compare_mode): Remove.
20488         * config/rx/rx.md (cstoresi4): Split after reload.
20489         (*sccc): New pattern.
20490
20491         * config/rx/predicates.md (label_ref_operand): New.
20492         (rx_z_comparison_operator): New.
20493         (rx_zs_comparison_operator): New.
20494         (rx_fp_comparison_operator): New.
20495         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
20496         Validate that the flags are set properly for the comparison.
20497         (rx_gen_cond_branch_template): Remove.
20498         (rx_cc_modes_compatible): Remove.
20499         (mode_from_flags): New.
20500         (flags_from_code): Rename from flags_needed_for_conditional.
20501         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
20502         (rx_select_cc_mode): Likewise.
20503         (rx_split_fp_compare): New.
20504         (rx_split_cbranch): New.
20505         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
20506         (*cbranchsi4): Use match_operator and rx_split_cbranch.
20507         (*cbranchsf4): Similarly.
20508         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
20509         match_operator and rx_split_cbranch.
20510         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
20511         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
20512         (*cmpsi): Rename from cmpsi.
20513         (*tstsi): Rename from tstsi.
20514         (*cmpsf): Rename from cmpsf; use CC_Fmode.
20515         (*conditional_branch): Rename from conditional_branch.
20516         (*reveresed_conditional_branch): Remove.
20517         (b<code>): Remove expander.
20518         * config/rx/rx-protos.h: Update.
20519
20520         * config/rx/rx.c (rx_compare_redundant): Remove.
20521         * config/rx/rx.md (cmpsi): Don't use it.
20522         * config/rx/rx-protos.h: Update.
20523
20524         * config/rx/rx-modes.def (CC_F): New mode.
20525         * config/rx/rx.c (rx_select_cc_mode): New.
20526         * config/rx/rx.h (SELECT_CC_MODE): Use it.
20527         * config/rx/rx-protos.h: Update.
20528
20529 2011-01-17  Richard Henderson  <rth@redhat.com>
20530
20531         * except.c (dump_eh_tree): Fix stray ; after for statement.
20532
20533 2011-01-17  Richard Guenther  <rguenther@suse.de>
20534
20535         PR tree-optimization/47313
20536         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
20537         handling before copying the body.  Properly deal with
20538         by-reference result in SSA form.
20539
20540 2011-01-17  Ian Lance Taylor  <iant@google.com>
20541
20542         PR target/47219
20543         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
20544         (struct_value_alias_set): Don't define.
20545         (sparc_option_override): Don't set sparc_sr_alias_set and
20546         struct_value_alias_set.
20547         (save_or_restore_regs): Use gen_frame_mem rather than calling
20548         set_mem_alias_set.
20549         (sparc_struct_value_rtx): Likewise.
20550
20551 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
20552
20553         PR target/47318
20554         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
20555         (_mm_maskstore_pd): Likewise.
20556         (_mm_maskload_ps): Likewise.
20557         (_mm_maskstore_ps): Likewise.
20558         (_mm256_maskload_pd): Change mask to __m256i.
20559         (_mm256_maskstore_pd): Likewise.
20560         (_mm256_maskload_ps): Likewise.
20561         (_mm256_maskstore_ps): Likewise.
20562
20563         * config/i386/i386-builtin-types.def: Updated.
20564         (ix86_expand_special_args_builtin): Likewise.
20565
20566         * config/i386/i386.c (bdesc_special_args): Update
20567         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
20568         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
20569         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
20570         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
20571
20572         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
20573         Use <avxpermvecmode> on mask register.
20574         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
20575
20576 2011-01-17  Olivier Hainque  <hainque@adacore.com>
20577             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
20578             Eric Botcazou  <ebotcazou@adacore.com>
20579
20580         PR target/46655
20581         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
20582         if <= USHRT_MAX in 32-bit mode.
20583
20584 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20585
20586         * doc/install.texi (Configuration, Specific): Wrap long
20587         lines in examples.  Allow line wrapping in long options
20588         and URLs where beneficial for PDF output.
20589
20590 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
20591
20592         * config/mips/mips.c (mips_classify_symbol): Don't return
20593         SYMBOL_PC_RELATIVE for nonlocal labels.
20594
20595 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
20596
20597         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
20598
20599 2011-01-15  Jan Hubicka  <jh@suse.cz>
20600
20601         PR tree-optimization/47276
20602         * ipa.c (function_and_variable_visibility): Do not try to mark alias
20603         declarations as needed.
20604
20605 2011-01-15  Martin Jambor  <mjambor@suse.cz>
20606
20607         * common.opt (fdevirtualize): New flag.
20608         * doc/invoke.texi (Option Summary): Document it.
20609         * opts.c (default_options_table): Add devirtualize flag.
20610         * ipa-prop.c (detect_type_change): Return immediately if
20611         devirtualize flag is not set.
20612         (detect_type_change_ssa): Likewise.
20613         (compute_known_type_jump_func): Likewise.
20614         (ipa_analyze_virtual_call_uses): Likewise.
20615
20616 2011-01-14  Martin Jambor  <mjambor@suse.cz>
20617
20618         PR tree-optimization/45934
20619         PR tree-optimization/46302
20620         * ipa-prop.c (type_change_info): New type.
20621         (stmt_may_be_vtbl_ptr_store): New function.
20622         (check_stmt_for_type_change): Likewise.
20623         (detect_type_change): Likewise.
20624         (detect_type_change_ssa): Likewise.
20625         (compute_complex_assign_jump_func): Check for dynamic type change.
20626         (compute_complex_ancestor_jump_func): Likewise.
20627         (compute_known_type_jump_func): Likewise.
20628         (compute_scalar_jump_functions): Likewise.
20629         (ipa_analyze_virtual_call_uses): Likewise.
20630         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
20631
20632 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20633
20634         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
20635         * config/i386/i386.opt (msse5): New Alias.
20636
20637 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20638
20639         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20640         * config/sparc/linux64.h (CC1_SPEC): Likewise.
20641         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
20642         * config/sparc/sparc.h (CC1_SPEC): Likewise.
20643
20644 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20645
20646         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
20647         -mcpu options.
20648         * config/sparc/linux64.h (CC1_SPEC): Likewise.
20649         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
20650         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
20651         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
20652         Likewise.
20653         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
20654
20655 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20656
20657         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
20658
20659 2011-01-14  Mike Stump  <mikestump@comcast.net>
20660
20661         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
20662         * config/fr30/fr30.md: Likweise
20663         (movsi_push): Likewise.
20664         (movsi_pop): Likewise.
20665         (enter_func): Likewise.
20666         * config/moxie/moxie.md (movsi_push): Likewise.
20667         (movsi_pop): Likewise.
20668
20669 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20670
20671         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
20672         %{no_archive} %{exact_version}.
20673         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
20674         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
20675         %{no_archive} %{exact_version}.
20676         * config/mips/openbsd.h (LINK_SPEC): Likewise.
20677         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
20678         * config/mips/vxworks.h: Likewise.
20679
20680 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20681
20682         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
20683
20684 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20685
20686         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
20687         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
20688
20689 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20690
20691         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
20692         -nodefaultlib.
20693
20694 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20695
20696         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
20697         for mcpu not cpu.
20698         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
20699         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
20700         not cpu.
20701         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
20702         Don't handle -shlib.
20703
20704 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20705
20706         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
20707         (CC1_SPEC): Don't handle -profile.
20708
20709 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20710
20711         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
20712         * config/mips/mips.h (CC1_SPEC): Likewise.
20713
20714 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20715
20716         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
20717         * config/mips/mips.h (CC1_SPEC): Likewise.
20718
20719 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20720
20721         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
20722         * config/m32r/linux.h (LINK_SPEC): Likewise.
20723         * config/mips/linux.h (LINK_SPEC): Likewise.
20724         * config/mips/linux64.h (LINK_SPEC): Likewise.
20725         * config/sparc/linux.h (LINK_SPEC): Likewise.
20726         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
20727         LINK_SPEC): Likewise.
20728         * config/xtensa/linux.h (LINK_SPEC): Likewise.
20729
20730 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20731
20732         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
20733         %{version:-v}.
20734         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
20735
20736 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20737
20738         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
20739         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
20740
20741 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20742
20743         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
20744
20745 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20746
20747         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
20748         supports -Bstatic/-Bdynamic.
20749         * configure: Regenerate.
20750
20751 2011-01-14  Jan Hubicka  <jh@suse.cz>
20752             Jack Howarth  <howarth@bromo.med.uc.edu>
20753
20754         PR target/46037
20755         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
20756         when checking debug_info_level. Test write_symbols instead of
20757         debug_hooks->var_location when setting flag_var_tracking_uninit.
20758
20759 2011-01-14  Richard Guenther  <rguenther@suse.de>
20760
20761         PR tree-optimization/47179
20762         * target.def (ref_may_alias_errno): New target hook.
20763         * targhooks.h (default_ref_may_alias_errno): Declare.
20764         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
20765         (default_ref_may_alias_errno): New function.
20766         * target.h (struct ao_ref_s): Declare.
20767         * tree-ssa-alias.c: Include target.h.
20768         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
20769         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
20770         (targhooks.o): Likewise.
20771         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
20772         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
20773
20774 2011-01-14  Richard Guenther  <rguenther@suse.de>
20775
20776         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
20777
20778 2011-01-14  Richard Guenther  <rguenther@suse.de>
20779
20780         PR tree-optimization/47280
20781         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
20782         return CFG changes.
20783         (tree_ssa_forward_propagate_single_use_vars): Deal with
20784         CFG changes from associate_plusminus.
20785
20786 2011-01-14  Richard Guenther  <rguenther@suse.de>
20787
20788         PR middle-end/47281
20789         Revert
20790         2011-01-11  Richard Guenther  <rguenther@suse.de>
20791
20792         PR tree-optimization/46076
20793         * tree-ssa.c (useless_type_conversion_p): Conversions from
20794         unprototyped to empty argument list function types are useless.
20795
20796 2011-01-14  Richard Guenther  <rguenther@suse.de>
20797
20798         PR tree-optimization/47286
20799         * tree-ssa-structalias.c (new_var_info): Register variables are global.
20800
20801 2011-01-14  Martin Jambor  <mjambor@suse.cz>
20802
20803         PR middle-end/46823
20804         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
20805
20806 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
20807
20808         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
20809         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
20810         * config/xtensa/xtensa.c (xtensa_libcall_value,
20811         xtensa_function_value_regno_p): New functions.
20812         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
20813
20814 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
20815
20816         PR c++/47213
20817         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
20818         PE specific hook.
20819         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
20820         New function prototype.
20821         * config/i386/winnt.c (i386_pe_assemble_visibility):
20822         Warn only if attribute was specified by user.
20823
20824 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
20825
20826         PR target/47251
20827         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
20828         floating point.
20829         (floatunsdidf2_fcfidu): Ditto.
20830
20831 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20832
20833         * config/s390/s390.c (print_operand_address): Replace 'error' with
20834         'output_operand_lossage'.
20835         (print_operand): Likewise.
20836
20837 2011-01-13  Jeff Law  <law@redhat.com>
20838
20839         PR rtl-optimization/39077
20840         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
20841         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
20842         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
20843         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
20844         * gcse.c (prune_insertions_deletions): New function.
20845         (compute_pre_data): Use it.
20846
20847 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
20848
20849         PR debug/PR46973
20850         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
20851         static function.
20852         (prune_unused_types_mark): Use it.
20853
20854 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
20855
20856         PR rtl-optimization/45352
20857         * sel-sched.c: Update copyright years.
20858         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
20859         in the advancing loop when we have issued issue_rate insns.
20860
20861 2011-01-12  Richard Henderson  <rth@redhat.com>
20862
20863         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
20864         (TARGET_MD_ASM_CLOBBERS): New.
20865
20866         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
20867         (TARGET_DELEGITIMIZE_ADDRESS): New.
20868
20869         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
20870         (clzsi2, *bsch): New patterns.
20871
20872         * config/mn10300/mn10300.md (INT): New mode iterator.
20873         (*mov<INT>_clr): New pattern, and peep2 to generate it.
20874
20875         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
20876         flag_split_wide_types.
20877
20878         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
20879         (mn10300_trampoline_init): Rewrite without a template, an immediate
20880         load and a direct branch.
20881         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
20882
20883 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
20884
20885         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20886         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
20887         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
20888         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20889
20890 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
20891
20892         PR debug/47209
20893         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
20894         of type.
20895
20896 2011-01-12  Jan Hubicka  <jh@suse.cz>
20897
20898         PR driver/47244
20899         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
20900         (PLUGIN_COND_CLOSE): New macro.
20901         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
20902
20903 2011-01-12  Richard Guenther  <rguenther@suse.de>
20904
20905         PR lto/47259
20906         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
20907         register variables in a MEM_REF.
20908
20909 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
20910
20911         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
20912         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
20913         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
20914         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
20915         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
20916         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
20917         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
20918         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
20919         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
20920         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
20921         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
20922         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
20923         * config/gnu-user.h: New.  Copied from linux.h.
20924         (LINUX_TARGET_STARTFILE_SPEC): Rename to
20925         GNU_USER_TARGET_STARTFILE_SPEC.
20926         (LINUX_TARGET_ENDFILE_SPEC): Rename to
20927         GNU_USER_TARGET_ENDFILE_SPEC.
20928         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
20929         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
20930         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
20931         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
20932         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
20933         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
20934         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
20935         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
20936         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
20937         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
20938         * config/arm/linux-eabi.h (CC1_SPEC): Use
20939         GNU_USER_TARGET_CC1_SPEC.
20940         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
20941         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
20942         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
20943         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
20944         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
20945         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
20946         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
20947         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
20948
20949 2011-01-12  Richard Guenther  <rguenther@suse.de>
20950
20951         PR other/46946
20952         * doc/invoke.texi (ffast-math): Document it is turned on
20953         with -Ofast.
20954
20955 2011-01-12  Jan Hubicka  <jh@suse.cz>
20956
20957         PR tree-optimization/47233
20958         * opts.c (common_handle_option): Disable ipa-reference with profile
20959         feedback.
20960
20961 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
20962
20963         * c-parser.c (c_parser_objc_at_property_declaration): Improved
20964         error message.
20965
20966 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
20967
20968         * c-parser.c (c_lex_one_token): Updated and reindented some
20969         comments.  No changes in code.
20970
20971 2011-01-11  Ian Lance Taylor  <iant@google.com>
20972
20973         * godump.c (go_output_var): Don't output the variable if there is
20974         already a type with the same name.
20975
20976 2011-01-11  Ian Lance Taylor  <iant@google.com>
20977
20978         * godump.c (go_format_type): Don't generate float80.
20979
20980 2011-01-11  Richard Henderson  <rth@redhat.com>
20981
20982         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
20983         declaration.  Rewrite for both speed and size.
20984         (mn10300_address_cost_1): Remove.
20985         (mn10300_register_move_cost): New.
20986         (mn10300_memory_move_cost): New.
20987         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
20988         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
20989         extensions, shifts, BSWAP, CLZ.
20990         (mn10300_wide_const_load_uses_clr): Remove.
20991         (TARGET_REGISTER_MOVE_COST): New.
20992         (TARGET_MEMORY_MOVE_COST): New.
20993         * config/mn10300/mn10300-protos.h: Update.
20994         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
20995
20996         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
20997         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
20998         * config/mn10300/mn10300-protos.h: Update.
20999         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
21000         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
21001         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
21002         (*test_int_bitfield, *test_byte_bitfield): Remove.
21003         (*bit_test, *subreg_bit_test): Remove.
21004         * config/mn10300/predicates.md (const_8bit_operand): Remove.
21005
21006         * config/mn10300/constraints.md ("c"): Rename from "A".
21007         ("A", "D"): New constraint letters.
21008         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
21009         (fmssf4, fnmasf4, fnmssf4): Likewise.
21010
21011         * config/mn10300/mn10300.md (isa): New attribute.
21012         (enabled): New attribute.
21013
21014         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
21015         (abssf2, negsf2): Define only for hardware fp.
21016         (sqrtsf2): Reformat.
21017         (addsf3, subsf3, mulsf3): Merge expander and insn.
21018
21019         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
21020         (DEBUGGER_AUTO_OFFSET): Remove.
21021         (DEBUGGER_ARG_OFFSET): Remove.
21022
21023         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
21024         Emit register stores with the same offsets as the hardware.
21025         (mn10300_store_multiple_operation): Don't check that the register
21026         save offsets are monotonic.
21027         * config/mn10300/mn10300-protos.h: Update.
21028
21029         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
21030
21031         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
21032         in terms of the value on the stack, not the MDR register.
21033
21034 2011-01-11  Jan Hubicka  <jh@suse.cz>
21035
21036         PR lto/45721
21037         PR lto/45375
21038         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
21039         (symbol_alias_set_destroy, symbol_alias_set_contains,
21040         propagate_aliases_backward): Declare.
21041         * lto-streamer-out.c (struct sets): New sturcture.
21042         (trivally_defined_alias): New function.
21043         (output_alias_pair_p): Rewrite.
21044         (output_unreferenced_globals): Fix output of alias pairs.
21045         (produce_symtab): Likewise.
21046         * ipa.c (function_and_variable_visibility): Set weak alias destination
21047         as needed in lto.
21048         * varasm.c (symbol_alias_set_t): Remove.
21049         (symbol_alias_set_destroy): Export.
21050         (propagate_aliases_forward, propagate_aliases_backward): New functions
21051         based on ...
21052         (compute_visible_aliases): ... this one; remove.
21053         (trivially_visible_alias): New
21054         (trivially_defined_alias): New.
21055         (remove_unreachable_alias_pairs): Rewrite.
21056         (finish_aliases_1): Reorganize code checking if alias is defined.
21057         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
21058         in LTO mode.
21059
21060 2011-01-11  Richard Guenther  <rguenther@suse.de>
21061
21062         PR tree-optimization/46076
21063         * tree-ssa.c (useless_type_conversion_p): Conversions from
21064         unprototyped to empty argument list function types are useless.
21065
21066 2011-01-11  Richard Guenther  <rguenther@suse.de>
21067
21068         PR middle-end/45235
21069         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
21070         volatile MEMs as MEM_READONLY_P.
21071
21072 2011-01-11  Richard Guenther  <rguenther@suse.de>
21073
21074         PR tree-optimization/47239
21075         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
21076
21077 2011-01-11  Jeff Law  <law@redhat.com>
21078
21079         PR tree-optimization/47086
21080         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
21081         IVs from statements that might throw.
21082
21083 2011-01-10  Jan Hubicka  <jh@suse.cz>
21084
21085         PR lto/45375
21086         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
21087
21088 2011-01-10  Jan Hubicka  <jh@suse.cz>
21089
21090         PR lto/45375
21091         * profile.c (read_profile_edge_counts): Ignore profile inconistency
21092         when correcting profile.
21093
21094 2011-01-10  Jan Hubicka  <jh@suse.cz>
21095
21096         PR lto/46083
21097         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
21098         DECL_FINI_PRIORITY.
21099         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
21100         Restore DECL_FINI_PRIORITY.
21101
21102 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21103
21104         * doc/gimple.texi: Fix quoting of multi-word return values in
21105         @deftypefn statements.  Ensure presence of return value.  Wrap
21106         overlong @deftypefn lines.
21107         (is_gimple_operand, is_gimple_min_invariant_address): Remove
21108         descriptions of removed functions.
21109         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
21110         of multi-word return value in @deftypefn statement.
21111
21112 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21113
21114         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
21115         (Conditional Expressions, Logical Operators)
21116         (Statement and operand traversals): Do not indent smallexample
21117         code.  Fix duplicate function argument in example.
21118
21119 2011-01-10  Jeff Law  <law@redhat.com>
21120
21121         PR tree-optimization/47141
21122         * ipa-split.c (split_function): Handle case where we are
21123         returning a value and the return block has a virtual operand phi.
21124
21125 2011-01-10  Jan Hubicka  <jh@suse.cz>
21126
21127         PR tree-optimization/47234
21128         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
21129         (pass_feedback_split_functions): Declare.
21130         * passes.c (init_optimization_passes): Add ipa-split as subpass of
21131         tree-profile.
21132         * ipa-split.c (gate_split_functions): Update comments; disable
21133         split-functions for profile_arc_flag and branch_probabilities.
21134         (gate_feedback_split_functions): New function.
21135         (execute_feedback_split_functions): New function.
21136         (pass_feedback_split_functions): New global var.
21137
21138 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
21139
21140         PR lto/46760
21141         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
21142         calling gimple_call_set_cannot_inline.
21143
21144 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
21145
21146         * config/darwin-sections.def: Remove unused section.
21147
21148 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
21149
21150         PR c++/47218
21151         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
21152
21153 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
21154
21155         PR objc/47232
21156         * c-parser.c (c_parser_declaration_or_fndef): Improved
21157         error message.
21158
21159 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
21160
21161         * config/i386/winnt.c (i386_pe_start_function): Make sure
21162         to switch back to function's section.
21163
21164 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
21165
21166         PR gcc/46902
21167         PR testsuite/46912
21168         * plugin.c: Move include of dlfcn.h from here...
21169         * system.h: ... to here.
21170
21171 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21172
21173         * doc/cpp.texi (C++ Named Operators): Fix markup for header
21174         file name.
21175         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
21176         two extra empty pages in PDF output.
21177
21178 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
21179
21180         PR objc/47078
21181         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
21182         for error recovery purposes behave as if it was not specified so
21183         that the default type is usd.
21184
21185 2011-01-07  Jan Hubicka  <jh@suse.cz>
21186
21187         PR tree-optmization/46469
21188         * ipa.c (function_and_variable_visibility): Clear needed flags on
21189         nodes with external decls; handle weakrefs merging correctly.
21190
21191 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
21192
21193         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
21194         not false.
21195
21196 2011-01-07  Jan Hubicka  <jh@suse.cz>
21197
21198         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
21199         and no longer claim that gold is required for linker plugin.
21200         * configure: Regenerate.
21201         * gcc.c (PLUGIN_COND): New macro.
21202         (LINK_COMMAND_SPEC): Use it.
21203         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
21204         * config.in (HAVE_LTO_PLUGIN): New.
21205         * configure.ac (--with-lto-plugin): New parameter; autodetect
21206         HAVE_LTO_PLUGIN.
21207
21208 2011-01-07  Jan Hubicka  <jh@suse.cz>
21209
21210         PR tree-optimization/46367
21211         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
21212         when we can update original.
21213         (cgraph_mark_inline_edge): Sanity check.
21214         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
21215
21216 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21217
21218         * config/spu/spu.h (ASM_COMMENT_START): Define.
21219
21220 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
21221
21222         PR driver/42445
21223         * gcc.c (%>S): New.
21224         (SWITCH_KEEP_FOR_GCC): Likewise.
21225         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
21226         (do_spec_1): Handle "%>".
21227
21228         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
21229
21230 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
21231
21232         PR target/47201
21233         * config/i386/i386.c (ix86_delegitimize_address): If
21234         simplify_gen_subreg fails, return orig_x.
21235
21236         PR bootstrap/47187
21237         * value-prof.c (gimple_stringop_fixed_value): Handle
21238         lhs of the call properly.
21239
21240 2011-01-07  Jan Hubicka  <jh@suse.cz>
21241
21242         PR lto/45375
21243         * lto-opt.c (lto_reissue_options): Set flag_shlib.
21244
21245 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
21246
21247         * target.def (function_switched_text_sections): New hook.
21248         * doc/tm.texi: Regenerated.
21249         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
21250         * final.c (default_function_switched_text_sections): New.
21251         (final_scan_insn): Call function_switched_text_sections when a
21252         mid-function section change occurs.
21253         * output.h (default_function_switched_text_sections): Declare.
21254         * config/darwin-protos.h (darwin_function_switched_text_sections):
21255         Likewise.
21256         * config/darwin.c (darwin_function_switched_text_sections): New.
21257         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
21258
21259 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
21260
21261         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
21262         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
21263         the secondary code fragment when outputting for DWARF == 2.
21264
21265 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
21266
21267         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
21268         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
21269         Remove.
21270         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
21271         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
21272
21273 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
21274
21275         PR debug/46704
21276         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
21277         when it is not empty.
21278
21279 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
21280
21281         Bobcat Enablement
21282         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
21283         (case ${target}): Add btver1.
21284         * config/i386/driver-i386.c (host_detect_local_cpu): Let
21285         -march=native recognize btver1 processors.
21286         * config/i386/i386-c.c (ix86_target_macros_internal): Add
21287         btver1 def_and_undef
21288         * config/i386/i386.c (struct processor_costs btver1_cost): New
21289         btver1 cost table.
21290         (m_BTVER1): New definition.
21291         (m_AMD_MULTIPLE): Includes m_BTVER1.
21292         (initial_ix86_tune_features): Add btver1 tune.
21293         (processor_target_table): Add btver1 entry.
21294         (static const char *const cpu_names): Add btver1 entry.
21295         (software_prefetching_beneficial_p): Add btver1.
21296         (ix86_option_override_internal): Add btver1 instruction sets.
21297         (ix86_issue_rate): Add btver1.
21298         (ix86_adjust_cost): Add btver1.
21299         * config/i386/i386.h (TARGET_BTVER1): New definition.
21300         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
21301         (enum processor_type): Add PROCESSOR_BTVER1.
21302         * config/i386/i386.md (define_attr "cpu"): Add btver1.
21303
21304 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21305
21306         PR target/43309
21307         * config/i386/i386.c (legitimize_tls_address)
21308         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
21309         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
21310         (tls_initial_exec_64_sun): New pattern.
21311
21312 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
21313
21314         * doc/invoke.texi (Overall Options): Improve wording and markup
21315         of the description of -wrapper.
21316
21317 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
21318
21319         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
21320         rdynamic, threads): New Driver options.
21321
21322 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21323
21324         PR target/38118
21325         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
21326         if coming from .tdata.
21327         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
21328
21329 2011-01-06  Jan Hubicka  <jh@suse.cz>
21330
21331         PR lto/47188
21332         * collect2.c (main): Do not enable LTOmode when plugin is active.
21333
21334 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21335
21336         PR other/45915
21337         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
21338         --version output if supported.
21339         * configure: Regenerate.
21340
21341 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
21342
21343         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
21344         Driver options.
21345
21346 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
21347
21348         PR c/47150
21349         * c-convert.c (convert): When converting a complex expression
21350         other than COMPLEX_EXPR to a different complex type, ensure
21351         c_save_expr is called instead of save_expr, unless in_late_binary_op.
21352         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
21353         when converting COMPLEX_TYPE.
21354
21355 2011-01-06  Ira Rosen  <irar@il.ibm.com>
21356
21357         PR tree-optimization/47139
21358         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
21359         only the last reduction value is used outside the loop.  Update
21360         documentation.
21361
21362 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
21363
21364         * config/rtems.opt: New.
21365         * config.gcc (*-*-rtems*): Use rtems.opt.
21366
21367 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
21368
21369         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
21370         processors do not support 3DNow instructions.
21371
21372 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21373
21374         * config/spu/spu.c (spu_option_override): Set parameter
21375         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
21376
21377 2011-01-05  Jan Hubicka  <jh@suse.cz>
21378
21379         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
21380         at the command line.
21381
21382 2011-01-05  Martin Jambor  <mjambor@suse.cz>
21383
21384         PR lto/47162
21385         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
21386         deltas on streamed outgoing edges.
21387         (output_node_opt_summary): Output info for outgoing edges only when
21388         the node is in new parameter set.
21389         (output_cgraph_opt_summary): New parameter set, passed to the two
21390         aforementioned functions.  Update its forward declaration and its
21391         callee too.
21392
21393 2011-01-05  Tom Tromey  <tromey@redhat.com>
21394
21395         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
21396         operator to c_finish_omp_atomic.
21397         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
21398         (build_unary_op): Update.
21399         (build_modify_expr): Update.
21400         (build_asm_expr): Update.
21401
21402 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21403
21404         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
21405         newly inserted insns.
21406         (pad_bb): Likewise.
21407         (spu_emit_branch_hint): Likewise.
21408         (insert_hbrp_for_ilb_runout): Likewise.
21409         (spu_machine_dependent_reorg): Call df_finish_pass after
21410         schedule_insns returns.
21411
21412 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21413
21414         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
21415
21416 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
21417
21418         PR tree-optimization/47005
21419         * tree-sra.c (struct access): Add 'non_addressable' bit.
21420         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
21421         (decide_one_param_reduction): Return 0 if the parameter is passed by
21422         reference and one of the accesses in the group is non_addressable.
21423
21424 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
21425
21426         PR tree-optimization/47056
21427         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
21428         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
21429         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
21430
21431 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
21432
21433         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
21434         initializer.  Skip view conversions from aggregate types.
21435
21436 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
21437
21438         PR bootstrap/47055
21439         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
21440
21441 2011-01-04  Philipp Thomas  <pth@suse.de>
21442
21443         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
21444         obvious typo.
21445
21446 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21447
21448         * function.c (thread_prologue_and_epilogue_insns): Do not crash
21449         on empty epilogue sequences.
21450
21451 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
21452
21453         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
21454         non-static): New Driver options.
21455
21456 2011-01-04  Jie Zhang  <jie@codesourcery.com>
21457
21458         PR driver/47137
21459         * gcc.c (default_compilers[]): Set combinable field to 0
21460         for all assembly languages.
21461
21462 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
21463
21464         * config/mips/loongson3a.md: New file.
21465         * config/mips/mips.md: Include loongson3a.md.
21466         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
21467         TUNE_LOONGSON_3A.
21468
21469 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
21470
21471         PR middle-end/47017
21472         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
21473         instead of convert_memory_address_addr_space on the base expression.
21474
21475 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21476
21477         * config/spu/spu.c (spu_option_override): Update error text
21478         for bad -march= / -mtune= values.
21479
21480 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21481
21482         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
21483         if branch-hint optimization will be performed.
21484
21485 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
21486
21487         PR tree-optimization/47148
21488         * ipa-split.c (split_function): Convert arguments to
21489         DECL_ARG_TYPE if possible.
21490
21491         PR tree-optimization/47155
21492         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
21493         when computing uns.
21494
21495         PR rtl-optimization/47157
21496         * combine.c (try_combine): If undobuf.other_insn becomes
21497         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
21498         and set *new_direct_jump_p too.
21499
21500 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
21501
21502         PR tree-optimization/47021
21503         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
21504
21505 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
21506
21507         * gcc.c (process_command): Update copyright notice dates.
21508         * gcov.c (print_version): Likewise.
21509         * gcov-dump.c (print_version): Likewise.
21510         * mips-tfile.c (main): Likewise.
21511         * mips-tdump.c (main): Likewise.
21512
21513 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21514
21515         PR tree-optimization/46801
21516         * tree-sra.c (type_internals_preclude_sra_p): Check whether
21517         aggregate fields start at byte boundary instead of the bit-field flag.
21518
21519 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
21520
21521         PR driver/47137
21522         * gcc.c (main): Revert revision 168407.
21523
21524 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21525
21526         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
21527
21528 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21529
21530         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
21531         vector optab to expand vector/scalar shift, update gimple to vector.
21532
21533 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21534
21535         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
21536         a thunk.
21537
21538 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21539
21540         PR tree-optimization/46984
21541         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
21542         HOST_WIDE_INT.
21543         (cgraph_create_indirect_edge): Fixed line length.
21544         (cgraph_indirect_call_info): Declare.
21545         (cgraph_make_edge_direct) Update declaration.
21546         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
21547         (cgraph_create_indirect_edge): Use it.
21548         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
21549         callees.
21550         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
21551         the new thunk_delta representation.
21552         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
21553         HOST_WIDE_INT.
21554         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
21555         (ipa_read_indirect_edge_info): Likewise.
21556         * lto-cgraph.c (output_edge_opt_summary): New function.
21557         (output_node_opt_summary): Call it on all outgoing edges.
21558         (input_edge_opt_summary): New function.
21559         (input_node_opt_summary): Call it on all outgoing edges.
21560
21561 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
21562
21563         PR driver/47137
21564         * gcc.c (main): Don't check have_o when settting combine_inputs.
21565
21566 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
21567
21568         * regrename.c: Add general comment describing the pass.
21569         (struct du_head): Remove 'length' field.
21570         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
21571         (regrename_optimize): Do not sort chains.  Rework comments, add others.
21572         Force renaming to the preferred class (if any) in the first pass and do
21573         not consider registers that belong to it in the second pass.
21574         (create_new_chain): Do not set 'length' field.
21575         (scan_rtx_reg): Likewise.
21576
21577 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
21578
21579         PR tree-optimization/47140
21580         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
21581         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
21582         to bit_value_binop.
21583
21584         PR rtl-optimization/47028
21585         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
21586         parm_birth_insn instead of at the beginning of first bb.
21587
21588 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
21589
21590         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
21591         Remove the word "see" before "@pxref".
21592         * doc/rtl.texi: Remove the word "see" before "@pxref".
21593
21594 2011-01-01  Jan Hubicka  <jh@suse.cz>
21595
21596         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
21597         memory.
21598
21599 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
21600
21601         PR target/38662
21602         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
21603
21604 \f
21605 Copyright (C) 2011 Free Software Foundation, Inc.
21606
21607 Copying and distribution of this file, with or without modification,
21608 are permitted in any medium without royalty provided the copyright
21609 notice and this notice are preserved.