OSDN Git Service

PR target/49487
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
2         
3         PR target/49487
4         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
5         of REG.
6         (*rotw<mode>): Use const_int_operand for operand2.
7         Use match_scatch for operand3.
8         (*rotb<mode>): Ditto
9         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
10
11 2011-07-14  Richard Guenther  <rguenther@suse.de>
12
13         PR tree-optimization/49651
14         * tree-ssa-structalias.c (get_constraint_for_1): Properly
15         handle dereferences with subvariables.
16
17 2011-07-14  Richard Guenther  <rguenther@suse.de>
18
19         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
20         (fold_stmt_1): Do it here directly on gimple and as a first thing.
21
22 2011-07-14  Richard Guenther  <rguenther@suse.de>
23
24         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
25         not bool_var when folding bool_var != 1 or bool_var == 0.
26
27 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
28
29         * haifa-sched.c (schedule_insns): Remove outdated comment.
30         (schedule_block): When computing a known value for TODO_SPEC,
31         just set it rather than using logical operations.
32         (try_ready): Likewise.  Use a local variable rather than a
33         pointer to TODO_SPEC.  Reorder an if statement to move the
34         easy case to the then block.
35         * sched-deps.c (dep_spec_p): New static function.
36         (update_dep): Use it to decide whether to call
37         change_spec_dep_to_hard.
38         (get_back_and_forw_lists): Use it.
39         (sd_resolve_dep): Likewise.
40         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
41         (haifa_note_mem_dep): Likewise.
42         (check_dep): Likewise.
43         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
44         (sched_free_deps): Free in two passes.
45
46 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
47
48         PR middle-end/49736
49         * expr.c (all_zeros_p): Undo bogus part of last change.
50
51 2011-07-14  Matthias Klose <doko@ubuntu.com>
52
53         * doc/extend.texi (optimize attribute): Fix typo.
54
55 2011-07-14  Richard Guenther  <rguenther@suse.de>
56
57         * gimplify.c (gimplify_expr): Only do required conversions.
58
59 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
60
61         PR target/43746
62         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
63         i.e. use default_elf_select_section.
64         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
65         (READONLY_DATA_SECTION_ASM_OP): Remove.
66         (TARGET_ASM_NAMED_SECTION): Move from here...
67         * config/avr/avr.c: ...to here.
68         (avr_asm_init_sections): Set unnamed callback of
69         readonly_data_section.
70         (avr_asm_named_section): Make static.
71
72 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
73
74         PR bootstrap/49739
75         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtp
76         rec80.o crtfastmath.o for Linux/x86.
77
78 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
79
80         * haifa-sched.c: Include "hashtab.h"
81         (sched_no_dce): New global variable.
82         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
83         SHADOW_P): New macros.
84         (last_clock_var, cycle_issued_insns): Move declarations.
85         (must_backtrack): New static variable.
86         (struct delay_pair): New structure.
87         (delay_htab, delay_htab_i2): New static variables.
88         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
89         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
90         functions.
91         (dep_cost_1): If delay pairs exist, try to look up the insns and
92         use the correct pair delay if we find them.
93         (rank-for_schedule): Tweak priority for insns that must be scheduled
94         soon to avoid backtracking.
95         (queue_insn): Detect conditions which force backtracking.
96         (ready_add): Likewise.
97         (struct sched_block_state): Add member shadows_only_p.
98         (struct haifa_save_data): New structure.
99         (backtrack_queue): New static variable.
100         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
101         unschedule_insns_until, restore_last_backtrack_point,
102         free_topmost_backtrack_point, free_backtrack_queue,
103         estimate_insn_tick, estimate_shadow_tick): New functions.
104         (prune_ready_list): New arg shadows_only_p.  All callers changed.
105         If true, remove everything that isn't SHADOW_P.  Look up delay
106         pairs and estimate ticks to avoid scheduling the first insn too
107         early.
108         (verify_shadows): New function.
109         (schedule_block): Add machinery to enable backtracking.
110         (sched_init): Take sched_no_dce into account when setting
111         DF_LR_RUN_DCE.
112         (free_delay_pairs): New function.
113         (init_h_i_d): Initialize INSN_EXACT_TICK.
114         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
115         * sched-deps.c (sd_unresolve_dep): New function.
116         * sched-int. (struct haifa_sched_info): New fields save_state
117         and restore_state.
118         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
119         feeds_backtrack_insn and shadow_p.
120         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
121         (sched_no_dce): Declare variable.
122         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
123         sd_unresolve_dep): Declare functions.
124         * modulo-sched.c (sms_sched_info): Clear the two new fields.
125         * sched-rgn.c (rgn_const_sched_info): Likewise.
126         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
127         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
128         (ebb_sched_info): Add them for the two new fields.
129         (add_deps_for_risky_insns): Call add_delay_dependencies.
130
131 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
132
133         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
134         Rename -mr11.
135         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
136         (rs6000_call_indirect_aix): Ditto.
137         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
138         (call_indirect_aix<ptrsize>_internal): Ditto.
139         (call_indirect_aix<ptrsize>_nor11): Ditto.
140         (call_indirect_aix<ptrsize>_internal2): Ditto.
141         (call_value_indirect_aix<ptrsize>): Ditto.
142         (call_value_indirect_aix<ptrsize>_internal): Ditto.
143         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
144         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
145         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
146
147 2011-07-13  Jason Merrill  <jason@redhat.com>
148
149         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
150
151 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
152
153         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
154         * config/spu/spu.md ("clrsb<mode>2"): New expander.
155
156 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
157
158         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
159         * configure: Regenerate.
160
161 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
162
163         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
164         (asm_file_start): Remove.
165         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
166         free_bb_for_insn around code that modifies insns before
167         restarting df analysis.
168
169 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
170
171         PR target/49541
172         * config/sol2.h (LIB_SPEC): Simplify.
173         Move LIB_THREAD_LDFLAGS_SPEC ...
174         (LINK_SPEC): ... here.
175
176 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
177
178         * haifa-sched.c (struct sched_block_state): New.
179         (schedule_block): Move some local variables into such a structure.
180
181 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
182
183         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
184         * config/i386/t-crtpc: Remove.
185         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
186         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
187         tmake_file.
188         (x86_64-*-darwin*): Likewise.
189         (i[34567]86-*-linux*): Likewise.
190         (x86_64-*-linux*): Likewise.
191
192         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
193         Handle -mpc32, -mpc64, -mpc80.
194
195 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
196
197         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
198         * config/alpha/t-crtfm: Remove.
199         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
200         * config/i386/t-crtfm: Remove.
201         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
202         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
203         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
204         * config/sparc/t-crtfm: Remove.
205
206         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
207         (alpha*-*-freebsd*): Likewise.
208         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
209         (x86_64-*-darwin*): Likewise.
210         (i[34567]86-*-linux*): Likewise.
211         (x86_64-*-linux*): Likewise.
212         (x86_64-*-mingw*): Likewise.
213         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
214         (ia64*-*-freebsd*): Likewise.
215         (ia64*-*-linux*): Likewise.
216         (mips64*-*-linux*): Likewise.
217         (mips*-*-linux*): Likewise.
218         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
219         (sparc64-*-linux*): Likewise.
220         (sparc64-*-freebsd*): Likewise.
221
222 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
223
224         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
225         * config/darwin-crt3.c: Move to ../libgcc/config.
226         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
227         ($(T)crt3$(objext)): Remove.
228         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
229         ($(T)crt2$(objext)): Remove.
230         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
231         (powerpc64-*-darwin*): Likewise.
232
233 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
234
235         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode
236         != Pmode.
237
238         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
239         (addsi_1_zext): This.
240
241 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
242
243         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
244         * doc/tm.texi: Regenerate.
245         * target.def (mergeable_rodata_prefix: New defhookpod.
246         * varasm.c (mergeable_string_section, mergeable_constant_section):
247         Use it. Allocate name with alloca.
248
249 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
250
251         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
252
253 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
254
255         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
256         overlap check.
257
258 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
259
260         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
261         (count_type_elements): Delete.
262         (complete_ctor_at_level_p): Declare.
263         * expr.c (flexible_array_member_p): New function, split out from...
264         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
265         parameter with for_ctor_p.  When for_ctor_p is true, return the
266         number of elements that should appear in the top-level constructor,
267         otherwise return an estimate of the number of scalars.
268         (categorize_ctor_elements): Replace p_must_clear with p_complete.
269         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
270         (complete_ctor_at_level_p): New function, borrowing union logic
271         from old categorize_ctor_elements_1.
272         (mostly_zeros_p): Return true if the constructor is not complete.
273         (all_zeros_p): Update call to categorize_ctor_elements.
274         * gimplify.c (gimplify_init_constructor): Update call to
275         categorize_ctor_elements.  Don't call count_type_elements.
276         Unconditionally prevent clearing for variable-sized types,
277         otherwise rely on categorize_ctor_elements to detect
278         incomplete initializers.
279
280 2011-07-13  Richard Guenther  <rguenther@suse.de>
281
282         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
283         the final type is integral.
284
285 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
286
287         * sched-int.h (struct _dep): Add member cost.
288         (DEP_COST, UNKNOWN_DEP_COST): New macros.
289         * sched-deps.c (init_dep_1): Initialize DEP_COST.
290         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
291         (sched_change_pattern): Reset it for dependent insns.
292
293 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
294
295         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
296         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
297         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
298         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
299         (CRT0_S, MCRT0_S): Remove.
300         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
301         Remove.
302         (s-crt0): Remove.
303         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
304
305 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
306
307         * cse.c (insert_with_costs): Put semi-colon after empty loop body
308         on the next line.
309         * emit-rtl.c (push_to_sequence): Likewise.
310         * haifa-sched.c (max_issue): Likewise.
311         * matrix-reorg.c (add_allocation_site): Likewise.
312         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
313         * reload.c (alternative_allows_const_pool_ref): Likewise.
314         * sched-rgn.c (rgn_add_block): Likewise.
315         (rgn_fix_recovery_cfg): Likewise.
316         * tree.c (attribute_list_contained): Likewise.
317
318 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
319
320         * config/i386/i386.c: Tidy processor feature bitmasks.
321         (m_P4_NOCONA): New.
322
323 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
324
325         PR rtl-opt/49474
326         * cprop.c (find_implicit_sets): Correct the condition.
327
328 2011-07-12  Richard Henderson  <rth@redhat.com>
329
330         PR target/49713
331         * dwarf2out.h (dwarf_frame_regnum): Remove.
332         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
333         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
334         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
335         (execute_dwarf2_frame): Initialize them.
336         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
337         users of the macros with the variables.
338         (expand_builtin_dwarf_sp_column): Revert last change.
339         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
340         result of DWARF_FRAME_REGNUM into a local variable.
341
342 2011-07-12  Richard Henderson  <rth@redhat.com>
343
344         PR target/49714
345         * config/i386/i386.c (x86_output_mi_thunk): Use
346         machopic_indirect_call_target instead of machopic_indirection_name
347         directly.
348
349 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
350             Eric Botcazou  <ebotcazou@adacore.com>
351
352         * prefix.h: Wrap up in extern "C" block.
353
354 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
355
356         AMD bdver2 Enablement
357         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
358         (case ${target}): Add bdver2.
359         * config/i386/driver-i386.c (host_detect_local_cpu): Let
360         -march=native recognize bdver2 processors.
361         * config/i386/i386-c.c (ix86_target_macros_internal): Add
362         bdver2 def_and_undef
363         * config/i386/i386.c (struct processor_costs bdver2_cost): New
364         bdver2 cost table.
365         (m_BDVER2): New definition.
366         (m_AMD_MULTIPLE): Includes m_BDVER2.
367         (initial_ix86_tune_features): Add bdver2 tuning.
368         (processor_target_table): Add bdver2 entry.
369         (static const char *const cpu_names): Add bdver2 entry.
370         (ix86_option_override_internal): Add bdver2 instruction sets.
371         (ix86_issue_rate): Add bdver2.
372         (ix86_adjust_cost): Add bdver2.
373         (has_dispatch): Add bdver2.
374         * config/i386/i386.h (TARGET_BDVER2): New definition.
375         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
376         (enum processor_type): Add PROCESSOR_BDVER2.
377         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
378         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
379         description.
380
381 2011-07-12  Richard Henderson  <rth@redhat.com>
382
383         PR target/49714
384         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
385         destination address in memory on some paths.
386
387 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
388
389         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
390         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
391         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
392         * function.c (locate_and_pad_parm): Take it into account.
393         * target.def (function_arg_round_boundary): New hook.
394         * targhooks.c (default_function_arg_round_boundary): New function.
395         * targhooks.h (default_function_arg_round_boundary): Declare.
396         * doc/tm.texi: Regenerate.
397
398 2011-07-12  Richard Guenther  <rguenther@suse.de>
399
400         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
401         Do not perform no-op changes.
402
403 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
404
405         * config/arm/predicates.md (neon_struct_operand): Make a normal
406         predicate.
407         (neon_struct_or_register_operand): New predicate.
408         * config/arm/neon.md (movmisalign<mode>): Replace predicates
409         with neon_struct_or_register_operand.
410         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
411         neon_struct_operand instead of memory_operand.
412
413 2011-07-12  Martin Jambor  <mjambor@suse.cz>
414
415         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
416         * cgraph.c (cgraph_get_node_or_alias): Removed.
417         (change_decl_assembler_name): Changed all calls to
418         cgraph_get_node_or_alias to a call to cgraph_get_node.
419         (cgraph_make_decl_local): Likewise.
420         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
421         * varasm.c (default_binds_local_p_1): Likewise.
422         (decl_binds_to_current_def_p): Likewise.
423
424 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
425
426         PR tree-optimization/49712
427         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
428
429 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
430
431         * genautomata.c (add_arc): Return void.  All callers changed.
432         (make_automaton): Remove dead code.
433
434 2011-07-11  Richard Henderson  <rth@redhat.com>
435
436         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
437         (DW_FRAME_POINTER_REGNUM): New.
438         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
439         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
440         (dwf_regno): New.
441         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
442         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
443         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
444         Use it.
445         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
446         * dwarf2out.h (dwarf_frame_regnum): New.
447         (struct cfa_loc): Document the domain of the reg member.
448
449 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
450
451         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
452         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
453
454 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
455
456         PR debug/49676
457         * dwarf2out.c (int_shift_loc_descriptor): New function.
458         (int_loc_descriptor): If shorter, emit i as
459         (i >> shift), shift, DW_OP_shl for suitable shift value.
460         Similarly, try to optimize large negative values using
461         DW_OP_neg of a positive value if shorter.
462         (size_of_int_shift_loc_descriptor): New function.
463         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
464         changes.
465         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
466         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
467         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
468         is shorter.
469         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
470         addend as added DW_OP_plus if it is shorter.
471
472 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
473
474         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
475         (DTORS_SECTION_ASM_OP): Define.
476
477 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
478
479         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
480         * config/t-dfprules: Move to ../libgcc/config.
481         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
482         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
483         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
484         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
485         Likewise.
486         (i[34567]86-*-cygwin*): Likewise.
487         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
488         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
489         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
490         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
491         D64PBIT_FUNCS, D128PBIT_FUNCS.
492
493 2011-07-11  Richard Guenther  <rguenther@suse.de>
494
495         * tree-vrp.c (simplify_conversion_using_ranges): Manually
496         translate the source value-range through the conversion chain.
497
498 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
499
500         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
501
502 2011-07-11  Arthur Loiret  <aloiret@debian.org>
503
504         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
505         a bi-arch compiler defaulting to 31-bit. In this case:
506         (tmake_file): Add s390/t-linux64.
507         * doc/install.texi: Add s390-linux to the list of targets supporting
508         --enable-targets=all.
509
510 2011-07-11  Arthur Loiret  <aloiret@debian.org>
511             Matthias Klose <doko@debian.org>
512
513         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
514         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
515         (tm_file): Add mips/linux64.h.
516         (tmake_file): Add mips/t-linux64.
517         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
518         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
519         instead of hardcoded mabi=n32.
520         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
521         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
522         convention.
523
524 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
525
526         * passes.c (init_optimization_passes): Add invariant motion pass
527         after induction variable optimization.
528
529 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
530
531         PR target/39633
532         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
533         offsets 1..5 set cc0 in a usable way.
534
535 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
536
537         * tree.h (call_expr_arg): Remove.
538         (call_expr_argp): Likewise.
539
540 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
541
542         * config/sparc/sparc.md (save_register_window_1): Rename to...
543         (window_save): ...this.
544         * config/sparc/sparc.c (emit_save_register_window): Rename to...
545         (emit_window_save): ...this.
546         (sparc_expand_prologue): Adjust to above renaming.
547
548 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
549
550         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
551         of movabs for x32.
552
553 2011-07-10  Richard Henderson  <rth@redhat.com>
554
555         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
556         run final, instead of emitting text directly.
557
558 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
559
560         * config/i386/i386.c (ix86_option_override_internal): Turn on
561         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
562         small PIC models for TARGET_X32.
563
564 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
565
566         PR target/49684
567         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
568         $(LIBGCC2_CFLAGS).
569
570         PR bootstrap/49680
571         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
572         stray notes and debug insns by using prev_nonnote_nondebug_insn
573         instead of PREV_INSN.
574
575 2011-07-09  Richard Henderson  <rth@redhat.com>
576
577         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
578         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
579         * dwarf2out.c: ... here.
580         (output_all_cfis): Remove.
581         (dwarf2out_switch_text_section): Use output_cfis directly.
582         (size_of_locs): Export.
583         (output_loc_sequence, output_loc_sequence_raw): Export.
584         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
585         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
586         output_cfa_loc_raw): Move to ...
587         * dwarfcfi.c: ... here.
588         * dwarf2out.h: Update decls.
589
590 2011-07-09  Richard Henderson  <rth@redhat.com>
591
592         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
593         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
594         * dwarf2cfi.c: ... here.
595         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
596         (DWARF_ROUND, DWARF_CIE_ID): Remove.
597         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
598         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
599         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
600
601 2011-07-09  Richard Henderson  <rth@redhat.com>
602
603         * dwarf2cfi.c (cie_return_save): New.
604         (queue_reg_save): Use compare_reg_or_pc.
605         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
606         (dwarf2out_frame_debug_expr): Likewise.
607         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
608         (initial_return_save): Likewise.
609         (execute_dwarf2_frame): Save and restore initial return save from
610         the cie to the fde.
611         * config/mips/mips.c (mips_frame_set): Remove special case for
612         DWARF_FRAME_RETURN_COLUMN.
613
614 2011-07-09  Richard Henderson  <rth@redhat.com>
615
616         * dwarf2cfi.c (lookup_cfa): Remove.
617         (execute_dwarf2_frame): Assert queues are empty on entry.
618         Setup initial cfa directly, not via lookup_cfa.
619         Don't clear args_size state here.
620
621 2011-07-09  Richard Henderson  <rth@redhat.com>
622
623         * dwarf2cfi.c (add_cfi_vec): New.
624         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
625         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
626         (execute_dwarf2_frame): Set add_cfi_vec.
627
628 2011-07-09  Richard Henderson  <rth@redhat.com>
629
630         * defaults.h (ASM_COMMENT_START): Move here...
631         * dwarf2asm.c: ... from here.
632         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
633         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
634         * varasm.c: Likewise.
635
636 2011-07-09  Richard Henderson  <rth@redhat.com>
637
638         PR debug/49686
639         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
640         (create_cfi_notes): ... do it here instead.
641
642 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
643
644         PR debug/49676
645         * dwarf2out.c (size_of_int_loc_descriptor): New function.
646         (address_of_int_loc_descriptor): Use it.
647         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
648
649 2011-07-09  Richard Henderson  <rth@redhat.com>
650
651         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
652         (prologue, epilogue): New.
653         (return, *rts): New.
654         (blockage, setd, seti): New.
655         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
656         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
657         (pdp11_saved_regno): New.
658         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
659         generate rtl instead of text.
660         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
661         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
662         * config/pdp11/pdp11-protos.h: Update.
663
664 2011-07-09  Richard Henderson  <rth@redhat.com>
665
666         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
667         try to insert an rtl prologue here.
668         (rs6000_output_function_epilogue): Similarly.
669         * config/rs6000/rs6000.md (prologue): Emit a barrier to
670         satisfy !TARGET_SCHED_PROLOG.
671         (epilogue, sibcall_epilogue): Likewise.
672
673 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
674
675         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
676         (FP_REG_P): Delete.
677         (IN_OR_GLOBAL_P): Likewise.
678
679 2011-07-08  Jason Merrill  <jason@redhat.com>
680
681         PR c++/45437
682         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
683         compound assignment.
684
685         * cgraph.c (cgraph_add_to_same_comdat_group): New.
686         * cgraph.h: Declare it.
687         * ipa.c (function_and_variable_visibility): Make sure thunks
688         have the right visibility.
689
690 2011-07-08  Richard Henderson  <rth@redhat.com>
691
692         PR bootstrap/49680
693         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
694         any tablejump vector.
695
696         PR bootstrap/49680
697         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
698         end of the prologue.
699
700 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
701
702         PR target/49621
703         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
704         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
705         * config/rs6000/vector.md (vector_select_<mode>,
706         vector_select_<mode>_uns): Change second operand of NE to
707         CONST0_RTX (<MODE>mode) instead of const0_rtx.
708         * config/rs6000/altivec.md (*altivec_vsel<mode>,
709         *altivec_vsel<mode>_uns): Expect second operand of NE to be
710         zero_constant of the corresponding vector mode.
711         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
712         Likewise.
713
714 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
715
716         * graphite-dependences.c (build_alias_set_powerset): Remove
717         continue from loop, add one more assert.
718
719 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
720
721         PR target/46779
722         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
723         In particular, allow 8-bit values in r28 and r29.
724         (avr_hard_regno_scratch_ok): Disallow any register that might be
725         part of the frame pointer.
726         (avr_hard_regno_rename_ok): Same.
727         (avr_legitimate_address_p): Don't allow SUBREGs.
728
729 2011-07-08  Julian Brown  <julian@codesourcery.com>
730
731         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
732         big-endian mode.
733         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
734         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
735         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
736         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
737         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
738         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
739         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
740         registers in big-endian mode.
741
742 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
743
744         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
745         in terms of another.
746         (write_attr_value): Write a cast if necessary.
747
748         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
749         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
750         (REG_WORDS_BIG_ENDIAN): Document.
751         * doc/tm.texi: Regenerate.
752         * reload.c (operands_match_p): Take it into account.
753         (reload_adjust_reg_for_mode): Likewise.
754         * rtlanal.c (subreg_get_info): Likewise.
755
756 2011-07-08  Richard Guenther  <rguenther@suse.de>
757
758         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
759         folding.
760
761 2011-07-08  Kai Tietz  <ktietz@redhat.com>
762
763         * fold-const.c (fold_truth_andor): Factored out truth_andor
764         label from fold_binary as function.
765         (fold_binary_loc): Replace truth_andor lable
766         by function fold_truth_andor.
767
768 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
769
770         PR middle-end/49519
771         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
772         check if address is stored in register. If so - give up.
773         (check_sibcall_argument_overlap_1): Do not perform check of
774         overlapping when it is call to address.
775
776 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
777
778         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
779         of magic '31'.
780
781 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
782
783         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
784         GET_MODE_BITSIZE where appropriate.
785         (widen_leading, expand_parity, expand_ctz, expand_ffs,
786         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
787         expand_float, expand_fix): Likewise.
788         * expr.c (convert_move, convert_modes, expand_expr_real_2,
789         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
790         * stor-layout.c (get_mode_bounds): Likewise.
791         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
792         Likewise.
793         * convert.c (convert_to_integer): Likewise.
794         * expmed.c (expand_shift_1): Likewise.
795
796         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
797         a bitsize.
798
799         * optabs.c (expand_binop): Tighten conditions for doubleword
800         expansions.
801         (widen_bswap): Assert that mode bitsize and precision are the same.
802         * stor-layout.c (get_best_mode): Skip modes that have lower
803         precision than bitsize.
804         * recog.c (simplify_while_replacing): Assert that bitsize and
805         precision are the same.
806
807 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
808
809         * Makefile.in (LIBGCOV): Remove.
810         (libgcc.mvars): Remove LIBGCOV.
811         * libgov.c: Move to ../libgcc.
812
813 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
814
815         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
816
817 2011-07-08  Martin Jambor  <mjambor@suse.cz>
818
819         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
820         is too big for total scalarization.
821
822 2011-07-07  Richard Henderson  <rth@redhat.com>
823
824         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
825         (DBX_DEBUGGING_INFO): Undef.
826
827 2011-07-07  Richard Henderson  <rth@redhat.com>
828
829         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
830         Handle some opcodes specially for debugging.
831         * print-rtl.c: Include dwarf2out.h
832         (print_rtx): Handle NOTE_INSN_CFI.
833         * Makefile.in (print-rtl.o): Update.
834
835 2011-07-07  Richard Henderson  <rth@redhat.com>
836
837         * tree-pass.h (pass_dwarf2_frame): Declare.
838         * passes.c (init_optimization_passes): Add it.
839         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
840         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
841         make static, do not call add_cfis_to_fde.
842         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
843         dwarf2out_frame_init): Merge into...
844         (execute_dwarf2_frame): ... here.  New function.
845         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
846         saved_do_cfi_asm to a tri-state variable.
847         (gate_dwarf2_frame, pass_dwarf2_frame): New.
848         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
849         if it has yet to be done.  Don't call dwarf2cfi_function_init.
850         * dwarf2out.h, debug.h: Update decls.
851         * final.c (final_start_function): Don't call
852         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
853         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
854         * toplev.c (lang_dependent_init): Likewise.
855
856 2011-07-07  Richard Henderson  <rth@redhat.com>
857
858         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
859         FDE_TABLE_INCREMENT): Replace with...
860         (fde_vec): ... this, a new vector.
861         (current_fde): Remove.  Replace all users with cfun->fde.
862         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
863         (size_of_aranges, dwarf2out_finish): Likewise.
864         (dwarf2out_alloc_current_fde): Break out from ...
865         (dwarf2out_begin_prologue): ... here.
866         (dwarf2out_frame_init): Remove.
867         * dwarf2cfi.c: Update all users of current_fde.
868         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
869         * dwarf2out.h: Update decls.
870         (dw_fde_node): Add fde_index member.
871         * function.h (struct function): Add fde member.
872
873 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
874             Richard Henderson  <rth@redhat.com>
875
876         * dwarf2cfi.c (add_cfi): Remove.
877         (dwarf2out_cfi_label): Remove force argument.  Only generate the
878         label name.
879         (add_fde_cfi): Simplify the different code paths.
880         (add_cie_cfi): New.
881         (old_cfa, old_cfa_remember): New.
882         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
883         (last_reg_save_label): Remove.
884         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
885         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
886         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
887         dwarf2out_frame_debug_cfa_expression,
888         dwarf2out_frame_debug_cfa_restore,
889         dwarf2out_frame_debug_cfa_window_save,
890         dwarf2out_frame_debug_expr): Remove label parameter.
891         (cfi_label_required_p, add_cfis_to_fde): New.
892         (dwarf2out_frame_debug_after_prologue): New.
893         (dwarf2cfi_frame_init): Initialize old_cfa.
894         (dwarf2out_frame_debug_restore_state): Likewise.
895         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
896         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
897         * final.c (final_start_function): Call
898         dwarf2out_frame_debug_after_prologue.
899
900 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
901             Richard Henderson  <rth@redhat.com>
902
903         * dwarf2cfi.c (cfi_insn): New.
904         (dwarf2out_cfi_label): Don't emit cfi label here.
905         (add_fde_cfi): Create a NOTE_INSN_CFI.
906         (dwarf2out_frame_debug): Setup cfi_insn.
907         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
908         (dwarf2out_cfi_begin_epilogue): Make static.
909         (dwarf2out_frame_debug_restore_state): Make static.
910         * dwarf2out.c (output_cfi_directive): Make static.
911         (dwarf2out_emit_cfi): New.
912         * dwarf2out.h: Update.
913         * final.c (final): Remove CFI notes.
914         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
915         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
916         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
917         * insn-notes.def (NOTE_INSN_CFI): New.
918         (NOTE_INSN_CFI_LABEL): New.
919         * rtl.h (union rtunion_def): Add rt_cfi member.
920         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
921
922 2011-07-07  Richard Henderson  <rth@redhat.com>
923
924         * dwarf2cfi.c: New file.
925         * Makefile.in (OBJS): Add it.
926         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
927         * gengtype.c (open_base_files): Include dwarf2out.h.
928         * coretypes.h (enum var_init_status): Move from ...
929         * rtl.h: ... here.
930         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
931         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
932         expand_builtin_dwarf_sp_column, init_return_column_size,
933         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
934         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
935         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
936         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
937         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
938         compute_barrier_args_size, dwarf2out_args_size,
939         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
940         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
941         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
942         queue_reg_save, dwarf2out_flush_queued_reg_saves,
943         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
944         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
945         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
946         dwarf2out_frame_debug_cfa_expression,
947         dwarf2out_frame_debug_cfa_restore,
948         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
949         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
950         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
951         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
952         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
953         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
954         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
955         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
956         dw_loc_descr_node): Move to dwarf2out.h.
957         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
958         mem_loc_descriptor): Export.
959         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
960         (dwarf2out_frame_init): Extract CIE generation code to
961         dwarf2cfi_frame_init.
962
963 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
964
965         PR target/49660
966         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
967         MASK_V8PLUS, remove commented out flag and reorder.
968
969 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
970
971         PR c/49644
972         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
973         one non-complex and one complex argument, call c_save_expr on both
974         operands.
975
976 2011-07-07  Martin Jambor  <mjambor@suse.cz>
977
978         PR middle-end/49495
979         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
980         (verify_cgraph_node): Some functinality moved to
981         verify_edge_corresponds_to_fndecl, call it.
982
983 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
984
985         * config.gcc (*local*): Remove.
986         * doc/install-old.texi: Don't mention local configurations.
987
988 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
989
990         PR debug/49522
991         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
992         referencing debug insns that have been reset.
993         (dead_debug_insert_before): Don't assert reg is non-NULL,
994         instead return immediately if it is NULL.
995
996 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
997
998         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
999
1000 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
1001
1002         * hw-doloop.c: New file.
1003         * hw-doloop.h: New file.
1004         * Makefile.in (OBJS): Add hw-doloop.o.
1005         (hw-doloop.o): New rule.
1006         ($(obj_out_file)): Add hw-doloop.h dependency.
1007         * config/bfin/bfin.c: Include "hw-doloop.h".
1008         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
1009         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
1010         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
1011         type changed to hwloop_info.  Return bool, true if the loop was
1012         successfully optimized.  Remove code that was moved to
1013         hw-doloop.c, and adjust other parts.
1014         (hwloop_fail): New static function, containing parts that used
1015         to be in bfin_optimize_loop.
1016         (bfin_discover_loop, bfin_discover_loops, free_loops,
1017         bfin_reorder_loops): Remove.
1018         (hwloop_pattern_reg): New static function.
1019         (bfin_doloop_hooks): New variable.
1020         (bfin_reorg_loops): Remove most code, call reorg_loops.
1021         * config/bfin/bfin.md (doloop_end splitter): Also enable if
1022         loop counter is a memory_operand.
1023
1024 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
1025
1026         * config.gcc: Support --with-multilib-list for x86 Linux targets.
1027
1028         * configure.ac: Mention x86-64 for --with-multilib-list.
1029         * configure: Regenerated.
1030
1031         * config/i386/gnu-user64.h (SPEC_64): Support x32.
1032         (SPEC_32): Likewise.
1033         (ASM_SPEC): Likewise.
1034         (LINK_SPEC): Likewise.
1035         (TARGET_THREAD_SSP_OFFSET): Likewise.
1036         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
1037         (SPEC_X32): New.
1038
1039         * config/i386/i386.h (TARGET_X32): New.
1040         (TARGET_LP64): New.
1041         (LONG_TYPE_SIZE): Likewise.
1042         (POINTER_SIZE): Likewise.
1043         (POINTERS_EXTEND_UNSIGNED): Likewise.
1044         (OPT_ARCH64): Support x32.
1045         (OPT_ARCH32): Likewise.
1046
1047         * config/i386/i386.opt (mx32): New.
1048
1049         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
1050         (GLIBC_DYNAMIC_LINKERX32): Likewise.
1051         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
1052         (GLIBC_DYNAMIC_LINKERX32): Likewise.
1053
1054         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
1055         (BIONIC_DYNAMIC_LINKERX32): Likewise.
1056         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
1057
1058         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
1059
1060         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
1061
1062         * doc/invoke.texi: Document -mx32.
1063
1064 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
1065
1066         * doc/invoke.texi (mwords-little-endian): Deprecate.
1067         * config/arm/arm.opt (mwords-little-endian): Likewise.
1068         * config/arm/arm.c (arm_option_override): Warn about the deprecation
1069         of -mwords-little-endian.
1070
1071 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
1072
1073         * reload1.c (choose_reload_regs): Use mode sizes to check whether
1074         an old reload register completely defines the required value.
1075
1076 2011-07-07  Richard Guenther  <rguenther@suse.de>
1077
1078         * fold-const.c (fold_unary_loc): Do not strip sign-changes
1079         for NEGATE_EXPR.
1080
1081 2011-07-07  Richard Guenther  <rguenther@suse.de>
1082
1083         * tree-vrp.c (simplify_conversion_using_ranges): New function.
1084         (simplify_stmt_using_ranges): Call it.
1085
1086 2011-07-07  Kai Tietz  <ktietz@redhat.com>
1087
1088         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
1089         (lookup_logical_inverted_value): Likewise.
1090         (simplify_bitwise_binary_1): Likewise.
1091         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
1092
1093 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
1094
1095         * gcc.c (%[Spec]): Don't document.
1096         (struct spec_list): Update comment.
1097         (do_spec_1): Don't handle %[Spec].
1098         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
1099
1100 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
1101
1102         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
1103         default based on TARGET_ASM_NAMED_SECTION.
1104         * common/common-target.def (have_named_sections): Default to true.
1105         * common/config/default-common.c: Don't include tm.h.
1106         * common/config/picochip/picochip-common.c
1107         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
1108         * common/config/m32c/m32c-common.c: Remove.
1109         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
1110         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1111         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1112         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1113         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1114         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1115         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1116
1117 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
1118
1119         PR middle-end/49640
1120         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
1121         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
1122
1123 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1124
1125         PR libmudflap/49550
1126         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
1127
1128 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1129
1130         PR target/39150
1131         * configure.ac (gcc_cv_as_hidden): Also accept
1132         x86_64-*-solaris2.1[0-9]*.
1133         (gcc_cv_as_cfi_directive): Likewise.
1134         (gcc_cv_as_comdat_group_group): Likewise.
1135         (set_have_as_tls): Likewise.
1136         * configure: Regenerate.
1137         * config.gcc (i[34567]86-*-solaris2*): Also handle
1138         x86_64-*-solaris2.1[0-9]*.
1139         * config.host (i[34567]86-*-solaris2*): Likewise.
1140         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
1141         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
1142         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
1143         (TARGET_LD_EMULATION): Use it.
1144         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
1145         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
1146         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
1147         (ASM_CPU64_DEFAULT_SPEC): Define.
1148         (ASM_CPU_SPEC): Use %(asm_cpu_default).
1149         (ASM_SPEC): Redefine.
1150         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
1151         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
1152         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
1153         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
1154         configuration.
1155         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
1156
1157 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1158
1159         * config/sol2.h (ASM_SPEC): Split into ...
1160         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
1161         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
1162         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
1163         (ASM_SPEC): Use ASM_SPEC_BASE.
1164         * config/sparc/sol2.h (ASM_SPEC): Redefine.
1165
1166 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
1167
1168         * config/avr/avr.md (*reload_insi): Change predicate #1 to
1169         const_int_operand.  Ditto for peep2 producing this insn.
1170         Add argument to output_reload_insisf call.
1171         (*movsi,*movsf): Add argument to output_movsisf call.
1172         (*reload_insf): New insn and new peep2 to produce it.
1173         * config/avr/avr-protos.h (output_movsisf): Change prototype.
1174         (output_reload_insisf): Change prototype.
1175         * config/avr/avr.c (avr_asm_len): New function.
1176         (output_reload_insisf): Rewrite.
1177         (output_movsisf): Change prototype.  output_reload_insisf for
1178         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
1179         (adjust_insn_length): Add argument to output_movsisf and
1180         output_reload_insisf call.
1181
1182 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
1183
1184         * emit-rtl.c (paradoxical_subreg_p): New function.
1185         * rtl.h (paradoxical_subreg_p): Declare.
1186         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
1187         apply_distributive_law, simplify_comparison, simplify_set): Use it.
1188         * cse.c (record_jump_cond, cse_insn): Likewise.
1189         * expr.c (force_operand): Likewise.
1190         * rtlanal.c (num_sign_bit_copies1): Likewise.
1191         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
1192         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
1193         (push_reload): Use precision to check for paradoxical subregs.
1194         * expmed.c (extract_bit_field_1): Likewise.
1195
1196         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
1197         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
1198         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
1199         simplify_set, simplify_logical, expand_compound_operation,
1200         make_extraction, force_to_mode, if_then_else_cond, extended_count,
1201         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
1202         record_value_for_reg): Likewise.
1203         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
1204         * simplify-rtx. c (simplify_unary_operation_1,
1205         simplify_binary_operation_1, simplify_const_relational_operation):
1206         Likewise.
1207
1208         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
1209         instead of GET_MODE_BITSIZE where appropriate.
1210         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
1211         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
1212         init_num_sign_bit_copies_in_rep): Likewise.
1213         * cse.c (fold_rtx, cse_insn): Likewise.
1214         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
1215         * simplify-rtx.c (simplify_unary_operation_1,
1216         simplify_const_unary_operation, simplify_binary_operation_1,
1217         simplify_const_binary_operation, simplify_ternary_operation,
1218         simplify_const_relational_operation, simplify_subreg): Likewise.
1219         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
1220         simplify_if_then_else, simplify_set, expand_compound_operation,
1221         expand_field_assignment, make_extraction, if_then_else_cond,
1222         make_compound_operation, force_to_mode, make_field_assignment,
1223         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
1224         extended_count, try_widen_shift_mode, simplify_shift_const_1,
1225         simplify_comparison, record_promoted_value, simplify_compare_const,
1226         record_dead_and_set_regs_1): Likewise.
1227
1228         Revert:
1229         * simplify-rtx.c (simplify_const_binary_operation): Use the
1230         shift_truncation_mask hook instead of performing modulo by width.
1231         Compare against mode precision, not bitsize.
1232         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
1233         Use shift_truncation_mask instead of constructing the value manually.
1234
1235 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1236
1237         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
1238         declaration.
1239         (rs6000_save_toc_in_prologue_p): Ditto.
1240
1241         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
1242         up the static chain (r11) during indirect function calls.
1243         (-msave-toc-indirect): New undocumented debug switch.
1244
1245         * config/rs6000/rs6000.c (struct machine_function): Add
1246         save_toc_in_prologue field to note whether the prologue needs to
1247         save the TOC value in the reserved stack location.
1248         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
1249         to save the TOC in the prologue, do so.
1250         (rs6000_trampoline_init): Don't allow creating AIX style
1251         trampolines if -mno-r11 is in effect.
1252         (rs6000_call_indirect_aix): New function to create AIX style
1253         indirect calls, adding support for -mno-r11 to suppress loading
1254         the static chain, and saving the TOC in the prologue instead of
1255         the call body.
1256         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
1257         TOC in the prologue.
1258
1259         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
1260         register numbers.
1261         (TOC_REGNUM): Ditto.
1262         (STATIC_CHAIN_REGNUM): Ditto.
1263         (ARG_POINTER_REGNUM): Ditto.
1264         (SFP_REGNO): Delete, unused.
1265         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
1266         function descriptor offsets.
1267         (TOC_SAVE_OFFSET_64BIT): Ditto.
1268         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
1269         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
1270         (AIX_FUNC_DESC_SC_32BIT): Ditto.
1271         (AIX_FUNC_DESC_SC_64BIT): Ditto.
1272         (ptrload): New mode attribute for the appropriate load of a pointer.
1273         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
1274         (call_indirect_aix64): Ditto.
1275         (call_value_indirect_aix32): Ditto.
1276         (call_value_indirect_aix64): Ditto.
1277         (call_indirect_nonlocal_aix32_internal): Ditto.
1278         (call_indirect_nonlocal_aix32): Ditto.
1279         (call_indirect_nonlocal_aix64_internal): Ditto.
1280         (call_indirect_nonlocal_aix64): Ditto.
1281         (call): Rewrite AIX indirect function calls.  Add support for
1282         eliminating the static chain, and for moving the save of the TOC
1283         to the function prologue.
1284         (call_value): Ditto.
1285         (call_indirect_aix<ptrsize>): Ditto.
1286         (call_indirect_aix<ptrsize>_internal): Ditto.
1287         (call_indirect_aix<ptrsize>_internal2): Ditto.
1288         (call_indirect_aix<ptrsize>_nor11): Ditto.
1289         (call_value_indirect_aix<ptrsize>): Ditto.
1290         (call_value_indirect_aix<ptrsize>_internal): Ditto.
1291         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1292         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1293         (call_nonlocal_aix32): Relocate in the rs6000.md file.
1294         (call_nonlocal_aix64): Ditto.
1295
1296         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
1297         -mno-r11 documentation.
1298
1299 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
1300
1301         PR other/49658
1302         * doc/extend.texi (Compound Literals): Fix typo.
1303
1304 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
1305
1306         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
1307
1308 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
1309
1310         * configure.ac (plugin-version.h): Generate
1311         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
1312         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
1313         macros.
1314
1315         * configure: Regenerate.
1316
1317         * doc/plugins.texi (Building GCC plugins): Mention
1318         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
1319
1320 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
1321
1322         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
1323         * combine.c (make_extraction, gen_lowpart_or_truncate,
1324         apply_distributive_law, simplify_comparison,
1325         reg_truncated_to_mode, record_truncated_value): Use it.
1326         * cse.c (notreg_cost): Likewise.
1327         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
1328         * expr.c (convert_move, convert_modes): Likewise.
1329         * optabs.c (expand_binop, expand_unop): Likewise.
1330         * postreload.c (move2add_last_label): Likewise.
1331         * regmove.c (optimize_reg_copy_3): Likewise.
1332         * rtlhooks.c (gen_lowpart_general): Likewise.
1333         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1334
1335 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
1336
1337         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
1338
1339 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
1340
1341         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
1342         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
1343         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
1344         (simplify_const_unary_operation, simplify_binary_operation_1,
1345         simplify_const_binary_operation, simplify_const_relational_operation):
1346         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
1347         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
1348         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
1349         simplify_shift_const_1, simplify_comparison): Likewise.
1350         * expr.c (convert_modes): Likewise.
1351         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
1352         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
1353         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
1354
1355         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
1356
1357 2011-07-06  Richard Guenther  <rguenther@suse.de>
1358
1359         PR tree-optimization/49645
1360         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
1361         register variables.
1362         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
1363         in type qualification here ...
1364         (copy_reference_ops_from_ref): ... not here.
1365         (vn_reference_lookup_3): ... or here.
1366         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
1367         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
1368
1369 2011-07-06  Ian Lance Taylor  <iant@google.com>
1370
1371         * doc/install.texi (Configuration): It's
1372         --enable-gnu-indirect-function, not --enable-indirect-function.
1373
1374 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
1375
1376         * simplify-rtx.c (simplify_const_binary_operation): Use the
1377         shift_truncation_mask hook instead of performing modulo by width.
1378         Compare against mode precision, not bitsize.
1379         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
1380         Use shift_truncation_mask instead of constructing the value manually.
1381
1382 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
1383
1384         PR middle-end/47383
1385         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
1386         address computation and convert to address_mode if needed.
1387
1388 2011-07-06  Richard Guenther  <rguenther@suse.de>
1389
1390         * tree.c (build_common_tree_nodes_2): Merge with
1391         build_common_tree_nodes.
1392         * tree.h (build_common_tree_nodes): Adjust prototype.
1393         (build_common_tree_nodes_2): Remove.
1394         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
1395         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
1396
1397 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
1398
1399         PR tree-optimization/49618
1400         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
1401         t recurse on the decl.
1402         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
1403         return true if expr isn't known to be defined in current
1404         TU or some other LTO partition.
1405
1406 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
1407
1408         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
1409         override CASE_VALUES_THRESHOLD.
1410
1411         * stmt.c (toplevel): Include params.h.
1412         (case_values_threshold): Use the --param case-values-threshold
1413         value if non-zero, otherwise use machine dependent value.
1414         (expand_case): Use case_values_threshold.
1415
1416         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
1417
1418         * doc/invoke.texi (--param case-values-threshold): Document.
1419
1420 2011-07-05  Richard Henderson  <rth@redhat.com>
1421
1422         * dwarf2out.c (dwarf2out_cfi_label): Make static.
1423         (dwarf2out_flush_queued_reg_saves): Make static.
1424         (dwarf2out_reg_save): Remove.
1425         (dwarf2out_return_save): Remove.
1426         (dwarf2out_return_reg): Remove.
1427         (dwarf2out_reg_save_reg): Remove.
1428         (dwarf2out_def_cfa): Merge into ...
1429         (dwarf2out_frame_init): ... here.
1430         * dwarf2out.h, tree.h: Remove declarations as necessary.
1431
1432 2011-07-05  Richard Henderson  <rth@redhat.com>
1433
1434         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
1435         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1436         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
1437         the alloc insn.
1438
1439         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
1440         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
1441         (process_epilogue): Don't call dwarf2out_def_cfa.
1442
1443         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
1444         indicate the return address save.
1445         (process_cfa_register): Likewise.
1446
1447         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
1448         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
1449
1450         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
1451         for ar.pfs save at alloc insn.
1452
1453 2011-07-05  Richard Henderson  <rth@redhat.com>
1454
1455         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
1456         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1457         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
1458         stack pointer save.
1459         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
1460         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
1461         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
1462         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
1463
1464 2011-07-05  Richard Henderson  <rth@redhat.com>
1465
1466         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
1467         VUNSPEC_* constants here instead of via define_constants.
1468         (VUNSPEC_PEM): New constant.
1469         (procedure_entry_mask): New insn.
1470         (prologue): New expander.
1471         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
1472         (vax_expand_prologue): Rename from vax_output_function_prologue;
1473         emit rtl instead of text.
1474         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
1475         (print_operand): Add 'x' prefix.
1476
1477 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1478
1479         PR middle-end/47715
1480         * calls.c (precompute_register_parameters): Promote the function
1481         argument before checking non-legitimate constant.
1482
1483 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1484
1485         PR tree-optimization/47654
1486         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
1487         (lst_do_strip_mine_loop): Return an int.
1488         (lst_do_strip_mine): Same.
1489         (scop_do_strip_mine): Same.
1490         (scop_do_block): Loop blocking should strip-mine at least two loops.
1491         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
1492         (scop_do_interchange): Same.
1493         * graphite-poly.h (scop_do_interchange): Update declaration.
1494         (scop_do_strip_mine): Same.
1495
1496 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1497
1498         * graphite-clast-to-gimple.c (precision_for_value): Removed.
1499         (precision_for_interval): Removed.
1500         (gcc_type_for_interval): Use mpz_sizeinbase.
1501
1502 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1503
1504         * graphite-ppl.h (value_max): Correct computation of max.
1505
1506 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1507
1508         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
1509
1510 2011-07-05  Richard Guenther  <rguenther@suse.de>
1511
1512         * c-decl.c (c_init_decl_processing): Defer building common
1513         tree nodes to c_common_nodes_and_builtins.
1514
1515 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
1516
1517         PR tree-optimization/49580
1518         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
1519         the loop's number of iterations.
1520         * tree-parloops.c (transform_to_exit_first_loop): Add the
1521         handling of the loop's number of iterations before the call
1522         to gimple_duplicate_sese_tail.
1523         Insert the stmt caclculating the new rhs of the loop's
1524         condition stmt to the preheader instead of iters_bb.
1525
1526 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1527
1528         PR rtl-optimization/47449
1529         * fwprop.c (forward_propagate_subreg): Don't propagate hard
1530         register nor zero/sign extended hard register.
1531
1532 2011-07-05  Richard Guenther  <rguenther@suse.de>
1533
1534         PR tree-optimization/49518
1535         PR tree-optimization/49628
1536         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
1537         irrelevant and invariant data-references.
1538         (vect_analyze_data_ref_access): For invariant loads clear the
1539         group association.
1540
1541 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
1542
1543         PR rtl-optimization/49619
1544         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
1545         pass VOIDmode as op0_mode to recursive call, and return temp even
1546         when different from tor, just if it is not IOR of the original
1547         PLUS arguments.
1548
1549         PR rtl-optimization/49472
1550         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
1551         negating MULT, negate the second operand instead of first.
1552         (simplify_binary_operation_1) <case MULT>: If one operand is
1553         a NEG and the other is MULT, don't attempt to optimize by negation
1554         of the MULT operand if it only moves the NEG operation around.
1555
1556         PR debug/49602
1557         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
1558         get_current_def return value if it can't be trusted to be
1559         the current value of the variable in the current bb.
1560
1561 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
1562
1563         PR target/49600
1564         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
1565         general register to memory for !TARGET_INTER_UNIT_MOVES.
1566
1567 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1568
1569         PR target/44643
1570         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
1571         instead of TREE_READONLY.
1572
1573 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1574
1575         * doc/extend.texi (AVR Built-in Functions): Update documentation
1576         of __builtin_avr_fmul*.
1577         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
1578         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
1579         * config/avr/avr.md (fmul): Rename to fmul_insn.
1580         (fmuls): Rename to fmuls_insn.
1581         (fmulsu): Rename to fmulsu_insn.
1582         (fmul,fmuls,fmulsu): New expander.
1583         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
1584         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
1585         * config/avr/libgcc.S (__fmul): New function.
1586         (__fmuls): New function.
1587         (__fmulsu,__fmulsu_exit): New function.
1588
1589 2011-07-04  Richard Guenther  <rguenther@suse.de>
1590
1591         PR tree-optimization/49615
1592         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
1593         basic-block index check.
1594
1595 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1596
1597         * longlong.h (count_leading_zeros, count_trailing_zeros,
1598         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
1599         resp. 64.
1600
1601 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
1602
1603         PR tree-optimization/49610
1604         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
1605         a basic block.
1606
1607 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1608             Olivier Hainque  <hainque@adacore.com>
1609             Nicolas Setton  <setton@adacore.com>
1610
1611         * tree.h (TYPE_ARTIFICIAL): New flag.
1612         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
1613         the DIE of the type if it is artificial.
1614         (gen_array_type_die): Likewise.
1615         (gen_enumeration_type_die): Likewise.
1616         (gen_struct_or_union_type_die): Likewise.
1617         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
1618         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
1619
1620 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
1621
1622         * tree-object-size.c (pass_through_call): Handle
1623         BUILT_IN_ASSUME_ALIGNED.
1624
1625 2011-07-01  Martin Jambor  <mjambor@suse.cz>
1626
1627         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
1628
1629 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
1630
1631         PR middle-end/48016
1632         * explow.c (update_nonlocal_goto_save_area): Use proper mode
1633         for stack save area.
1634         * function.c (expand_function_start): Likewise.
1635
1636 2011-07-01  Richard Guenther  <rguenther@suse.de>
1637
1638         PR middle-end/49596
1639         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
1640         may have unknown refs.
1641
1642 2011-07-01  Kai Tietz  <ktietz@redhat.com>
1643
1644         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
1645
1646 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1647
1648         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
1649         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
1650         (Specific, mips-sgi-irix6): Likewise.
1651
1652 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1653
1654         PR libmudflap/49549
1655         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
1656
1657 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
1658
1659         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
1660         [idx]= and [idx1 ... idx2]= before initializers if needed for
1661         array initializers.
1662
1663 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
1664
1665         * config.gcc (score-*-elf): Remove score7.o.
1666         * config/score/t-score-elf: Likewise.
1667         * config/score/score.c: Merge score7 to score.c and
1668         remove forwarding functions.
1669         * config/score/score7.c: Deleted.
1670         * config/score/score7.h: Deleted.
1671
1672 2011-07-01  Richard Guenther  <rguenther@suse.de>
1673
1674         PR tree-optimization/49603
1675         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
1676
1677 2011-06-30  Martin Jambor  <mjambor@suse.cz>
1678
1679         * tree-sra.c (struct access): Rename total_scalarization to
1680         grp_total_scalarization
1681         (completely_scalarize_var): New function.
1682         (sort_and_splice_var_accesses): Set total_scalarization in the
1683         representative access.
1684         (analyze_access_subtree): Propagate total scalarization accross the
1685         tree, no holes in totally scalarized trees, simplify coverage
1686         computation.
1687         (analyze_all_variable_accesses): Call completely_scalarize_var instead
1688         of completely_scalarize_record.
1689
1690 2011-06-30  Richard Henderson  <rth@redhat.com>
1691
1692         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
1693         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
1694         * config/i386/i386.c: Don't include dwarf2out.h.
1695         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
1696         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
1697         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
1698         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
1699         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
1700
1701 2011-06-30  Richard Henderson  <rth@redhat.com>
1702
1703         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
1704         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
1705         * final.c (final_scan_insn): Look for it, and invoke
1706         dwarf2out_frame_debug before the insn if found.
1707
1708 2011-06-30  Richard Henderson  <rth@redhat.com>
1709
1710         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
1711         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
1712
1713 2011-06-30  Richard Henderson  <rth@redhat.com>
1714
1715         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
1716         Define a vector of this type.
1717         (regs_saved_in_regs): Use a VEC.
1718         (num_regs_saved_in_regs): Remove.
1719         (compare_reg_or_pc): New.
1720         (record_reg_saved_in_reg): Split out from...
1721         (dwarf2out_flush_queued_reg_saves): ... here.
1722         (clobbers_queued_reg_save): Update for VEC.
1723         (reg_saved_in): Likewise.
1724         (dwarf2out_frame_debug_init): Likewise.
1725         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
1726         (dwarf2out_frame_debug_cfa_register): Likewise.
1727
1728 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1729
1730         PR tree-optimization/49572
1731         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
1732         type of the RHS instead of that of the LHS for the expression type.
1733
1734 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1735
1736         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
1737         unconditionally.
1738
1739 2011-06-30  Richard Guenther  <rguenther@suse.de>
1740
1741         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
1742         * tree-ssa-structalias.c (create_variable_info_for): Do not
1743         add initial constraints for non-var-decls.  Properly handle
1744         globals in other ltrans partitions.
1745         (intra_create_variable_infos): Manually create constraints for
1746         the fake no-alias parameter.
1747         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
1748         and assert there are no clones.
1749
1750 2011-06-30  Richard Guenther  <rguenther@suse.de>
1751
1752         PR tree-optimization/46787
1753         * tree-data-ref.c (dr_address_invariant_p): Remove.
1754         (find_data_references_in_stmt): Invariant accesses are ok now.
1755         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
1756         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
1757         invariant loads.
1758
1759 2011-06-30  Martin Jambor  <mjambor@suse.cz>
1760
1761         PR tree-optimization/49094
1762         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
1763         (build_accesses_from_assign): Use it.
1764
1765 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1766
1767         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1768         handling of BUILT_IN_ASSUME_ALIGNED.
1769
1770         PR debug/49364
1771         * dwarf2out.c (output_abbrev_section): Don't return early
1772         if abbrev_die_table_in_use is 1.
1773         (dwarf2out_finish): Instead don't call output_abbrev_section
1774         nor emit abbrev_section_label in that case.
1775
1776 2011-06-30  Nick Clifton  <nickc@redhat.com>
1777
1778         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
1779         for the V850E.
1780
1781 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1782
1783         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1784         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
1785
1786 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
1787
1788         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1789         both pattern and original statements if necessary.
1790         (vect_transform_loop): Likewise.
1791         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
1792         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
1793         Mark the pattern statement only if the original statement doesn't
1794         have its own uses.
1795         (process_use): Call vect_mark_relevant with additional parameter.
1796         (vect_mark_stmts_to_be_vectorized): Likewise.
1797         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
1798         (vect_analyze_stmt): Handle both pattern and original statements
1799         if necessary.
1800         (vect_transform_stmt): Don't store vectorized pattern statement
1801         in the original statement.
1802         (vect_is_simple_use_1): Use related pattern statement only if the
1803         original statement is irrelevant.
1804         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1805
1806 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
1807
1808         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
1809         option.
1810         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
1811         entry.
1812         (TARGET_AVX128_OPTIMAL): New definition.
1813         * config/i386/i386.c (initial_ix86_tune_features): Initialize
1814         X86_TUNE_AVX128_OPTIMAL entry.
1815         (ix86_option_override_internal): Enable the generation
1816         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
1817         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
1818         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
1819
1820 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1821
1822         PR tree-optimization/49539
1823         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
1824         names by means of stmt_references_abnormal_ssa_name.
1825         (associate_plusminus): Call can_propagate_from before propagating
1826         from definition statements.
1827         (ssa_forward_propagate_and_combine): Remove superfluous newline.
1828
1829 2011-06-29  Richard Guenther  <rguenther@suse.de>
1830
1831         * doc/invoke.texi: Document -scev dump modifier.
1832         * tree-pass.h (TDF_SCEV): New dump flag.
1833         * tree-dump.c (dump_option_value_in): Add scev.
1834         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
1835         * tree-scalar-evolution.c: Likewise.
1836
1837 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
1838
1839         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
1840         (cxa_type_match): Correct declaration.
1841         (__gnu_unwind_pr_common): Reconstruct additional indirection
1842         when __cxa_type_match returns succeeded_with_ptr_to_base.
1843
1844 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1845
1846         PR rtl-optimization/49114
1847         * reload.c (struct replacement): Remove SUBREG_LOC member.
1848         (push_reload): Do not set it.
1849         (push_replacement): Likewise.
1850         (subst_reload): Remove dead code.
1851         (copy_replacements): Remove assertion.
1852         (copy_replacements_1): Do not handle SUBREG_LOC.
1853         (move_replacements): Likewise.
1854         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
1855         Detect subregs via recursive descent instead of via SUBREG_LOC.
1856
1857 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1858
1859         * config/avr/avr.c (avr_encode_section_info): Dispatch to
1860         default_encode_section_info.
1861
1862 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
1863
1864         PR tree-optimization/49545
1865         * builtins.c (get_object_alignment_1): Update function comment.
1866         Do not use DECL_ALIGN for functions, but test
1867         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
1868         * fold-const.c (get_pointer_modulus_and_residue): Don't check
1869         for functions here.
1870         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1871
1872 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
1873
1874         PR debug/49567
1875         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
1876         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
1877
1878 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1879
1880         PR target/34734
1881         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
1882         about uninitialized data attributed 'progmem' from here...
1883         (avr_encode_section_info): ...to this new function.
1884         (TARGET_ENCODE_SECTION_INFO): New define.
1885         (avr_section_type_flags): For data in ".progmem.data", remove
1886         section flag SECTION_WRITE.
1887
1888 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1889
1890         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
1891         _xmulhisi3_exit.
1892         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
1893         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
1894         (__umulhisi3): Ditto.
1895         * config/avr/avr.md (mulhisi3): New insn expender.
1896         (umulhisi3): New insn expender.
1897         (*mulhisi3_call): New insn.
1898         (*umulhisi3_call): New insn.
1899
1900 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1901
1902         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
1903
1904 2011-06-28  Richard Henderson  <rth@redhat.com>
1905
1906         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
1907         all code and arguments that handled pushes.  Update all callers.
1908
1909 2011-06-28  Richard Henderson  <rth@redhat.com>
1910
1911         * config/arm/arm.c (arm_output_function_prologue): Don't call
1912         thumb1_output_function_prologue.
1913         (arm_expand_prologue): Avoid dead store.
1914         (number_of_first_bit_set): Use ctz_hwi.
1915         (thumb1_emit_multi_reg_push): New.
1916         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
1917         to emit the entire prologue as rtl.
1918         (thumb1_output_interwork): Split out from
1919         thumb1_output_function_prologue.
1920         (thumb1_output_function_prologue): Remove.
1921         (arm_attr_length_push_multi): Handle thumb1.
1922         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
1923         (prologue_thumb1_interwork): New.
1924         (*push_multi): Allow thumb1; use push_mult_memory_operand.
1925         * config/arm/predicates.md (push_mult_memory_operand): New.
1926
1927 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1928
1929         * config/sparc/sync.md (*stbar): Delete.
1930         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
1931
1932 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1933
1934         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
1935
1936 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1937
1938         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
1939         (TARGET_64BIT_DEFAULT): Define.
1940         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
1941         of tm_file.
1942         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
1943
1944 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1945
1946         * common.opt (in_lto_p): New Variable entry.
1947         * flags.h (in_lto_p): Move to common.opt.
1948         * gcc.c: Include params.h.
1949         (set_option_handlers): Also use common_handle_option and
1950         target_handle_option.
1951         (main): Call global_init_params, finish_params and init_options_struct.
1952         * opts.c (debug_type_names): Move from toplev.c.
1953         (print_filtered_help): Access quiet_flag through opts pointer.
1954         (common_handle_option): Return early in the driver for some options.
1955         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
1956         opts pointer.
1957         * toplev.c (in_lto_p): Move to common.opt.
1958         (debug_type_names): Move to opts.c.
1959         * Makefile.in (OBJS): Remove opts.o.
1960         (OBJS-libcommon-target): Add opts.o.
1961         (gcc.o): Update dependencies.
1962
1963 2011-06-28  Kai Tietz  <ktietz@redhat.com>
1964
1965         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
1966
1967 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1968
1969         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
1970         with '=' constraint modifier.
1971         (*divdf3_vfp): Likewise.
1972         ("*mulsf3_vfp"): Likewise.
1973         ("*muldf3_vfp"): Likewise.
1974         ("*mulsf3negsf_vfp"): Likewise.
1975         ("*muldf3negdf_vfp"): Likewise.
1976
1977 2011-06-28  Nick Clifton  <nickc@redhat.com>
1978
1979         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
1980         relaxation when performing an incremental link.
1981
1982 2011-06-28  Kai Tietz  <ktietz@redhat.com>
1983
1984         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
1985         within BB from last to first.
1986
1987 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1988
1989         * genattr-common.c: New.  Based on genattr.c.
1990         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
1991         (MOSTLYCLEANFILES): Add insn-attr-common.h.
1992         (opts.o): Update dependencies.
1993         (.PRECIOUS): Add insn-attr-common.h.
1994         (simple_rtl_generated_h): Add insn-attr-common.h.
1995         (build/genattr-common.o): New.
1996         (genprogrtl): Add attr-common.
1997         * genattr.c (main): Include insn-attr-common.h.  Don't generate
1998         definitions of DELAY_SLOTS or INSN_SCHEDULING.
1999         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
2000
2001 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
2002
2003         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
2004         avr-*-* and avr-*-rtems* targets.
2005
2006         * config/avr/elf.h: New file.
2007         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
2008         (TARGET_ASM_SELECT_SECTION): Define.
2009         (INIT_SECTION_ASM_OP): Undefine.
2010         (FINI_SECTION_ASM_OP): Undefine.
2011         (READONLY_DATA_SECTION_ASM_OP): Undefine.
2012         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
2013         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
2014         * config/avr/avr.h:
2015         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
2016         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
2017         (MAX_OFILE_ALIGNMENT): Move to elf.h.
2018         (STRING_LIMIT): Move to elf.h.
2019         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
2020         (ASM_DECLARE_OBJECT_NAME): Remove.
2021         (ESCAPES): Remove.
2022         (ASM_OUTPUT_SKIP): Remove.
2023         (DWARF2_DEBUGGING_INFO): Remove.
2024         (OBJECT_FORMAT_ELF): Remove.
2025         (USER_LABEL_PREFIX): Remove.
2026         (ASM_OUTPUT_EXTERNAL): Remove.
2027         (ASM_OUTPUT_ASCII): Remove.
2028         (TYPE_ASM_OP): Remove.
2029         (SIZE_ASM_OP): Remove.
2030         (WEAK_ASM_OP): Remove.
2031         (STRING_ASM_OP): Remove.
2032         (SET_ASM_OP): Remove.
2033         (ASM_WEAKEN_LABEL): Remove.
2034         (TYPE_OPERAND_FMT): Remove.
2035         (ASM_DECLARE_FUNCTION_SIZE): Remove.
2036         (ASM_FINISH_DECLARE_OBJECT): Remove.
2037         (NO_DOLLAR_IN_LABEL): Remove.
2038         (ASM_GENERATE_INTERNAL_LABEL): Remove.
2039         (ASM_OUTPUT_CASE_LABEL): Remove.
2040         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
2041         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
2042         (gas_output_ascii): Remove.
2043         (gas_output_limited_string): Remove.
2044         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
2045         * config/avr/avr-protos.h
2046         (gas_output_ascii): Remove prototye.
2047         (gas_output_limited_string): Remove prototype.
2048
2049 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
2050
2051         PR target/48637
2052         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
2053         asm operands.
2054
2055 2011-06-27  Jan Hubicka  <jh@suse.cz>
2056
2057         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
2058         node instead of references in node.
2059
2060 2011-06-27  Richard Henderson  <rth@redhat.com>
2061
2062         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
2063         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
2064         inside ifdef.
2065
2066 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
2067
2068         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
2069
2070         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
2071         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
2072         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
2073         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
2074         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
2075         (evaluate_stmt, execute_fold_all_builtins): Handle
2076         BUILT_IN_ASSUME_ALIGNED.
2077         * tree-ssa-dce.c (propagate_necessity): Likewise.
2078         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2079         call_may_clobber_ref_p_1): Likewise.
2080         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
2081         (expand_builtin_assume_aligned): New function.
2082         * doc/extend.texi (__builtin_assume_aligned): Document.
2083
2084         PR debug/49544
2085         * cselib.c (promote_debug_loc): If cselib_preserve_constants
2086         and l has two DEBUG_INSN owned locs instead of just one, adjust
2087         the second location's setting_insn too.
2088
2089 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2090
2091         PR libmudflap/38738
2092         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
2093
2094 2011-06-27  Nick Clifton  <nickc@redhat.com>
2095
2096         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
2097         bit position of highest bit set into a count of the high zero bits.
2098
2099 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2100
2101         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
2102
2103 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2104
2105         PR lto/48492
2106         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
2107         to a NULL parent.
2108
2109 2011-06-27  Richard Guenther  <rguenther@suse.de>
2110
2111         PR tree-optimization/49394
2112         * passes.c (execute_one_pass): Restore current_pass after
2113         applying IPA transforms.
2114
2115 2011-06-27  Kai Tietz  <ktietz@redhat.com>
2116
2117         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
2118         out of type precision after operation.
2119         (find_bswap): Take for limit value the integer auto-promotion
2120         into account.
2121
2122 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2123
2124         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
2125         forward scan as well.
2126
2127 2011-06-27  Tristan Gingold  <gingold@adacore.com>
2128
2129         PR target/44241
2130         * config/vms/vms-protos.h: New file.
2131         * config/vms/vms-crtlmap.map: New file.
2132         * config/vms/vms.c: New file.
2133         * config/vms/make-crtlmap.awk: New file.
2134         * config/vms/vms-crtl.h: File removed.
2135         * config/vms/vms-crtl-64.h: File removed.
2136         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
2137         * config/alpha/vms64.h: Do not include vms-crtl-64.h
2138         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
2139         clear some builtins on VMS.  Calls vms_patch_builtins.
2140         (avms_asm_output_external): Remove.
2141         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
2142         (struct crtl_name_spec): Remove
2143         (DO_CTRL_NAMES): Remove.
2144         * config/ia64/vms.h (struct crtl_name_spec): Remove
2145         (DO_CTRL_NAMES): Remove.
2146         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
2147         clear some builtins on VMS.  Calls vms_patch_builtins.
2148         (ia64_asm_output_external): Remove DO_CRTL_NAME.
2149         * config/ia64/vms64.h: Do not include vms-crtl-64.h
2150         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
2151
2152 2011-06-27  Tristan Gingold  <gingold@adacore.com>
2153
2154         * config/alpha/alpha.c (alpha_end_function): Always generate .end
2155         directive on VMS.
2156
2157 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2158
2159         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
2160         the function receives nonlocal gotos.
2161
2162 2011-06-27  Richard Guenther  <rguenther@suse.de>
2163
2164         PR tree-optimization/49536
2165         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
2166         For non-scalar inner types use a scalar type according to
2167         the scalar inner mode.
2168
2169 2011-06-27  Richard Guenther  <rguenther@suse.de>
2170
2171         PR tree-optimization/49365
2172         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
2173
2174 2011-06-27  Richard Guenther  <rguenther@suse.de>
2175
2176         PR tree-optimization/49169
2177         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
2178         the alignment of function decls.
2179
2180 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
2181
2182         PR target/47997
2183         * config/darwin.c (darwin_mergeable_string_section): Place string
2184         constants in '.cstring' rather than '.const' when CF/NSStrings are
2185         active.
2186
2187 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
2188
2189         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
2190         (emit_save_register_window): Likewise.
2191         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
2192         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
2193         Swap back %o7/%i7 in register naming.
2194
2195 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
2196
2197         PR driver/49371
2198         * config/darwin.c (darwin_override_options): Improve warning when
2199         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
2200         is given with fpie/fPIE.
2201         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
2202         * config/darwin9.h (PIE_SPEC): New.
2203
2204 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
2205
2206         * timevar.c (timevar_print): Increase width for display of timevar
2207         name.
2208
2209 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
2210
2211         PR c++/46400
2212         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
2213         instead of TYPE_CHAIN for chain_next for types.
2214
2215 2011-06-24  Richard Henderson  <rth@redhat.com>
2216
2217         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
2218         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
2219         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
2220         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
2221         (sparc_flat_expand_prologue): Emit individual instructions
2222         instead of one of the above.
2223
2224 2011-06-24  Easwaran Raman  <eraman@google.com>
2225
2226         PR rtl-optimization/49429
2227         PR target/49454
2228         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
2229         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
2230         used to copy y into x.
2231         * calls.c (initialize_argument_information): Mark
2232         an argument addressable if it is passed by invisible reference.
2233         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
2234         if it is passed by reference.
2235
2236 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
2237
2238         PR rtl-optimization/49504
2239         * rtlanal.c (nonzero_bits1): Properly handle addition or
2240         subtraction of a pointer in Pmode if pointers extend unsigned.
2241         (num_sign_bit_copies1): Likewise.
2242
2243 2011-06-24  Martin Jambor  <mjambor@suse.cz>
2244
2245         PR tree-optimizations/49516
2246         * tree-sra.c (sra_modify_assign): Choose the safe path for
2247         aggregate copies if we also did scalar replacements.
2248
2249 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2250
2251         PR target/49335
2252         * config/arm/predicates.md (add_operator): New.
2253         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
2254
2255 2011-06-24  Andi Kleen  <ak@linux.intel.com>
2256
2257         * tree-sra.c (type_internals_preclude_sra_p): Add msg
2258         parameter. Split up ifs and report reason in *msg.
2259         (reject): Add.
2260         (find_var_candiate): Add msg variable.
2261         Split up ifs and report reason to reject.
2262         (find_param_candidates): Add msg variable.
2263         Pass msg to type_internals_preclude_sra_p.
2264
2265 2011-06-23  Jeff Law  <law@redhat.com>
2266
2267         PR middle-end/48770
2268         * reload.h (reload): Change to return a bool.
2269         * ira.c (ira): If requested by reload, run a fast DCE pass after
2270         reload has completed.  Fix comment typo.
2271         * reload1.c (need_dce): New file scoped static.
2272         (reload): Set reload_completed here.  Return whether or not a DCE
2273         pass after reload is needed.
2274         (delete_dead_insn): Set need_dce as needed.
2275
2276         PR middle-end/49465
2277         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
2278         to detect threading through joiner block.  If there was already
2279         an edge to the new target, then do not change the PHI nodes.
2280
2281 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
2282
2283         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
2284         get_pointer_alignment to see if base isn't sufficiently aligned.
2285
2286 2011-06-23  Jan Hubicka  <jh@suse.cz>
2287
2288         PR tree-optimize/49373
2289         * tree-pass.h (all_late_ipa_passes): Declare.
2290         * cgraphunit.c (init_lowered_empty_function): Fix properties.
2291         (cgraph_optimize): Execute late passes; remove unreachable funcions
2292         after materialization.
2293         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
2294         LTOing.
2295         * passes.c (all_late_ipa_passes): Declare.
2296         (dump_passes, register_pass): Handle late ipa passes.
2297         (init_optimization_passes): Move ipa_pta to late passes; schedule
2298         fixup_cfg at beggining of all_passes.
2299         (apply_ipa_transforms): New function.
2300         (execute_one_pass): When doing simple ipa pass, apply all transforms.
2301
2302 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
2303
2304         * params.c: Include common/common-target.h.  Don't include tm.h.
2305         (lang_independent_params): Move from toplev.c.
2306         (global_init_params): New.
2307         * params.h (global_init_params): Declare.
2308         * target.def (default_params): Move to common-target.def.
2309         * toplev.c (lang_independent_options): Remove.
2310         (lang_independent_params): Move to params.c.
2311         (general_init): Use global_init_params.
2312         * common/common-target.def (option_default_params): Move from
2313         target.def.
2314         * common/config/ia64/ia64-common.c: Include params.h.
2315         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2316         from ia64.c.
2317         * common/config/rs6000/rs6000-common.c: Include params.h.
2318         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2319         from rs6000.c.
2320         * common/config/sh/sh-common.c: Include params.h.
2321         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2322         from sh.c.
2323         * common/config/spu/spu-common.c: Include params.h.
2324         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2325         from spu.c.
2326         * config/ia64/ia64.c (ia64_option_default_params,
2327         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
2328         * config/rs6000/rs6000.c (rs6000_option_default_params,
2329         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
2330         * config/sh/sh.c (sh_option_default_params,
2331         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
2332         * config/spu/spu.c (spu_option_default_params,
2333         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
2334         * Makefile.in (OBJS): Remove params.o.
2335         (OBJS-libcommon-target): Add params.o.
2336         (params.o, $(common_out_object_file)): Update dependencies.
2337         * doc/tm.texi: Regenerate.
2338
2339 2011-06-23  Alan Modra  <amodra@gmail.com>
2340
2341         PR bootstrap/49383
2342         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
2343         invocation for 2011-06-09 changes.
2344
2345 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
2346
2347         PR libgomp/49490
2348         * omp-low.c (expand_omp_for_static_nochunk): Only
2349         use n ceil/ nthreads size for the first n % nthreads threads in the
2350         team instead of all threads except for the last few ones which
2351         get less work or none at all.
2352
2353         PR debug/49496
2354         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
2355         uses.
2356
2357 2011-06-22  Richard Guenther  <rguenther@suse.de>
2358
2359         PR tree-optimization/49493
2360         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
2361         Refer to the alias target of variables.
2362         (associate_varinfo_to_alias_1): Remove.
2363         (ipa_pta_execute): Do not associate aliases with anything.
2364         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
2365         (cgraph_function_node): Likewise.
2366         (cgraph_function_or_thunk_node): Likewise.
2367         (varpool_variable_node): Likewise.
2368
2369 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2370
2371         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
2372         * config.gcc (arm*-*-linux*): Default to gnu tls.
2373         (arm*-*-*): Add --with-tls option.
2374         (all_defaults): Add 'tls'.
2375
2376 2011-06-22  Richard Henderson  <rth@redhat.com>
2377
2378         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
2379         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
2380         (dwarf2out_frame_debug_cfa_window_save): Rename from
2381         dwarf2out_window_save; make static.
2382         * tree.h (dwarf2out_window_save): Don't declare.
2383
2384         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
2385         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2386         (emit_save_register_window): Rename from gen_save_register_window;
2387         emit the insn and add REG_CFA_* notes.
2388         (sparc_expand_prologue): Update to match.
2389         * config/sparc/sparc.md (save_register_window_1): Simplify from
2390         save_register_window<P:mode>.
2391
2392 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
2393
2394         PR target/49497
2395         * config/i386/i386.md (*lea_general_2): Always allow SImode.
2396         (*lea_general_2_zext): Likewise.
2397         (imul to lea peepholes): Use const359_operand and check
2398         TARGET_PARTIAL_REG_STALL.
2399
2400         * config/i386/predicates.md (const359_operand): New.
2401
2402 2011-06-22  Michael Matz  <matz@suse.de>
2403
2404         * cgraphunit.c (assemble_thunk): Use correct return type.
2405
2406 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
2407             Dmitry Melnik  <dm@ispras.ru>
2408
2409         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
2410         (neon_output_shift_immediate): Ditto.
2411         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
2412         prototype.
2413         (neon_output_shift_immediate): Ditto.
2414         * config/arm/neon.md (vashl<mode>3): Modified constraint.
2415         (vashr<mode>3_imm): New insn pattern.
2416         (vlshr<mode>3_imm): Ditto.
2417         (vashr<mode>3): Modified constraint.
2418         (vlshr<mode>3): Ditto.
2419         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
2420         predicate.
2421         (imm_for_neon_rshift_operand): Ditto.
2422         (imm_lshift_or_reg_neon): Ditto.
2423         (imm_rshift_or_reg_neon): Ditto.
2424
2425         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
2426
2427 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
2428
2429         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
2430         builtin calls even if likelyvalue is not CONSTANT.
2431         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
2432         Return get_value_for_expr of first operand
2433         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
2434         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
2435         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
2436         their non-checking counterparts.
2437         (call_may_clobber_ref_p_1): Likewise.
2438         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
2439         like their non-checking counterparts.
2440         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2441         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
2442         like their non-checking counterparts.
2443         (find_func_clobbers): Likewise.
2444         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
2445         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
2446
2447         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
2448         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
2449         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
2450         of base type reference as argument.
2451         (resolve_addr_in_expr): Likewise.  Fix keep computation.
2452         (convert_descriptor_to_signed): Renamed to...
2453         (convert_descriptor_to_mode): ... this.  For wider types convert to
2454         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
2455         (typed_binop): New function.
2456         (scompare_loc_descriptor, ucompare_loc_descriptor,
2457         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
2458         default to unsigned type instead of signed.
2459
2460         PR debug/47858
2461         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
2462         (gimple_build_debug_source_bind_stat): New prototype.
2463         (gimple_build_debug_source_bind): Define.
2464         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
2465         gimple_debug_source_bind_get_value,
2466         gimple_debug_source_bind_get_value_ptr,
2467         gimple_debug_source_bind_set_var,
2468         gimple_debug_source_bind_set_value): New inlines.
2469         * gimple.c (gimple_build_debug_source_bind_stat): New function.
2470         * gimple-pretty-print.c (dump_gimple_debug): Handle
2471         GIMPLE_DEBUG_SOURCE_BIND.
2472         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
2473         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2474         * tree-parloops.c (eliminate_local_variables,
2475         separate_decls_in_region): Likewise.
2476         (separate_decls_in_region_debug): Renamed from
2477         separate_decls_in_region_debug_bind.  Handle
2478         gimple_debug_source_bind_p.
2479         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
2480         prototypes.
2481         (DECL_HAS_DEBUG_ARGS_P): Define.
2482         (struct tree_function_decl): Add has_debug_args_flag field.
2483         * tree.c (debug_args_for_decl): New variable.
2484         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
2485         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
2486         (rewrite_debug_stmt_uses): New function.
2487         (rewrite_stmt): Use it to rewrite debug stmt uses.
2488         * rtl.def (DEBUG_PARAMETER_REF): New.
2489         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
2490         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
2491         DEBUG_PARAMETER_REF.
2492         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
2493         * print-rtl.c (print_rtx): Likewise.
2494         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
2495         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
2496         debug stmts in the first bb.
2497         * tree-inline.c (remap_ssa_name): If remapping default def
2498         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
2499         a source bind debug stmt.
2500         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
2501         (maybe_move_debug_stmts_to_successors): Likewise.
2502         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
2503         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
2504         debug args vector from old_decl to new_decl.
2505         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
2506         or modified parameters, add debug bind stmts before call
2507         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
2508         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
2509         on DECL_DEBUG_EXPRs from debug args vector.
2510         (expand_debug_source_expr): New function.
2511         (expand_debug_locations): Use it for source bind insns.
2512         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
2513         * var-tracking.c (prepare_call_arguments): Add debug args
2514         to call_arguments if any.
2515         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
2516         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
2517         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
2518         (get_ref_die_offset, parameter_ref_descriptor): New functions.
2519         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
2520         (gen_subprogram_die): Handle parameters identified by
2521         DEBUG_PARAMETER_REF.
2522
2523 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2524
2525         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
2526         * doc/install.texi (Configuration): Document --with-tls.
2527         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
2528         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
2529         (arm_tls_descseq_addr): New.
2530         (legitimize_tls_address): Add tlsdesc support.
2531         (arm_cannot_copy_insn_p): Check for tlscall.
2532         (arm_emit_tls_decoration): Likewise.
2533         * config/arm/arm.h (TARGET_GNU2_TLS): New.
2534         (OPTION_DEFAULT_SPECS): Add with-tls support.
2535         * config/arm/arm.md (R1_REGNUM): Define.
2536         (tlscall): New.
2537         * config/arm/arm.opt (tls_type): New enumeration type and values.
2538         (mtls-dialect): New switch.
2539         * config/arm/arm-opts.h (enum tls_type): New.
2540
2541 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2542
2543         * attribs.c (register_attribute): Added assert to check that all
2544         attribute specs are registered with a name that is not empty and
2545         does not start with '_'.
2546         (decl_attributes): Avoid the lookup of the "naked" attribute spec
2547         if the function has no attributes.
2548         * tree.c (is_attribute_with_length_p): Removed.
2549         (is_attribute_p): Removed.
2550         (private_is_attribute_p): New.
2551         (private_lookup_attribute): New.
2552         (lookup_attribute): Removed.
2553         (lookup_ident_attribute): New.
2554         (remove_attribute): Require the first argument to be in the form
2555         'text', not '__text__'.  Updated asserts.
2556         (merge_attributes): Use lookup_ident_attributes instead of
2557         lookup_attribute.
2558         (merge_dllimport_decl_attributes): Use remove_attribute.
2559         (attribute_list_contained): Likewise.
2560         (attribute_list_equal): Immediately return 1 if the arguments are
2561         identical pointers.
2562         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
2563         'int'.  Require the first argument to be in the form 'text', not
2564         '__text__'.  Require the second argument to be an identifier.
2565         (lookup_attribute): Made inline.  Require the first argument to be
2566         in the form 'text', not '__text__'.
2567         (private_is_attribute_p, private_lookup_attribute): New.
2568         Updated comments.
2569
2570 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
2571
2572         * builtins.c: Add sync_ or SYNC__ to builtin names.
2573         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
2574         * omp-low.c: Add sync_ or SYNC__ to builtin names.
2575
2576 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
2577
2578         PR target/33049
2579         * config/avr/avr.md (extzv): New expander.
2580         (*extzv): New insn.
2581         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
2582         * config/avr/constraints.md (C04): New constraint.
2583         * doc/md.texi (Machine Constraints): Document it.
2584
2585 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
2586
2587         PR middle-end/49489
2588         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
2589         unsignedp argument instead of 1 for clrsb_optab.
2590         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
2591         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
2592         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
2593         * optabs.c (widen_leading): Call widen_operand and expand_unop
2594         with 0 as unsignedp argument instead of 1 for clrsb_optab.
2595         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
2596
2597 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
2598
2599         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
2600
2601 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
2602
2603         * gensupport.c (add_define_attr): New static function.
2604         (is_predicable): Allow multi-alternative lists for the "predicable"
2605         attribute.
2606         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
2607         (process_one_cond_exec): Call alter_attrs_for_insn.
2608         * doc/md.texi (Defining Attributes): Mention some standard names.
2609         (Conditional Execution): Update documentation for "predicable".
2610
2611         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
2612         __builtin_clrsbll): Document.
2613         * doc/rtl.texi (clrsb): New entry.
2614         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
2615         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
2616         (expand_unop): Handle clrsb_optab.
2617         (init_optabs): Initialize it.
2618         * optabs.h (enum optab_index): New entry OTI_clrsb.
2619         (clrsb_optab): Define.
2620         * genopinit.c (optabs): Add an entry for it.
2621         * builtins.c (expand_builtin): Handle clrsb builtin functions.
2622         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
2623         BUILT_IN_CLRSBLL): New.
2624         * rtl.def (CLRSB): New code.
2625         * dwarf2out.c (mem_loc_descriptor): Handle it.
2626         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2627         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
2628         and popcount.
2629         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
2630         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
2631         (__ctzDI2): Move declaration.
2632         * config/bfin/bfin.md (clrsbsi2): New expander.
2633         (signbitssi2): Use the CLRSB rtx.
2634         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
2635         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
2636
2637 2011-06-21  Richard Guenther  <rguenther@suse.de>
2638
2639         * ipa-inline-transform.c (inline_transform): Fix previous change.
2640
2641 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
2642
2643         PR tree-optimization/49478
2644         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
2645         with constant operand.
2646
2647 2011-06-21  Richard Guenther  <rguenther@suse.de>
2648
2649         * ipa-inline-transform.c (inline_transform): Fix typo.
2650
2651 2011-06-21  Richard Guenther  <rguenther@suse.de>
2652
2653         PR tree-optimization/49483
2654         * tree-vect-stmts.c (vectorizable_assignment): Also handle
2655         VIEW_CONVERT_EXPR conversions.
2656
2657 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
2658
2659         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
2660         * config/avr/avr-tables.opt: New file (generated).
2661         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
2662         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
2663         avr-mcus.def.
2664         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
2665         (avr_option_override): Don't process -mmcu= argument here.  Set
2666         avr_current_device using avr_mcu_index.
2667         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
2668         * config/avr/avr.opt (mmcu=): Use Enum.
2669         * config/avr/t-avr (avr-devices.o): Update dependencies.
2670         ($(srcdir)/config/avr/avr-tables.opt): New.
2671         * target.def (help): Remove.
2672         * doc/tm.texi.in (TARGET_HELP): Remove.
2673         * doc/tm.texi: Regenerate.
2674         * opts.c: Don't include target.h.
2675         (common_handle_option): Don't call targetm.help.
2676         * system.h (TARGET_HELP): Poison.
2677         * Makefile.in (opts.o): Update dependencies.
2678
2679 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2680
2681         * config/usegld.h: New file.
2682         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
2683         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
2684         (LIB_SPEC): Likewise.  Search /lib.
2685         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
2686         (RDYNAMIC_SPEC): Handle GNU ld.
2687         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
2688         Define.
2689         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
2690         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
2691         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
2692         (STACK_CHECK_STATIC_BUILTIN): Define.
2693         * config/sol2.opt (compat-bsd): Remove.
2694         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
2695         * config/sol2-bi.h: New file.
2696         * config/sol2-gld.h: Remove.
2697         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
2698         (NO_DBX_BNSYM_ENSYM): Remove.
2699         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2700         (STACK_CHECK_STATIC_BUILTIN): Remove.
2701         Test USE_GLD instead of TARGET_GNU_LD.
2702         * config/i386/sol2-10.h: Rename to ...
2703         * config/i386/sol2-bi.h .. this.
2704         (SUBTARGET_EXTRA_SPECS): Redefine.
2705         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
2706         (MULTILIB_DEFAULTS): Remove.
2707         (DEFAULT_ARCH32_P): Define.
2708         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
2709         (ARCH64_SUBDIR): Define.
2710         Test USE_GLD instead of TARGET_GNU_LD.
2711         (I386_EMULATION): Rename to ...
2712         (ARCH32_EMULATION): ... this.
2713         (X86_64_EMULATION): Rename to ...
2714         (ARCH64_EMULATION): ... this.
2715         (TARGET_LD_EMULATION): Remove.
2716         (LINK_ARCH_SPEC): Remove.
2717         * config/i386/sol2-gas.h: Remove.
2718         * config/i386/t-sol2-10: Rename to ...
2719         * config/i386/t-sol2-64: ... this.
2720         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
2721         (AS_SPARC64_FLAG): Define.
2722         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
2723         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
2724         depending on TARGET_CPU_DEFAULT.
2725         (CPP_CPU_SPEC): Redefine.
2726         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
2727         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
2728         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
2729         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
2730         ASM_ARCH_DEFAULT_SPEC): Redefine.
2731         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2732         LINK_ARCH_DEFAULT_SPEC.
2733         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
2734         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
2735         (ARCH64_SUBDIR): Define.
2736         (LINK_ARCH64_SPEC): Redefine.
2737         (CC1_SPEC): Redefine.
2738         (OPTION_DEFAULT_SPECS): Redefine.
2739         (MULTILIB_DEFAULTS): Define.
2740         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
2741         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
2742         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
2743         (NO_DBX_BNSYM_ENSYM): Remove.
2744         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2745         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
2746         (TARGET_ASM_NAMED_SECTION): Likewise.
2747         (STACK_CHECK_STATIC_BUILTIN): Remove.
2748         * config/sparc/sol2-bi.h: Remove.
2749         * config/sparc/sol2-gas-bi.h: Remove.
2750         * config/sparc/sol2-gas.h: Remove.
2751         * config/sparc/sol2-gld-bi.h: Remove.
2752         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
2753         common parts ...
2754         (*-*-solaris2*): ... here.
2755
2756 2011-06-21  Christian Bruel  <christian.bruel@st.com>
2757
2758         PR other/43564
2759         * ipa-inline.c (can_inline_edge_p): Check
2760         !DECL_DISREGARD_INLINE_LIMITS.
2761
2762 2011-06-21  Christian Bruel  <christian.bruel@st.com>
2763
2764         PR middle-end/49139
2765         * cgraphunit.c (process_function_and_variable_attributes): warn when
2766         always_inline functions that are not inline.
2767         * ipa-inline-transform.c (inline_transform): Always call
2768         optimize_inline.
2769         * tree-inline.c (tree_inlinable_function_p): Use error instead
2770         of sorry.
2771         (expand_call_inline): Likewise.
2772
2773 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
2774
2775         * Makefile.in (dg_target_exps): Set.
2776         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
2777         instead of 7, try to divide it more evenly.
2778
2779 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
2780
2781         PR target/49089
2782         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
2783         (avx256_split_unaligned_store): New definition.
2784         (ix86_option_override_internal): Enable avx256 unaligned load/store
2785         splitting only when avx256_split_unaligned_load/store is set.
2786
2787 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
2788
2789         * regrename.c (scan_rtx_reg): Handle the case where we write to an
2790         open chain in a smaller mode without failing the entire block.
2791
2792 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
2793
2794         PR middle-end/47725
2795         * combine.c (cant_combine_insn_p): Don't check zero/sign
2796         extended hard registers.
2797
2798 2011-06-21  Alan Modra  <amodra@gmail.com>
2799
2800         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
2801         CONST high part large-toc address.
2802         (rs6000_tls_referenced_p): Make static.
2803         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
2804
2805 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
2806
2807         PR middle-end/47725
2808         * combine.c (cant_combine_insn_p): Check zero/sign extended
2809         hard registers.
2810
2811 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2812
2813         PR target/49385
2814         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
2815         one of the operands is a register.
2816
2817 2011-06-20  Kai Tietz  <ktietz@redhat.com>
2818
2819         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
2820         operations in combination with binary and.
2821
2822 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
2823
2824         * regrename.c (do_replace): Don't update notes.
2825
2826 2011-06-20  Alan Modra  <amodra@gmail.com>
2827
2828         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
2829         of toc-relative address in CONST.
2830         (rs6000_delegitimize_address): Recognize changed address.
2831         (rs6000_legitimize_reload_address): Likewise.
2832         (rs6000_emit_move): Don't force these constants to memory.
2833         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
2834         toc-relative address in CONST.
2835         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
2836         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
2837
2838 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2839
2840         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
2841         (count_trailing_zeros): Likewise.
2842
2843 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2844
2845         PR other/49325
2846         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
2847         .init_array can be used with .ctors on targets.
2848         * configure: Regenerated.
2849
2850 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
2851
2852         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
2853         if the element type is volatile.
2854
2855 2011-06-18  Jan Hubicka  <jh@suse.cz>
2856
2857         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
2858         extra name aliases.
2859         (lto_symtab_resolve_can_prevail_p): Likewise.
2860         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
2861         * cgraphbuild.c (record_reference): Remove extra body alias code.
2862         (mark_load): Likewise.
2863         (mark_store): Likewise.
2864         * cgraph.h (varpool_node): Remove extra_name filed;
2865         add alias_of and extraname_alias.
2866         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
2867         (varpool_alias_aliased_node): New inline function.
2868         (varpool_variable_node): New function.
2869         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
2870         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
2871         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
2872         (input_varpool_node): Likewise.
2873         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
2874         (varpool_externally_visible_p): Remove extra body alias code.
2875         (function_and_variable_visibility): Likewise.
2876         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
2877         (ipa_pta_execute): Use it.
2878         * varpool.c (varpool_remove_node): Remove extra name alias code.
2879         (varpool_mark_needed_node): Likewise.
2880         (varpool_analyze_pending_decls): Analyze aliases.
2881         (assemble_aliases): New functoin.
2882         (varpool_assemble_decl): Use it.
2883         (varpool_create_variable_alias): New function.
2884         (varpool_extra_name_alias): Rewrite.
2885         (varpool_for_node_and_aliases): New function.
2886
2887 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
2888
2889         PR target/49411
2890         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
2891         last_arg_constant and last argument doesn't match its predicate,
2892         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
2893         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
2894         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
2895         spelling of error message.
2896         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
2897         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
2898         const_0_to_255_operand instead of const_int_operand.
2899
2900         Revert:
2901         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2902
2903         * config/i386/sse.md (blendbits): Remove mode attribute.
2904         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2905         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2906         Check integer value of operand 3 in insn constraint.
2907
2908 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
2909
2910         PR rtl-optimization/48542
2911         * reload.c (find_equiv_reg): Stop looking when finding a
2912         setjmp-type call.
2913         * reload1.c (reload_as_needed): Invalidate all reload
2914         registers when crossing a setjmp-type call.
2915
2916 2011-06-16  Jeff Law  <law@redhat.com>
2917
2918         * tree-ssa-threadupdate.c (struct redirection_data): New field
2919         intermediate_edge.
2920         (THREAD_TARGET2): Define.
2921         (redirection_data_eq): Also check that the intermediate edge is equal.
2922         (lookup_redirection_data): Drop useless argument.  Extract the
2923         outgoing_edge and intermediate edge from E.  Callers updated.
2924         (copy_phi_args, update_destination_phis): New functions.
2925         (fix_duplicate_block_edges): Likewise.
2926         (create_edge_and_update_destination_phis): Duplicate all the edges
2927         hung off e->aux.  Use copy_phi_args.
2928         (create_duplicates): Use fix_duplicate_block_edges.
2929         (fixup_template_block): Likewise.
2930         (redirect_edges): If necessary, redirect the joiner block's incoming
2931         edge to the duplicate of the joiner block.
2932         (thread_block): Don't muck up loops when threading through a joiner
2933         block.
2934         (thread_through_loop_header): Handle threading through a joiner block.
2935         (mark_threaded_blocks, register_jump_thread): Likewise.
2936         * tree-flow.h (register_jump_thread): Add new argument.  Callers
2937         updated.
2938         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
2939         (thread_across_edge): Handle threading through a joiner block.
2940
2941 2011-06-16  Martin Jambor  <mjambor@suse.cz>
2942
2943         PR tree-optimization/49343
2944         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
2945         calculate offset, provide 2nd operand for the new COMPONENT_REF.
2946
2947 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
2948
2949         * config/darwin-protos.h (machopic_select_rtx_section): Move to
2950         inside RTX_CODE ifdef.
2951
2952 2011-06-16  Tom de Vries  <tom@codesourcery.com>
2953
2954         PR target/45098
2955         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
2956         Disallow NULL pointer for pointer arithmetic.
2957
2958 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2959
2960         PR target/49398
2961         Revert.
2962         2011-06-10  Wei Guozhi  <carrot@google.com>
2963
2964         PR target/45335
2965         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
2966         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
2967         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
2968         related peephole2.
2969         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
2970         related peephole2.
2971         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
2972         (arm_legitimate_ldrd_p): New prototype.
2973         (arm_output_ldrd): New prototype.
2974         * config/arm/arm.c (arm_check_ldrd_operands): New function.
2975         (arm_legitimate_ldrd_p): New function.
2976         (arm_output_ldrd): New function.
2977
2978 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
2979
2980         PR middle-end/46500
2981         * doc/tm.texi.in: Update Copyright date.
2982         * doc/tm.texi: Regenerate.
2983         * targhooks.c (default_setup_incoming_varargs): Replace
2984         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2985         (default_pretend_outgoing_varargs_named): Likewise.
2986         (hook_pass_by_reference_must_pass_in_stack): Likewise.
2987         (hook_callee_copies_named): Likewise.
2988         (default_function_arg_advance): Likewise.
2989         (default_function_arg): Likewise.
2990         (default_function_incoming_arg): Likewise.
2991         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
2992         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
2993         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
2994         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
2995         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
2996         * targhooks.h (default_setup_incoming_varargs): Likewise.
2997         (default_pretend_outgoing_varargs_named): Likewise.
2998         (hook_pass_by_reference_must_pass_in_stack): Likewise.
2999         (hook_callee_copies_named): Likewise.
3000         (default_function_arg_advance): Likewise.
3001         (default_function_arg): Likewise.
3002         (default_function_incoming_arg): Likewise.
3003         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
3004         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
3005         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
3006         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
3007         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
3008         * target.def (pass_by_reference): Likewise.
3009         (setup_incoming_varargs, strict_argument_naming): Likewise.
3010         (pretend_outgoing_varargs_named, callee_copies): Likewise.
3011         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
3012         (function_incoming_arg): Likewise.
3013         * target.h: Don't include "tm.h" .
3014         (cumulative_args_t): New typedef.
3015         [GCC_TM_H] (get_cumulative_args): New static inline function.
3016         [GCC_TM_H] (pack_cumulative_args): Likewise.
3017         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
3018         argument type with cumulative_args_t.
3019         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
3020         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
3021         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
3022         (frv_arg_partial_bytes, frv_function_arg): Likewise.
3023         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
3024         (frv_function_arg_1): Likewise.
3025         * config/s390/s390.c (s390_pass_by_reference): Likewise.
3026         (s390_function_arg_advance, s390_function_arg): Likewise.
3027         * config/m32c/m32c.c (m32c_function_arg): Likewise.
3028         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
3029         (m32c_strict_argument_naming): Likewise.
3030         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
3031         (spu_function_arg_advance): Likewise.
3032         (spu_setup_incoming_varargs): Likewise.  Make static.
3033         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
3034         Remove prototype.
3035         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
3036         CUMULATIVE_ARGS* argument type with cumulative_args_t.
3037         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
3038         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
3039         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
3040         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
3041         (mep_pass_by_reference, mep_function_arg): Likewise.
3042         (mep_function_arg_advance): Likewise.
3043         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
3044         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
3045         (m32r_function_arg, m32r_function_arg_advance): Likewise.
3046         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
3047         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
3048         (ix86_function_arg, ix86_pass_by_reference): Likewise.
3049         (ix86_setup_incoming_varargs): Likewise.
3050         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
3051         (sh_strict_argument_naming): Likewise.
3052         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
3053         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
3054         (sh_function_arg_advance, sh_function_arg): Likewise.
3055         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
3056         (pdp11_function_arg_advance): Likewise.
3057         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
3058         Likewise.
3059         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
3060         * config/avr/avr.c (avr_function_arg): Likewise.
3061         (avr_function_arg_advance): Likewise.
3062         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
3063         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
3064         (xtensa_function_arg_1): Likewise.
3065         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
3066         Likewise.
3067         (xstormy16_function_arg): Likewise.
3068         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
3069         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
3070         (fr30_function_arg_advance): Likewise.
3071         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
3072         (lm32_function_arg, lm32_function_arg_advance): Likewise.
3073         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
3074         (moxie_function_arg, moxie_function_arg_advance): Likewise.
3075         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
3076         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
3077         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
3078         (cris_function_arg, cris_function_incoming_arg): Likewise.
3079         (cris_function_arg_advance, cris_function_arg_1): Likewise.
3080         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
3081         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
3082         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
3083         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
3084         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
3085         (mn10300_arg_partial_bytes): Likewise.
3086         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
3087         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
3088         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
3089         (ia64_function_arg_1): Likewise.
3090         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
3091         (m68k_function_arg): Likewise.
3092         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
3093         (rs6000_function_arg, setup_incoming_varargs): Likewise.
3094         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
3095         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
3096         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
3097         (picochip_arg_advance): Likewise.
3098         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
3099         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
3100         (mcore_function_arg_advance): Likewise.
3101         * config/score/score.c (score_pass_by_reference): Likewise.
3102         (score_function_arg_advance): Likewise.
3103         (score_arg_partial_bytes): Likewise.  Make static.
3104         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
3105         * config/arm/arm.c (arm_arg_partial_bytes): Replace
3106         CUMULATIVE_ARGS* argument type with cumulative_args_t.
3107         (arm_function_arg, arm_function_arg_advance): Likewise.
3108         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
3109         * config/pa/pa.c (pa_pass_by_reference): Likewise.
3110         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
3111         (pa_function_arg): Likewise.
3112         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
3113         (mips_function_arg, mips_function_arg_advance): Likewise.
3114         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
3115         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
3116         * config/vax/vax.c (vax_function_arg): Likewise.
3117         (vax_function_arg_advance): Likewise.
3118         * config/h8300/h8300.c (h8300_function_arg): Likewise.
3119         (h8300_function_arg_advance): Likewise.
3120         * config/v850/v850.c (v850_pass_by_reference): Likewise.
3121         (v850_strict_argument_naming, v850_function_arg): Likewise.
3122         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
3123         (v850_setup_incoming_varargs): Likewise.
3124         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
3125         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
3126         (mmix_function_arg, mmix_pass_by_reference): Likewise.
3127         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
3128         with const void *.
3129         * config/bfin/bfin.c (setup_incoming_varargs): Replace
3130         CUMULATIVE_ARGS* argument type with cumulative_args_t.
3131         (bfin_function_arg_advance, bfin_function_arg): Likewise.
3132         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
3133         * calls.c (emit_call_1): Change type of args_so_far to
3134         cumulative_args_t.  Changed all callers.
3135         (initialize_argument_information): Likewise.
3136         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
3137         * dse.c (get_call_args): Likewise.
3138         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
3139         * function.c (pass_by_reference, reference_callee_copied): Likewise.
3140         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
3141         New member args_so_far_v.  Changed all users.
3142         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
3143         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
3144         * config/mips/mips.c (mips_output_args_xfer): Likewise.
3145         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
3146         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3147         * config/microblaze/microblaze.c (microblaze_expand_prologue):
3148         Likewise.
3149         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
3150         m32r_pass_by_reference.
3151
3152 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
3153
3154         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
3155         argument to be a VEC of statements.
3156         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
3157         assert that pattern statements have to have their vector type set.
3158         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
3159         Change the first argument to be a VEC of statements.  Update
3160         documentation.
3161         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
3162         (vect_handle_widen_mult_by_const): New function.
3163         (vect_recog_widen_mult_pattern):  Change the first argument to be a
3164         VEC of statements.  Update documentation.  Check that the constant is
3165         INTEGER_CST.  Support multiplication by a constant that fits an
3166         intermediate type - call vect_handle_widen_mult_by_const.
3167         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
3168         call.  Handle additional pattern statements if necessary.
3169
3170 2011-06-16  Nick Clifton  <nickc@redhat.com>
3171
3172         PR target/49427
3173         * config.gcc: Set cpu_type to v850 for any V850 architecture.
3174         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
3175         md_file, extra_modes, out_file and extra_options are these are all
3176         deduced from cpu_type.
3177
3178 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
3179
3180         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
3181         truncation mask to 63.
3182
3183 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
3184
3185         PR target/49313
3186         PR target/29524
3187         * longlong.h: Add AVR support:
3188         (count_leading_zeros): New macro.
3189         (count_trailing_zeros): New macro.
3190         (COUNT_LEADING_ZEROS_0): New macro.
3191         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
3192         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
3193         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
3194         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
3195         (LIB2FUNCS_EXCLUDE): Add _clz.
3196         * config/avr/libgcc.S (XCALL): Move up in file.
3197         (XJMP): New C Macro.
3198         (DEFUN): New asm macro.
3199         (ENDF): New asm macro.
3200         (__ffssi2): New function.
3201         (__ffshi2): New function.
3202         (__loop_ffsqi2): New function.
3203         (__ctzsi2): New function.
3204         (__ctzhi2): New function.
3205         (__clzdi2): New function.
3206         (__clzsi2): New function.
3207         (__clzhi2): New function.
3208         (__paritydi2): New function.
3209         (__paritysi2): New function.
3210         (__parityhi2): New function.
3211         (__parityqi2): New function.
3212         (__popcounthi2): New function.
3213         (__popcountsi2): New function.
3214         (__popcountdi2): New function.
3215         (__popcountqi2): New function.
3216         (__bswapsi2): New function.
3217         (__bswapdi2): New function.
3218         (__ashldi3): New function.
3219         (__ashrdi3): New function.
3220         (__lshrdi3): New function.
3221         Fix suspicous lines.
3222
3223 2011-06-16  Richard Guenther  <rguenther@suse.de>
3224
3225         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
3226         the same as x != 0.
3227         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
3228         to (bool) X & 1.
3229         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
3230         equality compares against zero for the lower bit.
3231
3232 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
3233
3234         PR tree-optimization/49419
3235         * tree-vrp.c (execute_vrp): Call init_range_assertions
3236         before estimate_numbers_of_iterations, call
3237         free_number_of_iterations_estimates before calling
3238         remove_range_assertions.
3239
3240 2011-06-16  Revital Eres  <revital.eres@linaro.org>
3241
3242         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
3243         (struct partial_schedule): Add rows_length field.
3244         (verify_partial_schedule): Check rows_length.
3245         (ps_insert_empty_row): Handle rows_length.
3246         (create_partial_schedule): Likewise.
3247         (free_partial_schedule): Likewise.
3248         (reset_partial_schedule): Likewise.
3249         (create_ps_insn): Remove rest_count argument.
3250         (remove_node_from_ps): Update rows_length.
3251         (add_node_to_ps): Update rows_length and call create_ps_insn
3252         without passing row_rest_count.
3253         (rotate_partial_schedule): Update rows_length.
3254
3255 2011-06-16  Revital Eres  <revital.eres@linaro.org>
3256
3257         * ddg.c (add_intra_loop_mem_dep): New function.
3258         (build_intra_loop_deps): Call it.
3259
3260 2011-06-13  Jeff Law  <law@redhat.com>
3261
3262         * df-problems.c (df_lr_local_compute): Manually CSE
3263         PIC_OFFSET_TABLE_REGNUM.
3264         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
3265         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
3266
3267 2011-06-13  Jan Hubicka  <jh@suse.cz>
3268
3269         * cgraphunit.c (handle_alias_pairs): New function.
3270         (cgraph_finalize_compilation_unit): Use it.
3271         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
3272         as externally visible.
3273
3274 2011-06-15  Richard Guenther  <rguenther@suse.de>
3275
3276         * expr.c (expand_expr_real_2): Reduce all integral types to
3277         bitfield precision.
3278         (expand_expr_real_1): Likewise.
3279
3280 2011-06-15  Martin Jambor  <mjambor@suse.cz>
3281
3282         PR tree-optimization/48613
3283         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
3284         ipa_node_params_vector is NULL.
3285
3286 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
3287
3288         PR debug/49382
3289         * dwarf2out.c (dw_loc_list_node): Add force field.
3290         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
3291         location in the list, even if it is modified before first real insn.
3292         (output_loc_list): Emit empty ranges with force flag set.
3293         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
3294
3295 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
3296
3297         PR target/49349
3298         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
3299         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
3300         above a fence.  Update comments.
3301         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
3302         placed just above it.  Do not allow NULL place_to_insert.
3303
3304 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
3305
3306         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
3307         (slpeel_tree_peel_loop_to_edge): Don't call
3308         remove_dead_stmts_from_loop.
3309         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
3310         remove irrelevant pattern statements.  For irrelevant statements
3311         check if it is the last statement of a detected pattern, use
3312         corresponding pattern statement instead.
3313         (destroy_loop_vec_info): No need to remove pattern statements,
3314         only free stmt_vec_info.
3315         (vect_transform_loop): For irrelevant statements check if it is
3316         the last statement of a detected pattern, use corresponding
3317         pattern statement instead.
3318         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
3319         pattern statements.  Set basic block for the new statement.
3320         (vect_pattern_recog): Update documentation.
3321         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
3322         operands of pattern statements.
3323         (vectorizable_call): Fix printing.  In case of a pattern statement
3324         use the lhs of the original statement when creating a dummy
3325         statement to replace the original call.
3326         (vect_analyze_stmt): For irrelevant statements check if it is
3327         the last statement of a detected pattern, use corresponding
3328         pattern statement instead.
3329         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
3330         statements use gsi of the original statement.
3331
3332 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
3333
3334         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
3335         common/common-target-def.h.
3336         * target.def (default_target_flags, handle_option,
3337         supports_split_stack, optimization_table, init_struct,
3338         except_unwind_info, unwind_tables_default, have_named_sections):
3339         Move to common/common-target.def.
3340         * target.h (enum opt_levels, struct default_options): Move to
3341         common/common-target.h.
3342         * targhooks.c (default_except_unwind_info,
3343         dwarf2_except_unwind_info, sjlj_except_unwind_info,
3344         default_target_handle_option, empty_optimization_table): Move to
3345         common/common-targhooks.c.
3346         * targhooks.h (default_except_unwind_info,
3347         dwarf2_except_unwind_info, sjlj_except_unwind_info,
3348         default_target_handle_option, empty_optimization_table): Move to
3349         common/common-targhooks.h.
3350         * common/common-target-def.h: Include common/common-targhooks.h.
3351         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
3352         defined.
3353         * common/common-target.def (handle_option, option_init_struct,
3354         option_optimization_table, default_target_flags,
3355         except_unwind_info, supports_split_stack, unwind_tables_default,
3356         have_named_sections): Move from target.def.
3357         (HOOK_PREFIX): Undefine at end of file.
3358         * common/common-target.h: Include input.h.
3359         (enum opt_levels, struct default_options): Move from target.h.
3360         * common/common-targhooks.c, common/common-targhooks.h: New.
3361         * config.gcc (target_has_targetm_common): Default to yes.
3362         (moxie*): Set target_has_targetm_common=no.
3363         (hppa*-*-*): Don't set target_has_targetm_common=yes.
3364         * doc/tm.texi: Regenerate.
3365         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
3366         (C_TARGET_DEF_H): Add common/common-targhooks.h.
3367         (GCC_OBJS): Remove vec.o.
3368         (OBJS): Remove hooks.o and vec.o.
3369         (OBJS-libcommon-target): Add vec.o, hooks.o and
3370         common/common-targhooks.o.
3371         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
3372         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
3373         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
3374         cfglayout.o, $(out_object_file), $(common_out_object_file)):
3375         Update dependencies.
3376         (common/common-targhooks.o): New.
3377         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
3378         * common/config/pa/pa-common.c: Include more headers.  Take
3379         copyright dates from pa.c.
3380         (pa_option_optimization_table, pa_handle_option,
3381         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
3382         TARGET_HANDLE_OPTION): Move from pa.c.
3383         * common/config/alpha/alpha-common.c,
3384         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
3385         common/config/bfin/bfin-common.c,
3386         common/config/cris/cris-common.c,
3387         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
3388         common/config/h8300/h8300-common.c,
3389         common/config/i386/i386-common.c,
3390         common/config/ia64/ia64-common.c,
3391         common/config/iq2000/iq2000-common.c,
3392         common/config/lm32/lm32-common.c,
3393         common/config/m32c/m32c-common.c,
3394         common/config/m32r/m32r-common.c,
3395         common/config/m68k/m68k-common.c,
3396         common/config/mcore/mcore-common.c,
3397         common/config/mep/mep-common.c,
3398         common/config/microblaze/microblaze-common.c,
3399         common/config/mips/mips-common.c,
3400         common/config/mmix/mmix-common.c,
3401         common/config/mn10300/mn10300-common.c,
3402         common/config/pdp11/pdp11-common.c,
3403         common/config/picochip/picochip-common.c,
3404         common/config/rs6000/rs6000-common.c,
3405         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
3406         common/config/score/score-common.c, common/config/sh/sh-common.c,
3407         common/config/sparc/sparc-common.c,
3408         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
3409         common/config/vax/vax-common.c,
3410         common/config/xstormy16/xstormy16-common.c,
3411         common/config/xtensa/xtensa-common.c: New.
3412         * config/alpha/alpha.c: Include common/common-target.h.
3413         (alpha_option_optimization_table, alpha_handle_option,
3414         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3415         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
3416         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
3417         * config/arm/arm.c (arm_option_optimization_table,
3418         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3419         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
3420         arm-common.c.
3421         * config/avr/avr.c (avr_option_optimization_table,
3422         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
3423         to avr-common.c.
3424         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
3425         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
3426         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
3427         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
3428         * config/cris/cris.c (cris_option_optimization_table,
3429         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3430         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
3431         cris-common.c.
3432         * config/fr30/fr30.c (fr30_option_optimization_table,
3433         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
3434         to fr30-common.c.
3435         * config/frv/frv.c (frv_option_optimization_table,
3436         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
3437         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
3438         * config/h8300/h8300.c (h8300_option_optimization_table,
3439         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3440         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
3441         * config/i386/i386-protos.h (ix86_handle_option): Declare.
3442         * config/i386/i386.c: Include common/common-target.h.
3443         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
3444         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
3445         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
3446         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
3447         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
3448         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
3449         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
3450         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
3451         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
3452         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
3453         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
3454         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
3455         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
3456         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
3457         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
3458         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
3459         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
3460         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
3461         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
3462         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
3463         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
3464         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
3465         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
3466         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
3467         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
3468         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
3469         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
3470         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
3471         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
3472         ix86_option_optimization_table, ix86_option_init_struct,
3473         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
3474         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3475         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
3476         i386-common.c.
3477         * config/i386/t-i386 (i386.o): Update dependencies.
3478         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
3479         * config/ia64/ia64.c (ia64_option_optimization_table,
3480         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
3481         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3482         ia64_handle_option): Move to ia64-common.c.
3483         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
3484         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
3485         * config/lm32/lm32.c (lm32_option_optimization_table,
3486         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
3487         to lm32-common.c.
3488         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
3489         m32c-common.c.
3490         * config/m32r/m32r.c (m32r_option_optimization_table,
3491         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3492         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
3493         m32r_handle_option): Move to m32r-common.c.
3494         (m32r_memory_move_cost): Remove comment referring to
3495         TARGET_HANDLE_OPTION.
3496         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
3497         Move to m68k-common.c.
3498         * config/mcore/mcore.c (mcore_option_optimization_table,
3499         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3500         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
3501         * config/mep/mep.c (mep_option_optimization_table,
3502         mep_handle_option, TARGET_HANDLE_OPTION,
3503         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
3504         Move to mep-common.c.
3505         * config/microblaze/microblaze.c
3506         (microblaze_option_optimization_table,
3507         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3508         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
3509         * config/mips/mips.c (mips_handle_option,
3510         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
3511         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
3512         mips-common.c.
3513         * config/mmix/mmix.c (mmix_option_optimization_table,
3514         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3515         Move to mmix-common.c.
3516         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
3517         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
3518         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3519         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
3520         * config/pa/pa.c: Include common/common-target.h.
3521         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
3522         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3523         pa_handle_option): Move to pa-common.c.
3524         (pa_option_override): Use targetm_common.except_unwind_info.
3525         (pa_asm_output_mi_thunk, pa_function_section): Use
3526         targetm_common.have_named_sections.
3527         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
3528         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3529         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3530         pdp11_handle_option, pdp11_option_init_struct): Move to
3531         pdp11-common.c.
3532         * config/picochip/picochip.c (picochip_option_optimization_table,
3533         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
3534         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
3535         * config/rs6000/rs6000.c: Include common/common-target.h.
3536         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
3537         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
3538         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
3539         rs6000_handle_option): Move to rs6000-common.c.
3540         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
3541         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
3542         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3543         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
3544         * config/s390/s390.c (processor_flags_table,
3545         s390_option_optimization_table, s390_option_init_struct,
3546         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
3547         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3548         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
3549         * config/s390/s390.h (processor_flags_table): Declare.
3550         * config/score/score.c (score_option_optimization_table,
3551         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3552         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
3553         score_handle_option): Move to score-common.c.
3554         * config/sh/sh.c (sh_option_optimization_table,
3555         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3556         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3557         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
3558         * config/sparc/sparc.c: Include common/common-target.h.
3559         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3560         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
3561         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
3562         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
3563         spu_option_init_struct): Move to spu-common.c.
3564         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
3565         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
3566         * config/v850/v850.c (small_memory_physical_max,
3567         v850_handle_memory_optionn v850_handle_option,
3568         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3569         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
3570         v850-common.c.
3571         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
3572         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
3573         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3574         Move to xtensa-common.c.
3575         * cfglayout.c: Include common/common-target.h.
3576         (fixup_reorder_chain): Use targetm_common.have_named_sections.
3577         * cfgrtl.c: Include common/common-target.h.
3578         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
3579         targetm_common.have_named_sections.
3580         * dbxout.c: Include common/common-target.h.
3581         (dbxout_function_end): Use targetm_common.have_named_sections.
3582         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
3583         targetm_common.except_unwind_info.
3584         * dwarf2out.c: Include common/common-target.h.
3585         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
3586         dwarf2out_begin_prologue, dwarf2out_frame_init,
3587         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
3588         targetm_common.except_unwind_info.
3589         * except.c: Include common/common-target.h.
3590         (init_eh, finish_eh_generation,
3591         output_one_function_exception_table): Use
3592         targetm_common.except_unwind_info.
3593         (switch_to_exception_section): Use targetm_common.have_named_sections.
3594         * explow.c: Include common/common-target.h.
3595         * expr.c: Include common/common-target.h.
3596         (build_personality_function): Use targetm_common.except_unwind_info.
3597         * function.c: Include common/common-target.h.
3598         (expand_function_end): Use targetm_common.except_unwind_info.
3599         * haifa-sched.c: Include common/common-target.h.
3600         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
3601         * lto-opts.c: Include common/common-target.h instead of target.h.
3602         (lto_reissue_options): Use targetm_common.handle_option.
3603         * opts.c: Include common/common-target.h.
3604         (target_handle_option): Use targetm_common.handle_option.
3605         (init_options_struct): Update comment referring to
3606         targetm.target_option.optimization.  Use
3607         targetm_common.default_target_flags,
3608         targetm_common.unwind_tables_default and
3609         targetm_common.option_init_struct.
3610         (default_options_optimization): Use
3611         targetm_common.option_optimization_table.
3612         (finish_options): Use targetm_common.except_unwind_info,
3613         targetm_common.unwind_tables_default,
3614         targetm_common.have_named_sections and
3615         targetm_common.supports_split_stack.
3616         * toplev.c: Include common/common-target.h.
3617         (process_options): Use targetm_common.have_named_sections.
3618         * tree-tailcall.c: Include common/common-target.h.
3619         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
3620         * tree.c: Include common/common-target.h.
3621         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
3622         * varasm.c: Include common/common-target.h.
3623         (resolve_unique_section, hot_function_section,
3624         default_function_section): Use targetm_common.have_named_sections.
3625
3626 2011-06-14  Easwaran Raman  <eraman@google.com>
3627
3628         PR rtl-optimization/44194
3629         * dse.c: Include tree-flow.h
3630         (insn_info): Add new field non_frame_wild_read.
3631         (group_info): Add new fields escaped_n and escaped_p.
3632         (kill_on_calls): New variable.
3633         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
3634         (dse_step0): Initialize kill_on_calls.
3635         (can_escape): New function.
3636         (set_usage_bits): Add additional parameter; record information
3637         about escaped locations.
3638         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
3639         (dse_step2_nospill): Set kill_on_calls based on
3640         group->escaped_n and group->escaped_n.
3641         (add_wild_read): Refactor into...
3642         (reset_active_stores): ... New function, and
3643         (free_read_records): ... New function.
3644         (add_non_frame_wild_read): New function.
3645         (scan_insn): Call add_non_frame_wild_read on non-const calls.
3646         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
3647         (dse_step5_nospill): Call scan_reads_nospill for instructions
3648         marked as non_frame_wild_read.
3649         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
3650
3651 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
3652
3653         * common/common-target-def.h, common/common-target.def,
3654         common/common-target.h, common/config/default-common.c,
3655         common/config/pa/pa-common.c: New files.
3656         * Makefile.in (common_out_file, common_out_object_file,
3657         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
3658         (OBJS-libcommon-target): Include $(common_out_object_file).
3659         (prefix.o): Update dependencies.
3660         ($(common_out_object_file), common/common-target-hooks-def.h,
3661         s-common-target-hooks-def-h): New.
3662         (s-tm-texi): Also check timestamp on common-target.def.
3663         (build/genhooks.o): Update dependencies.
3664         * config.gcc (common_out_file, target_has_targetm_common): Define.
3665         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
3666         TARGET_ALWAYS_STRIP_DOTDOT.
3667         * configure.ac (common_out_object_file): Define.
3668         (common_out_file, common_out_object_file): Substitute.
3669         (common): Create directory.
3670         * configure: Regenerate.
3671         * doc/tm.texi.in (targetm_common): Document.
3672         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
3673         * doc/tm.texi: Regenerate.
3674         * genhooks.c (hook_array): Also include common/common-target.def.
3675         * prefix.c (tm.h): Don't include.
3676         (common/common-target.h): Include.
3677         (ALWAYS_STRIP_DOTDOT): Don't define.
3678         (update_path): Use targetm_common.always_strip_dotdot instead of
3679         ALWAYS_STRIP_DOTDOT.
3680         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
3681
3682 2011-06-14  David Li  <davidxl@google.com>
3683
3684         * passes.c (execute_function_todo): Remove TODO_dump_func.
3685         (execute_one_pass): Remove TODO_dump_func.
3686         (execute_function_dump): New function.
3687         * tree-vrp.c: Remove TODO_dump_func.
3688         * regrename.c: Remove TODO_dump_func.
3689         * fwprop.c: Remove TODO_dump_func.
3690         * tree-into-ssa.c: Remove TODO_dump_func.
3691         * tree-complex.c: Remove TODO_dump_func.
3692         * tracer.c: Remove TODO_dump_func.
3693         * tree-loop-distribution.c: Remove TODO_dump_func.
3694         * postreload-gcse.c: Remove TODO_dump_func.
3695         * postreload.c: Remove TODO_dump_func.
3696         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
3697         * tree-tailcall.c: Remove TODO_dump_func.
3698         * ipa-cp.c: Remove TODO_dump_func.
3699         * final.c: Remove TODO_dump_func.
3700         * tree-emutls.c: Remove TODO_dump_func.
3701         * omp-low.c: Remove TODO_dump_func.
3702         * tree-ssa-dse.c: Remove TODO_dump_func.
3703         * tree-ssa-uncprop.c: Remove TODO_dump_func.
3704         * auto-inc-dec.c: Remove TODO_dump_func.
3705         * reorg.c: Remove TODO_dump_func.
3706         * tree-ssa-copyrename.c: Remove TODO_dump_func.
3707         * tree-ssa-ccp.c: Remove TODO_dump_func.
3708         * compare-elim.c: Remove TODO_dump_func.
3709         * mode-switching.c: Remove TODO_dump_func.
3710         * modulo-sched.c: Remove TODO_dump_func.
3711         * tree-call-cdce.c: Remove TODO_dump_func.
3712         * cse.c: Remove TODO_dump_func.
3713         * web.c: Remove TODO_dump_func.
3714         * tree-stdarg.c: Remove TODO_dump_func.
3715         * lto-streamer-out.c: Remove TODO_dump_func.
3716         * tree-ssa-math-opts.c: Remove TODO_dump_func.
3717         * tree-ssa-dom.c: Remove TODO_dump_func.
3718         * tree-nrv.c: Remove TODO_dump_func.
3719         * loop-init.c: Remove TODO_dump_func.
3720         * gimple-low.c: Remove TODO_dump_func.
3721         * ipa-inline.c: Remove TODO_dump_func.
3722         * tree-ssa-sink.c: Remove TODO_dump_func.
3723         * jump.c: Remove TODO_dump_func.
3724         * ifcvt.c: Remove TODO_dump_func.
3725         * tree-ssa-loop.c: Remove TODO_dump_func.
3726         * recog.c: Remove TODO_dump_func.
3727         * dse.c: Remove TODO_dump_func.
3728         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
3729         * matrix-reorg.c: Remove TODO_dump_func.
3730         * tree-eh.c: Remove TODO_dump_func.
3731         * regmove.c: Remove TODO_dump_func.
3732         * function.c: Remove TODO_dump_func.
3733         * tree-vectorizer.c: Remove TODO_dump_func.
3734         * ipa-split.c: Remove TODO_dump_func.
3735         * gcse.c: Remove TODO_dump_func.
3736         * tree-if-conv.c: Remove TODO_dump_func.
3737         * init-regs.c: Remove TODO_dump_func.
3738         * tree-ssa-phiopt.c: Remove TODO_dump_func.
3739         * implicit-zee.c: Remove TODO_dump_func.
3740         * lower-subreg.c: Remove TODO_dump_func.
3741         * bt-load.c: Remove TODO_dump_func.
3742         * tree-dfa.c: Remove TODO_dump_func.
3743         * except.c: Remove TODO_dump_func.
3744         * emit-rtl.c: Remove TODO_dump_func.
3745         * store-motion.c: Remove TODO_dump_func.
3746         * cfgexpand.c: Remove TODO_dump_func.
3747         * tree-cfgcleanup.c: Remove TODO_dump_func.
3748         * cfgcleanup.c: Remove TODO_dump_func.
3749         * tree-ssa-pre.c: Remove TODO_dump_func.
3750         * tree-sra.c: Remove TODO_dump_func.
3751         * tree-mudflap.c: Remove TODO_dump_func.
3752         * tree-ssa-copy.c: Remove TODO_dump_func.
3753         * cfglayout.c: Remove TODO_dump_func.
3754         * tree-ssa-forwprop.c: Remove TODO_dump_func.
3755         * tree-ssa-dce.c: Remove TODO_dump_func.
3756         * ira.c: Remove TODO_dump_func.
3757         * tree-ssa.c: Remove TODO_dump_func.
3758         * integrate.c: Remove TODO_dump_func.
3759         * tree-optimize.c: Remove TODO_dump_func.
3760         * tree-ssa-phiprop.c: Remove TODO_dump_func.
3761         * tree-object-size.c: Remove TODO_dump_func.
3762         * combine.c: Remove TODO_dump_func.
3763         * bb-reorder.c: Remove TODO_dump_func.
3764         * cprop.c: Remove TODO_dump_func.
3765         * var-tracking.c: Remove TODO_dump_func.
3766         * tree-profile.c: Remove TODO_dump_func.
3767         * tree-vect-generic.c: Remove TODO_dump_func.
3768         * reg-stack.c: Remove TODO_dump_func.
3769         * sched-rgn.c: Remove TODO_dump_func.
3770         * tree-ssa-structalias.c: Remove TODO_dump_func.
3771         * tree-switch-conversion.c: Remove TODO_dump_func.
3772         * tree-cfg.c: Remove TODO_dump_func.
3773         * tree-ssa-reassoc.c: Remove TODO_dump_func.
3774         * combine-stack-adj.c: Remove TODO_dump_func.
3775         * dce.c: Remove TODO_dump_func.
3776         * tree-ssanames.c: Remove TODO_dump_func.
3777         * regcprop.c: Remove TODO_dump_func.
3778
3779 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
3780
3781         PR middle-end/47364
3782         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
3783         and properly handle result not in Pmode.
3784
3785 2011-06-14  Robert Millan  <rmh@gnu.org>
3786
3787         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
3788         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
3789         `config/linux.h'.
3790
3791         * config/i386/kfreebsd-gnu64.h: New file.
3792         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
3793         with `i386/kfreebsd-gnu64.h'.
3794
3795         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
3796         (GNU_USER_LINK_EMULATION64): New macros.
3797         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
3798         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
3799         of hardcoding `elf_i386' and `elf_x86_64'.
3800
3801 2011-06-14  Nick Clifton  <nickc@redhat.com>
3802
3803         PR target/49403
3804         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
3805
3806         PR target/49402
3807         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
3808
3809 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
3810
3811         PR fortran/49103
3812         * tree.h (DECL_NONSHAREABLE): Define.
3813         (struct tree_decl_common): Change decl_common_unused to
3814         decl_nonshareable_flag.
3815         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
3816         Ignore vars with DECL_NONSHAREABLE bit set.
3817         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
3818         on stores to automatic aggregate vars.
3819
3820         PR rtl-optimization/49390
3821         Revert:
3822         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
3823
3824         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
3825         MEM_ALIAS_SET.
3826
3827 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
3828             Tom de Vries  <tom@codesourcery.com>
3829
3830         PR target/45098
3831         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
3832         Document changed semantics.
3833         (max_stmt_executions, max_stmt_executions_int): Declare.
3834         * tree-data-ref.c (estimated_loop_iterations)
3835         (estimated_loop_iterations_int): Move functions...
3836         * tree-ssa-loop-niter.c (estimated_loop_iterations)
3837         (estimated_loop_iterations_int): here.
3838         (record_estimate): Change nb_iterations_upper_bound and
3839         nb_iterations_estimate semantics.
3840         (max_stmt_executions, max_stmt_executions_int): New function.
3841         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
3842         (max_stmt_executions_tree): this.
3843         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
3844         estimated_loop_iterations_tree.
3845         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
3846         max_stmt_executions_int instead of estimated_loop_iterations_int.
3847         * predict.c (predict_loops): Idem.
3848         * tree-parloops.c (parallelize_loops): Idem.
3849         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
3850         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
3851         (init_omega_for_ddr_1): Idem.
3852         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
3853         (loop_prefetch_arrays): Idem
3854         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
3855         max_stmt_executions instead of estimated_loop_iterations.
3856         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
3857         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
3858         instead of nb_iterations_upper_bound.
3859
3860 2011-06-13  Jan Hubicka  <jh@suse.cz>
3861
3862         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
3863
3864 2011-06-14  Richard Henderson  <rth@redhat.com>
3865
3866         PR debug/48459
3867         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
3868         (based_loc_descr): Assert it's true.
3869         (compute_frame_pointer_to_fb_displacement): Set it, rather than
3870         aborting immediately.
3871
3872 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
3873             Mingfeng Wu  <mingfeng@faraday-tech.com>
3874
3875         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
3876
3877 2011-06-13  Jan Hubicka  <jh@suse.cz>
3878
3879         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
3880
3881 2011-06-13  Jan Hubicka  <jh@suse.cz>
3882
3883         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
3884         similarly to DECL_COMDAT.
3885         * cgraphunit.c (cgraph_analyze_function): Likewise.
3886         * ipa.c (function_and_variable_visibility): Likewise.
3887
3888 2011-06-13  Jan Hubicka  <jh@suse.cz>
3889
3890         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
3891         BINFO_VIRTUALS when streaming for ltrans unit.
3892
3893 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
3894
3895         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
3896         (movdi_internal64): Same.
3897
3898 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
3899
3900         PR target/44618
3901         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
3902         a set of similar patterns, where the MATCH_OPERAND for the function
3903         argument is replaced with individual references to hardware registers.
3904         (save_fpregs_<mode>): Ditto
3905         (restore_gpregs_<mode>): Ditto
3906         (return_and_restore_gpregs_<mode>): Ditto
3907         (return_and_restore_fpregs_<mode>): Ditto
3908         (return_and_restore_fpregs_aix_<mode>): Ditto
3909
3910 2011-06-13  Jan Hubicka  <jh@suse.cz>
3911
3912         * ipa-utils.c (postorder_stack): New structure.
3913         (ipa_reverse_postorder): Handle aliases.
3914
3915 2011-06-13  Jan Hubicka  <jh@suse.cz>
3916
3917         * ipa-inline.c (reset_edge_caches): Walk aliases.
3918         (update_caller_keys): Do not test inlinability of aliases.
3919         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
3920         (do_estimate_growth): Fix typo.
3921
3922 2011-06-13  Jan Hubicka  <jh@suse.cz>
3923
3924         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
3925         (can_remove_node_now_p): ... here; handle same comdat groups.
3926         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
3927         (inline_call): Update use of can_remove_node_now_p.
3928
3929 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3930
3931         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
3932         condition to disallow non-identical memory locations.
3933         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
3934         preference to bit manipulation instructions.
3935
3936 2011-06-13  Jan Hubicka  <jh@suse.cz>
3937
3938         * cgraph.c (cgraph_for_node_thunks_and_aliases,
3939         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
3940         (nonremovable_p): New function.
3941         (cgraph_can_remove_if_no_direct_calls_p): New function.
3942         (used_from_object_file_p): New functoin.
3943         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
3944         references from aliases.
3945         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
3946         * ipa-inline.c (check_caller_edge): New function.
3947         (want_inline_function_called_once_p): Use it; accept aliases called
3948         once, too.
3949         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
3950
3951 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3952
3953         PR target/48454
3954         * config/arm/neon.md (vec_pack_trunc): Set the lengths
3955         correctly for the case with Quad vectors.
3956
3957 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
3958            Ira Rosen  <ira.rosen@linaro.org>
3959
3960         PR tree-optimization/49352
3961         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
3962         all, make sure loop_use_stmt after the loop is a def stmt of a used
3963         SSA_NAME that is the only one defined inside of the loop.  Don't
3964         check for COND_EXPR and GIMPLE_BINARY_RHS.
3965         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
3966         check_reduction is true.
3967
3968 2011-06-11  Jan Hubicka  <jh@suse.cz>
3969
3970         PR middle-end/49373
3971         * ipa.c (cgraph_externally_visible_p): Check resolution info.
3972
3973 2011-06-11  Jan Hubicka  <jh@suse.cz>
3974
3975         PR middle-end/48836
3976         * ipa-inline-transform.c: Include tree-pass.h
3977         (inline_transform): Set TODO_update_ssa_only_virtuals.
3978         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
3979
3980 2011-06-11  Jan Hubicka  <jh@suse.cz>
3981
3982         PR middle-end/49378
3983         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
3984         aliases and thunks.
3985
3986 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
3987
3988         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
3989         Take number of iterations to peel into account for equally frequent
3990         misalignment values.
3991
3992 2011-06-11  Jan Hubicka  <jh@suse.cz>
3993
3994         * lto-streamer-out.c (produce_symtab): Stream out the newly
3995         represented aliases.
3996
3997 2011-06-11  Jan Hubicka  <jh@suse.cz>
3998
3999         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
4000         varying args.
4001         (ipa_update_after_lto_read): Likewise.
4002         (ipa_write_node_info): Do not sream call_with_var_arguments.
4003         (ipa_read_node_info): Likewise.
4004
4005 2011-06-11  Jan Hubicka  <jh@suse.cz>
4006
4007         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
4008
4009 2011-06-11  Jan Hubicka  <jh@suse.cz>
4010
4011         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
4012         (lto_symtab_resolve_can_prevail_p): Likewise.
4013         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
4014         * cgraph.c (same_body_aliases_done): New global var.
4015         (cgraph_same_body_alias_1): Rename to ...
4016         (cgraph_create_function_alias): ... this one; reorg to new
4017         representation.
4018         (cgraph_same_body_alias): Use cgraph_create_function_alias;
4019         record references when asked to.
4020         (cgraph_add_thunk): Fix formating.
4021         (cgraph_get_node): Kill same body alias code.
4022         (cgraph_node_for_asm): Likewise.
4023         (cgraph_remove_same_body_alias): Remove.
4024         (cgraph_remove_node): Kill same body alias code.
4025         (cgraph_mark_address_taken_node): Mark also the aliased function
4026         as having address taken.
4027         (dump_cgraph_node): Dump same body aliases.
4028         (cgraph_for_node_thunks_and_aliases): Update for new alias
4029         representation.
4030         (cgraph_for_node_and_aliases): Likewise.
4031         * cgraph.h (same_body): Kll pointer.
4032         (same_body_alias): Update comment.
4033         (same_body_aliases_done): Declare.
4034         (cgraph_remove_same_body_alias): Remove declaration.
4035         (cgraph_create_function_alias): Declare.
4036         (cgraph_process_same_body_aliases): Declare.
4037         (cgraph_function_with_gimple_body_p): Check for alias.
4038         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
4039         (cgraph_alias_aliased_node): New function.
4040         (cgraph_function_node): Update for new aliases.
4041         (cgraph_function_or_thunk_node): Likewise.
4042         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
4043         (inline_call): Remove dead aliases.
4044         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
4045         name hack for same body aliases.
4046         (clone_of_p): Look through aliases.
4047         (verify_cgraph_node): Verify aliases.
4048         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
4049         (cgraph_process_same_body_aliases): New function.
4050         (process_function_and_variable_attributes): Disable weakref warning on
4051         alias.
4052         (cgraph_analyze_functions): Handle aliases.
4053         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
4054         (assemble_thunks): Rename to ...
4055         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
4056         (cgraph_expand_function): Remove alias output code.
4057         (cgraph_output_in_order): Skip aliases.
4058         (cgraph_preserve_function_body_p): Aliases don't need preserving.
4059         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
4060         (ipa_record_reference): Do not assert on alias references.
4061         (ipa_ref_has_aliases_p): New function.
4062         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
4063         (ipa_ref_has_aliases_p): Declare.
4064         * lto-cgraph.c (lto_output_node): Handle aliases.
4065         (input_node): Likewise.
4066         * lto-streamer-out.c (lto_output): Skip aliases.
4067         (produce_symtab): Kill same_body_alias code.
4068         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
4069         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
4070         * ipa-inline.c (update_caller_keys): Walk aliases.
4071         (inline_small_functions): Fix thinko in previous patch.
4072         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
4073         (function_and_variable_visibility): Do not walk same body aliases.
4074         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
4075         (ipa_pta_execute): Use it.
4076
4077 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
4078
4079         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
4080         (*vec_dupv2df): Rename from vec_dupv2df.
4081         (vec_dupv2df): New expander.
4082
4083 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
4084
4085         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
4086
4087 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
4088
4089         * config/i386/i386.md: Use default value in "isa" attribute.
4090         * config/i386/sse.md: Ditto.
4091         * config/i386/mmx.md: Ditto.
4092
4093 2011-06-10  Wei Guozhi  <carrot@google.com>
4094
4095         PR target/45335
4096         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
4097         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
4098         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
4099         related peephole2.
4100         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
4101         related peephole2.
4102         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
4103         (arm_legitimate_ldrd_p): New prototype.
4104         (arm_output_ldrd): New prototype.
4105         * config/arm/arm.c (arm_check_ldrd_operands): New function.
4106         (arm_legitimate_ldrd_p): New function.
4107         (arm_output_ldrd): New function.
4108
4109 2011-06-10  David Li  <davidxl@google.com>
4110
4111         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
4112         * passes.c (passr_eq): New function.
4113         (create_pass_tab): New function.
4114         (pass_traverse): New function.
4115         (dump_one_pass): New function.
4116         (dump_pass_list): New function.
4117         (dump_passes): New function.
4118
4119 2011-06-10  Jan Hubicka  <jh@suse.cz>
4120
4121         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
4122         setting the nothrow flag.
4123         * ipa-reference.c (propagate): Skip aliases.
4124         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
4125         (propagate_nothrow): Skip aliases; do not update cgraph.
4126         (local_pure_const): Do not update cgraph.
4127         * tree-profile.c (tree_profiling): Do fixup_cfg.
4128
4129 2011-06-10  Jan Hubicka  <jh@suse.cz>
4130
4131         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
4132         (cgraph_local_node_p): ... here; handle aliases.
4133         (has_addr_references_p): Break out from ...;
4134         (cgraph_remove_unreachable_nodes) ... here.
4135
4136 2011-06-10  Jan Hubicka  <jh@suse.cz>
4137
4138         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
4139         * common.opt (flag_inline_functions_called_once): Do not
4140         initialize to 1.
4141
4142 2011-06-10  Jan Hubicka  <jh@suse.cz>
4143
4144         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
4145         (ipcp_initialize_node_lattices): Do not deal with aliases;
4146         Do not try to propagate through thunks.
4147         (ipcp_change_tops_to_bottom): Do not deal with aliases.
4148
4149 2011-06-10  Jan Hubicka  <jh@suse.cz>
4150
4151         * ipa-prop.c (ipa_write_node_info): Stream jump functions
4152         for indirect calls.
4153         (ipa_read_node_info): Likewise.
4154
4155 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4156
4157         PR lto/49302
4158         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
4159         (build_and_insert_call): Likewise.
4160         (build_and_insert_ref): New.
4161         (gimple_expand_builtin_pow): Minor cleanup.
4162         (gimple_expand_builtin_cabs): New.
4163         (execute_cse_sincos): Add case for BUILT_IN_CABS.
4164
4165 2011-06-10  Jan Hubicka  <jh@suse.cz>
4166
4167         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
4168         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
4169         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
4170         (ipcp_propagate_stage): Skip aliases when propagating.
4171         (ipcp_need_redirect_p): Skip aliases.
4172         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
4173         collect_callers_of_node.
4174         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
4175         for aliases.
4176         (ipa_compute_jump_functions): Look through aliases.
4177
4178 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4179
4180         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
4181
4182 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4183
4184         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
4185         Adjust comments.
4186         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
4187
4188 2011-06-10  Jan Hubicka  <jh@suse.cz>
4189
4190         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
4191         Update call of gimple_get_virt_method_for_binfo.
4192         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
4193         refuse_thunks parameter.
4194         (gimple_fold_call): Update.
4195         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
4196
4197 2011-06-10  Jan Hubicka  <jh@suse.cz>
4198
4199         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
4200         (not_all_callers_have_enough_arguments_p): ... this one; turn into
4201         worker for cgraph_for_node_and_aliases.
4202         (convert_callers_for_node): Break out from ...
4203         (convert_callers): ... here.
4204         (modify_function): Use collect_callers_of_node.
4205         (ipa_early_sra): Use cgraph_for_node_and_aliases.
4206
4207 2011-06-10  Richard Guenther  <rguenther@suse.de>
4208
4209         PR tree-optimization/49361
4210         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
4211         when not already in gimple form.
4212
4213 2011-06-10  Richard Guenther  <rguenther@suse.de>
4214
4215         PR bootstrap/49344
4216         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
4217         FOR_EACH_PHI_OR_STMT_USE.
4218
4219 2011-06-10  Jan Hubicka  <jh@suse.cz>
4220
4221         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
4222         (clone_inlined_nodes): ... here.
4223         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
4224         to real destination prior inlining.
4225         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
4226         can_early_inline_edge_p, want_early_inline_function_p,
4227         want_early_inline_function_p, want_inline_small_function_p,
4228         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
4229         edge_badness, update_all_callee_keys, lookup_recursive_calls,
4230         add_new_edges_to_heap, inline_small_functions, flatten_function,
4231         inline_always_inline_functions, early_inline_small_functions): Use
4232         cgraph_function_or_thunk_node.
4233         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
4234         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
4235         (do_estimate_edge_growth_1): Break out from ...
4236         (do_estimate_growth) ... here; walk aliases.
4237         (inline_generate_summary): Skip aliases.
4238
4239 2011-06-10  Richard Guenther  <rguenther@suse.de>
4240
4241         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
4242         forward when combining, visit inserted stmts when a stmt was changed.
4243
4244 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
4245
4246         * tree.h (error_operand_p): Add.
4247         * dbxout.c (dbxout_type_fields): Use the latter.
4248         * c-decl.c (add_stmt): Likewise.
4249         * gimplify.c (omp_add_variable, omp_notice_variable,
4250         gimplify_scan_omp_clauses): Likewise.
4251
4252 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
4253
4254         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
4255         when a value is actually passed in regs.
4256
4257 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
4258             Laurent Rougé  <laurent.rouge@menta.fr>
4259
4260         * doc/invoke.texi (SPARC options): Add -mflat.
4261         * config/sparc/sparc.opt: Likewise.
4262         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
4263         (sparc_flat_expand_prologue): Declare.
4264         (sparc_flat_expand_epilogue): Likewise.
4265         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
4266         (CPP_ENDIAN_SPEC): Replace with...
4267         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
4268         (CPP_SPEC): Adjust to above change.
4269         (EXTRA_SPECS): Likewise.
4270         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
4271         (INCOMING_REGNO): Likewise.
4272         (OUTGOING_REGNO): Likewise.
4273         (LOCAL_REGNO): Likewise.
4274         (SETUP_FRAME_ADDRESSES): Likewise.
4275         (FIXED_REGISTERS): Set 0 for %fp.
4276         (CALL_USED_REGISTERS): Likewise.
4277         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
4278         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
4279         (RETURN_ADDR_REGNUM): Define.
4280         (RETURN_ADDR_RTX): Use it.
4281         (INCOMING_RETURN_ADDR_REGNUM): Define.
4282         (INCOMING_RETURN_ADDR_RTX): Use it.
4283         (DWARF_FRAME_RETURN_COLUMN): Likewise.
4284         (EH_RETURN_REGNUM): Define.
4285         (EH_RETURN_STACKADJ_RTX): Use it.
4286         (EH_RETURN_HANDLER_RTX): Delete.
4287         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
4288         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
4289         Delete.
4290         (struct machine_function): Add frame_size, apparent_frame_size,
4291         frame_base_reg, frame_base_offset, n_global_fp_regs and
4292         save_local_in_regs_p fields.
4293         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
4294         sparc_frame_base_offset, sparc_n_global_fp_regs,
4295         sparc_save_local_in_regs_p): New macros.
4296         (sparc_option_override): Error out if -fcall-saved-REG is specified
4297         for Out registers.
4298         (eligible_for_restore_insn): Fix formatting.
4299         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
4300         (eligible_for_sibcall_delay): Likewise.
4301         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
4302         (sparc_legitimate_address_p): Adjust to above change.
4303         (save_global_or_fp_reg_p): New predicate.
4304         (return_addr_reg_needed_p): Likewise.
4305         (save_local_or_in_reg_p): Likewise.
4306         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
4307         (SORR_SAVE, SORR_RESTORE): Delete.
4308         (sorr_pred_t): New typedef.
4309         (sorr_act_t): New enum.
4310         (save_or_restore_regs): Rename to...
4311         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
4312         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
4313         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
4314         mechanism.  Add CFI information for double-word saves in 32-bit mode.
4315         (emit_adjust_base_to_offset): New function extracted from...
4316         (emit_save_or_restore_regs): ...this.  Rename the rest to...
4317         (emit_save_or_restore_regs_global_fp_regs): ...this.
4318         (emit_save_or_restore_regs_local_in_regs): New function.
4319         (gen_create_flat_frame_[123]): New functions.
4320         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
4321         (sparc_flat_expand_prologue): New function.
4322         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
4323         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
4324         (sparc_flat_expand_epilogue): New function.
4325         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
4326         (output_return): Likewise.
4327         (output_sibcall): Likewise.
4328         (sparc_output_mi_thunk): Likewise.
4329         (sparc_frame_pointer_required): Likewise.
4330         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
4331         function optimization.
4332         * config/sparc/sparc.md (flat): New attribute.
4333         (prologue): Add TARGET_FLAT handling.
4334         (save_register_window): Disable if TARGET_FLAT.
4335         (create_flat_frame_[123]): New patterns.
4336         (epilogue): Add TARGET_FLAT handling.
4337         (sibcall_epilogue): Likewise.
4338         (eh_return): New expander.
4339         (eh_return_internal): New insn and splitter.
4340         (return_internal): Add TARGET_FLAT handling.
4341         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
4342         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
4343         (nonlocal_goto): Add TARGET_FLAT handling.
4344         * config/sparc/t-elf: Add -mflat multilib.
4345         * config/sparc/t-leon: Likewise.
4346
4347 2011-06-10  Jan Hubicka  <jh@suse.cz>
4348
4349         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
4350         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
4351         (self_recursive_p): Use cgraph_function_node.
4352         (propagate_pure_const): Likewise.
4353         (propagate_nothrow): Likewise.
4354         * ipa-reference.c (ipa_reference_get_not_read_global): Use
4355         cgraph_function_node.
4356         (propagate_bits): Likewise.
4357         (propagate): Likewise.
4358
4359 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4360             Richard Earnshaw  <rearnsha@arm.com>
4361
4362         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
4363         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
4364         (*thumb2_movdi_vfp): Delete.
4365         (*arm_movdi_vfp_cortexa8): Delete.
4366         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
4367         (*movdi_vfp_cortexa8): Likewise.
4368
4369 2011-06-10  Richard Guenther  <rguenther@suse.de>
4370
4371         * stor-layout.c (initialize_sizetypes): Give names to all
4372         sizetype kinds.
4373
4374 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
4375
4376         PR tree-optimization/49318
4377         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
4378         irrelevant pattern statements.
4379
4380 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4381
4382         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
4383
4384         PR bootstrap/49354
4385         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
4386         to last assignment.
4387
4388 2011-06-09  Jan Hubicka  <jh@suse.cz>
4389
4390         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
4391         do not recompute reachable flag.
4392         (cgraph_finalize_function, cgraph_analyze_functions): Set
4393         redefined_extern_inline here.
4394
4395 2011-06-09  Jan Hubicka  <jh@suse.cz>
4396
4397         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
4398         (cgraph_only_called_directly_p): ... this one; bring offline.
4399         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
4400         varpool_used_from_object_file_p): Drop names from the declaratoin.
4401         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
4402         collect_callers_of_node): New.
4403         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
4404         (cgraph_edge_recursive_p): Use cgraph_function_node.
4405         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
4406         (cgraph_node_cannot_be_local_p_1): Break out from ...
4407         (cgraph_node_can_be_local_p): ... here; walk aliases.
4408         (cgraph_for_node_thunks_and_aliases): New function.
4409         (cgraph_for_node_and_aliases): New function.
4410         (cgraph_make_node_local_1): Break out from ...
4411         (cgraph_make_node_local) ... here; use
4412         cgraph_for_node_thunks_and_aliases.
4413         (cgraph_set_nothrow_flag_1): Break out from ...
4414         (cgraph_set_nothrow_flag) ... here;
4415         use cgraph_for_node_thunks_and_aliases.
4416         (cgraph_set_const_flag_1): Break out from ...
4417         (cgraph_set_const_flag) ... here;
4418         use cgraph_for_node_thunks_and_aliases.
4419         (cgraph_set_pure_flag_1): Break out from ...
4420         (cgraph_set_pure_flag) ... here;
4421         use cgraph_for_node_thunks_and_aliases.
4422         (cgraph_propagate_frequency_1): Break out from ...
4423         (cgraph_propagate_frequency) ... here; use
4424         cgraph_for_node_thunks_and_aliases.
4425         (cgraph_used_from_object_file_p): Do not care about aliases.
4426         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
4427         New functions.
4428         (collect_callers_of_node_1, collect_callers_of_node): New functions.
4429
4430 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4431
4432         PR rtl-optimization/49154
4433         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
4434         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
4435         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
4436         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
4437         * config/cris/cris.h (cris_register_move_cost): Remove
4438         !TARGET_V32 code.  Tweak comments.
4439
4440 2011-06-09  Jan Hubicka  <jh@suse.cz>
4441
4442         * cgraphbuild.c (record_eh_tables): Mark personality function as having
4443         address taken.
4444
4445 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
4446
4447         PR rtl-optimization/49154
4448         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
4449         is a matching slot in the hashtable, assign it to classes_ptr.
4450
4451         PR rtl-optimization/49154
4452         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
4453         register classes.
4454         * doc/tm.texi: Regenerate.
4455
4456 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
4457
4458         PR target/49307
4459         * config/sh/sh.md (UNSPEC_CHKADD): New.
4460         (chk_guard_add): New define_insn_and_split.
4461         (symGOT_load): Use chk_guard_add instead of blockage.
4462
4463 2011-06-09  Kai Tietz  <ktietz@redhat.com>
4464
4465         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
4466
4467 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
4468
4469         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
4470
4471 2011-06-09  Wei Guozhi  <carrot@google.com>
4472
4473         PR target/46975
4474         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
4475         (peephole2 for conditional move): Generate 16 bit instructions.
4476
4477 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
4478
4479         * config/i386/i386.md (*movdi_internal_rex64): Merge
4480         alternatives 6 and 8.
4481
4482 2011-06-09  David Li  <davidxl@google.com>
4483
4484         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
4485         * passes.c (passr_eq): New function.
4486         (create_pass_tab): New function.
4487         (pass_traverse): New function.
4488         (dump_one_pass): New function.
4489         (dump_pass_list): New function.
4490         (dump_passes): New function.
4491
4492 2011-06-09  David Li  <davidxl@google.com>
4493
4494         * tree-complex.c (tree_lower_complex): Gate cleanup.
4495         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
4496         (execute_optimize_stdarg): Ditto.
4497         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
4498         (execute_cleanup_eh_1): Ditto.
4499         (execute_cleanup_eh): Ditto.
4500         * gcse.c (gate_rtl_pre): Ditto.
4501         (execute_rtl_pre): Ditto.
4502         * except.c (finish_eh_generation): Ditto.
4503         (convert_to_eh_region_ranges): Ditto.
4504         * cprop.c (one_cprop_pass): Ditto.
4505
4506 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
4507
4508         PR target/48673
4509         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
4510         in all basic blocks.
4511
4512 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4513
4514         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
4515         (HAVE_ENABLE_EXECUTE_STACK): Define.
4516         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
4517         (HAVE_ENABLE_EXECUTE_STACK): Define.
4518         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
4519         (HAVE_ENABLE_EXECUTE_STACK): Define.
4520         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
4521         (ENABLE_EXECUTE_STACK): Remove.
4522         (HAVE_ENABLE_EXECUTE_STACK): Define.
4523         [IN_LIBGCC2]: Don't include <windows.h>.
4524         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
4525         (HAVE_ENABLE_EXECUTE_STACK): Define.
4526         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
4527         (HAVE_ENABLE_EXECUTE_STACK): Define.
4528         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
4529         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
4530         (HAVE_ENABLE_EXECUTE_STACK): Define.
4531         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
4532         (HAVE_ENABLE_EXECUTE_STACK): Define.
4533         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
4534         (HAVE_ENABLE_EXECUTE_STACK): Define.
4535         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
4536         (HAVE_ENABLE_EXECUTE_STACK): Define.
4537         * config/alpha/alpha.c (alpha_trampoline_init): Test
4538         HAVE_ENABLE_EXECUTE_STACK.
4539         * config/i386/i386.c (ix86_trampoline_init): Likewise.
4540         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4541         (sparc64_initialize_trampoline): Likewise.
4542         * libgcc2.c [L_enable_execute_stack]: Remove.
4543         * system.h (ENABLE_EXECUTE_STACK): Poison.
4544         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
4545         * doc/tm.texi: Regenerate.
4546         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
4547
4548 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
4549
4550         PR middle-end/49308
4551         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
4552         variable.  After resetting and rescanning insn continue with previous
4553         statement.
4554
4555 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4556
4557         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
4558         (gcc_cv_ld_hidden): Likewise.
4559         * configure: Regenerate.
4560         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
4561         (ix86_stack_protect_fail): Mark unused.
4562         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
4563         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
4564         [TARGET_MACHO]: Don't define.
4565         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
4566         (TARGET_STACK_PROTECT_FAIL): Likewise.
4567         (rs6000_stack_protect_fail): Mark unused.
4568         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
4569         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
4570
4571 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4572
4573         * varasm.c (get_section): Print location of other conflict
4574         for section conflicts.
4575
4576 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4577
4578         * config/i386/driver-i386.c (host_detect_local_cpu):
4579         Add model 0x2d Intel CPU.
4580
4581 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4582
4583         * reginfo.c (global_regs_decl): Add.
4584         (globalize_reg): Add decl parameter. Compute location.  Pass location
4585         to warnings and add inform. Store decl in global_regs_decl.
4586         * rtl.h (globalize_reg): Update prototype.
4587         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
4588
4589 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
4590
4591         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
4592
4593 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4594
4595         PR target/49305
4596         * config/sh/predicates.md (general_movsrc_operand): Check
4597         mode for memory with indexed address for QI and HImode.
4598         (general_movdst_operand): Likewise.
4599
4600 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
4601
4602         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
4603
4604 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
4605
4606         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
4607         (num_ssa_operands): Likewise.
4608         (op_iter_init_phiuse): Forward-declare.
4609         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
4610
4611 2011-06-08  Nick Clifton  <nickc@redhat.com>
4612
4613         * doc/invoke.texi (ARM Options): Update description of
4614         -mthumb-interwork.
4615
4616 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
4617
4618         * config/i386/driver-i386.c (host_detect_local_cpu): Support
4619         unknown Intel family 0x6 CPUs.
4620
4621 2011-06-08  Martin Jambor  <mjambor@suse.cz>
4622
4623         * tree-sra.c (mark_rw_status): Removed.
4624         (analyze_access_subtree): New parameter parent instead of
4625         mark_read and mark_write, propagate from that.
4626
4627 2011-06-08  Julian Brown  <julian@codesourcery.com>
4628
4629         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
4630         for double-precision helper functions in hard-float mode if only
4631         single-precision arithmetic is supported in hardware.
4632
4633 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
4634
4635         PR rtl-optimization/49303
4636         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
4637         code_motion_path_driver returned 0 or 1.
4638         (sel_region_finish): Clear h_d_i_d.
4639
4640 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4641
4642         * config/sh/sh.c (prepare_move_operands): Set pic register
4643         appropriately for global and local dynamic tls models even
4644         if flag_pic is unset.
4645
4646 2011-06-07  Jason Merrill  <jason@redhat.com>
4647
4648         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
4649
4650 2011-06-07  Xinliang David Li  <davidxl@google.com>
4651         * passes.c (enable_disable_pass): Handle assembler name.
4652         (is_pass_explicitly_enabled_or_disabled): Ditto.
4653
4654 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4655
4656         PR tree-optimization/48497
4657         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
4658
4659 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4660
4661         PR tree-optimization/46728
4662         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
4663         to use gimple_val_nonnegative_real_p.
4664         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
4665         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
4666
4667 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
4668
4669         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
4670
4671 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
4672
4673         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
4674         constant vectors.
4675
4676 2011-06-07  Richard Guenther  <rguenther@suse.de>
4677
4678         * stor-layout.c (initialize_sizetypes): Initialize all
4679         sizetypes based on target definitions.
4680         (set_sizetype): Remove.
4681         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
4682         * tree.h (set_sizetype): Remove.
4683
4684 2011-06-07  Nick Clifton  <nickc@redhat.com>
4685
4686         * config.gcc: Unify V850 architecture options and add support for
4687         newer V850 architectures.
4688         * config/v850/t-v850e: Delete.
4689
4690 2011-06-07  Richard Guenther  <rguenther@suse.de>
4691
4692         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
4693         Call set_sizetype from here.
4694
4695 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
4696
4697         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
4698         (*maddhisi4tb, *maddhisi4tt): New define_insns.
4699
4700 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
4701             Andrew Stubbs  <ams@codesourcery.com>
4702
4703         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
4704         multiplies.
4705         * doc/md.texi (Canonicalization of Instructions): Document widening
4706         multiply canonicalization.
4707
4708 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
4709
4710         PR gcov-profile/49299
4711         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
4712
4713 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
4714
4715         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
4716         a pointer.
4717         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
4718         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
4719         vect_recog_pow_pattern): Likewise.
4720         (vect_pattern_recog_1): Remove declaration.
4721         (widened_name_p): Remove declaration.  Add new argument to specify
4722         whether to check that both types are either signed or unsigned.
4723         (vect_recog_widen_mult_pattern): Update documentation.  Handle
4724         unsigned patterns and multiplication by constants.
4725         (vect_pattern_recog_1): Update vect_recog_func references.  Use
4726         statement information from the statement returned from pattern
4727         detection functions.
4728         (vect_pattern_recog): Update vect_recog_func reference.
4729         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
4730         multiplication by a constant use the type of the other operand.
4731
4732 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
4733
4734         PR rtl-optimization/49145
4735         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
4736
4737 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
4738
4739         PR debug/49262
4740         * dwarf2out.c (native_encode_initializer): Decrement count in each
4741         iteration.
4742
4743         PR debug/49294
4744         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
4745         non-MODE_INT modes.
4746
4747         PR c++/49264
4748         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
4749         if stmt folded into nothing.
4750         * tree-inline.c (fold_marked_statements): If a builtin at the end of
4751         a bb folded into nothing, just update cgraph edges and move to next bb.
4752         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
4753         to be NULL.  Don't compute count and frequency if new_call is NULL.
4754
4755 2011-06-04  Diego Novillo  <dnovillo@google.com>
4756
4757         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
4758         (cgraph.o): Likewise.
4759         (cgraphunit.o): Likewise.
4760         * cgraphunit.c: Include lto-streamer.h
4761         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
4762         if LTO is enabled.
4763         * lto-streamer-in.c (unpack_value_fields): Call
4764         streamer_hooks.unpack_value_fields if set.
4765         (lto_materialize_tree): For unhandled nodes, first try to
4766         call lto_streamer_hooks.alloc_tree, if it exists.
4767         (lto_input_ts_decl_common_tree_pointers): Move reading of
4768         DECL_INITIAL to lto_streamer_read_tree.
4769         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
4770         (lto_streamer_read_tree): New.
4771         (lto_reader_init): Rename from lto_init_reader.
4772         Move initialization code to lto/lto.c.
4773         * lto-streamer-out.c (pack_value_fields): Call
4774         streamer_hooks.pack_value_fields if set.
4775         (lto_output_tree_ref): For tree nodes that are not normally indexable,
4776         call streamer_hooks.indexable_with_decls_p before giving up.
4777         (lto_output_ts_decl_common_tree_pointers): Move handling
4778         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
4779         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
4780         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
4781         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
4782         (lto_streamer_write_tree): New.
4783         (lto_output): Call lto_streamer_init directly.
4784         (lto_writer_init): Remove.
4785         * lto-streamer.c (streamer_hooks): New.
4786         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
4787         instead of lto_preload_common_nodes.
4788         (lto_is_streamable): Move from lto-streamer.h
4789         (lto_streamer_hooks_init): New.
4790         (streamer_hooks): New.
4791         (streamer_hooks_init): New.
4792         * lto-streamer.h (struct output_block): Forward declare.
4793         (struct lto_input_block): Likewise.
4794         (struct data_in): Likewise.
4795         (struct bitpack_d): Likewise.
4796         (struct streamer_hooks): Declare.
4797         (streamer_hooks): Declare.
4798         (lto_streamer_hooks_init): Declare.
4799         (lto_streamer_write_tree): Declare.
4800         (lto_streamer_read_tree): Declare.
4801         (streamer_hooks_init): Declare.
4802         (lto_is_streamable): Move to lto-streamer.c
4803
4804 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4805
4806         * longlong.h (smul_ppmm): The resulting register pair contains the
4807         higher order word first.
4808
4809 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4810
4811         PR tree-optimization/46728
4812         * builtins.c (powi_table): Remove.
4813         (powi_lookup_cost): Remove.
4814         (powi_cost): Remove.
4815         (expand_powi_1): Remove.
4816         (expand_powi): Remove.
4817         (expand_builtin_pow_root): Remove.
4818         (expand_builtin_pow): Remove.
4819         (expand_builtin_powi): Eliminate handling of constant exponent.
4820         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
4821
4822 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4823
4824         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
4825
4826 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4827
4828         * dce.c (reset_unmarked_insns_debug_uses): New.
4829         (delete_unmarked_insns): Skip debug insns.
4830         (prescan_insns_for_dce): Likewise.
4831         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
4832         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
4833         active reg can be found.
4834         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
4835         (convert_regs_1): Use it.
4836
4837 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4838
4839         * tree-pretty-print.c (dump_function_header): Add flags.
4840         Don't dump decl_uid with nouid.
4841         * tree-pretty-print.h (dump_function_header): Adjust.
4842         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
4843         * passes.c (pass_init_dump_file): Pass dump_flags on.
4844         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
4845
4846 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4847
4848         PR bootstrap/49270
4849         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
4850
4851 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
4852
4853         PR tree-optimization/49243
4854         * calls.c (setjmp_call_p): Also check if fndecl has the
4855         returns_twice attribute.
4856
4857 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4858
4859         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
4860         -ffast-math etc.
4861
4862 2011-06-06  Richard Henderson  <rth@redhat.com>
4863             Georg-Johann Lay  <avr@gjlay.de>
4864
4865         PR target/42210
4866         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
4867         New predicates.
4868         * config/avr/avr.md ("insv"): New insn expander.
4869         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
4870         "*insv.not.io", "*insv.reg"): New insns.
4871
4872 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
4873
4874         PR target/49285
4875         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
4876         to nonimmediate_operand from memory_operand for the operand that is to
4877         be forced to memory by the expander.  Lose the constraints.
4878
4879 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
4880
4881         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
4882         EH return when delayed branches are disabled.
4883
4884 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
4885
4886         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
4887         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
4888         calculation.
4889         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
4890         Simplify MODE_V1DF and MODE_V2SF handling.
4891         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
4892         Simplify MODE_SF handling.
4893
4894 2011-06-04  Jan Hubicka  <jh@suse.cz>
4895
4896         PR tree-optimization/48893
4897         PR tree-optimization/49091
4898         PR tree-optimization/49179
4899         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
4900         Bounds check.
4901
4902 2011-06-04  Jan Hubicka  <jh@suse.cz>
4903
4904         PR lto/48954
4905         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
4906         bitmaps.
4907
4908 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
4909
4910         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
4911
4912 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
4913
4914         PR target/49281
4915         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
4916         to be strictly smaller than 1 << shiftcount.
4917
4918 2011-06-04  Jan Hubicka  <jh@suse.cz>
4919
4920         PR tree-optimize/48929
4921         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
4922         of empty predicate.
4923
4924 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
4925
4926         PR debug/48333
4927         * calls.c (emit_call_1): Prefer the __builtin declaration of
4928         builtin functions.
4929
4930 2011-06-03   Diego Novillo  <dnovillo@google.com>
4931
4932         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
4933         (lto_input_tree_pointers): Likewise.
4934         * lto-streamer-out.c (pack_value_fields): Likewise.
4935         (lto_output_tree_pointers): Likewise.
4936         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
4937         and OPTIMIZATION_NODE.
4938
4939 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4940
4941         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
4942         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
4943         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
4944         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
4945         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
4946         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
4947         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
4948         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
4949         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
4950         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
4951         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
4952         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
4953         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
4954         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
4955         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
4956         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
4957         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
4958         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
4959         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
4960         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
4961         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
4962         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
4963         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
4964         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
4965         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
4966         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
4967         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
4968         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
4969         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
4970         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
4971         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
4972         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
4973         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
4974         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
4975         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
4976         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
4977         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
4978         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
4979         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
4980         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
4981         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
4982         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
4983         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
4984         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
4985         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
4986         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
4987         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
4988         * system.h (MD_UNWIND_SUPPORT): Poison.
4989         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
4990         * doc/tm.texi: Regenerate.
4991         * unwind-dw2.c: Include md-unwind-support.h instead of
4992         MD_UNWIND_SUPPORT.
4993         * config/ia64/unwind-ia64.c: Likewise.
4994         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4995
4996 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
4997
4998         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
4999
5000 2011-06-03  Richard Henderson  <rth@redhat.com>
5001             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5002
5003         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
5004         (sigill_hdlr): Correct insn, insn size.
5005         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
5006
5007 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5008
5009         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
5010         t-slibgcc-dummy.
5011         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
5012         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
5013         * config/mips/t-iris: Remove.
5014         * config/mips/t-irix6: New file.
5015         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
5016
5017 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5018
5019         * Makefile.in (LIB2ADDEHDEP): Remove.
5020         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
5021         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
5022         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
5023         * config/t-darwin (LIB2ADDEHDEP): Remove.
5024         * config/t-freebsd (LIB2ADDEHDEP): Remove.
5025         * config/t-linux (LIB2ADDEHDEP): Remove.
5026
5027 2011-06-03  Diego Novillo  <dnovillo@google.com>
5028
5029         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
5030         (lto_register_var_decl_in_symtab): Likewise.
5031         (lto_register_function_decl_in_symtab): Likewise.
5032         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
5033         logic to uniquify_nodes.
5034
5035 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5036
5037         * config/alpha/t-osf5: Remove.
5038         * config/alpha/t-osf-pthread: Remove.
5039         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
5040         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
5041
5042 2011-06-03  Julian Brown  <julian@codesourcery.com>
5043
5044         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
5045         (strongarm1110): Use strongarm tuning.
5046         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
5047         * config/arm/arm.c (arm_strongarm_tune): New.
5048         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
5049         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
5050         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
5051         setting, using previous defaults or 1 for Cortex-A5.
5052         (arm_option_override): Set max_insns_skipped from current tuning.
5053
5054 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
5055
5056         * doc/install.texi (Options specification): Document --with-specs.
5057
5058 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5059
5060         * config/arm/neon.md (orndi3_neon): Actually split it.
5061
5062 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
5063
5064         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
5065         * var-tracking.c (reverse_op): Limite recurse depth to 5.
5066
5067 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
5068
5069         PR debug/47590
5070         * target.def (delay_sched2, delay_vartrack): New.
5071         * doc/tm.texi.in: Update.
5072         * doc/tm.texi: Rebuild.
5073         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
5074         * var-tracking.c (gate_handle_var_tracking): Likewise.
5075         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
5076         (bfin_flag_var_tracking): Drop.
5077         (output_file_start): Don't save and override flag_var_tracking.
5078         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
5079         (bfin_reorg): Test original variables.
5080         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
5081         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
5082         (ia64_flag_var_tracking): Drop.
5083         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
5084         (ia64_file_start): Don't save and override flag_var_tracking.
5085         (ia64_override_options_after_change): Ditto
5086         flag_schedule_insns_after_reload.
5087         (ia64_reorg): Test original variables.
5088         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
5089         (picochip_flag_var_tracking): Drop.
5090         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
5091         (picochip_option_override): Don't save and override
5092         flag_schedule_insns_after_reload.
5093         (picochip_asm_file_start): Ditto flag_var_tracking.
5094         (picochip_reorg): Test original variables.
5095         * config/spu/spu.c (spu_flag_var_tracking): Drop.
5096         (TARGET_DELAY_VARTRACK): Define.
5097         (spu_var_tracking): New.
5098         (spu_machine_dependent_reorg): Call it.
5099         (asm_file_start): Don't save and override flag_var_tracking.
5100
5101 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
5102
5103         PR target/49163
5104         * config/sh/predicates.md (general_movsrc_operand): Return 0
5105         for memory and memory subreg of which address is an invalid
5106         indexed address for QI and HImode.
5107         (general_movdst_operand): Likewise.
5108
5109 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
5110
5111         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
5112         edges only, when there is a non-local label in the function.
5113         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
5114
5115 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
5116
5117         * config/i386/constraints.md (Y3): New register constraint.
5118         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
5119         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
5120         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
5121         *sse2_interleave_lowv2df.
5122
5123 2011-06-02  Julian Brown  <julian@codesourcery.com>
5124
5125         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
5126         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
5127         (arm_cortex_a5_tune): New.
5128
5129 2011-06-02  Julian Brown  <julian@codesourcery.com>
5130
5131         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
5132         * config/arm/arm.c (arm_default_branch_cost): New.
5133         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
5134         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
5135         (arm_fa726_tune): Set branch_cost field using
5136         arm_default_branch_cost.
5137         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
5138         current_tune structure.
5139         * dojump.c (tm_p.h): Include file.
5140
5141 2011-06-02  Julian Brown  <julian@codesourcery.com>
5142
5143         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
5144         tuning.
5145         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
5146         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
5147         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
5148         field.
5149         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
5150         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
5151         (arm_fa726te_tune): Add prefer_constant_pool setting.
5152         (arm_v6t2_tune, arm_cortex_tune): New.
5153         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
5154         prefer_constant_pool setting.
5155
5156 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
5157
5158         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
5159         switch statement.
5160         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
5161         (*movdf_internal) <case 6,7,8>: Ditto.
5162
5163         * config/i386/constraints.md (Y4): New register constraint.
5164         * config/i386/sse.md (vec_set<mode>_0): Merge with
5165         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
5166         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
5167         *vec_extractv2di_1_sse.
5168         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
5169         and *vec_concatv2di_rex64_sse.
5170
5171 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
5172
5173         PR target/48807
5174         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
5175         of cgraph_local_info for null before attempting to use it.
5176
5177 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
5178
5179         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
5180         (current_function_dynamic_alloc_count): Delete.
5181         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
5182         (expand_builtin_nonlocal_goto): Remove obsolete comment.
5183         (expand_builtin_update_setjmp_buf): Remove dead code.
5184         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
5185         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
5186         support.
5187         * function.c (instantiate_virtual_regs): Likewise.
5188         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
5189         for a block with a single abnormal incoming edge.
5190         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
5191         (SETJMP_VIA_SAVE_AREA): Delete.
5192         * config/sparc/sparc-protos.h (load_got_register): Declare.
5193         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5194         (load_got_register): Make global.
5195         (sparc_frame_pointer_required): Add 'static'.
5196         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
5197         (sparc_builtin_setjmp_frame_value): New function.
5198         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
5199         (save_stack_nonlocal): New expander.
5200         (restore_stack_nonlocal): Likewise.
5201         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
5202         (nonlocal_goto_internal): New insn.
5203         (goto_handler_and_restore): Delete.
5204         (builtin_setjmp_setup): Likewise.
5205         (do_builtin_setjmp_setup): Likewise.
5206         (setjmp): Likewise.
5207         (builtin_setjmp_receiver): New expander.
5208
5209 2011-06-01  David Li  <davidxl@google.com>
5210
5211         PR middle-end/49261
5212         * tree-pretty-print.c (dump_function_header): Format cleanup.
5213
5214 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5215
5216         PR target/49238
5217         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
5218         needed when original operands are used for msw_skip comparison.
5219
5220 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
5221
5222         PR debug/49250
5223         * var-tracking.c (add_uses, add_stores): Don't call
5224         cselib_subst_to_values on ENTRY_VALUE.
5225
5226 2011-06-01  Diego Novillo  <dnovillo@google.com>
5227
5228         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
5229         output_record_start with LTO_null instead of output_zero.
5230         (lto_output_ts_binfo_tree_pointers): Likewise.
5231         (lto_output_tree): Likewise.
5232         (output_eh_try_list): Likewise.
5233         (output_eh_region): Likewise.
5234         (output_eh_lp): Likewise.
5235         (output_eh_regions): Likewise.
5236         (output_bb): Likewise.
5237         (output_function): Likewise.
5238         (output_unreferenced_globals): Likewise.
5239         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
5240         instead of NUM_TREE_CODES.
5241         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
5242         (lto_output_int_in_range): Change << to >> when shifting VAL.
5243
5244 2011-06-01  Diego Novillo  <dnovillo@google.com>
5245
5246         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
5247         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
5248
5249 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5250
5251         PR target/45074
5252         * optabs.h (valid_multiword_target_p): Declare.
5253         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
5254         doing multi-word operations.
5255         * optabs.c (expand_binop): Likewise.
5256         (expand_doubleword_bswap): Likewise.
5257         (expand_absneg_bit): Likewise.
5258         (expand_unop): Likewise.
5259         (expand_copysign_bit): Likewise.
5260         (multiword_target_p): New function.
5261
5262 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5263
5264         PR rtl-optimization/48830
5265         PR rtl-optimization/48808
5266         PR rtl-optimization/48792
5267         * reload.c (push_reload): Check contains_reg_of_mode.
5268         * reload1.c (strip_paradoxical_subreg): New function.
5269         (gen_reload_chain_without_interm_reg_p): Use it to handle
5270         paradoxical subregs.
5271         (emit_output_reload_insns, gen_reload): Likewise.
5272
5273 2011-06-01  David Li  <davidxl@google.com>
5274
5275         * predict.c : Change pass name
5276         * ipa.c: Ditto.
5277         * dce.c: Ditto.
5278         * tree-profile.c: Ditto.
5279         * except.c: Ditto.
5280
5281 2011-06-01  David Li  <davidxl@google.com>
5282
5283         * tree-pretty-print.c (dump_function_header): New function.
5284         * final.c (rest_of_clean_state): Use header dumper.
5285         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
5286         * passes.c (pass_init_dump_file): Use header dumper.
5287
5288 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
5289
5290         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
5291         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
5292         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
5293         New functions.
5294         (mem_loc_descriptor): Use them.
5295
5296         * var-tracking.c (create_entry_value): New function.
5297         (vt_add_function_parameter): Use it.
5298
5299 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5300
5301         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
5302         Include <signal.h>, <ucontext.h>.
5303         (sigill_caught): Define.
5304         (sigill_hdlr): New function.
5305         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
5306         insns can be executed.
5307         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
5308         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
5309
5310 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5311
5312         * config/t-slibgcc-darwin: Move to ...
5313         * config/t-slibgcc-dummy: ... this.  Clarify comments.
5314         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
5315         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
5316         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
5317         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
5318         Remove i386/t-crtstuff from tmake_file.
5319         (i[34567]86-*-solaris2*): Remove t-svr4,
5320         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
5321         t-slibgcc-dummy.
5322         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
5323         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
5324         sparc/t-crtfm from tmake_file.
5325         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
5326         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
5327         Remove extra_parts.
5328         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
5329         * config/i386/t-nwld (SHLIB_LINK): Remove.
5330         * config/i386/t-rtems-i386: Rename to ...
5331         * config/i386/t-rtems: ... this.
5332         ($(T)crti.o, $(T)crtn.o): Remove.
5333         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
5334         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
5335         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
5336         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
5337         EXTRA_MULTILIB_PARTS): Remove.
5338         * config/sparc/t-sol2-64: Likewise.
5339         * config/sparc/t-sol2: Remove.
5340         * config/sparc/t-crtin: Remove.
5341         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
5342         * config/i386/gmon-sol2.c: Remove.
5343         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
5344         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
5345         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
5346         * config/i386/sol2-gc1.asm: Remove.
5347         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
5348         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
5349         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
5350         * config/t-slibgcc-sld: Remove.
5351
5352 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
5353
5354         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
5355         base_type_for_mode with op_mode instead of mode.
5356
5357 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
5358
5359         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
5360         Cortex-A15.
5361         * config/arm/arm-tune.md: Regenerate.
5362         * config/arm/arm-tables.opt: Regenerate.
5363         * config/arm/arm.c (FL_DIV): Rename...
5364         (FL_THUMB_DIV): ... to this.
5365         (FL_ARM_DIV): Define.
5366         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
5367         (arm_arch_hwdiv): Remove.
5368         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
5369         (arm_issue_rate): Add cortexr5.
5370         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
5371         __ARM_ARCH_EXT_IDIV__.
5372         (TARGET_IDIV): Define.
5373         (arm_arch_hwdiv): Remove.
5374         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
5375         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
5376         (divsi3, udivsi3): New patterns.
5377         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
5378         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
5379
5380 2011-06-01  Martin Jambor  <mjambor@suse.cz>
5381
5382         * ipa-utils.c (ipa_dfs_info): New field scc_no.
5383         * ipa-utils.c (searchc): Set scc_no.
5384
5385 2011-06-01  Martin Jambor  <mjambor@suse.cz>
5386
5387         * ipa-utils.c (searchc_env): New field allow_overwritable.
5388         (searchc): do not ignore edges to overwritable nodes if indicated
5389         by env->allow_overwritable.
5390         (ipa_reduced_postorder): Set env.allow_overwritable.
5391
5392 2011-06-01  Richard Guenther  <rguenther@suse.de>
5393
5394         * tree.c (free_lang_data): Do not reset boolean_type_node nor
5395         char_type_node.
5396         * lto-streamer.c (lto_record_common_node): Take node pointer,
5397         do not register types.
5398         (lto_preload_common_nodes): Explicitly skip preloading nodes
5399         that differ between frontends.
5400
5401 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
5402
5403         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
5404         NON_FLOAT_REGS.
5405
5406 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
5407
5408         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
5409         parameter value for dump. Dump cost on outermost call only.
5410         (rs6000_memory_move_cost): Dump cost on outermost call only.
5411
5412 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
5413
5414         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
5415         DW_OP_GNU_convert ops.
5416
5417         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
5418         cselib_preserve_constants.
5419         (cselib_lookup_1): If cselib_preserve_constants,
5420         a new VALUE is being created for REG and there is a VALUE for the
5421         same register in wider mode, add another loc with lowpart SUBREG of
5422         the wider VALUE.
5423         (cselib_subst_to_values): Handle ENTRY_VALUE.
5424         * var-tracking.c  (replace_expr_with_values): Return NULL for
5425         ENTRY_VALUE too.
5426         * dwarf2out.c (convert_descriptor_to_signed): New function.
5427         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
5428         instead of two shifts.
5429         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
5430         the right mode if needed.
5431         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
5432         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
5433         convert_descriptor_to_signed.
5434         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
5435         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
5436
5437         PR target/48688
5438         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
5439
5440 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5441
5442         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
5443         of X87MODEI12 and SWI48x instead of SSEMODEI24.
5444         (SWI248x): New mode iterator, rename from X87MODEI.
5445         (X87MODEI): Remove mode iterator.
5446         (X87MODEI12): Ditto.
5447         (SSEMODEI24): Ditto.
5448
5449 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5450
5451         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
5452         * doc/invoke.texi: Document max-vartrack-expr-depth.
5453         * var-tracking.c (EXPR_DEPTH): New.
5454         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
5455
5456 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5457
5458         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
5459         * config/i386/sse.md: Add n to negated FMA pattern names.
5460
5461 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5462
5463         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
5464
5465 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5466
5467         * gengtype-state.c (read_state_params_structs): Initialize previous.
5468
5469 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5470
5471         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
5472         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
5473
5474 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5475
5476         * config/i386/i386.md (*movtf_internal): Avoid allocating general
5477         registers.  Penalize F*r->o alternative to prevent partial memory
5478         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
5479         CONST_DOUBLE immediates when optimizing function for size.  Do not move
5480         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
5481         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
5482         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
5483         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
5484         alternatives.
5485         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
5486
5487         (fp_register_operand splitters): Use fp_register_operand
5488         constraint.  Do not use FP_REG_P in insn condition.
5489         (any_fp_register_operand splitters): Use any_fp_register_operand
5490         constraint.  Do not use ANY_FP_REG_P in insn condition.
5491
5492 2011-05-31  Jan Hubicka  <jh@suse.cz>
5493
5494         * cgraph.h (cgraph_inline_failed_t): Give enum a name
5495         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
5496         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
5497         (lto_output_edge): Use output_enum and var_len_unsigned.
5498         (lto_output_varpool_node): Likewise.
5499         (input_overwrite_node): Do not take resolution parameter;
5500         extract it from a bitpack.
5501         (input_node): Do not read resolution; use input_enum and
5502         var_len_unsigned.
5503         (input_varpool_node): Likewise.
5504         (input_edge): Likewise.
5505         (input_cgraph_1): Likewise.
5506
5507 2011-05-31  Richard Guenther  <rguenther@suse.de>
5508
5509         * gimple.c (gimple_register_canonical_type): Do not register
5510         any types via gimple_register_type.
5511
5512 2011-05-31  Jan Hubicka  <jh@suse.cz>
5513
5514         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
5515         of thunks.
5516
5517 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
5518
5519         PR rtl-optimization/49235
5520         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
5521         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
5522
5523 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
5524
5525         PR tree-optimization/49093
5526         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
5527         data references.
5528
5529 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
5530
5531         PR debug/49047
5532         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
5533         for concrete functions containing the code of cloned functions.
5534
5535 2011-05-31  Richard Guenther  <rguenther@suse.de>
5536
5537         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
5538         to ...
5539         (forward_propagate_into_comparison_1): ... this.
5540         (forward_propagate_comparison): Rename to ...
5541         (forward_propagate_into_comparison): ... this.  Split out
5542         real forward propagation code to ...
5543         (forward_propagate_comparison): ... this.
5544         (forward_propagate_into_gimple_cond): Remove looping.
5545         (forward_propagate_into_cond): Likewise.
5546         (simplify_not_neg_expr): Return whether we have done something.
5547         (simplify_gimple_switch): Likewise.
5548         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
5549         (ssa_forward_propagate_and_combine): ... this.  Re-structure
5550         to do a forward forward-propagation walk on BBs and a backward
5551         stmt combining walk on BBs.  Consistently re-scan changed statements.
5552         (pass_forwprop): Adjust.
5553
5554 2011-05-30  Ian Lance Taylor  <iant@google.com>
5555
5556         * godump.c (go_format_type): Correct length of name added to
5557         obstack for anonymous field.
5558
5559 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5560
5561         PR target/49186
5562         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
5563         part of the second operand is 0.
5564
5565 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
5566
5567         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
5568         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
5569         to memory for !TARGET_MEMORY_MISMATCH_STALL.
5570         (*movdf_internal_rex64): Do not penalize F->r alternative.
5571         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
5572         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
5573         when optimizing function for size.  Do not move CONST_DOUBLEs
5574         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
5575         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
5576         SUBREGs.  Do not check for MEM_P operands in the insn condition,
5577         check for ANY_FP_REGNO_P instead.
5578         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
5579         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
5580         function for speed.
5581         * config/i386/i386.c (ix86_option_override_internal): Do not
5582         set TARGET_INTEGER_DFMODE_MOVES here.
5583
5584 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
5585
5586         PR target/49168
5587         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
5588
5589 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
5590
5591         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
5592         DW_TAG_rvalue_reference_type even for
5593         -gdwarf-4 -fno-debug-types-section.
5594
5595 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5596
5597         PR tree-optimization/46728
5598         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
5599         (build_and_insert_binop): New.
5600         (gimple_expand_builtin_pow): Reorder args for
5601         build_and_insert_call; use build_and_insert_binop; add more
5602         optimizations for fractional exponents.
5603
5604 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
5605
5606         PR bootstrap/49190
5607
5608         Revert:
5609         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5610
5611         * tree.h (struct tree_identifier): Inherit from tree_typed, not
5612         tree_common.
5613         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
5614         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
5615         TS_BASE instead of TS_COMMON.
5616         * varasm.c (assemble_name): Remove assert.
5617
5618 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
5619
5620         * config.gcc: Keep obselete list sorted.
5621
5622 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
5623             Eric Botcazou  <ebotcazou@adacore.com>
5624
5625         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
5626         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
5627         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
5628         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
5629         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
5630
5631 2011-05-30  Richard Guenther  <rguenther@suse.de>
5632
5633         * gimple.c (gimple_types_compatible_p_1): Compare record
5634         and union type members properly.
5635
5636 2011-05-30  Richard Guenther  <rguenther@suse.de>
5637
5638         PR tree-optimization/49210
5639         * ipa-split.c (split_function): Care for the case where the call
5640         result is not trivially convertible to the result holding variable.
5641
5642 2011-05-30  Richard Guenther  <rguenther@suse.de>
5643
5644         PR tree-optimization/49218
5645         * tree-vrp.c (adjust_range_with_scev): Properly check whether
5646         overflow occured.
5647
5648 2011-05-30  Richard Guenther  <rguenther@suse.de>
5649
5650         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
5651         New function split out from ...
5652         (forward_propagate_into_gimple_cond): ... here.  Adjust.
5653         (forward_propagate_into_cond): Likewise.
5654         (forward_propagate_comparison): Also propagate into
5655         comparisons on assignment RHS.  Change return value to
5656         behave similar to forward_propagate_into_cond.
5657         (tree_ssa_forward_propagate_single_use_vars): Handle
5658         strict-overflow warnings properly for forward_propagate_comparison.
5659
5660 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5661
5662         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
5663         from plugin linker.
5664         * configure: Regenerate.
5665
5666 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
5667
5668         PR tree-optimization/49199
5669         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
5670         non-reduction operands are either defined in the loop or by induction.
5671
5672 2011-05-29  Xinliang David Li  <davidxl@google.com>
5673
5674         * opts-global.c (handle_common_deferred_options): Handle new options.
5675         * passes.c (register_one_dump_file): Call register_pass_name.
5676         (execute_one_pass): Check explicit enable/disable flag.
5677         (passr_hash): New function.
5678         (passr_eq): Ditto.
5679         (register_pass_name): Ditto.
5680         (get_pass_by_name): Ditto.
5681         (pass_hash): Ditto.
5682         (pass_eq): Ditto.
5683         (enable_pass): Ditto.
5684         (disable_pass): Ditto.
5685         (is_pass_explicitly_enabled_or_disabled): Ditto.
5686
5687 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
5688
5689         * config/i386/i386.md (*movoi_internal_avx): Use
5690         standard_sse_constant_opcode for alternative 0.
5691         (*movti_internal_sse): Ditto.
5692         (*movti_internal_rex64): Use standard_sse_constant_opcode for
5693         alternative 2.
5694         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
5695         sselog1 type moves.
5696         (*movsi_internal): Ditto.
5697         (*movdi_internal): Ditto.  Add ssecvt type moves.
5698
5699 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5700
5701         PR target/48830
5702         * rtlanal.c (simplify_subreg_regno): Adjust comment.
5703
5704 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
5705
5706         PR rtl-optimization/49095
5707         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
5708         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
5709
5710 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
5711
5712         PR target/43995
5713         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
5714         recurse_p argument.  Only follow register copies if it is set,
5715         and prevent mips_find_pic_call_symbol from recursing.
5716         (mips_find_pic_call_symbol): Add a recurse_p argument.
5717         Pass it to mips_pic_call_symbol_from_set.
5718         (mips_annotate_pic_calls): Update accordingly.
5719
5720 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
5721
5722         * emit-rtl.c (try_split): Use a loop to search for
5723         NOTE_INSN_CALL_ARG_LOCATIONs.
5724
5725 2011-05-29  Richard Guenther  <rguenther@suse.de>
5726
5727         PR tree-optimization/49217
5728         * ipa-pure-const.c (propagate_pure_const): Fix typos.
5729
5730 2011-05-28  Jan Hubicka  <jh@suse.cz>
5731
5732         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
5733         length.
5734         (string_slot_free): Remove
5735         (create_output_block): Initialize obstack.
5736         (destroy_output_block): Free obstack.
5737         (lto_string_index): Add PERSISTENT parameter; do not duplicate
5738         the string unless it needs to be added into the hash.
5739         (lto_output_string_with_length): Add persistent attribute;
5740         handle NULL strings.
5741         (lto_output_string): Add PERSISTENT parameter.
5742         (output_string_cst, output_identifier): Simplify.
5743         (lto_output_location_bitpack): Update.
5744         (lto_output_builtin_tree): Update.
5745         * lto-streamer.h (struct output_block): Add obstack.
5746         (lto_output_string, lto_output_string_with_length): Remove
5747         declarations; functions are static now.
5748
5749 2011-05-28  Jan Hubicka  <jh@suse.cz>
5750
5751         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
5752         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
5753         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
5754         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
5755         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
5756         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
5757         unpack_ts_decl_with_vis_value_fields,
5758         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
5759         lto_get_builtin_tree): Use enum and variable length i/o.
5760         * basic-block.h (profile_status_d): Add PROFILE_LAST.
5761         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
5762         New functions.
5763         (bp_pack_enum, bp_unpack_enum): New macros.
5764
5765 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5766
5767         * genrecog.c: Remove redundant forward declarations.
5768
5769 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5770
5771         * config.gcc: Deprecate mips*-*-openbsd*.
5772
5773 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5774
5775         PR bootstrap/49195
5776         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
5777         for match_op_dup.
5778
5779 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
5780
5781         PR middle-end/48981
5782         * gengtype.c (vec_prefix_type): New function.
5783         (note_def_vec): Use vec_prefix_type and change the length
5784         attribute to be based on the prefix.
5785         * vec.c: Include coretypes.h before vec.h.
5786         (struct vec_prefix): Remove.
5787         (vec_gc_p_reserve): Change the offsetof to sizeof.
5788         (vec_gc_p_reserve_exact): Likewise.
5789         (vec_heap_p_reserve): Likewise.
5790         (vec_heap_p_reserve_exact): Likewise.
5791         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
5792         (vec_stack_p_reserve): Change the offsetof to sizeof.
5793         (vec_stack_p_reserve_exact): Likewise.
5794         * vec.h (struct vec_prefix): New struct definition.
5795         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
5796         (VEC_T_GTY(T,B)): Likewise.
5797         (DEF_VEC_FUNC_P(T)): Use prefix field.
5798         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
5799         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
5800
5801 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5802
5803         PR tree-optimization/46728
5804         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
5805         (powi_as_mults): Add gimple_set_location.
5806         (build_and_insert_call): New.
5807         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
5808         0.5, 0.25, 0.75, 1./3., or 1./6.
5809
5810 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
5811
5812         * doc/contrib.texi: Update copyright years.
5813         (Contributors): Add Zdenek Sojka.
5814
5815 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
5816
5817         * c-decl.c (c_push_function_context): Copy the current statement
5818         list stack.
5819         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
5820         (finish_struct): Call building_stmt_list_p instead of checking
5821         cur_stmt_list.
5822         * c-parser.c (c_parser_postfix_expression): Likewise.
5823         * c-typeck.c (c_end_compound_stmt): Likewise.
5824         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
5825         * tree-iterator.c (stmt_list_cache): Change to a VEC.
5826         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
5827         (free_stmt_list): Likewise.
5828         * tree.h (struct tree_statement_list): Include typed_tree instead
5829         of tree_common.
5830         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
5831         as TS_TYPED instead of TS_COMMON.
5832
5833 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5834             Uros Bizjak  <ubizjak@gmail.com>
5835
5836         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
5837         (HAVE_AS_IX86_TLSGDPTL): Define.
5838         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
5839         (HAVE_AS_IX86_TLSLDMPLT): Define.
5840         * configure: Regenerate.
5841         * config.in: Regenerate.
5842         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
5843         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
5844         TARGET_SUN_TLS, use @tlsgdplt or @plt.
5845         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
5846         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
5847         @tlsldmplt or @plt.
5848         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
5849
5850 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
5851
5852         * sched-int.h (struct _haifa_deps_insn_data): New members cond
5853         and reverse_cond.
5854         (INSN_COND, INSN_REVERSE_COND): New macros.
5855         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
5856         once.
5857         (sched_get_condition_with_rev): Cache the results, and look them up
5858         if possible.
5859         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
5860         are clobbered by the current insn.
5861         * target.def (exposed_pipline): New sched data hook.
5862         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
5863         * doc/tm.texi: Regenerate.
5864
5865 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5866
5867         PR tree-optimization/49170
5868         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
5869         sincos or cexp.
5870
5871 2011-05-27  Richard Guenther  <rguenther@suse.de>
5872
5873         PR middle-end/49189
5874         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
5875         of comparisons.
5876
5877 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
5878
5879         * haifa-sched.c (sched_scan_info): Remove.
5880         (schedule_block): Call sched_extend_luids rather than sched_init_luids
5881         with NULL args.
5882         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
5883         Remove functions.
5884         (sched_scan): Remove.
5885         (sched_extend_luids): Renamed from luids_extend_insn and no longer
5886         static.  All callers changed.
5887         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
5888         static.  All callers changed.
5889         (sched_init_luids): Remove all arguments except the first.  All
5890         callers changed.  Don't use sched_scan.
5891         (haifa_init_h_i_d): Likewise.
5892         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
5893         manually rather than using sched_init_luids.  Likewise with
5894         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
5895         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
5896         rather than sched_init_luids with NULL args.
5897         * sel-sched-ir.c (new_insns): Remove variable.
5898         (sched_scan): New static function, previously in haifa-sched.c.  Remove
5899         all arguments but the first two; all callers changed.
5900         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
5901         rather than sched_init_luids.
5902         (sel_init_bbs): Remove second argument.  All callers changed.
5903         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
5904         with NULL arguments.
5905         (create_insn_rtx_from_pattern): Likewise.
5906         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
5907         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
5908         (sched_init_insn_luid, sched_extend_luids): Declare.
5909         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
5910         declarations.
5911
5912 2011-05-27  Richard Guenther  <rguenther@suse.de>
5913
5914         PR middle-end/49177
5915         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
5916         A CMP B ? (T) true : (T) false for non-integral types T again.
5917
5918 2011-05-27  Jan Hubicka  <jh@suse.cz>
5919
5920         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
5921         so 0 means NULL string.
5922         (lto_output_string_with_length): ... here.
5923         (lto_output_string, output_string_cst, output_identifier): Update
5924         handling of NULL strings.
5925         (lto_output_location_bitpack): New function.
5926         (lto_output_location): Use it.
5927         (lto_output_tree_ref): Use output_record_start.
5928         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
5929         len values.
5930         * lto-streamer-in.c (string_for_index): Break out from ...; offset
5931         values by 1.
5932         (input_string_internal): ... here;
5933         (input_string_cst, input_identifier, lto_input_string): Update handling
5934         of NULL strings.
5935         (lto_input_location_bitpack): New function
5936         (lto_input_location): Use it.
5937         (unpack_ts_type_common_value_fields): Pack align & alias in var len
5938         values.
5939         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
5940         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
5941         (bp_pack_value): Sanity check the value range.
5942         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
5943         New functions.
5944         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
5945         New functions.
5946
5947 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
5948
5949         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
5950         call_arg_location instructions down the floor.
5951
5952 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
5953
5954         PR rtl-optimization/49154
5955         * ira.c (setup_pressure_classes): Process class without sublcasses
5956         as a candidate for pressure classes.
5957
5958 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
5959
5960         PR rtl-optimization/48575
5961         * genrecog.c (position_type): New enum.
5962         (position): New structure.
5963         (decision): Use position structure instead of a string.
5964         (root_pos, peep2_insn_pos_list): New variables.
5965         (next_position, compare_positions): New functions.
5966         (new_decision): Use position structures instead of strings.
5967         (maybe_both_true): Likewise.
5968         (change_state): Likewise.
5969         (write_tree): Likewise.
5970         (make_insn_sequence): Likewise.
5971
5972 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5973
5974         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
5975         TS_BASE instead of TS_COMMON.
5976         (find_decls_types_r): Check for TS_TYPED structure before looking at
5977         TREE_TYPE.
5978         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
5979         Add chain field.
5980         (BLOCK_CHAIN): Use new chain field.
5981
5982 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
5983
5984         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
5985         moves expensive on Power7 also.
5986
5987 2011-05-26  Richard Guenther  <rguenther@suse.de>
5988
5989         * fold-const.c (fold_unary_loc): Remove bogus code.
5990
5991 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5992
5993         * tree.h (struct tree_identifier): Inherit from tree_typed, not
5994         tree_common.
5995         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
5996         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
5997         TS_BASE instead of TS_COMMON.
5998         * varasm.c (assemble_name): Remove assert.
5999
6000 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
6001
6002         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
6003         substituted first.
6004         * libgcc-std.ver: Delete file.
6005
6006 2011-05-26  Richard Guenther  <rguenther@suse.de>
6007
6008         PR tree-optimization/48702
6009         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
6010         only when we know the base address is within bounds.
6011         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
6012         assume the base address of TARGET_MEM_REFs is in bounds.
6013
6014 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6015
6016         PR target/49099
6017         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
6018         declaration in TARGET_SOLARIS.
6019
6020 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
6021
6022         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
6023         The instruction is then expanded explicitly.
6024         (supported_compare): Callable instruction.
6025         (compare): Likewise.
6026
6027 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
6028
6029         PR c++/49165
6030         * gimplify.c (shortcut_cond_r): Don't special case
6031         COND_EXPRs if they have void type on one of their arms.
6032
6033 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
6034
6035         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
6036         to reduce duplication, and to achieve a slightly more logical order
6037         of operations.
6038
6039 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
6040
6041         PR tree-optimization/49161
6042         * tree-vrp.c (struct case_info): New type.
6043         (compare_case_labels): Sort case_info structs instead of
6044         trees, and not primarily by CASE_LABEL uids but by
6045         label_for_block indexes.
6046         (find_switch_asserts): Put case labels into struct case_info
6047         array instead of TREE_VEC, adjust sorting, compare label_for_block
6048         values instead of CASE_LABELs.
6049
6050 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6051
6052         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
6053         ("orndi3_neon"): Likewise.
6054         ("bic<mode>3_neon"): Likewise.
6055
6056 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
6057
6058         PR tree-optimization/49038
6059         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
6060         Ensure at least one epilogue iteration if required by data
6061         accesses with gaps.
6062         * tree-vectorizer.h (struct _loop_vec_info): Add new field
6063         to mark loops that require peeling for gaps.
6064         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
6065         (vect_get_known_peeling_cost): Take peeling for gaps into
6066         account.
6067         (vect_transform_loop): Generate epilogue if required by data
6068         access with gaps.
6069         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
6070         loop as requiring an epilogue if there are gaps in the end of
6071         the strided group.
6072
6073 2011-05-25  Ian Lance Taylor  <iant@google.com>
6074
6075         * godump.c (go_format_type): Output the first field with a usable
6076         Go type, if any.
6077
6078 2011-05-25  Ian Lance Taylor  <iant@google.com>
6079
6080         * godump.c (go_format_type): Check for invalid type names, pointer
6081         target types, and struct field types.
6082
6083 2011-05-25  Jason Merrill  <jason@redhat.com>
6084
6085         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
6086
6087 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
6088
6089         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
6090
6091 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6092
6093         * config/i386/i386.md (*movqi_extv_1)): Put back
6094         "register_operand" check in "type" calculation.
6095         (*movqi_extzv_2): Likewise.
6096
6097 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6098
6099         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6100
6101 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
6102
6103         PR bootstrap/49160
6104         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
6105         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
6106         __divxc3, __divtc3): Wrap definitions in #ifndef.
6107
6108 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6109
6110         PR target/49142
6111         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
6112         "register_operand" check and replace q_regs_operand with
6113         QIreg_operand in "type" calculation.
6114         (*movqi_extv_1): Likewise.
6115         (*movqi_extzv_2_rex64): Likewise.
6116         (*movqi_extzv_2): Likewise.
6117
6118         * config/i386/predicates.md (QIreg_operand): New.
6119
6120 2011-05-25  Richard Guenther  <rguenther@suse.de>
6121
6122         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
6123         type-based offset disambiguation, streamline MEM_REF and
6124         TARGET_MEM_REF handling.
6125
6126 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6127
6128         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
6129         (bdesc_special_args): Add pause intrinsic.
6130
6131         * config/i386/i386.md (UNSPEC_PAUSE): New.
6132         (pause): Likewise.
6133         (*pause): Likewise.
6134         * config/i386/ia32intrin.h (__pause): Likewise.
6135
6136         * doc/extend.texi (X86 Built-in Functions): Add documentation for
6137         pause intrinsic.
6138
6139 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6140
6141         PR tree-optimization/46728
6142         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
6143         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
6144
6145 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
6146
6147         * tree.h (struct tree_exp): Inherit from struct tree_typed.
6148         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
6149         instead of TS_COMMON.
6150
6151 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
6152
6153         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
6154         LIBGCC2_GNU_PREFIX is defined.
6155         (__N): New macro.
6156         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
6157         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
6158         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
6159         __clz_tab): Define using __N.
6160         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
6161         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
6162         * target.def (libfunc_gnu_prefix): New hook.
6163         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
6164         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
6165         * doc/tm.texi: Regenerate.
6166         * system.h (LIBGCC2_GNU_PREFIX): Poison.
6167         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
6168         account.
6169         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
6170         (init_optabs): Likewise for the bswap libfuncs.
6171         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
6172         and divide.
6173         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
6174         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
6175         * libgcc-std.ver: Remove.
6176         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
6177         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
6178         libgcc-std.ver.
6179         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6180         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
6181         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
6182         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
6183         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
6184         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6185         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6186         * config/fixed-bit.h (FIXED_OP): Define differently depending on
6187         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
6188         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
6189
6190 2011-05-25  Jan Hubicka  <jh@suse.cz>
6191
6192         * lto-streamer-out.c (output_record_start): Use lto_output_enum
6193         (lto_output_tree): Use output_record_start.
6194         * lto-streamer-in.c (input_record_start): Use lto_input_enum
6195         (lto_get_pickled_tree): Use input_record_start.
6196         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
6197         (lto_value_range_error): New function.
6198         * lto-streamer.h (lto_value_range_error): Declare.
6199         (lto_output_int_in_range, lto_input_int_in_range): New functions.
6200         (lto_output_enum, lto_input_enum): New macros.
6201
6202 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6203
6204         * common.opt (flag_stack_usage_info): New variable.
6205         (-Wstack-usage): New option.
6206         * doc/invoke.texi (Warning options): Document -Wstack-usage.
6207         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
6208         <OPT_fstack_usage>: Likewise.
6209         * toplev.c (output_stack_usage): Handle -Wstack-usage.
6210         * calls.c (expand_call): Test flag_stack_usage_info variable instead
6211         of flag_stack_usage.
6212         (emit_library_call_value_1): Likewise.
6213         * explow.c (allocate_dynamic_stack_space): Likewise.
6214         * function.c (instantiate_virtual_regs ): Likewise.
6215         (prepare_function_start): Likewise.
6216         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
6217         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
6218         * config/arm/arm.c (arm_expand_prologue): Likewise.
6219         (thumb1_expand_prologue): Likewise.
6220         * config/avr/avr.c (expand_prologue): Likewise.
6221         * config/i386/i386.c (ix86_expand_prologue): Likewise.
6222         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
6223         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
6224         * config/mips/mips.c (mips_expand_prologue): Likewise.
6225         * config/pa/pa.c (hppa_expand_prologue): Likewise.
6226         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
6227         * config/s390/s390.c (s390_emit_prologue): Likewise.
6228         * config/sh/sh.c (sh_expand_prologue): Likewise.
6229         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
6230         * config/spu/spu.c (spu_expand_prologue): Likewise.
6231
6232 2011-05-25  Richard Guenther  <rguenther@suse.de>
6233
6234         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
6235         (gimple_canonical_types_compatible_p): Likewise.
6236
6237 2011-05-25  Jan Hubicka  <jh@suse.cz>
6238
6239         PR middle-end/49062
6240         * ipa.c (function_and_variable_visibility): Only add to same
6241         comdat group list if DECL_ONE_ONLY.
6242
6243 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
6244
6245         PR rtl-optimization/49014
6246         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
6247
6248 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
6249
6250         PR target/49128
6251         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
6252
6253 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
6254
6255         PR rtl-optimization/48757
6256         * ira-build.c (loop_with_eh_edge_p): Rename to
6257         loop_with_complex_edge_p, check edges on complexity, make function
6258         conditional.
6259         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
6260         conditional.
6261
6262 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
6263
6264         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
6265         force flag_ira_share_save_slots to 0.
6266
6267 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
6268
6269         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
6270         (vt_initialize): Set PROLOGUE_BB unconditionally.
6271         Add block comment about CFA_BASE_RTX machinery.
6272         Reset FP_CFA_OFFSET to -1 on all invalid paths.
6273         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
6274
6275 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
6276
6277         PR objc/48187
6278         * c-parser.c (c_parser_objc_class_instance_variables): More robust
6279         parsing of syntax error in ObjC instance variable lists.  In
6280         particular, avoid an infinite loop if there is a stray ']'.
6281         Updated error message.
6282
6283 2011-05-24  Ian Lance Taylor  <iant@google.com>
6284
6285         * godump.c (go_define): Don't accept a string immediately after
6286         another operand.
6287
6288 2011-05-24  Ian Lance Taylor  <iant@google.com>
6289
6290         * godump.c (struct godump_container): Add invalid_hash field.
6291         (go_format_type): Return false if type is found in invalid_hash.
6292         (go_output_typedef): Add invalid type to invalid_hash.
6293         (go_finish): Create and delete invalid_hash.
6294
6295 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6296
6297         PR tree-optimization/46728
6298         * tree-ssa-math-opts.c (powi_table): New.
6299         (powi_lookup_cost): New.
6300         (powi_cost): New.
6301         (powi_as_mults_1): New.
6302         (powi_as_mults): New.
6303         (gimple_expand_builtin_powi): New.
6304         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
6305         (gate_cse_sincos): Remove sincos/cexp restriction.
6306
6307 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6308
6309         PR target/3746
6310         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
6311         mips-tdump native.
6312         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
6313         * mips-tdump.c: Likewise.
6314
6315 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6316
6317         PR target/49128
6318         * config/i386/driver-i386.c (host_detect_local_cpu): Always
6319         add -mno-XXX.  Handle FMA.
6320
6321 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
6322
6323         PR rtl-optimization/48633
6324         * ira-build.c (loop_with_eh_edge_p): New function.
6325         (mark_loops_for_removal): Use it.
6326
6327 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
6328
6329         PR rtl-optimization/48971
6330         * ira.c (setup_pressure_classes): Don't check register move cost
6331         for classes with one registers.  Don't add pressure class if there
6332         is a pressure class with the same available hard registers.
6333         Check contains_reg_of_mode.  Fix a typo in collecting
6334         temp_hard_regset.  Ignore hard registers not belonging to a class.
6335
6336 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
6337
6338         PR target/49133
6339         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
6340
6341 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
6342             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6343
6344         PR gcov-profile/48845
6345         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
6346
6347 2011-05-24  Richard Guenther  <rguenther@suse.de>
6348
6349         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
6350         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
6351         (gimple_types_compatible_p_1): Adjust.
6352         (iterative_hash_canonical_type): Do not bother about complete vs.
6353         incomplete types.
6354         (gimple_canonical_types_compatible_p): Likewise.
6355
6356 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6357
6358         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
6359
6360 2011-05-24  Richard Guenther  <rguenther@suse.de>
6361
6362         PR bootstrap/49078
6363         * gimple.c (gimple_register_canonical_type): Revert
6364         previous change.
6365         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
6366         does not for a tree for the case where it matters.  Cache
6367         pointer-type alias-sets.
6368
6369 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
6370
6371         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
6372         (OBJS): Remove options.o, opts-common.o and prefix.o.
6373         (OBJS-libcommon-target): New.
6374         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
6375         (BACKEND): Include libcommon-target.a.
6376         (MOSTLYCLEANFILES): Include libcommon-target.a.
6377         (libcommon-target.a): New.
6378         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
6379         prefix.o.
6380
6381 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
6382
6383         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
6384         parts of output shared with the driver.
6385         * optc-gen.awk: Don't generate parts of output not shared with the
6386         driver.
6387         * opth-gen.awk: Remove GCC_DRIVER conditionals.
6388         * doc/options.texi (SourcerInclude): Mention options-save.c.
6389         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
6390         (OBJS): Add options-save.o.
6391         (options-save.c, options-save.o): New.
6392         (options.o): Update dependencies.
6393         (gcc-options.o): Remove.
6394         (mostlyclean): Remove options-save.c.
6395
6396 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
6397
6398         PR debug/49032
6399         * dbxout.c: Include cgraph.h.
6400         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
6401         and without value expr, return NULL if no varpool node exists for
6402         it or if it is not needed.
6403         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
6404
6405         PR c/49120
6406         * c-decl.c (start_decl): Convert expr to void_type_node.
6407
6408 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
6409
6410         PR rtl-optimization/48826
6411         * emit-rtl.c (try_split): When splitting a call that is followed
6412         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
6413
6414 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
6415
6416         * cfgexpand.c (expand_debug_expr): For unused non-addressable
6417         parameters passed in memory prefer using DECL_INCOMING_RTL over
6418         the pseudos it will be copied into.
6419
6420 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
6421
6422         PR target/47315
6423         * config/i386/i386.c (ix86_option_override_internal): Save the
6424         initial options after checking vzeroupper.
6425
6426 2011-05-23  David Li  <davidxl@google.com>
6427
6428         PR tree-optimization/48988
6429         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
6430         Initialize has_valid_pred for each pred chain.
6431
6432 2011-05-23  Richard Guenther  <rguenther@suse.de>
6433
6434         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
6435         (iterative_hash_gimple_type): Always hash type names.
6436
6437 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
6438
6439         * c-typeck.c (build_function_call_vec): Tweak call to
6440         check_function_arguments.
6441
6442 2011-05-23  Richard Guenther  <rguenther@suse.de>
6443
6444         PR tree-optimization/49115
6445         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
6446         is not necessarily carried out, do not claim it kills the ref.
6447         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
6448
6449 2011-05-23  Richard Guenther  <rguenther@suse.de>
6450
6451         PR middle-end/15419
6452         * builtins.c (fold_builtin_memory_op): Be less restrictive about
6453         what pointer types we accept for folding.
6454
6455 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6456
6457         * gthr-gnat.c: Remove.
6458         * gthr-gnat.h: Remove.
6459         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
6460         * config/t-freebsd (LIB2ADDEH): Likewise.
6461         * config/t-linux (LIB2ADDEH): Likewise.
6462         * config/t-sol2 (LIB2ADDEH): Likewise.
6463         * config/ia64/t-vms (LIB2ADDEH): Likewise.
6464         * configure.ac (target_thread_file): Remove gnat handling.
6465         * configure: Regenerate.
6466         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
6467
6468 2011-05-23  Tristan Gingold  <gingold@adacore.com>
6469             Eric Botcazou  <ebotcazou@adacore.com>
6470
6471         * gcov.c (create_file_names): If no object directory is specified,
6472         keep the directory of the file.
6473
6474 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6475
6476         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
6477         * configure: Regenerate.
6478
6479 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
6480
6481         PR middle-end/48973
6482         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
6483         failed and the comparison has a single bit signed type, use
6484         constm1_rtx instead of const1_rtx for true value.
6485         (do_store_flag): If ops->type is single bit signed type, disable
6486         signel bit test optimization and pass -1 instead of 1 as last
6487         parameter to emit_store_flag_force.
6488
6489 2011-05-23  Tom de Vries  <tom@codesourcery.com>
6490
6491         PR target/45098
6492         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
6493         function.
6494         (infer_loop_bounds_from_undefined): Use new function.
6495
6496 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
6497
6498         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
6499         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
6500         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
6501         and -O0 otherwise.
6502         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
6503
6504 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6505
6506         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
6507         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
6508         returns true.
6509
6510 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
6511
6512         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
6513
6514 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6515
6516         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
6517         UNSPEC_MOVE_PIC pattern.
6518
6519 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6520
6521         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
6522         (sparc-*-rtems*): Likewise.
6523         (sparc64-*-elf*): Likewise.
6524         (sparc64-*-rtems*): Likewise.
6525         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
6526         * config/sparc/t-crtin: New file.
6527         * config/sparc/t-sol2 (crti.o): Delete rule.
6528         (crtn.o): Likewise.
6529         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
6530         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
6531         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
6532         (ENDFILE_SPEC): Add crtn.o.
6533
6534 2011-05-22  Tom de Vries  <tom@codesourcery.com>
6535
6536         PR middle-end/48689
6537         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
6538         CODE_CONTAINS_STRUCT (TS_COMMON).
6539
6540 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
6541
6542         PR middle-end/49029
6543         * expmed.c (extract_fixed_bit_field): Test whether target can be used
6544         only after deciding which mode to use.
6545
6546 2011-05-22  Tom de Vries  <tom@codesourcery.com>
6547
6548         PR target/45098
6549         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
6550         for call to get_shiftadd_cost.
6551
6552 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
6553
6554         PR target/49104
6555         * config/i386/cpuid.h (bit_MMXEXT): New define.
6556
6557 2011-05-22  Nick Clifton  <nickc@redhat.com>
6558
6559         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
6560         initialisation of non-existant args[2] element.  Use args[] array
6561         not arg[] array to pass arguments to build_function_type_list.
6562
6563 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
6564
6565         PR tree-optimization/49087
6566         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
6567
6568 2011-05-21  Jason Merrill  <jason@redhat.com>
6569
6570         PR c++/49092
6571         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
6572         static storage duration.
6573
6574 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6575
6576         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
6577         frame pointer.
6578
6579 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6580
6581         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
6582         false if there are call-saved registers here...
6583         (sparc_can_use_return_insn_p): ...but here instead.
6584         (save_or_restore_regs): Fix thinko.
6585         (sparc_expand_prologue): Use current_function_is_leaf.
6586         (sparc_frame_pointer_required): Likewise.
6587
6588 2011-05-21  Nick Clifton  <nickc@redhat.com>
6589
6590         PR target/49098
6591         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
6592
6593 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
6594
6595         * gengtype.c (walk_type): Implemented "atomic" GTY option.
6596         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
6597
6598 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
6599
6600         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
6601         * optc-gen.awk: Move common code to opt-read.awk.
6602         * opth-gen.awk: Likewise.
6603         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
6604
6605 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
6606
6607         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
6608
6609 2011-05-20  Tom de Vries  <tom@codesourcery.com>
6610
6611         PR target/45098
6612         * tree-ssa-loop-ivopts.c: Include expmed.h.
6613         (get_shiftadd_cost): New function.
6614         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
6615
6616 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
6617
6618         PR bootstrap/49086
6619         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
6620         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
6621
6622 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
6623
6624         * Makefile.in: Update comment referring to $(OBJS-common).
6625
6626 2011-05-20  Ian Lance Taylor  <iant@google.com>
6627
6628         * godump.c (go_output_typedef): Put enum constants in the macro
6629         hash table to avoid duplicate Go const definitions.
6630
6631 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
6632
6633         * Makefile.in (LIBDEPS): Add libcommon.a.
6634         (LIBS): Likewise.
6635         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
6636         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
6637         pretty-print.o and version.o.
6638         (OBJS-libcommon): New.
6639         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
6640         (BACKEND): Add libcommon.a.
6641         (MOSTLYCLEANFILES): Likewise.
6642         (libcommon.a): New.
6643         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
6644         (cpp$(exeext)): Likewise.
6645         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
6646         pretty-print.o and input.o.
6647         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
6648         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
6649         (errors.o): Remove.
6650         (mips-tfile): Don't explicitly use version.o.
6651         (mips-tdump): Likewise.
6652         (gcov.o): Depend on $(DIAGNOSTIC_H).
6653         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
6654         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
6655         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
6656         * gcov-dump.c: Include intl.h and diagnostic.h.
6657         (main): Initialize diagnostics.
6658         * gcov.c: Include diagnostic.h.
6659         (fnotice): Remove.
6660         (main): Initialize diagnostics.
6661         * lto-wrapper.c: Include diagnostic.h.
6662         (main): Initialize diagnostics.
6663
6664 2011-05-20  Michael Matz  <matz@suse.de>
6665
6666         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
6667
6668 2011-05-20  Michael Matz  <matz@suse.de>
6669             Richard Guenther  <rguenther@suse.de>
6670
6671         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
6672         use lto_streamer_cache_append directly instead of returning a VEC.
6673         (preload_common_node): Remove.
6674         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
6675         track seen nodes.
6676         (lto_streamer_cache_create): Call lto_preload_common_nodes.
6677
6678 2011-05-20  Richard Guenther  <rguenther@suse.de>
6679
6680         PR tree-optimization/49079
6681         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
6682         MEM_REFs correctly for the trailing array access detection.
6683         Special case constants the same way as decls for overall size
6684         constraining.
6685
6686 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
6687
6688         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
6689         argument expansion.
6690
6691 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
6692
6693         PR tree-optimization/49073
6694         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
6695         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6696         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
6697
6698 2011-05-20  Richard Guenther  <rguenther@suse.de>
6699
6700         PR middle-end/48849
6701         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
6702         of pointer types the same way the middle-end does.
6703
6704 2011-05-20  Richard Guenther  <rguenther@suse.de>
6705
6706         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
6707         or pointer-to chains.  Delay all fixup to uniquify_nodes.
6708
6709 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
6710
6711         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
6712         (fma4_fmaddsub): Likewise
6713
6714 2011-05-19  Jan Hubicka  <jh@suse.cz>
6715
6716         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
6717         (GIMPLE_TYPE_PAIR_SIZE): New macro.
6718         (type_pair_cache): New static var.
6719         (lookup_type_pair): Use fixed sized custom hash; make inline.
6720         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
6721         calls of lookup_type_pair.
6722         (print_gimple_types_stats): Remove cache stats.
6723         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
6724         and gtc_ob.
6725
6726 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
6727
6728         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
6729         when TARGET_RDRND is active.
6730         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
6731         Generate dummy SImode target register when target is NULL.
6732
6733 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
6734
6735         * config/arm/arm-fpus.def: New.
6736         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
6737         arm-fpus.def.
6738         * config/arm/arm-tables.opt: Regenerate.
6739         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
6740         (arm_option_override): Don't decode FPU name to string here.
6741         * config/arm/arm.opt (mfpu=): Use Enum.
6742         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
6743         Update dependencies.
6744
6745 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
6746
6747         * collect2.c: Include diagnostic.h.
6748         (fatal_perror, fatal, error, fancy_abort): Remove.
6749         (main): Set progname.  Call xmalloc_set_program_name and
6750         diagnostic_initialize.
6751         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
6752         scan_libraries, resolve_lib_name): Call fatal_error instead of
6753         fatal and fatal_perror.
6754         * collect2.h (error, fatal, fatal_perror): Don't declare.
6755         * tlink.c: Include diagnostic-core.h.
6756         (recompile_files): Call fatal_error instead of fatal_perror.
6757         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
6758         pretty-print.o and input.o.
6759         (collect2.o, tlink.o): Update dependencies.
6760
6761 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6762
6763         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
6764
6765 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6766
6767         PR target/40483
6768         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
6769         COMDAT group syntax, both SPARC and x86 variants.
6770         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
6771         * configure: Regenerate.
6772         * config/sol2.h (TARGET_SOLARIS): Define.
6773         (PUSHSECTION_FORMAT): Remove.
6774         (SECTION_NAME_FORMAT): Define.
6775         * config/sol2.c: Include hashtab.h.
6776         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
6777         expansion, using SECTION_NAME_FORMAT.
6778         (solaris_comdat_htab): New variable.
6779         (struct comdat_entry): Define.
6780         (comdat_hash): New function.
6781         (comdat_eq): New function.
6782         (solaris_elf_asm_comdat_section): New function.
6783         (solaris_define_comdat_signature): New function.
6784         (solaris_code_end): New function.
6785         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
6786         (solaris_code_end): Declare.
6787         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
6788         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
6789         solaris_code_end.
6790         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
6791         Remove ATTRIBUTE_UNUSED.
6792         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
6793         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
6794         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
6795         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
6796         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
6797         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
6798         (PUSHSECTION_FORMAT): Remove.
6799         (SECTION_NAME_FORMAT): Redefine.
6800
6801 2011-05-19  Kai Tietz  <ktietz@redhat.com>
6802
6803         * tree-cfg.c (verify_gimple_assign_binary): Barf on
6804         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
6805         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
6806
6807 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
6808             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6809
6810         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
6811
6812 2011-05-19  Richard Guenther  <rguenther@suse.de>
6813
6814         PR middle-end/48985
6815         * tree-object-size.c (addr_object_size): If the pointed-to
6816         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
6817
6818 2011-05-19  Richard Guenther  <rguenther@suse.de>
6819
6820         * gimple.c (gimple_types_compatible_p_1): Compare names of
6821         the types themselves.
6822         (iterative_hash_gimple_type): And hash them that way.
6823         (gimple_register_type_1): If we register a main variant properly
6824         initialize the leader to ourselves.
6825
6826 2011-05-19  Tom de Vries  <tom@codesourcery.com>
6827
6828         PR target/45098
6829         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
6830         get_loop_invariant_expr_id.
6831         (get_loop_invariant_expr_id): Use get_expr_id.
6832         (parm_decl_cost): New function.
6833         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
6834         Improve bound cost estimation.  Use different inv_expr_id for elim and
6835         express cases.
6836
6837 2011-05-19  Tom de Vries  <tom@codesourcery.com>
6838
6839         PR target/45098
6840         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
6841         cost_base.cost == 0.
6842
6843 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
6844
6845         PR target/49002
6846         * config/i386/sse.md
6847         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
6848         load cast.
6849
6850 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
6851
6852         PR tree-optimization/49039
6853         * tree-vrp.c (extract_range_from_binary_expr): For
6854         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
6855         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
6856
6857 2011-05-18  Tom de Vries  <tom@codesourcery.com>
6858
6859         PR target/45098
6860         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
6861
6862 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
6863
6864         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
6865         (*tls_global_dynamic_64): Ditto.
6866         (*tls_local_dynamic_base_32_gnu): Ditto.
6867         (*tls_local_dynamic_base_64): Ditto.
6868         (tls_initial_exec_64_sun): Ditto.
6869
6870 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
6871
6872         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
6873         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
6874         bf592-none.
6875         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
6876         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
6877         * config/bfin/bfin.c (bfin_cpus): Add bf592.
6878         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
6879         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
6880         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
6881         * config/bfin/elf.h (LIB_SPEC): Add bf592.
6882
6883 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
6884
6885         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
6886         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
6887         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
6888         target_thread_pointer, arm_structure_size_boundary, struct
6889         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
6890         struct abi_name, arm_all_abis): Remove.
6891         (arm_option_override) Don't process most enumerated option values here.
6892         Don't process target_fpe_name here.  Work with integer not string for
6893         structure size boundary; use separate diagnostics for each case.
6894         * config/arm/arm.h (enum float_abi_type, enum
6895         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
6896         to arm-opts.h.
6897         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
6898         arm_structure_size_boundary): Remove.
6899         * config/arm/arm.opt (mabi=): Use Enum and Init.
6900         (arm_abi_type): New Enum and EnumValue entries.
6901         (mfloat-abi=): Use Enum and Init.
6902         (float_abi_type): New Enum and EnumValue entries.
6903         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
6904         (mfp16-format=): Use Enum and Init.
6905         (arm_fp16_format_type): New Enum and EnumValue entries.
6906         (mstructure-size-boundary=): Use UInteger and Init.
6907         (mtp=): Use Enum and Init.
6908         (arm_tp_type): New Enum and EnumValue entries.
6909
6910 2011-05-18  Richard Guenther  <rguenther@suse.de>
6911
6912         PR tree-optimization/49018
6913         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
6914         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
6915         gimple_has_side_effects.
6916
6917 2011-05-18  Richard Guenther  <rguenther@suse.de>
6918
6919         * gimple.c (gimple_register_type_1): New function, split out from ...
6920         (gimple_register_type): ... here.  Avoid infinite recursion.
6921
6922 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
6923
6924         PR tree-optimization/41881
6925         * tree-vectorizer.h (struct _loop_vec_info): Add new field
6926         reduction_chains along with a macro for its access.
6927         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
6928         (destroy_loop_vec_info): Free reduction chains.
6929         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
6930         (vect_is_slp_reduction): New function.
6931         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
6932         (vect_create_epilog_for_reduction): Support SLP reduction chains.
6933         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
6934         definition types for reduction chains.
6935         (vect_supported_load_permutation_p): Don't allow permutations for
6936         reduction chains.
6937         (vect_analyze_slp_instance): Support reduction chains.
6938         (vect_analyze_slp): Try to build SLP instance from reduction chains.
6939         (vect_get_constant_vectors):  Handle reduction chains.
6940         (vect_schedule_slp_instance): Mark the first statement of the
6941         reduction chain as reduction.
6942
6943 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
6944
6945         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
6946         names for group elements access.
6947         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
6948         reduction chains as well.  Remove data reference and interleaving
6949         related words from the fields names.
6950         * tree-vect-loop.c (vect_transform_loop): Use new names for group
6951         elements access.
6952         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
6953         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
6954         vect_update_interleaving_chain, vect_same_range_drs,
6955         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
6956         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
6957         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
6958         vect_analyze_group_access, vect_analyze_data_ref_access,
6959         vect_create_data_ref_ptr, vect_transform_strided_load,
6960         vect_record_strided_load_vectors): Likewise.
6961         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
6962         vect_model_load_cost, vectorizable_store, vectorizable_load,
6963         vect_remove_stores, new_stmt_vec_info): Likewise.
6964         * tree-vect-slp.c (vect_build_slp_tree,
6965         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
6966
6967 2011-05-18  Richard Guenther  <rguenther@suse.de>
6968
6969         PR middle-end/48989
6970         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
6971         operand verification.
6972         (verify_gimple_assign_binary): Likewise.
6973         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
6974         to non-1-precision BOOLEAN_TYPEs.
6975
6976 2011-05-18  Tom de Vries  <tom@codesourcery.com>
6977
6978         PR target/45098
6979         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
6980
6981 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
6982
6983         PR tree-optimization/49000
6984         * tree-ssa.c (execute_update_addresses_taken): Call
6985         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
6986         be rewritten and decl has been marked for renaming, reset
6987         the debug stmt.
6988
6989 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
6990
6991         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
6992         enum_opts_set when testing if attributes have set -mfpmath=.
6993
6994 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
6995
6996         * config/mips/mips.c (mips_handle_option): Remove unused variable.
6997
6998 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
6999
7000         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
7001         info->entry with 0
7002         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
7003         id.transform_lang_insert_block with NULL.
7004
7005 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
7006
7007         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
7008         (output_fp_compare): Change args 3 and 4 to bool.
7009         (ix86_expand_call): Change arg 6 to bool.
7010         (ix86_attr_length_immediate_default): Change arg 2 to bool.
7011         (ix86_attr_length_vex_default): Change arg 3 to bool.
7012         * config/i386/i386.md: Update all uses.
7013         * config/i386/i386.c: Ditto.
7014         (ix86_flags_dependent): Change return type to bool.
7015
7016 2011-05-17  Richard Guenther  <rguenther@suse.de>
7017
7018         * gimple.c (type_hash_pair_compare): Fix comparison.
7019
7020 2011-05-17  Richard Guenther  <rguenther@suse.de>
7021
7022         * gimple.c (iterative_hash_gimple_type): Simplify singleton
7023         case some more, fix final hash value of the non-singleton case.
7024
7025 2011-05-17  Richard Guenther  <rguenther@suse.de>
7026
7027         PR bootstrap/49013
7028         Revert
7029         2011-05-16  Richard Guenther  <rguenther@suse.de>
7030
7031         * gimple.c (gimple_types_compatible_p_1): Use names of the
7032         type itself, not its main variant.
7033         (iterative_hash_gimple_type): Likewise.
7034
7035 2011-05-17  Richard Guenther  <rguenther@suse.de>
7036
7037         * gimple.c (gimple_register_canonical_type): Use the main-variant
7038         leader for computing the canonical type.
7039
7040 2011-05-17  Nick Clifton  <nickc@redhat.com>
7041
7042         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
7043         moves.
7044
7045         * config/rx/rx.md: Add peephole to remove redundant extensions
7046         after loads.
7047         (bitset_in_memory): Use rx_restricted_mem_operand.
7048         (bitinvert_in_memory): Likewise.
7049         (bitclr_in_memory): Likewise.
7050
7051 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
7052             Nick Clifton  <nickc@redhat.com>
7053
7054         * config/rx/rx.md: Add peepholes to match a register move followed
7055         by a comparison of the moved register.  Replace these with an
7056         addition of zero that does both actions in one instruction.
7057
7058 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
7059
7060         PR target/48986
7061         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
7062         predicate to allow CONST_INT.
7063         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
7064
7065 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
7066
7067         * opts-common.c (opt_enum_arg_to_value): New.
7068         * opts.h (opt_enum_arg_to_value): Declare.
7069         * config/i386/i386.opt (fpmath): Remove.
7070         (mfpmath=): Use Enum, Init and Save.
7071         (fpmath_unit): New Enum and EnumValue entries.
7072         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
7073         name for function fpmath state.
7074         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
7075         * config/i386/i386.c: Include diagnostic.h.
7076         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
7077         (ix86_target_string): Take enum fpmath_unit value instead of string.
7078         (ix86_debug_options): Update call to ix86_target_string.
7079         (ix86_option_override_internal): Don't process fpmath strings here.
7080         (x86_function_specific_save, ix86_function_specific_restore):
7081         Don't handle fpmath state specially.
7082         (ix86_function_specific_print): Pass fpmath state to
7083         ix86_target_string instead of printing in this function.
7084         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
7085         Handle enum attributes.
7086         (IX86_ATTR_ENUM, ix86_opt_enum): New.
7087         (ix86_valid_target_attribute_tree): Update option_strings
7088         handling.  Handle fpmath as enum option.
7089         (ix86_can_inline_p): Update field names for function fpmath state.
7090         (ix86_expand_builtin): Update call to ix86_target_string.
7091         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
7092         (ix86_fpmath): Remove.
7093         * config/i386/t-i386 (i386.o): Update dependencies.
7094
7095 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
7096
7097         PR preprocessor/48677
7098         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
7099         from decoded_options[0], not from itself.
7100
7101 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
7102
7103         * config/i386/constraints.md (z): New constraint.
7104         * config/i386/i386.c (c): New mode attribute.
7105         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
7106         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
7107         constraint for operand 0.
7108         (*call_vzeroupper): Ditto.
7109         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
7110         (*call_rex64_ms_sysv_vzeroupper): Ditto.
7111         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
7112         Use "lzm" constraint for operand 0.
7113         (*call_pop_vzeroupper): Ditto.
7114         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
7115         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
7116         constraint for operand 0.
7117         (*sibcall_vzeroupper): Ditto.
7118         (*sibcall_rex64_ms_sysv): Ditto.
7119         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
7120         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
7121         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
7122         (*sibcall_pop_vzeroupper): Ditto.
7123         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
7124         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
7125         mode iterator.  Use "<c>zm" constraint for operand 1.
7126         (*call_value_vzeroupper): Ditto.
7127         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
7128         for operand 1.
7129         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
7130         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
7131         *call_value_pop_1.  Use "lzm" constraint for operand 1.
7132         (*call_value_pop_vzeroupper): Ditto.
7133         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
7134         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
7135         mode iterator.  Use "Uz" constraint for operand 1.
7136         (*sibcall_value_vzeroupper): Ditto.
7137         (*sibcall_value_rex64_ms_sysv): Ditto.
7138         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
7139         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
7140         constraint for operand 1.
7141         (*sibcall_value_pop_vzeroupper): Ditto.
7142         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
7143         and "z" constraint for operand 2.
7144         (*tls_global_dynamic_32_gnu): Ditto.
7145         (*tls_local_dynamic_base_32_gnu): Ditto.
7146         (*tls_local_dynamic_base_64): Ditto.
7147         (*tls_local_dynamic_32_once): Ditto.
7148         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
7149         Update all callers.
7150         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
7151
7152 2011-05-16  Richard Guenther  <rguenther@suse.de>
7153
7154         * gimple.c (gimple_types_compatible_p_1): Use names of the
7155         type itself, not its main variant.
7156         (iterative_hash_gimple_type): Likewise.
7157
7158 2011-05-16  Richard Guenther  <rguenther@suse.de>
7159
7160         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
7161         always visit pointer target and function result and argument types.
7162
7163 2011-05-16  Jason Merrill  <jason@redhat.com>
7164
7165         PR c++/48999
7166         * tree-inline.c (copy_statement_list): Put back recursion.
7167
7168 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
7169
7170         PR target/27663
7171         PR target/41076
7172         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
7173         * config/avr/avr.md ("*ior<mode>qi.byte0",
7174         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
7175
7176 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
7177
7178         PR target/45099
7179         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
7180         register is needed for a function argument.
7181
7182 2011-05-16  Richard Guenther  <rguenther@suse.de>
7183
7184         * gimple.c (struct type_hash_pair): New type.
7185         (type_hash_pair_compare): New function.
7186         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
7187
7188 2011-05-16  Revital Eres  <revital.eres@linaro.org>
7189
7190         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
7191
7192 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
7193
7194         * config/i386/i386.md (floating point move splitters): Fix
7195         usage of standard_80387_constant_p.
7196         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
7197
7198 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
7199
7200         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
7201
7202 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
7203
7204         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
7205         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
7206         (tree_ssa_lim_finalize): Likewise.
7207
7208 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
7209
7210         * config/i386/constraint.md (Yd, Yx): New register constraints.
7211         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
7212         Yd conditional register constraint.
7213         (*movtf_internal): Use standard_sse_constant_opcode.
7214         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
7215         Yx conditional register constraint.
7216         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
7217         Yd conditional register constraint.  Use standard_sse_constant_p to
7218         check for valid SSE constants and call standard_sse_constant_opcode to
7219         output SSE insn.
7220         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
7221         constants and call standard_sse_constant_opcode to output SSE insn.
7222         * config/i386/i386.c (ix86_option_ovverride_internal): Set
7223         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
7224         optimize_size is set.
7225         (standard_sse_constant_opcode): Output conditional AVX insn templates.
7226
7227 2011-05-14  Tobias Burnus  <burnus@net-b.de>
7228
7229         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
7230
7231 2011-05-13  Martin Jambor  <mjambor@suse.cz>
7232
7233         * ipa-prop.c (ipa_cst_from_jfunc): New function.
7234         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
7235         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
7236         (evaluate_conditions_for_ipcp_clone): Removed.
7237         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
7238         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
7239         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
7240
7241 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
7242
7243         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
7244         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
7245         lieu of MAY_HAVE_DEBUG_STMTS.
7246         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
7247         debug statements if !MAY_HAVE_DEBUG_STMTS.
7248
7249 2011-05-13  Martin Thuresson  <martint@google.com>
7250
7251         PR gcov-profile/47793
7252         * libgcov.c (gcov_exit): Support relative profile paths.
7253         * doc/invoke.texi (-fprofile-dir): Update for above change.
7254
7255 2011-05-13  Richard Guenther  <rguenther@suse.de>
7256
7257         * gimple.c (gimple_canonical_types_compatible_p): Do not use
7258         type-pair caching, do not compare hashes.
7259
7260 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
7261
7262         PR middle-end/48965
7263         * tree-cfg.c (edge_to_cases_cleanup): Return true.
7264         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
7265
7266 2011-05-13  Kai Tietz  <ktietz@redhat.com>
7267
7268         * gimplify.c (gimplify_expr): Make sure operand is boolified.
7269         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
7270         compatible type for TRUTH_NOT_EXPR.
7271
7272 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
7273
7274         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
7275         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
7276         can_create_pseudo_p ().
7277
7278 2011-05-13  Richard Guenther  <rguenther@suse.de>
7279
7280         PR lto/48978
7281         * gimple.c (iterative_hash_gimple_type): Revert change in
7282         pointer target and function result and argument hashing.
7283
7284 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
7285
7286         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
7287         (*movxf_internal_nointeger): Ditto.
7288         (*movdf_internal_rex64): Ditto.
7289         (*movdf_internal): Ditto.
7290         (*movdf_internal_nointeger): Ditto.
7291         (*movsf_internal): Ditto.
7292         (sincos splitters): Use can_create_pseudo ().
7293
7294 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
7295
7296         * config/i386/i386-opts.h: New.
7297         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
7298         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
7299         ix86_section_threshold): Remove.
7300         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
7301         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
7302         OPT_mbranch_cost_.
7303         (ix86_option_override_internal): Don't decode strings for options
7304         other than -march=, -mtune= and -mfpmath=.  Don't allow for
7305         __attribute__ uses in remaining diagnostics for options with
7306         string arguments.  Don't check for integer arguments being negative.
7307         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
7308         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7309         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
7310         ix86_branch_cost, ix86_section_threshold): Remove.
7311         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
7312         HeaderInclude.
7313         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
7314         but not Var.
7315         (masm=): Use Enum and Init.
7316         (asm_dialect): New Enum and EnumValue entries.
7317         (mbranch-cost=): Use UInteger.
7318         (mlarge-data-threshold=): Use UInteger and Init.
7319         (mcmodel=): Use Enum and Init.
7320         (cmodel): New Enum and EnumValue entries.
7321         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
7322         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
7323         mregparm=): Use UInteger.
7324         (mstringop-strategy=): Use Enum and Init.
7325         (stringop_alg): New Enum and EnumValue entries.
7326         (mtls-dialect=): Use Enum and Init.
7327         (tls_dialect): New Enum and EnumValue entries.
7328         (mabi=): Use Enum and Init.
7329         (calling_abi): New Enum and EnumValue entries.
7330         (mveclibabi=): Use Enum and Init.
7331         (ix86_veclibabi): New Enum and EnumValue entries.
7332
7333 2011-05-13  Nick Clifton  <nickc@redhat.com>
7334
7335         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
7336         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
7337
7338 2011-05-13  Kai Tietz  <ktietz@redhat.com>
7339
7340         PR middle-end/48984
7341         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
7342         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
7343         (gimple_boolify): Check for cast for boolean_type_node instead for
7344         BOOLEAN_TYPE.
7345
7346 2011-05-13  Richard Guenther  <rguenther@suse.de>
7347
7348         PR tree-optimization/48172
7349         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
7350         multiplying by number of iterations for equal step.
7351         (vect_create_cond_for_alias_checks): Likewise.
7352
7353 2011-05-13  Andreas Schwab  <schwab@redhat.com>
7354
7355         * configure.ac: Use AS_HELP_STRING throughout.
7356         * configure: Regenerate.
7357
7358 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
7359
7360         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
7361         (ix86_emit_restore_regs_using_mov): Likewise.
7362         (ix86_emit_restore_sse_regs_using_mov): Likewise.
7363
7364 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
7365
7366         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
7367         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
7368         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
7369         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
7370         RTX_OK_FOR_OLO10_P): ...here.
7371         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
7372         SYMBOLIC_CONST.
7373
7374 2011-05-12  Kai Tietz  <ktietz@redhat.com>
7375
7376         * gimplify.c (gimple_boolify): Re-boolify expression
7377         arguments even if expression type is of kind BOOLEAN_TYPE.
7378         (gimplify_boolean_expr): Removed.
7379         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
7380         and XOR. Additional take care that we keep expression's type.
7381         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
7382         of TRUTH_AND|OR|XOR_EXPR.
7383
7384 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
7385
7386         PR tree-optimization/48975
7387         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
7388         on all bbs here and free and clear ifc_bbs at the end.
7389
7390 2011-05-12  Richard Guenther  <rguenther@suse.de>
7391
7392         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
7393         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
7394         until after simple checks.
7395         (gimple_types_compatible_p): Likewise.
7396         (iterative_hash_gimple_type): Always hash pointer targets
7397         and function return and argument types.
7398         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
7399         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
7400         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
7401         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
7402         completely in the simple compare section.
7403         (gimple_register_canonical_type): Query the cache again after
7404         registering.
7405
7406 2011-05-12  Richard Guenther  <rguenther@suse.de>
7407
7408         PR tree-optimization/48172
7409         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
7410         the number of iterations from the segment size calculation.
7411         (vect_create_cond_for_alias_checks): Adjust.
7412
7413 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
7414
7415         PR debug/48967
7416         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
7417         if validate_subreg fails.
7418
7419 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
7420
7421         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
7422         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
7423         early.
7424
7425 2011-05-12  DJ Delorie  <dj@redhat.com>
7426
7427         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
7428         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
7429         created builtin into rx_builtins array.
7430         (rx_builtin_decl): New function.
7431         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
7432
7433 2011-05-12  DJ Delorie  <dj@redhat.com>
7434             Nick Clifton  <nickc@redhat.com>
7435
7436         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
7437         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
7438         (rx_is_legitimate_address): Add pre-decrement and post-increment
7439         addressing in HImode and QImode.  Fix test for out of range
7440         REG+INT addressing.
7441         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
7442         (rx_align_for_label): Test label before extracting its usage count.
7443         (rx_adjust_insn_lengths): Fix selection of insn codes.
7444         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
7445
7446 2011-05-11  Jason Merrill  <jason@redhat.com>
7447
7448         * tree.c (type_hash_canon): Use struct tree_type_non_common.
7449
7450 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
7451
7452         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
7453         reindent the subsequent block.
7454
7455 2011-05-11  Satoru Takabayashi  <satorux@google.com>
7456             Paul Pluzhnikov  <ppluzhnikov@google.com>
7457
7458         * doc/install.texi (Configuration): Document --with-linker-hash-style.
7459         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
7460         * config.in: Add LINKER_HASH_STYLE.
7461         * configure.ac: Add --with-linker-hash-style.
7462         * configure: Regenerate.
7463
7464 2011-05-11  Richard Guenther  <rguenther@suse.de>
7465
7466         PR middle-end/48964
7467         * gimple.c (iterative_hash_canonical_type): Fix typo.
7468
7469 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
7470
7471         * config/i386/i386.c (legitimize_tls_address)
7472         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
7473         expanders directly for TARGET_GNU2_TLS.  Determine pic and
7474         __tls_get_addr symbol reference here.  Update call to
7475         gen_tls_global_dynamic_{32,64} for added arguments.
7476         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
7477         expanders directly for TARGET_GNU2_TLS.  Determine
7478         __tls_get_addr symbol reference here.  Update call to
7479         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
7480         unique UNSPEC REG_EQUIV to libcall block.
7481         (ix86_tls_get_addr): Declare static.
7482         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
7483         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
7484         Do not determine pic and __tls_get_addr symbol reference here. Do not
7485         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
7486         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
7487         (tls_global_dynamic_64): Add operand 2.  Do not determine
7488         __tls_get_addr symbol reference here.  Do not call
7489         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
7490         (tls_local_dynamic_base64): Ditto for operand 1.
7491
7492 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
7493
7494         * function.c (expand_function_start): Initialize stack_check_probe_note
7495         only if the generic stack checking mechanism is used.
7496
7497 2011-05-11  Richard Guenther  <rguenther@suse.de>
7498
7499         PR tree-optimization/15256
7500         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
7501         (A & B) | C, combine (A op CST1) op CST2.
7502         (tree_ssa_forward_propagate_single_use_vars): Only bother to
7503         visit assigns that have uses.
7504
7505 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
7506
7507         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
7508         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
7509         (unpack_ts_type_common_value_fields): ...this.  Update comment.
7510         (unpack_value_fields): Adjust for renaming.
7511         (lto_input_ts_type_tree_pointers): Split into...
7512         (lto_input_ts_type_common_tree_pointer): ...this and...
7513         (lto_input_ts_type_non_common_tree_pointers): ...this.
7514         (lto_input_tree_pointers): Adjust for above split.
7515         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
7516         (pack_ts_type_common_value_fields): ...this.  Update comment.
7517         (lto_output_ts_type_tree_pointers): Split into...
7518         (lto_output_ts_type_common_tree_pointers): ...this and...
7519         (lto_output_ts_type_non_common_tree_pointers): ...this.
7520         (lto_output_tree_pointers): Adjust for above split.
7521         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
7522         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
7523         * stor-layout.c (vector_type_mode): Adjust location of mode field.
7524         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
7525         Define.
7526         (struct tree_type): Split into...
7527         (struct tree_type_common: ...this and...
7528         (struct tree_type_with_lang_specific): ...this and...
7529         (struct tree_type_non_common): ...this.  Adjust accessor macros
7530         accordingly.
7531         (TYPE_VALUES_RAW): Define.
7532         (union tree_node): Update for above changes.
7533         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
7534         TS_TYPE_NON_COMMON.
7535         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
7536         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
7537         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
7538         * treestructu.def (TS_TYPE): Remove.
7539         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
7540         Define.
7541
7542 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
7543
7544         PR debug/48159
7545         * tree-ssa.c (reset_debug_uses): New function.
7546         * tree-flow.h (reset_debug_uses): New prototype.
7547         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
7548         * tree-loop-distribution.c (generate_loops_for_partition): Call
7549         reset_debug_uses on the stmts that will be removed.  Keep around
7550         all debug stmts, don't count them as bits in partition bitmap.
7551         (generate_builtin): Don't count debug stmts or labels as bits in
7552         partition bitmap.
7553
7554 2011-05-11  Richard Guenther  <rguenther@suse.de>
7555
7556         * gimple.c (gimple_type_hash_1): Merge with ...
7557         (gimple_type_hash): ... this.
7558         (gtc_visit): Remove mode parameter and simplify accordingly.
7559         (gimple_types_compatible_p_1): Likewise.
7560         (gimple_types_compatible_p): Likewise.
7561         (iterative_hash_gimple_type): Likewise.
7562         (visit): Likewise.
7563         (gimple_type_eq): Adjust.
7564
7565 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7566
7567         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
7568         enters the branch create an anti edge in the opposite direction
7569         to prevent the creation of reg-moves.
7570         * modulo-sched.c: Adjust comment to reflect the fact we are
7571         scheduling closing branch.
7572         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
7573         (stage_count): New field in struct partial_schedule.
7574         (calculate_stage_count): New function.
7575         (normalize_sched_times): Rename to reset_sched_times and handle
7576         incrementing the sched time of the nodes by a constant value
7577         passed as parameter.
7578         (duplicate_insns_of_cycles): Skip closing branch.
7579         (sms_schedule_by_order): Schedule closing branch.
7580         (ps_insn_find_column): Handle closing branch.
7581         (sms_schedule): Call reset_sched_times and adjust the code to
7582         support scheduling of the closing branch.
7583         (ps_insert_empty_row): Update calls to normalize_sched_times
7584         and rotate_partial_schedule functions.
7585
7586 2011-05-11  Richard Guenther  <rguenther@suse.de>
7587
7588         PR middle-end/48953
7589         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
7590
7591 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
7592
7593         * opts.c (finish_options): Move warning settings from process_options.
7594         * toplev.c (process_options): Move warning settings to finish_options.
7595
7596 2011-05-11  Richard Guenther  <rguenther@suse.de>
7597
7598         PR tree-optimization/18041
7599         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
7600         (simplify_bitwise_binary): ... this.  Handle operand conversions
7601         by applying them to the result instead.
7602         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
7603
7604 2011-05-11  Richard Guenther  <rguenther@suse.de>
7605
7606         * gimple.c (gimple_canonical_types_compatible_p): Split out
7607         from gimple_types_compatible_p and friends.  Do not recurse
7608         to pointed-to types.
7609         (gimple_canonical_type_eq): Use it.
7610         (iterative_hash_canonical_type): Split out from
7611         iterative_hash_gimple_type and friends.  Do not recurse
7612         to pointed-to types.
7613         (gimple_canonical_type_hash): Use it, allocate the hash here.
7614
7615 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7616
7617         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
7618         recognizing doloop.
7619
7620 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7621
7622         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
7623         instead of PREV_INSN.
7624
7625 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7626
7627         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
7628         * loop-doloop.c (doloop_condition_get): Likewise.
7629         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
7630         (doloop_end): New.
7631         * config/arm/arm.md (*addsi3_compare0): Remove "*".
7632
7633 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
7634
7635         * tree.def (CASE_LABEL_EXPR): Add an operand.
7636         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
7637
7638 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7639
7640         * c-decl.c (c_override_global_bindings_to_false): Remove.
7641         (global_bindings_p): Don't check
7642         c_override_global_bindings_to_false.
7643         * c-tree.h (c_override_global_bindings_to_false): Remove.
7644         * c-typeck.c (composite_type): Don't set
7645         c_override_global_bindings_to_false.
7646
7647 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
7648
7649         PR target/48857, 48495
7650         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
7651         (VSX_MODE): Ditto.
7652         (VSX_MOVE_MODE): Ditto.
7653         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
7654         VSX vector types.  Add V2DImode.
7655         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
7656         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
7657         (MODES_TIEABLE_P): Ditto.
7658
7659         * config/rs6000/rs6000.c (rs6000_emit_move): Use
7660         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
7661         VSX_VECTOR_MODE.
7662         (init_cumulative_args): Ditto.
7663         (rs6000_function_arg_boundary): Ditto.
7664         (rs6000_function_arg_advance_1): Ditto.
7665         (rs6000_function_arg): Ditto.
7666         (rs6000_function_ok_for_sibcall): Ditto.
7667         (emit_frame_save): Ditto.
7668         (rs6000_function_value): Ditto.
7669         (rs6000_libcall_value): Ditto.
7670
7671 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7672
7673         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7674         i386/darwin-lib.h to $libgcc_tm_file.
7675         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
7676
7677 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7678
7679         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
7680
7681 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7682
7683         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
7684         * config/rs6000/rs6000-tables.opt: New file (generated).
7685         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
7686         rs6000/rs6000-tables.opt to extra_options.
7687         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
7688         * config/rs6000/rs6000.c (rs6000_select): Remove.
7689         (processor_target_table): Move contents to rs6000-cpus.def.
7690         (darwin_rs6000_override_options): Check
7691         global_options_set.x_rs6000_cpu_index instead of
7692         rs6000_select[1].string.
7693         (rs6000_option_override_internal): Likewise.
7694         (rs6000_handle_option): Don't assert that global structures are in
7695         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
7696         (rs6000_default_cpu): New variable.
7697         (rs6000_file_start): Set it instead of local default_cpu.  Check
7698         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
7699         global_options_set.x_rs6000_tune_index instead of rs6000_select.
7700         (rs6000_darwin_file_start): Check rs6000_default_cpu and
7701         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
7702         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
7703         rs6000_select): Remove.
7704         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
7705         Remove.
7706         (mcpu=, mtune=): Use Var, Init, Enum and Save.
7707         * config/rs6000/t-rs6000
7708         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
7709         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7710         global_options_set.x_rs6000_cpu_index instead of
7711         rs6000_select[1].string.
7712         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7713         global_options_set.x_rs6000_cpu_index instead of
7714         rs6000_select[1].string.
7715
7716 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7717
7718         * config.gcc (libgcc_tm_file): Define instead of including files
7719         from ../../libgcc/config/ in tm_file.
7720         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
7721         * configure: Regenerate.
7722         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
7723         libgcc_tm.h, cs-libgcc_tm.h): New.
7724         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
7725         (clean): Remove libgcc_tm.h.
7726         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
7727         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
7728         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
7729
7730 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
7731
7732         PR target/48896
7733         * config/avr/avr.c (avr_ret_register): Return unsigned int
7734         instead of int.
7735         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
7736         it to avr_libcall_value.
7737         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
7738         expand_expr.
7739         (avr_expand_binop_builtin): Ditto.
7740         (avr_expand_unop_builtin): Ditto.
7741
7742 2011-05-10  DJ Delorie  <dj@redhat.com>
7743
7744         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
7745         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
7746         * config/rx/rx.c (rx_align_for_label): Add label and
7747         uses_threshold parameters.  Do not align when the label is not
7748         used enough.
7749         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
7750
7751 2011-05-10  Richard Guenther  <rguenther@suse.de>
7752
7753         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
7754         a series of conversions and apply foldings similar to what
7755         fold-const does.
7756         (tree_ssa_forward_propagate_single_use_vars): Call it.
7757
7758 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
7759
7760         PR tree-optimization/48611
7761         PR tree-optimization/48794
7762         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
7763         referenced from RESX or EH_DISPATCH arguments.
7764
7765         PR debug/48928
7766         * dfp.c (decimal_to_decnumber): Handle conversion from
7767         dconst{1,2,m1,half}.
7768
7769 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7770
7771         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
7772         for !flag_prefer_avx128.
7773         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
7774
7775 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7776
7777         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
7778         (fold_ternary_loc): Use expr_location_or.
7779
7780 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7781
7782         PR debug/48853
7783         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
7784         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
7785         Pmode and mem_mode is not VOIDmode.
7786
7787 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
7788
7789         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
7790         TYPE_QUAL_RESTRICT): Convert to enum.
7791
7792 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7793
7794         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
7795         (const_pow2_1_to_8_operand): Ditto.
7796         (const_pow2_1_to_128_operand): Ditto.
7797         (const_pow2_1_to_32768_operand): Ditto.
7798         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
7799         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
7800         in insn constraint to check integer value of operand 3.
7801         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
7802
7803         (PINSR_MODE): New mode iterator.
7804         (sse2p4_1): New mode attribute.
7805         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
7806         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
7807         iterator.  Use const_int_operand instead of
7808         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
7809         exact_log2 in insn constraint to check integer value of operand 3.
7810
7811 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7812
7813         * config/i386/sse.md (blendbits): Remove mode attribute.
7814         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
7815         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
7816         Check integer value of operand 3 in insn constraint.
7817
7818 2011-05-09  Richard Guenther  <rguenther@suse.de>
7819
7820         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
7821         for diagnostics.
7822         (lto_symtab_merge): Likewise.  Do not register types here.
7823         (lto_symtab_merge_decls_2): Likewise.
7824         (lto_symtab_merge_decls_1): Likewise.
7825         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
7826         * gimple.c (enum gtc_mode): Declare.
7827         (gimple_types_compatible_p): Make static.
7828
7829 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7830
7831         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
7832         temporary register to match Pmode.
7833
7834 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7835
7836         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
7837         and *vec_concatv4si_1_avx.
7838
7839 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7840
7841         PR rtl-optimization/48927
7842         * ira-conflicts.c (commutative_constraint_p): Use
7843         recog_data.alternative_enabled_p to disable alternatives where
7844         "enabled" attribute is false.
7845         (get_dup_num): Ditto.
7846         * ira-lives.c (single_reg_class): Ditto.
7847         (ira_implicitly_set_insn_hard_regs): Ditto.
7848
7849 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7850
7851         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
7852         (dataflow_set_preserve_mem_locs): Likewise.
7853
7854 2011-05-09  Philipp Thomas  <pth@suse.de>
7855
7856         * config/mep/mep.c (mep_validate_vliw): Syntax description
7857         should not be translated.
7858
7859 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
7860
7861         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
7862         * config/mips/mips-tables.opt: New file (generated).
7863         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
7864         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
7865         MIPS_ARCH_OPTION_NATIVE): Define.
7866         * config/mips/mips.c (mips_cpu_info_table): Move contents to
7867         mips-cpus.def.
7868         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
7869         mips_parse_cpu): Remove.
7870         (mips_cpu_info_from_opt, mips_default_arch): New.
7871         (mips_handle_option): Don't assert that global structures are in
7872         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
7873         (mips_option_override): Use new variables and functions to set
7874         state of these options.  Use strcmp to check for individual CPU names.
7875         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
7876         definition.
7877         * config/mips/mips.opt (march=): Use ToLower and Enum.
7878         (mips): Use ToLower, Enum and Var.
7879         (mtune=): Use ToLower and Enum.
7880         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
7881
7882 2011-05-08  Jan Hubicka  <jh@suse.cz>
7883
7884         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
7885         Arrange type pairs to be UID ordered.
7886         (gimple_lookup_type_leader): Make inline.
7887
7888 2011-05-09  Nick Clifton  <nickc@redhat.com>
7889
7890         PR target/48899
7891         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
7892         PROCESSOR_DEFAULT.
7893
7894         PR target/48897
7895         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
7896         variable 's'.
7897
7898 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
7899
7900         * combine.c (simplify_comparison): Abstract out parts into...
7901         (simplify_compare_const): ... new function.
7902         (try_combine): Generalize parallel arithmetic/compare combining
7903         to call simplify_compare_const() and CANONICALIZE_COMPARE().
7904
7905 2011-05-08  Jan Hubicka  <jh@suse.cz>
7906
7907         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
7908         (cgraph_create_virtual_clone): Call hooks once virtual clone
7909         is finished.
7910         * cgraph.h (cgraph_clone_node): Update prototype.
7911         * ipa-cp.c (ipcp_estimate_growth): Use
7912         estimate_ipcp_clone_size_and_time.
7913         * ipa-inline-transform.c (clone_inlined_nodes): Update.
7914         * lto-cgraph.c (input_node): Update.
7915         * ipa-inline.c (recursive_inlining): Update.
7916         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
7917         (evaluate_conditions_for_known_args): Break out from ...
7918         (evaluate_conditions_for_edge): ... here.
7919         (evaluate_conditions_for_ipcp_clone): New function.
7920         (inline_node_duplication_hook): Update clone summary based
7921         on parameter map.
7922         (estimate_callee_size_and_time): Rename to ...
7923         (estimate_node_size_and_time): take NODE instead of EDGE;
7924         take POSSIBLE_TRUTHS as argument.
7925         (estimate_callee_size_and_time): Update.
7926         (estimate_ipcp_clone_size_and_time): New function.
7927         (do_estimate_edge_time): Update.
7928
7929 2011-05-08  Richard Guenther  <rguenther@suse.de>
7930
7931         PR middle-end/48908
7932         PR middle-end/48905
7933         * expmed.c (expand_shift_1): Compute adjusted constant shift
7934         amount manually.
7935
7936 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7937
7938         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
7939
7940 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7941
7942         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
7943
7944 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
7945
7946         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
7947
7948 2011-05-07  Jan Hubicka  <jh@suse.cz>
7949
7950         * ipa-inline-transform.c (inline_call): Account when program size
7951         decreases.
7952         * ipa-inline.c (relative_time_benefit): New function.
7953         (edge_badness): Reorganize to be power 2 based; fix thinko when
7954         computing badness for negative growth; update comments to match
7955         reality; better dumps.
7956
7957 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
7958
7959         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
7960         type to bool and adjust comment.
7961         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
7962         (fold_mathfn_compare): Remove calls to global_bindings_p.
7963         (fold_inf_compare): Likewise.
7964         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
7965         * c-tree.h (global_bindings_p): Adjust prototype.
7966         * c-decl.c (global_bindings_p): Return bool and simplify.
7967
7968 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
7969
7970         PR tree-optimization/48837
7971         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
7972         when accumulator transformation is performed.
7973
7974 2011-05-06  Jan Hubicka  <jh@suse.cz>
7975
7976         * i386.h (ix86_tune_indices): Add
7977         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
7978         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
7979         * i386.c (initial_ix86_tune_features): Add
7980         X86_SOFTARE_PREFETCHING_BENEFICIAL.
7981         (software_prefetching_beneficial_p): Remove predicate.
7982         (ix86_option_override_internal): Use new macro.
7983
7984 2011-05-06  Jan Hubicka  <jh@suse.cz>
7985
7986         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
7987
7988 2011-05-06  Jan Hubicka  <jh@suse.cz>
7989
7990         * cgraph.c (cgraph_add_thunk): Create real function node instead
7991         of alias node; finalize it and mark needed/reachale; arrange visibility
7992         to be right and add it into the corresponding same comdat group list.
7993         (dump_cgraph_node): Dump thunks.
7994         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
7995         cgraph_function_with_gimple_body_p,
7996         cgraph_first_function_with_gimple_body,
7997         cgraph_next_function_with_gimple_body): New functions.
7998         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
7999         New macros.
8000         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
8001         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
8002         * cgraphunit.c (cgraph_finalize_function): Only look into possible
8003         devirtualization when optimizing.
8004         (verify_cgraph_node): Verify thunks.
8005         (cgraph_analyze_function): Analyze thunks.
8006         (cgraph_mark_functions_to_output): Output thunks only in combination
8007         with function they are assigned to.
8008         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
8009         alias into normal node.
8010         (assemble_thunks): New functoin.
8011         (cgraph_expand_function): Use it.
8012         * lto-cgraph.c (lto_output_node): Stream thunks.
8013         (input_overwrite_node): Stream in thunks.
8014         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
8015         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
8016         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
8017         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
8018         (inline_analyze_function): Do not care about thunk jump functions.
8019         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
8020         * ipa-prop.c (ipa_prop_write_jump_functions): Use
8021         cgraph_function_with_gimple_body_p.
8022         * passes.c (do_per_function_toporder): Use
8023         cgraph_function_with_gimple_body_p.
8024         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
8025         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
8026         (function_called_by_processed_nodes_p): Likewise.
8027
8028 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
8029
8030         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
8031         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
8032         entries.
8033         (mabi=): Replace with separate entries for mabi=altivec,
8034         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
8035         mabi=ieeelongdouble and mabi=ibmlongdouble.
8036         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
8037         check for -mabi=spe without SPE ABI support here.
8038         (rs6000_handle_option): Replace OPT_mabi_ handling with
8039         OPT_mabi_altivec and OPT_mabi_spe handling.
8040
8041 2011-05-06  Cary Coutant  <ccoutant@google.com>
8042
8043         * dwarf2out.c (contains_subprogram_definition): New function.
8044         (should_move_die_to_comdat): Call it.
8045
8046 2011-05-06  Jeff Law  <law@redhat.com>
8047
8048         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
8049         remove_ctrl_stmt_and_useless_edges.
8050         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
8051         (fixup_template_block, thread_single_edge): Likewise.
8052         (mark_threaded_blocks): Use THREAD_TARGET.
8053
8054 2011-05-06  Alan Modra  <amodra@gmail.com>
8055
8056         PR target/48900
8057         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
8058         const0_rtx as the arg to the dummy __tls_get_addr libcall.
8059
8060 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
8061
8062         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
8063         constraint modifier to "r".
8064
8065 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
8066
8067         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
8068         fall through for OPT_mcmodel_.
8069
8070 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8071
8072         * config/s390/s390.c (s390_asm_trampoline_template): Comment
8073         instruction sizes.
8074         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
8075
8076 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8077
8078         PR target/47930
8079         * config/arm/arm.opt (marm): Document it.
8080         (mthumb): Reject negative variant.
8081
8082 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
8083
8084         PR target/48898
8085         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
8086         Fix typo in "ccvt" variable name.
8087
8088 2011-05-06  Tristan Gingold  <gingold@adacore.com>
8089
8090         PR target/48895
8091         * config/vms/vms-ar.c (main): Remove cwd variable.
8092
8093 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
8094
8095         PR debug/48902
8096         * var-tracking.c (prepare_call_arguments): Move else before #endif.
8097
8098 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
8099
8100         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
8101         * gimplify.c (gimplify_switch_expr): Likewise.
8102         * omp-low.c (expand_omp_sections): Likewise.
8103         * tree-eh.c (lower_try_finally_switch): Likewise.
8104         (lower_eh_dispatch): Likewise.
8105         * tree.h (build_case_label): Declare.
8106         * tree.c (build_case_label): Define.
8107
8108 2011-05-05  Jason Merrill  <jason@redhat.com>
8109
8110         PR c++/40975
8111         * tree-inline.c (copy_tree_r): Use copy_statement_list.
8112         (copy_statement_list): Don't recurse.
8113         * stor-layout.c (copy_self_referential_tree_r): Don't allow
8114         STATEMENT_LIST.
8115
8116 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
8117
8118         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
8119         through from -mfpu= handling.
8120         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
8121
8122 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
8123
8124         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
8125         POST_MODIFY.
8126
8127 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
8128
8129         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
8130         for 11.31.
8131         (hppa[12]*-*-hpux11*): Ditto.
8132         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
8133         * config/ia64/hpux-unix2003.h: New.
8134         * config/pa/pa-hpux1131.opt: New.
8135         * config/pa/pa-hpux1131.h: New.
8136         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
8137         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
8138         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
8139
8140 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
8141
8142         PR debug/48853
8143         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
8144         instead of mode as 3rd argument to recursive call.
8145         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
8146         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
8147         VOIDmode.
8148         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
8149         don't give up if mode is Pmode and mem_mode is not VOIDmode.
8150         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
8151         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
8152
8153 2011-05-05  Julian Brown  <julian@codesourcery.com>
8154
8155         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
8156         parenthesis in D-register case.
8157
8158 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
8159
8160         * opt-functions.awk (var_type_struct): Handle Enum options.
8161         * optc-gen.awk: Don't check range of variables of character type.
8162         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
8163         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
8164         rs6000_sdata_name, rs6000_explicit_options): Remove.
8165         (rs6000_option_override_internal): Check for -malign-power here.
8166         Use global_options_set instead of rs6000_explicit_options.
8167         (rs6000_parse_fpu_option): Remove.
8168         (rs6000_handle_option): Access variables via opts and opts_set
8169         pointers.  Use error_at and warning_at.  Add fall-through
8170         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
8171         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
8172         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
8173         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
8174         here.  Don't use rs6000_parse_fpu_option.
8175         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
8176         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
8177         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
8178         (mrecip=): Use Var.
8179         (mspe): Use Var and Save.
8180         (mtraceback=): Use Enum and Var.
8181         (rs6000_traceback_type): New Enum and EnumValue entries.
8182         (mfloat-gprs=): Use Enum, Var and Save.
8183         (rs6000_float_gprs): New Enum and EnumValue entries.
8184         (mlong-double-): use Var and Save.
8185         (msched-costly-dep=, minsert-sched-nops=): Use Var.
8186         (malign-): Use Enum and Var.
8187         (rs6000_alignment_flags): New Enum and EnumValue entries.
8188         (mfpu=): Use Enum.
8189         (fpu_type_t): New Enum and EnumValue entries.
8190         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8191         global_options_set instead of rs6000_explicit_options.
8192         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8193         global_options_set instead of rs6000_explicit_options.
8194         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8195         global_options_set instead of rs6000_explicit_options.
8196         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8197         global_options_set instead of rs6000_explicit_options.
8198         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
8199         global_options_set instead of rs6000_explicit_options.
8200         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8201         global_options_set instead of rs6000_explicit_options.
8202         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
8203         definition.
8204         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8205         global_options_set instead of rs6000_explicit_options.
8206         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
8207         (rs6000_cmodel): New Enum and EnumValue entries.
8208         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8209         global_options_set instead of rs6000_explicit_options.
8210         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
8211         (mtls-size=): Use Enum and Var.
8212         (rs6000_tls_size): New Enum and EnumValue entries.
8213
8214 2011-05-05  Michael Matz  <matz@suse.de>
8215
8216         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
8217         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
8218         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
8219         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
8220         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
8221         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
8222         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
8223         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
8224         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
8225         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
8226         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
8227         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
8228         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
8229         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
8230         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
8231         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
8232
8233 2011-05-05  Richard Guenther  <rguenther@suse.de>
8234
8235         * expmed.c (expand_variable_shift): Rename to ...
8236         (expand_shift_1): ... this.  Take an expanded shift amount.
8237         For rotates recurse directly not building trees for the shift amount.
8238         (expand_variable_shift): Wrap around expand_shift_1.
8239         (expand_shift): Adjust.
8240
8241 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
8242
8243         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
8244
8245 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
8246
8247         * tree.h (get_pending_sizes): Remove prototype.
8248         (put_pending_size): Likewise.
8249         (put_pending_sizes): Likewise.
8250         * stor-layout.c (pending_sizes): Delete.
8251         (get_pending_sizes): Likewise.
8252         (put_pending_size): Likewise.
8253         (put_pending_sizes): Likewise.
8254         (variable_size): Do not call put_pending_size and tidy up.
8255         * function.h (struct function): Remove dont_save_pending_sizes_p.
8256         * lto-streamer-in.c (input_function): Do not stream it.
8257         * lto-streamer-out.c (output_function): Likewise.
8258         * tree-inline.c (initialize_cfun): Do not copy it.
8259         * c-decl.c (store_parm_decls): Do not set it.
8260         * omp-low.c (create_task_copyfn): Likewise.
8261         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8262
8263 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
8264
8265         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
8266         conditions.
8267         (*movdf_internal): Ditto.
8268         (*movdf_internal_nointeger): Ditto.
8269         (*movsf_internal): Ditto.
8270
8271 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
8272
8273         * c-decl.c (finish_decl): Don't call get_pending_sizes.
8274         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
8275         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
8276         (c_variable_size): Remove.
8277         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
8278         call put_pending_sizes.
8279         (get_parm_info): Add parameter expr.  Use it to set
8280         arg_info->pending_sizes.
8281         (store_parm_decls): Use arg_info->pending_sizes instead or calling
8282         get_pending_sizes.
8283         * c-parser.c (c_parser_parms_declarator): Update call to
8284         c_parser_parms_list_declarator.
8285         (c_parser_parms_list_declarator): Take parameter expr.  Update
8286         call to push_parm_decl.  Update recursive call.  Don't call
8287         get_pending_sizes.  Update calls to get_parm_info.
8288         (c_parser_objc_method_definition): Update calls to
8289         c_parser_objc_method_decl and objc_start_method_definition.
8290         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
8291         (c_parser_objc_method_decl): Add parameter expr.  Update call to
8292         grokparm.
8293         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
8294         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
8295         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
8296
8297 2011-05-05  Michael Hope  <michael.hope@linaro.org>
8298
8299         PR pch/45979
8300         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
8301         __ARM_EABI__ hosts.
8302
8303 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8304
8305         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
8306         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
8307         (spu_output_mi_thunk): New function.
8308
8309 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8310
8311         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
8312         targetm.asm_out.print_operand.
8313         * config/sol2.c: Include target.h.
8314
8315 2011-05-04  Jan Hubicka  <jh@suse.cz>
8316
8317         * ipa-inline.c (reset_edge_caches): New function.
8318         (update_caller_keys): Add check_inlinablity_for; do not
8319         reset edge caches; remove now unnecesary loop.
8320         (update_callee_keys): Add comments; reset node_growth_cache of callee.
8321         (update_all_callee_keys): Likewise.
8322         (inline_small_functions): Sanity check cache; update code
8323         recomputing it.
8324
8325 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
8326
8327         PR rtl-optimization/47612
8328         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
8329         as the last insn of the sequence to be moved.
8330
8331 2011-05-04  Tobias Burnus  <burnus@net-b.de>
8332
8333         PR fortran/48864
8334         * doc/invoke.texi (Ofast): Document that it
8335         enables Fortran's -fno-protect-parens.
8336
8337 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
8338
8339         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
8340
8341 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
8342
8343         * stor-layout.c (variable_size): Do not issue errors.
8344
8345 2011-05-04  Richard Guenther  <rguenther@suse.de>
8346
8347         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
8348         for array-ref indices.
8349         (tree_coverage_counter_addr): Likewise.
8350         (build_fn_info_type): Use size_int for index types.
8351         (build_gcov_info): Likewise.
8352
8353 2011-05-04  Richard Guenther  <rguenther@suse.de>
8354
8355         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
8356         to build_int_cst.
8357         * c-typeck.c (really_start_incremental_init): Use bitsize_int
8358         for constructor indices.
8359         (push_init_level): Likewise.
8360
8361 2011-05-04  Richard Guenther  <rguenther@suse.de>
8362
8363         * explow.c (promote_mode): Move variable declarations before code.
8364
8365 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
8366
8367         * tree.h (build_function_type_array): Declare.
8368         (build_varargs_function_type_array): Declare.
8369         (build_function_type_vec, build_varargs_function_type_vec): Define.
8370         * tree.c (build_function_type_array_1): New function.
8371         (build_function_type_array): New function.
8372         (build_varargs_function_type_array): New function.
8373
8374 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
8375
8376         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
8377         before setting STMT_VINFO_TYPE.
8378
8379 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8380
8381         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
8382         instead of spu_pass_by_reference.
8383
8384 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8385
8386         * calls.c (emit_library_call_value_1): Invoke
8387         promote_function_mode hook on libcall arguments.
8388         * explow.c (promote_function_mode, promote_mode): Handle TYPE
8389         argument being NULL.
8390         * targhooks.c (default_promote_function_mode): Lisewise.
8391         * config/s390/s390.c (s390_promote_function_mode): Likewise.
8392         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
8393
8394         * doc/tm.texi: Document that TYPE argument might be NULL.
8395
8396 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8397
8398         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
8399
8400 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8401
8402         From Bernd Schmidt
8403         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
8404
8405 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8406
8407         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
8408         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
8409         Move ...
8410         * mips-tfile.c: ... here.
8411         Don't include coretypes.h, tm.h, filenames.h.
8412         (saber_stop): Remove definition and all calls.
8413         [__SABER__]: Remove.
8414         (__LINE__): Remove default.
8415         (Size_t, Ptrdiff_t): Remove definitions.
8416         Replace by size_t, ptrdiff_t.
8417         [!MIPS_DEBUGGING_INFO]: Remove.
8418         (SHASH_SIZE, THASH_SIZE): Remove defaults.
8419         (progname): Add const.
8420         (STATIC): Remove.
8421         Replace all uses by static.
8422         (ALIGN_SYMTABLE_OFFSET): Remove default.
8423         * mips-tdump.c: Don't include coretypes.h, tm.h.
8424         Remove !MIPS_IS_STAB guard.
8425         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
8426         $(TM_H), filenames.h dependencies.
8427         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
8428
8429 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8430
8431         From Jie Zhang
8432         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
8433         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
8434
8435 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8436
8437         From Bernd Schmidt
8438         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
8439         account and save/restore RETS.
8440         (PROFILE_BEFORE_PROLOGUE): Define.
8441         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
8442         the push insn to use predecrement.
8443
8444 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
8445
8446         From Jie Zhang
8447         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
8448
8449 2011-05-04  Nick Clifton  <nickc@redhat.com>
8450
8451         * config/mn10300/mn10300.c: Include cfgloop.h.
8452         (DUMP): New macro.
8453         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
8454         Lcc or a FLcc insn into the instruction stream.
8455         (mn10300_block_contains_call): New function.  Returns true if the
8456         given basic block contains a CALL insn.
8457         (mn10300_loop_contains_call_insn): New function.  Returns true if
8458         the given loop contains a CALL insn.
8459         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
8460         to use the SETLB and Lcc or FLcc insns.
8461         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
8462         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
8463         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
8464         disable the SETLB optimization.
8465         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
8466         __SETLB__ or __NO_SETLB__.
8467         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
8468         (movsf_internal): Handle MDR register.
8469         (cmpsi): Make visible.
8470         (setlb): New pattern.
8471         (Lcc): New pattern.
8472         (FLcc): New pattern.
8473
8474 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
8475
8476         PR target/48860
8477         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
8478         for reg<->xmm moves.
8479         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
8480         (vec_concatv2di_rex64_sse): Ditto.
8481         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
8482         (*vec_extractv2di_1_rex64): Ditto.
8483
8484         Revert:
8485         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8486
8487         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
8488         reg<->xmm moves.
8489         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
8490
8491 2011-05-04  Richard Guenther  <rguenther@suse.de>
8492
8493         * tree.h (int_const_binop): Remove notrunc argument.
8494         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
8495         create integer constants that are properly truncated.
8496         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
8497         (const_binop): Remove zero notrunc argument to int_const_binop.
8498         (size_binop_loc): Likewise.
8499         (fold_div_compare): Likewise.
8500         (maybe_canonicalize_comparison_1): Likewise.
8501         (fold_comparison): Likewise.
8502         (fold_binary_loc): Likewise.
8503         (multiple_of_p): Likewise.
8504         * expr.c (store_constructor): Likewise.
8505         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
8506         (maybe_fold_stmt_addition): Likewise.
8507         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
8508         * stor-layout.c (layout_type): Likewise.
8509         * tree-data-ref.c (tree_fold_divides_p): Likewise.
8510         * tree-sra.c (build_ref_for_offset): Likewise.
8511         (build_user_friendly_ref_for_offset): Likewise.
8512         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
8513         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
8514         * tree-ssa-loop-niter.c (inverse): Likewise.
8515         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
8516         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
8517         * tree-switch-conversion.c (check_range): Likewise.
8518         (build_constructors): Likewise.
8519         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
8520         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
8521         (extract_range_from_assert): Likewise.
8522         (vrp_int_const_binop): Likewise.
8523         (extract_range_from_binary_expr): Likewise.
8524         (extract_range_from_unary_expr): Likewise.
8525         (check_array_ref): Likewise.
8526         (find_case_label_range): Likewise.
8527         (simplify_div_or_mod_using_ranges): Likewise.
8528         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
8529         comparing case labels for merging.
8530
8531 2011-05-03  Mark Wielaard  <mjw@redhat.com>
8532
8533         * dwarf2out.c (debug_str_hash_forced): Removed.
8534         (gen_label_for_indirect_string): Removed.
8535         (get_debug_string_label): Removed.
8536         (AT_string_form): Generate label directly.
8537         (output_indirect_string): Test indirect_string_node for
8538         DW_FORM_strp instead of checking label and refcount.
8539         (prune_indirect_string): Removed.
8540         (prune_unused_types): Don't check debug_str_hash_forced or
8541         call prune_indirect_string.
8542
8543 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
8544
8545         PR other/48093
8546         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
8547
8548 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
8549
8550         PR debug/47994
8551         PR debug/47919
8552         * combine.c (try_combine): Skip debug insns at m_split tests.
8553
8554 2011-04-26  Mark Wielaard  <mjw@redhat.com>
8555
8556         PR42288
8557         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
8558         when info_section_emitted.
8559
8560 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
8561
8562         * config/mips/mips-opts.h: New.
8563         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
8564         to mips-opts.h.
8565         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
8566         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
8567         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
8568         via opts pointer.
8569         * config/mips/mips.h (enum mips_code_readable_setting): Move to
8570         mips-opts.h.
8571         (mips_abi, mips_code_readable): Don't declare.
8572         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
8573         (mabi=): Use Enum and Var.
8574         (mips_abi): New Enum and EnumValue entries.
8575         (mcode-readable=): Use Enum and Var.
8576         (mips_code_readable_setting): New Enum and EnumValue entries.
8577         (mr10k-cache-barrier=): Use Enum and Var.
8578         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
8579
8580 2011-05-03  Jan Hubicka  <jh@suse.cz>
8581
8582         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
8583         replace hash by pointer map.
8584         (cgraph_node_set_element_def, cgraph_node_set_element,
8585         const_cgraph_node_set_element, varpool_node_set_element_def,
8586         varpool_node_set_element, const_varpool_node_set_element): Remove.
8587         (free_cgraph_node_set, free_varpool_node_set): New function.
8588         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
8589         * tree-emutls.c: Free varpool node set.
8590         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
8591         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
8592         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
8593         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
8594         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
8595         Move here from ipa.c; implement using pointer_map
8596         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
8597         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
8598         debug_cgraph_node_set, varpool_node_set_new,
8599         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
8600         dump_varpool_node_set, debug_varpool_node_set):
8601         Move to ipa-uitls.c.
8602         * passes.c (ipa_write_summaries): Update.
8603
8604 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8605
8606         From Mike Frysinger:
8607         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
8608         bf542/bf544/bf547/bf548/bf549.
8609
8610 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
8611
8612         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
8613
8614 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8615
8616         From Bernd Schmidt:
8617         * config/bfin/bfin.md (MOVCC): New mode_macro.
8618         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
8619         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
8620         comments from generated assembly.
8621
8622 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8623
8624         From Bernd Schmidt
8625         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
8626         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
8627         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
8628         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
8629         * config/bfin/lib1funcs.asm (___muldi3): New function.
8630
8631 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8632
8633         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
8634         build_function_type_list instead of build_function_type.
8635         Rearrange initialization of `args' to do so.
8636
8637 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8638
8639         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
8640         instead of build_function_type.
8641
8642 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8643
8644         * config/rs6000/rs6000.c (spe_init_builtins): Call
8645         build_function_type_list instead of build_function_type.
8646         (paired_init_builtins, altivec_init_builtins): Likewise.
8647         (builtin_function_type): Likewise.
8648
8649 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8650
8651         * config/sh/sh.c (sh_media_init_builtins): Call
8652         build_function_type_list instead of build_function_type.
8653
8654 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8655
8656         * config/sparc/sparc.c (sparc_file_end): Call
8657         build_function_type_list instead of build_function_type.
8658
8659 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8660
8661         * config/alpha/alpha.c (alpha_init_builtins): Call
8662         build_function_type_list instead of build_function_type.
8663
8664 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8665
8666         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
8667         build_function_type_list instead of build_function_type.
8668
8669 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8670
8671         * config/iq2000/i2000.c (iq2000_init_builtins): Call
8672         build_function_type_list instead of build_function_type.
8673         Delete `endlink' variable.
8674
8675 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8676
8677         * config/avr/avr.c (avr_init_builtins): Call
8678         build_function_type_list instead of build_function_type.
8679
8680 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8681
8682         * config/picochip/picochip.c (picochip_init_builtins): Call
8683         build_function_type_list instead of build_function_type.
8684         Delete `endlink' variable.
8685
8686 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8687
8688         * config/bfin/bfin.c (bfin_init_builtins): Call
8689         build_function_type_list instead of build_function_type.
8690
8691 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8692
8693         From Bernd Schmidt
8694         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
8695         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
8696
8697 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8698
8699         From Jie Zhang:
8700         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
8701         libbffastfp overrides libgcc when -mfast-fp.
8702
8703 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8704
8705         Originally from Bernd Schmidt
8706         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
8707         * config/bfin/bfin.c (override_options): Test it and error if
8708         TARGET_FDPIC.
8709
8710 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8711
8712         Originally From Bernd Schmidt
8713         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
8714         FD-PIC.
8715
8716 2011-05-03  Jeff Law  <law@redhat.com>
8717
8718         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
8719         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
8720         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
8721         than accessing AUX field directly.  Free the AUX field before
8722         clearing it.
8723         (thread_block, thread_through_loop_header): Likewise.
8724         (thread_single_edge, mark_threaded_blocks): Likewise.
8725         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
8726         (register_jump_thread): Do not attempt to thread to a NULL edge.
8727
8728 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
8729
8730         * function.c (init_function_start): Call decide_function_section.
8731         * varasm.c (decide_function_section): New function.
8732         (assemble_start_function): When not using
8733         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
8734         or first_function_block_is_cold.
8735         * rtl.h (decide_function_section): Declare.
8736
8737 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
8738             Jakub Jelinek  <jakub@redhat.com>
8739
8740         PR target/48774
8741         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
8742         only succeed if req_mode is the same as set_mode.
8743
8744 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
8745
8746         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
8747         * genemit.c (gen_exp): Handle RETURN.
8748         * emit-rtl.c (verify_rtx_sharing): Likewise.
8749         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
8750         * rtl.c (copy_rtx): RETURN is shared.
8751         * rtl.h (enum global_rtl_index): Add GR_RETURN.
8752         (ret_rtx): New.
8753         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
8754         * config/s390/s390.c (s390_emit_epilogue): Likewise.
8755         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
8756         * config/cris/cris.c (cris_expand_return): Likewise.
8757         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
8758         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
8759         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
8760         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
8761         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
8762         Likewise.
8763         * config/v850/v850.c (expand_epilogue): Likewise.
8764         * config/bfin/bfin.c (bfin_expand_call): Likewise.
8765         * config/arm/arm.md (epilogue): Likewise.
8766         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
8767         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
8768         variable to ret_reg.
8769
8770 2011-05-03  Richard Guenther  <rguenther@suse.de>
8771
8772         PR lto/48846
8773         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
8774         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
8775         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
8776
8777 2011-05-03  Richard Guenther  <rguenther@suse.de>
8778
8779         * c-decl.c (grokdeclarator): Instead of looking at
8780         TREE_OVERFLOW check if the constant fits in the index type.
8781
8782 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8783
8784         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
8785         (vec_store_lanes<mode><mode>): Likewise.
8786
8787 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8788
8789         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
8790         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
8791         convert_optab_index values.
8792         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
8793         * genopinit.c (optabs): Initialize the new optabs.
8794         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
8795         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
8796         (expand_STORE_LANES): New functions.
8797         * tree.h (build_array_type_nelts): Declare.
8798         * tree.c (build_array_type_nelts): New function.
8799         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
8800         (vect_model_load_cost): Likewise.
8801         (vect_store_lanes_supported, vect_load_lanes_supported)
8802         (vect_record_strided_load_vectors): Declare.
8803         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
8804         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
8805         (vect_transform_strided_load): Split out statement recording into...
8806         (vect_record_strided_load_vectors): ...this new function.
8807         * tree-vect-stmts.c (create_vector_array, read_vector_array)
8808         (write_vector_array, create_array_ref): New functions.
8809         (vect_model_store_cost): Add store_lanes_p argument.
8810         (vect_model_load_cost): Add load_lanes_p argument.
8811         (vectorizable_store): Try to use store-lanes functions for
8812         interleaved stores.
8813         (vectorizable_load): Likewise load-lanes and loads.
8814         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
8815         to vect_model_store_cost.
8816         (vect_build_slp_tree): Likewise vect_model_load_cost.
8817
8818 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8819
8820         * hooks.h (hook_bool_mode_uhwi_false): Declare.
8821         * hooks.c (hook_bool_mode_uhwi_false): New function.
8822         * target.def (array_mode_supported_p): New hook.
8823         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
8824         * doc/tm.texi: Regenerate.
8825         * stor-layout.c (mode_for_array): New function.
8826         (layout_type): Use it.
8827         * config/arm/arm.c (arm_array_mode_supported_p): New function.
8828         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
8829
8830 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
8831
8832         PR target/48723
8833         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
8834         for -fstack-check if the size to allocate is negative.
8835
8836 2011-05-02  Lawrence Crowl  <crowl@google.com>
8837
8838         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
8839         (timevar_cond_start): New for starting a timer only when it is not
8840         already running.
8841         (timevar_cond_stop): New for stopping a timer when it was not already
8842         running.
8843
8844         * timevar.c (timevar_stop): Enable start/stop timers to start again.
8845         (timevar_cond_start): New as above.
8846         (timevar_cond_stop): New as above.
8847
8848         * timevar.def: Add start/stop timers for compiler phases,
8849         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
8850         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
8851         and TV_PHASE_FINALIZE.
8852         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
8853         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
8854         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
8855         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
8856         Make unused TV_OVERLOAD into a start/stop timer.
8857
8858         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
8859         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
8860         to indicate that they are start/stop timers.
8861
8862         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
8863         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
8864         Move initialization to do_compile.
8865         (do_compile): Add initialization from above.
8866         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
8867
8868         * c-decl.c (c_write_global_declarations): Add start/stop of
8869         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
8870
8871         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
8872         or TV_PARSE_INLINE, as appropriate.
8873         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
8874         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
8875
8876 2011-05-02  Jason Merrill  <jason@redhat.com>
8877
8878         PR c++/40975
8879         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
8880
8881 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
8882
8883         PR c/35445
8884         * c-decl.c (finish_decl): Only create a composite if the types are
8885         compatible.
8886
8887 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
8888
8889         * config/fr30/fr30-protos.h (Mmode): Don't define.
8890         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
8891         definition where used.
8892         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
8893         define.  Expand definitions where used.
8894         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
8895         Expand definitions where used.
8896         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
8897         rx_function_arg, rx_function_arg_advance,
8898         rx_function_arg_boundary): Expand definitions of those macros.
8899         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
8900         definition where used.
8901
8902 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8903
8904         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
8905         reg<->xmm moves.
8906         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
8907         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
8908         with *movv2sf_internal_rex64_avx.
8909         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
8910         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
8911         Use %v prefix in insn mnemonic to handle TARGET_AVX.
8912         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
8913         "vex" in "prefix" attribute calculation.
8914         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
8915
8916 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
8917
8918         PR target/47951
8919         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
8920         inputs match the output.
8921
8922 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
8923
8924         PR target/47955
8925         * config/m68k/m68k.c (m68k_expand_prologue): Set
8926         current_function_static_stack_size.
8927
8928 2011-05-02   Jan Hubicka  <jh@suse.cz>
8929
8930         * lto-streamer.c (lto_streamer_cache_insert_1,
8931         lto_streamer_cache_lookup, lto_streamer_cache_create,
8932         lto_streamer_cache_delete): Use pointer map instead of hashtable.
8933         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
8934
8935 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
8936
8937         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
8938         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
8939         config/m68k/t-opts: New files.
8940         * config/m68k/m68k-tables.opt: New file (generated).
8941         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
8942         extra_options and m68k/t-opts to tmake_file.
8943         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
8944         (all_isas): Initialize using m68k-isas.def.
8945         (all_microarchs): Initialize using m68k-microarchs.def.
8946         (m68k_find_selection): Remove.
8947         (m68k_handle_option): Don't assert that global structures are in
8948         use.  Use error_at.  Access variables via opts pointer.  Don't
8949         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
8950         directly for -m68020-40 and -m68020-60.
8951         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
8952         m68k_tune_entry here.
8953         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
8954         to m68k-opts.h.
8955         (m68k_library_id_string): Remove declaration.
8956         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
8957         (m68k_library_id_string): New Variable.
8958         (march=, mcpu=, mtune=): Use Enum and Var.
8959
8960 2011-05-02  Richard Guenther  <rguenther@suse.de>
8961
8962         * varasm.c (output_constructor_regular_field): Compute zero-based
8963         index with double-ints.  Make sure to ICE instead of producing
8964         wrong code.
8965         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
8966         in asserts.  Properly use a signed type.
8967
8968 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8969
8970         * config/i386/sse.md (V): New mode iterator.
8971         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
8972         TARGET_SSE2.
8973         (V_256): Rename from AVX256MODE.
8974         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
8975         condition to all users.
8976         (VF1): Ditto.
8977         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
8978         condition to all users.
8979         (VF_128): Make V4SF mode unconditional.
8980         (VF_256): Rename from AVX256MODEF2P.
8981         (VI4F_128): Rename from SSEMODE4S.
8982         (VI8F_128): Rename from SSEMODE2D.
8983         (VI4F_256): Rename from AVX256MODE8P.
8984         (VI8F_256): Rename from AVX256MODE4P.
8985         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
8986         (ssescalarmodesuffix): Remove SF and DF modes.
8987         (SSEMODE124): Remove.
8988         (SSEMODE1248): Ditto.
8989         (SSEMODEF2P): Ditto.
8990         (AVXMODEF2P): Ditto.
8991         (AVXMODEFDP): Ditto.
8992         (AVXMODEFSP): Ditto.
8993         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
8994         unconditional.
8995         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
8996         unconditional.
8997         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
8998         xop_pcmov_<mode>256.  Use V mode iterator.
8999
9000         Adjust RTX patterns globally for renamed mode attributes.
9001
9002 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9003
9004         * haifa-sched.c (sched_emit_insn): Emit insn before first
9005         non-scheduled insn.  Inform back-end about new insn.  Add
9006         new insn to scheduled_insns list.
9007
9008 2011-05-02  Richard Guenther  <rguenther@suse.de>
9009
9010         PR tree-optimization/48822
9011         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
9012         (process_scc): Indicate which iteration we start.
9013
9014 2011-05-02  Jan Hubicka  <jh@suse.cz>
9015
9016         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
9017         (lto_section_overrun): New.
9018         * lto-section-out.c (append_block): Rename to ...
9019         (lto_append_block): ... this one; export.
9020         (lto_output_1_stream): Move lto lto-streamer.h
9021         (lto_output_data_stream): Update.
9022         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
9023         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
9024         functions.
9025
9026 2011-05-02  Richard Guenther  <rguenther@suse.de>
9027
9028         * tree.c (tree_code_counts): New global array.
9029         (record_node_allocation_statistics): Count individual tree codes.
9030         (dump_tree_statistics): Dump individual code stats.
9031
9032 2011-05-01  Jan Hubicka  <jh@suse.cz>
9033
9034         * ipa-inline.c (caller_growth_limits): Fix thinko when
9035         looking for largest stack frame.
9036         * ipa-inline.h (dump_inline_summary): Declare.
9037         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
9038         on stack usage.
9039         (dump_inline_summary): Export.
9040         (debug_inline_summary): Declare as DEBUG_FUNCTION.
9041
9042 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
9043
9044         * reginfo.c (memory_move_cost): Change rclass argument type form
9045         'enum reg_class' to reg_class_t.
9046         * reload.h (memory_move_cost): Update prototype.
9047         * postreload.c reload_cse_simplify_set): Change type dclass var to
9048         reg_class_t.
9049         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
9050         Update prototype.
9051         (ira_allocate_and_set_costs): Change aclass argument type form
9052         'enum reg_class' to reg_class_t.
9053         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
9054         Change aclass argument type to reg_class_t.
9055         (update_conflict_hard_reg_costs): Change type aclass and pref vars
9056         to reg_class_t.
9057         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
9058         memory_move_cost call.
9059
9060         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
9061         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
9062         Change type tmp var to reg_class_t.
9063
9064 2011-04-30  Jan Hubicka  <jh@suse.cz>
9065
9066         * ipa-inline.c (can_inline_edge_p): Disregard limits when
9067         inlining into function with flatten attribute.
9068         (want_inline_small_function_p): Be more realistic about inlining
9069         cold calls where callee size grows.
9070
9071 2011-04-30  Jan Hubicka  <jh@suse.cz>
9072
9073         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
9074         flags.
9075
9076 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
9077
9078         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
9079         PRINT_OPERAND_PUNCT_VALID_P): Remove.
9080         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
9081         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
9082         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9083         (print_operand): Rename to...
9084         (sparc_print_operand): ...this. Make static. Adjust
9085         sparc_print_operand function call.
9086         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
9087         functions.
9088
9089 2011-04-30  Jan Hubicka  <jh@suse.cz>
9090
9091         PR middle-end/48752
9092         * ipa-inline.c (early_inliner): Disable when doing late
9093         addition of function.
9094
9095 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
9096
9097         * dwarf2out.c (get_address_mode): New inline.
9098         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
9099         if not dwarf_strict emit
9100         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
9101         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
9102         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
9103         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
9104         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
9105         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
9106         mem_loc_descriptor callers.
9107         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
9108         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
9109         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
9110         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
9111         (base_types): New variable.
9112         (get_base_type_offset, calc_base_type_die_sizes,
9113         base_type_for_mode, mark_base_types, base_type_cmp,
9114         move_marked_base_types): New functions.
9115         (calc_die_sizes): Assert that die_offset is 0 or equal to
9116         next_die_offset.
9117         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
9118         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
9119         callers.  If not dwarf_strict, call mem_loc_descriptor even for
9120         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
9121         (gen_subprogram_die): Don't give up on call site parameters
9122         with non-integral or large integral modes.  Adjust
9123         mem_loc_descriptor callers.
9124         (prune_unused_types): Call prune_unused_types_mark on base_types
9125         vector entries.
9126         (resolve_addr): Call mark_base_types.
9127         (dwarf2out_finish): Call move_marked_base_types.
9128
9129         PR tree-optimization/48809
9130         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
9131         type.
9132         (gen_inbound_check): Don't compute index_expr - range_min in utype
9133         again, instead reuse SSA_NAME initialized in build_arrays.
9134         Remove two useless gsi_for_stmt calls.
9135
9136 2011-04-29  Jeff Law  <law@redhat.com>
9137
9138         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
9139
9140 2011-04-29  Martin Jambor  <mjambor@suse.cz>
9141
9142         * cgraph.h (cgraph_postorder): Remove declaration.
9143         * ipa-utils.h (ipa_free_postorder_info): Declare.
9144         (ipa_reverse_postorder): Likewise.
9145         * cgraphunit.c: Include ipa-utils.h.
9146         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
9147         * ipa-inline.c: Include ipa-utils.h.
9148         (ipa_inline): Update call to ipa_reverse_postorder.
9149         * ipa-pure-const.c (propagate_pure_const): Update call to
9150         ipa_reduced_postorder and ipa_print_order.  Call
9151         ipa_free_postorder_info to clean up.
9152         (propagate_nothrow): Likewise.
9153         * ipa-reference.c (propagate): Removed a useless call to
9154         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
9155         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
9156         * ipa.c: Include ipa-utils.h.
9157         (ipa_profile): Update call to ipa_reverse_postorder.
9158         (cgraph_postorder): Moved to...
9159         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
9160         (ipa_utils_print_order): Renamed to ipa_print_order.
9161         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
9162         comments.
9163         (ipa_free_postorder_info): New function.
9164         * passes.c: Include ipa-utils.h.
9165         (do_per_function_toporder): Update call to ipa_reverse_postorder.
9166         (ipa_write_summaries): Likewise.
9167         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
9168         (cgraphunit.o): Likewise.
9169         (ipa.o): Likewise.
9170         (ipa-inline.o): Likewise.
9171
9172 2011-04-29  Jan Hubicka  <jh@suse.cz>
9173
9174         * gcc.dg/tree-ssa/inline-10.c: New testcase.
9175         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
9176         * ipa-inline.h (clause_t): Turn into unsigned int.
9177         * ipa-inline-analysis.c (add_clause): Do more simplification.
9178         (and_predicates): Shortcut more cases.
9179         (predicates_equal_p): Move forward; check that clauses are properly
9180         ordered.
9181         (or_predicates): Shortcut more cases.
9182         (edge_execution_predicate): Rewrite as...
9183         (set_cond_stmt_execution_predicate): ... this function; handle
9184         __builtin_constant_p.
9185         (set_switch_stmt_execution_predicate): New .
9186         (compute_bb_predicates): New.
9187         (will_be_nonconstant_predicate): Update TODO.
9188         (estimate_function_body_sizes): Use compute_bb_predicates
9189         and free them later, always try to estimate if stmt is constant.
9190         (estimate_time_after_inlining, estimate_size_after_inlining):
9191         Gracefully handle optimized out edges.
9192         (read_predicate): Fix off by one error.
9193
9194 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9195
9196         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
9197
9198 2011-04-27  Xinliang David Li  <davidxl@google.com>
9199
9200         * tree-profile.c (init_ic_make_global_vars): Set
9201         tls attribute on ic vars.
9202         * coverage.c (coverage_end_function): Initialize
9203         function_list with zero.
9204
9205 2011-04-29  Richard Guenther  <rguenther@suse.de>
9206
9207         * builtins.c (fold_builtin_classify_type): Use integer_type_node
9208         for the type of the result.
9209         (fold_builtin_isascii): Likewise.
9210         (fold_builtin_toascii): Use integer_type_node where appropriate.
9211         (fold_builtin_logb): Likewise.
9212         (fold_builtin_frexp): Likewise.
9213         (fold_builtin_strstr): Likewise.
9214         (fold_builtin_strpbrk): Likewise.
9215         (fold_builtin_fputs): Likewise.
9216         (fold_builtin_sprintf): Likewise.
9217         (fold_builtin_snprintf): Likewise.
9218         (fold_builtin_printf): Likewise.
9219         (do_mpfr_remquo): Use a proper type for the assigned constant.
9220         (do_mpfr_lgamma_r): Likewise.
9221         * dwarf2out.c (resolve_one_addr): Use size_int.
9222         * except.c (init_eh): Likewise.
9223         (assign_filter_values): Use integer_type_node for filter values.
9224         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
9225         indices.
9226         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
9227         for EH region numbers.
9228         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
9229         for the shift amount.
9230
9231 2011-04-29  Richard Guenther  <rguenther@suse.de>
9232
9233         * expr.h (expand_shift): Rename to ...
9234         (expand_variable_shift): ... this.
9235         (expand_shift): Take a constant shift amount.
9236         * expmed.c (expand_shift): Rename to ...
9237         (expand_variable_shift): ... this.
9238         (expand_shift): New wrapper around expand_variable_shift.
9239         * expr.c (convert_move, emit_group_load_1, emit_group_store,
9240         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
9241         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
9242         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
9243         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
9244         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
9245         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
9246         emit_store_flag_1, emit_store_flag): Likewise.
9247         * builtins.c (expand_builtin_signbit): Likewise.
9248         * calls.c (load_register_parameters): Likewise.
9249         * function.c (assign_parm_setup_block): Likewise.
9250         * lower-subreg.c (resolve_shift_zext): Likewise.
9251         * optabs.c (widen_bswap, expand_abs_nojump,
9252         expand_one_cmpl_abs_nojump, expand_float): Likewise.
9253         * spu/spu.c (spu_expand_extv): Likewise.
9254         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
9255
9256 2011-04-29  Richard Guenther  <rguenther@suse.de>
9257
9258         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
9259         for the remapped region number.
9260         * predict.c (build_predict_expr): Use integer_type_node for the
9261         predict kind.
9262         * fold-const.c (fold_binary_loc): Use integer_type_node for
9263         the shift amount.  Use a proper type for the PLUS_EXPR operand.
9264
9265 2011-04-29  Michael Matz  <matz@suse.de>
9266
9267         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
9268         other trees that just builtins.
9269         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
9270
9271 2011-04-29  Richard Guenther  <rguenther@suse.de>
9272
9273         * tree-nested.c (get_trampoline_type): Use size_int.
9274         (get_nl_goto_field): Likewise.
9275         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
9276         for all indexes.
9277         (lower_eh_constructs_2): Likewise.
9278         (lower_resx): Likewise.
9279         (lower_eh_dispatch): Likewise.
9280         * tree-mudflap.c (mf_build_string): Use size_int.
9281         (mudflap_register_call): Use integer_type_node for the flag.
9282         (mudflap_enqueue_constant): Use size_int.
9283         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
9284         instead of rebuilding it.
9285
9286 2011-04-29  Richard Guenther  <rguenther@suse.de>
9287
9288         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
9289         Handle OBJ_TYPE_REF.
9290         (find_func_aliases_for_call): Use it more consistently.
9291
9292 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
9293
9294         * haifa-sched.c (last_nondebug_scheduled_insn): New.
9295         (rank_for_schedule): Use it.
9296         (schedule_block): Set it.
9297
9298 2011-04-28  David Li  <davidxl@google.com>
9299
9300         * tree.c (crc32_string): Use crc32_byte.
9301         (crc32_byte): New function.
9302         * tree.h (crc32_byte): New function.
9303         * gcov.c (read_graph_file): Handle new cfg_cksum.
9304         (read_count_file): Ditto.
9305         * profile.c (instrument_values): Ditto.
9306         (get_exec_counts): Ditto.
9307         (read_profile_edge_counts): Ditto.
9308         (compute_branch_probabilities): Ditto.
9309         (compute_value_histograms): Ditto.
9310         (branch_prob): Ditto.
9311         (end_branch_prob): Ditto.
9312         * coverage.c (read_counts_file): Ditto.
9313         (get_coverage_counts): Ditto.
9314         (tree_coverage_counter_addr): Ditto.
9315         (coverage_checksum_string): Ditto.
9316         (coverage_begin_output): Ditto.
9317         (coverage_end_function): Ditto.
9318         (build_fn_info_type): Ditto.
9319         (build_fn_info_value): Ditto.
9320         * libgcov.c (gcov_exit): Ditto.
9321         * gcov-dump.c (tag_function): Ditto.
9322         (compute_checksum): Remove.
9323
9324 2011-04-29  Alan Modra  <amodra@gmail.com>
9325
9326         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
9327         unspec plus offset.  Tidy macho code.
9328
9329 2011-04-29  Martin Jambor  <mjambor@suse.cz>
9330
9331         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
9332         node instead of a decl.  Update all callers.
9333         * cgraph.h: Update declaration.
9334
9335 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
9336
9337         PR tree-optimization/48765
9338         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
9339         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
9340         to indicate if loop aware SLP is being used.  Scan the statements
9341         and update the vectorization factor according to the type of
9342         vectorization before statement analysis.
9343         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
9344         pass it to vect_analyze_loop_operations.
9345         (vectorizable_reduction): Set number of copies to 1 in case of pure
9346         SLP statement.
9347         * tree-vect-stmts.c (vectorizable_conversion,
9348         vectorizable_assignment, vectorizable_shift,
9349         vectorizable_operation, vectorizable_type_demotion,
9350         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
9351         Likewise.
9352         (vectorizable_condition): Move the check that it is not SLP
9353         vectorization before the number of copies check.
9354         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
9355         to vectorize the loop using SLP.
9356
9357 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
9358
9359         PR middle-end/48597
9360         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
9361         inline asm.
9362
9363 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
9364
9365         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
9366         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
9367         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
9368         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
9369         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
9370         linux*.h headers.
9371         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
9372         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9373         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9374         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9375         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9376         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
9377         REG_NAME.
9378         * config/i386/linux.h (REG_NAME): Don't define.
9379         * config/i386/linux64.h (REG_NAME): Don't define.
9380         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
9381         Undefine before defining.
9382
9383 2011-04-28  Jan Hubicka  <jh@suse.cz>
9384
9385         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
9386         nonconstant_names array.
9387         (estimate_function_body_sizes): Build nonconstant_names array; handle
9388         BUILT_IN_CONSTANT_P.
9389
9390 2011-04-28  Richard Guenther  <rguenther@suse.de>
9391
9392         PR bootstrap/48804
9393         Revert
9394         2011-04-28  Richard Guenther  <rguenther@suse.de>
9395
9396         * tree-ssa-structalias.c (solve_constraints): Build succ graph
9397         as late as possible.
9398
9399 2011-04-28  Richard Guenther  <rguenther@suse.de>
9400
9401         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
9402         (debug_constraint): Do it here.
9403         (dump_constraints): And here.
9404         (rewrite_constraints): And here.
9405         (dump_constraint_edge): Remove.
9406         (dump_constraint_graph): Rewrite to produce DOT output.
9407         (solve_constraints): Build succ graph as late as possible.
9408         Dump constraint graphs before and after solving.
9409
9410 2011-04-28  Richard Guenther  <rguenther@suse.de>
9411
9412         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
9413         New function split out from ...
9414         (find_func_aliases): ... here.  Call it.
9415         (find_func_aliases_for_call): Likewise.
9416
9417 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9418
9419         * internal-fn.h (internal_fn_name_array): Declare.
9420         (internal_fn_flags_array): Likewise.
9421
9422 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
9423
9424         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
9425         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
9426         Move from sse.md.
9427         (ssemodefsuffix): Remove.
9428         (ssevecmodesuffix): New mode attribute.
9429         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
9430         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
9431         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
9432         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
9433         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
9434         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
9435         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
9436         ssemodesuffix mode attribute.
9437         (float splitters): Use ssevecmodesuffix mode attribute.
9438         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
9439         (sseinsmode): Rename from avxvecmode.
9440         (avxsizesuffix): Rename from avxmodesuffix.
9441         (sseintvecmode): Rename from avxpermvecmode.
9442         (ssedoublevecmode): Rename from ssedoublesizemode.
9443         (ssehalfvecmode): Rename from avxhalfvecmode.
9444         (ssescalarmode): Rename from avxscalarmode.
9445         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
9446         templates for ssemodesuffix mode attribute.
9447         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
9448         mode attribute.
9449
9450         Adjust RTX patterns globally for renamed mode attributes.
9451
9452 2011-04-27  Jan Hubcika  <jh@suse.cz>
9453
9454         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
9455         * ipa-inline-analysis.c: Include alloc-pool.h.
9456         (edge_predicate_pool): New.
9457         (trye_predicate_p): New function
9458         (false_predicate_p): New function.
9459         (add_clause): Sanity check that false clauses are "optimized";
9460         never add clauses to predicate that is already known to be false.
9461         (and_predicate): Use flase_predicate_p.
9462         (evaulate_predicate): Rename to ...
9463         (evaluate_predicate): ... this one; update all callers; assert
9464         that false is not listed among possible truths.
9465         (dump_predicate): Use true_predicate_p.
9466         (account_size_time): Use false_predicate_p.
9467         (evaulate_conditions_for_edge): Rename to ...
9468         (evaluate_conditions_for_edge) ... this one.
9469         (edge_set_predicate): New function.
9470         (inline_edge_duplication_hook): Duplicate edge predicates.
9471         (inline_edge_removal_hook): Free edge predicates.
9472         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
9473         (dump_inline_summary): Update.
9474         (estimate_function_body_sizes): Set edge predicates.
9475         (estimate_calls_size_and_time): Handle predicates.
9476         (estimate_callee_size_and_time): Update.
9477         (remap_predicate): Add toplev_predicate; update comment.
9478         (remap_edge_predicates): New function.
9479         (inline_merge_summary): Compute toplev predicate; update.
9480         (read_predicate): New function.
9481         (read_inline_edge_summary): Use it.
9482         (inline_read_section): Likewise.
9483         (write_predicate): New function.
9484         (write_inline_edge_summary): Use it.
9485         (inline_write_summary): Likewise.
9486         (inline_free_summary): Free alloc pool and edge summary vec.
9487
9488 2011-04-27  Richard Guenther  <rguenther@suse.de>
9489
9490         * tree-ssa-structalias.c (changed_count): Remove.
9491         (changed): Use a bitmap.
9492         (unify_nodes): Adjust.
9493         (do_sd_constraint): Likewise.
9494         (do_ds_constraint): Likewise.
9495         (do_complex_constraint): Likewise.
9496         (solve_graph): Likewise.
9497
9498 2011-04-27  Jan Hubicka  <jh@suse.cz>
9499
9500         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
9501
9502 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
9503
9504         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
9505         (avx_vperm2f128_*_operand): Ditto.
9506         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
9507         Use avx_vpermilp_parallel in insn condition.
9508         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
9509         Use avx_vperm2f128_parallel in insn condition.
9510
9511 2011-04-27  Richard Guenther  <rguenther@suse.de>
9512
9513         * Makefile.in (tree-ssa-structalias.o): Remove
9514         gt-tree-ssa-structalias.h dependency.
9515         (GTFILES): Remove tree-ssa-structalias.c.
9516         * tree.c (allocate_decl_uid): New function.
9517         (make_node_stat): Use it.
9518         (copy_node_stat): Likewise.
9519         * tree.h (allocate_decl_uid): Declare.
9520         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
9521         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
9522         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
9523         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
9524         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
9525         (struct heapvar_map): Likewise.
9526         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
9527         heapvar_insert): Likewise.
9528         (make_heapvar_for): Rename to ...
9529         (make_heapvar): ... this.  Simplify.
9530         (fake_var_decl_obstack): New global var.
9531         (build_fake_var_decl): New function.
9532         (make_constraint_from_heapvar): Adjust.
9533         (handle_lhs_call): Likewise.
9534         (create_function_info_for): Likewise.
9535         (intra_create_variable_infos): Likewise.
9536         (init_alias_vars): Allocate fake_var_decl_obstack.
9537         (init_alias_heapvars, delete_alias_heapvars): Remove.
9538         (compute_points_to_sets): Do not call init_alias_heapvars.
9539         (ipa_pta_execute): Likewise.
9540         (delete_points_to_sets): Free fake_var_decl_obstack.
9541
9542 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9543
9544         * config/spu/divmovti4.c (union qword_UTItype): New data type.
9545         (si_from_UTItype, si_to_UTItype): New functions.
9546         (__udivmodti4): Use them to implement type-punning.
9547         * config/spu/multi3.c (union qword_TItype): New data type.
9548         (si_from_TItype, si_to_TItype): New functions.
9549         (__multi3): Use them to implement type-punning.
9550
9551 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9552
9553         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
9554
9555 2011-04-27  Jan Hubicka  <jh@suse.cz>
9556
9557         * ipa-prop.c (function_insertion_hook_holder): New holder.
9558         (ipa_add_new_function): New function.
9559         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
9560         Register/deregister holder.
9561
9562 2011-04-27  Richard Guenther  <rguenther@suse.de>
9563
9564         PR tree-optimization/48772
9565         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9566
9567 2011-04-27  Richard Guenther  <rguenther@suse.de>
9568
9569         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
9570         TARGET_MEM_REF handling.
9571
9572 2011-04-27  Nick Clifton  <nickc@redhat.com>
9573
9574         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
9575         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
9576         (REG_CLASS_NAMES): Likewise.
9577         (REG_CLASS_CONTENTS): Likewise.
9578         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
9579         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
9580         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
9581         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
9582         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
9583         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
9584         duplicate register classes.
9585         (frv_class_likely_spilled_p): Likewise.
9586         (frv_register_move_cost): Likewise.
9587
9588         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
9589         end of the regno_reg_class array.
9590
9591 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
9592
9593         PR c/48742
9594         * c-typeck.c (build_binary_op): Don't wrap arguments if
9595         int_operands is true.
9596
9597 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
9598
9599         PR target/48767
9600         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
9601         targetm.calls.must_pass_in_stack for void type.
9602
9603 2011-04-26  Jan Hubicka  <jh@suse.cz>
9604
9605         * cgraphbuild.c (build_cgraph_edges): Update call
9606         of cgraph_create_edge and cgraph_create_indirect_edge.
9607         * cgraph.c (cgraph_create_edge_including_clones,
9608         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
9609         cgraph_update_edges_for_call_stmt_node): Do not take nest
9610         argument; do not initialize call_stmt_size/time.
9611         (dump_cgraph_node): Do not dump nest.
9612         (cgraph_clone_edge): Do not take loop_nest argument;
9613         do not propagate it; do not clone call_stmt_size/time.
9614         (cgraph_clone_node): Likewise.
9615         (cgraph_create_virtual_clone): Update.
9616         * cgraph.h (struct cgraph_edge): Remove
9617         call_stmt_size/call_stmt_time/loop_nest.
9618         (cgraph_create_edge, cgraph_create_indirect_edge,
9619         cgraph_create_edge_including_clones, cgraph_clone_node): Update
9620         prototype.
9621         * tree-emutls.c (gen_emutls_addr): Update.
9622         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
9623         loop_nest; handle indirect calls, too.
9624         (clone_inlined_nodes): Do not care about updating inline summaries.
9625         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
9626         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
9627         stream call_stmt_size/call_stmt_time/loop_nest.
9628         * ipa-inline.c (edge_badness): Update.
9629         (ipa_inline): dump summaries after inlining.
9630         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
9631         New.
9632         (inline_edge_summary): New function.
9633         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
9634         (inline_edge_removal_hook): Handle edge summaries.
9635         (inline_edge_duplication_hook): New hook.
9636         (inline_summary_alloc): Alloc hooks.
9637         (initialize_growth_caches): Do not register removal hooks.
9638         (free_growth_caches); Do not free removal hook.
9639         (dump_inline_edge_summary): New function.
9640         (dump_inline_summary): Use it.
9641         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
9642         (inline_update_callee_summaries): New function.
9643         (inline_merge_summary): Use it.
9644         (do_estimate_edge_time, do_estimate_edge_growth): Update.
9645         (read_inline_edge_summary): New function.
9646         (inline_read_section): Use it.
9647         (write_inline_edge_summary): New function.
9648         (inline_write_summary): Use it.
9649         (inline_free_summary): Free edge new holders.
9650         * tree-inline.c (copy_bb): Update.
9651
9652 2011-04-26  Jason Merrill  <jason@redhat.com>
9653
9654         * tree-eh.c (lower_try_finally_switch): Create the label along with
9655         the CASE_LABEL_EXPR.
9656
9657 2011-04-26  David S. Miller  <davem@davemloft.net>
9658             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9659
9660         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
9661         * configure: Regenerate.
9662
9663 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9664
9665         PR target/48258
9666         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
9667         reduction.
9668         (VEC_reduc): New code iterator and splitters for vector reduction.
9669         (VEC_reduc_name): Ditto.
9670         (VEC_reduc_rtx): Ditto.
9671         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
9672         (reduc_<VEC_reduc_name>_v4sf): Ditto.
9673
9674         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
9675         support for extracting SF on VSX.
9676
9677         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
9678         generating xscvspdp.
9679         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
9680         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
9681         double add, minimum, maximum vector reduction.
9682         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
9683         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
9684         optimize double vector reduction.
9685         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
9686
9687 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
9688
9689         * config/fr30/fr30.h (inhibit_libc): Don't define.
9690         * config/m32r/m32r-protos.h: Correct comment.
9691         * config/v850/v850.h (GHS_default_section_names,
9692         GHS_current_section_names): Use tree, not union tree_node *.
9693
9694 2011-04-26  Xinliang David Li  <davidxl@google.com>
9695
9696         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
9697         * c-family/c-opts.c (c_common_handle_option): Set
9698         warn_maybe_uninitialized.
9699         * opts.c (common_handle_option): Ditto.
9700         * common.opt:  New option.
9701         * tree-ssa.c (warn_uninit): Add one more parameter.
9702         (warn_uninitialized_var): Pass warning code.
9703         * tree-flow.h: Interface change.
9704
9705 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9706
9707         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9708         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
9709         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
9710
9711 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9712
9713         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
9714         * config/mips/mips.opt (mmips-tfile): Remove.
9715
9716         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
9717         mips-tdump reference to ...
9718         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
9719         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
9720         reference by Tru64 UNIX.
9721
9722 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
9723
9724         PR debug/48768
9725         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
9726         is error_mark_node, set value to NULL.
9727
9728         PR tree-optimization/48734
9729         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
9730         if return value from maybe_fold_*_comparsions isn't something
9731         the code is prepared to handle.
9732
9733 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
9734
9735         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
9736         mode check.
9737         (ext_QIreg_nomode_operands): Remove.
9738         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
9739         (*andsi_1): Ditto.
9740         (*andhi_1): Ditto.
9741
9742 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
9743
9744         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
9745
9746 2011-04-26  Richard Guenther  <rguenther@suse.de>
9747
9748         * c-typeck.c (build_unary_op): Do not expand array-refs via
9749         pointer arithmetic.  Only adjust qualifiers for function types.
9750
9751 2011-04-26  Richard Guenther  <rguenther@suse.de>
9752
9753         PR middle-end/48694
9754         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
9755         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
9756         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
9757         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
9758
9759 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
9760
9761         * doc/extend.texi: Document __underlying_type.
9762
9763 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
9764
9765         * config/rs6000/titan.md (automata_option "progress"): Remove.
9766
9767 2011-04-25  Jeff Law  <law@redhat.com>
9768
9769         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
9770
9771 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
9772
9773         * system.h (ENUM_BITFIELD): Remove.
9774
9775 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
9776             Eric Botcazou  <ebotcazou@adacore.com>
9777
9778         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
9779         for STORE_FLAG_VALUE==-1 case.
9780
9781 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
9782
9783         PR target/43804
9784         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
9785         LEGITIMATE_PIC_OPERAND_P.
9786
9787 2011-04-24  Jan Hubicka  <jh@suse.cz>
9788
9789         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
9790         WPA hack.
9791         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
9792         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
9793         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
9794         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
9795         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
9796         Sanity check predicate length.
9797         (remap_predicate): Likewise; sanity check jump functions.
9798         (inline_read_section, inline_write_summary): Sanity check
9799         predicate length.
9800
9801 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
9802
9803         PR other/48748
9804         * doc/extend.texi (Type Traits): Document __is_standard_layout,
9805         __is_literal_type, and __is_trivial; update throughout about
9806         possibly cv-qualified void types.
9807
9808 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
9809
9810         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
9811         testsuite and make it version agnostic.
9812
9813 2011-04-22  Jan Hubicka  <jh@suse.cz>
9814
9815         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
9816
9817 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
9818
9819         PR c/48685
9820         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
9821         to VOID_TYPE even around MODIFY_EXPR.
9822
9823 2011-04-22  Mike Stump  <mikestump@comcast.net>
9824
9825         * gensupport.c (read_md_rtx): Fix typo in comment.
9826         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
9827         comment.
9828
9829 2011-04-22  Jan Hubicka  <jh@suse.cz>
9830
9831         * gengtype.c (open_base_files): Add ipa-inline.h include.
9832         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
9833         ipa-prop.c; update all uses.
9834         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
9835         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
9836         merge summary of inlined function into former caller.
9837         * ipa-inline.c (max_benefit): Remove.
9838         (edge_badness): Compensate for removal of benefits.
9839         (update_caller_keys): Use
9840         reset_node_growth_cache/reset_edge_growth_cache.
9841         (update_callee_keys): Likewise.
9842         (update_all_callee_keys): Likewise.
9843         (inline_small_functions): Do not collect max_benefit; do not reset
9844         estimated_growth; call free_growth_caches and initialize_growth_caches.
9845         * ipa-inline.h (struct condition, type clause_t, struct predicate,
9846         struct size_time_entry): New structures.
9847         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
9848         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
9849         and estimated_growth.
9850         (edge_growth_cache_entry): New structure.
9851         (node_growth_cache, edge_growth_cache): New global vars.
9852         (estimate_growth): Turn into inline.
9853         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
9854         initialize_growth_caches, free_growth_caches): Declare.
9855         (estimate_edge_growth): Rewrite.
9856         (estimate_edge_time): Implement as inline cache lookup.
9857         (reset_node_growth_cache, reset_edge_growth_cache): New inline
9858         functions.
9859         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
9860         (NUM_CONDITIONS): New constant.
9861         (predicate_conditions): New enum.
9862         (IS_NOT_CONSTANT): New constant.
9863         (edge_removal_hook_holder): New var.
9864         (node_growth_cache, edge_growth_cache): New global vars.
9865         (true_predicate, single_cond_predicate, false_predicate,
9866         not_inlined_predicate, add_condition, add_clause, and_predicates,
9867         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
9868         dump_clause, dump_predicate, account_size_time,
9869         evaulate_conditions_for_edge): New functions.
9870         (inline_summary_alloc): Move to heap.
9871         (inline_node_removal_hook): Clear condition and entry vectors.
9872         (inline_edge_removal_hook): New function.
9873         (initialize_growth_caches, free_growth_caches): New function.
9874         (dump_inline_summary): Update.
9875         (edge_execution_predicate): New function.
9876         (will_be_nonconstant_predicate): New function.
9877         (estimate_function_body_sizes): Compute BB and constantness predicates.
9878         (compute_inline_parameters): Do not clear estimated_growth.
9879         (estimate_edge_size_and_time): New function.
9880         (estimate_calls_size_and_time): New function.
9881         (estimate_callee_size_and_time): New function.
9882         (remap_predicate): New function.
9883         (inline_merge_summary): New function.
9884         (do_estimate_edge_time): New function based on...
9885         (estimate_edge_time): ... this one.
9886         (do_estimate_edge_growth): New function.
9887         (do_estimate_growth): New function based on....
9888         (estimate_growth): ... this one.
9889         (inline_analyze_function): Analyze after deciding on jump functions.
9890         (inline_read_section): New function.
9891         (inline_read_summary): Use it.
9892         (inline_write_summary): Write all the new data.
9893         * ipa-prop.c (ipa_get_param_decl_index): Export.
9894         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
9895         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
9896         Declare.
9897         (ipa_get_lattice): Move here from ipa-cp.c
9898         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
9899         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
9900         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
9901         cgraph_edge_inlinable_p): Remove.
9902         * cgraphunit.c: Include ipainline.h
9903         (cgraph_process_new_functions): Update call of
9904         compute_inline_parameters.
9905
9906 2011-04-22  Richard Guenther  <rguenther@suse.de>
9907
9908         * tree.c (build_int_cst): Properly create canonicalized integer
9909         constants.
9910         (build_int_cst_type): Remove scary comments.
9911
9912 2011-04-22  Xinliang David Li  <davidxl@google.com>
9913
9914         * toplev.c (process_options): Enable -Werror=coverage-mismatch
9915         by default when -Wno-error is not specified.
9916         * opts-global.c (decode_options): Remove call to
9917         control_warning_options.
9918
9919 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
9920
9921         PR tree-optimization/48717
9922         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
9923         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
9924
9925 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
9926
9927         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
9928         definition where used.
9929
9930 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
9931
9932         PR c/48716
9933         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
9934         TREE_STATIC variables declared inside of some OpenMP construct.
9935
9936 2011-04-22  Martin Jambor  <mjambor@suse.cz>
9937
9938         PR middle-end/48585
9939         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
9940
9941 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
9942
9943         PR c/36750
9944         * c-typeck.c (pop_init_level): Do not warn about initializing
9945         with ` = {0}'.
9946
9947 2011-04-22  Alan Modra  <amodra@gmail.com>
9948
9949         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
9950         when returning call_cookie.
9951         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
9952         pointers, to functions with no more vector args than the current
9953         function, and some non-local calls for ABI_V4.
9954         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
9955         sibcall_nonlocal_aix64): Combine to ..
9956         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
9957         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
9958         (sibcall_value_nonlocal_aix<mode>): ..likewise.
9959         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
9960         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
9961         operand.
9962         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
9963         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
9964         sibcall_value_symbolic_64): Delete.
9965
9966 2011-04-21  Xinliang David Li  <davidxl@google.com>
9967
9968         * cgraph.h: Remove pid.
9969         * cgraph.c: Remove pid.
9970         * value-prof.c (init_node_map): New function.
9971         (del_node_map): New function.
9972         (find_func_by_funcdef_no): New function.
9973         (gimple_ic_transform): Call new function.
9974         * cgraphunit.c (cgraph_finalize_function): Remove pid.
9975         * function.c (get_last_funcdef_no): New function.
9976         * function.h (get_last_funcdef_no): New function.
9977         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
9978         to libgcov function.
9979         (tree-profiling): Call node map init and delete function.
9980
9981 2011-04-21  Ian Lance Taylor  <iant@google.com>
9982
9983         * godump.c (go_format_type): Use exported Go name for anonymous
9984         field name.
9985
9986 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9987
9988         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
9989         Call builtin_function_type_list instead of builtin_function_type.
9990         (UNARY, BINARY, TRINARY, QUAD): Likewise.
9991
9992 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9993
9994         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
9995         build_function_type_list instead of build_function_type.
9996         Delete variable `endlink'.
9997
9998 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9999
10000         * config/s390/s390.c (s390_init_builtins): Call
10001         build_function_type_list instead of build_function_type.
10002
10003 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
10004
10005         * config/ia64/ia64.c (ia64_init_builtins): Call
10006         build_function_type_list instead of builtin_function_type.
10007
10008 2011-04-21  Easwaran Raman  <eraman@google.com>
10009
10010         * cfgexpand.c (stack_var): Remove OFFSET...
10011         (add_stack_var): ...and its reference here...
10012         (expand_stack_vars): ...and here.
10013         (stack_var_cmp): Sort by descending order of size.
10014         (partition_stack_vars): Change heuristic.
10015         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
10016         (dump_stack_var_partition): Add newline after each partition.
10017
10018 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
10019             Jeff Law  <law@redhat.com>
10020
10021         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
10022         * gengtype.c (matching_file_name_substitute): Likewise.
10023
10024 2011-04-21  Richard Guenther  <rguenther@suse.de>
10025
10026         PR lto/48703
10027         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
10028
10029 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
10030
10031         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
10032
10033 2011-04-21  Richard Guenther  <rguenther@suse.de>
10034
10035         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
10036         file name.
10037
10038 2011-04-21  Richard Guenther  <rguenther@suse.de>
10039
10040         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
10041         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
10042         Use DECL_P, not SSA_VAR_P.
10043         (ptr_derefs_may_alias_p): Likewise.
10044         (ptr_deref_may_alias_ref_p_1): Likewise.
10045         (decl_refs_may_alias_p): Likewise.
10046         (refs_may_alias_p_1): Likewise.
10047         (ref_maybe_used_by_call_p_1): Likewise.
10048         (call_may_clobber_ref_p_1): Likewise.
10049         (indirect_ref_may_alias_decl_p): Assume indirect refrences
10050         are either MEM_REF or TARGET_MEM_REF.
10051         (indirect_refs_may_alias_p): Likewise.
10052         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
10053         for MEM_EXPR of indirect calls.
10054
10055 2011-04-21  Tristan Gingold  <gingold@adacore.com>
10056
10057         * vmsdbgout.c (write_srccorr): Compute file length from the string.
10058         (dst_file_info_struct): Remove flen field.
10059         (lookup_filename): Remove code that set flen field.
10060
10061 2011-04-21  Tristan Gingold  <gingold@adacore.com>
10062
10063         * config/ia64/ia64.c (ia64_start_function): Add a guard.
10064
10065 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
10066
10067         PR target/48708
10068         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
10069         vec_extract and vec_concat for non-SSE4_1 targets.
10070
10071 2011-04-21  Richard Guenther  <rguenther@suse.de>
10072
10073         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
10074         return statements.
10075
10076 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
10077
10078         * config/i386/cygming.h (union tree_node, TREE): Don't define or
10079         undefine.
10080         (FILE): Don't undefine.
10081
10082 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
10083
10084         * config/alpha/alpha.c (struct machine_function): Use rtx, not
10085         struct rtx_def *.
10086         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
10087         struct rtx_def *.
10088         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
10089         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
10090         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
10091         rtx_def *.
10092         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
10093         definitions where used.
10094         * config/microblaze/microblaze.h (struct microblaze_args): Use
10095         rtx, not struct rtx_def *.
10096         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
10097         rtx_def *.
10098         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
10099         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
10100         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
10101         not struct rtx_def *.
10102         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
10103         struct rtx_def *.
10104         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
10105         rtx_def *.
10106         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
10107
10108 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
10109
10110         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
10111         operand_equal_p to compare DR_BASE_ADDRESSes.
10112         (vect_check_interleaving): Likewise.
10113
10114 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
10115
10116         PR target/46329
10117         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
10118         for all Neon struct constants.
10119
10120 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
10121
10122         * target.def (legitimate_constant_p): New hook.
10123         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
10124         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
10125         * doc/tm.texi: Regenerate.
10126         * hooks.h (hook_bool_mode_rtx_true): Declare.
10127         * hooks.c (hook_bool_mode_rtx_true): Define.
10128         * system.h (LEGITIMATE_CONSTANT_P): Poison.
10129         * calls.c (precompute_register_parameters): Replace uses of
10130         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
10131         (emit_library_call_value_1): Likewise.
10132         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
10133         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
10134         * ira-costs.c (scan_one_insn): Likewise.
10135         * recog.c (general_operand, immediate_operand): Likewise.
10136         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
10137         * reload1.c (init_eliminable_invariants): Likewise.
10138
10139         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
10140         mode argument.
10141         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
10142         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
10143         argument.
10144         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10145         * config/alpha/predicates.md (input_operand): Update call to
10146         alpha_legitimate_constant_p.
10147
10148         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
10149         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
10150         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
10151         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10152         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
10153         (arm_legitimate_constant_p): New functions.
10154         (arm_cannot_force_const_mem): Make static.
10155
10156         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
10157
10158         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
10159         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
10160         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
10161         instead of bfin_legitimate_constant_p.
10162         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
10163         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10164
10165         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
10166
10167         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
10168
10169         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
10170         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
10171         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10172         (frv_legitimate_constant_p): Make static.  Add a mode argument.
10173
10174         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
10175         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
10176         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
10177
10178         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
10179         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
10180         * config/i386/i386.c (legitimate_constant_p): Rename to...
10181         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
10182         argument.
10183         (ix86_cannot_force_const_mem): Update accordingly.
10184         (ix86_legitimate_address_p): Likewise.
10185         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10186         * config/i386/i386.md: Update commentary.
10187
10188         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
10189         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
10190         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10191         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
10192
10193         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
10194
10195         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
10196         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
10197         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10198         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
10199
10200         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
10201         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
10202         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
10203
10204         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
10205         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10206         (m32r_legitimate_constant_p): New function.
10207
10208         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
10209         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
10210         LEGITIMATE_CONSTANT_P.
10211         (LEGITIMATE_CONSTANT_P): Delete.
10212         * config/m68k/m68k.c (m68k_expand_prologue): Call
10213         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
10214         (m68k_legitimate_constant_p): New function.
10215         * config/m68k/m68k.md: Update comments.
10216
10217         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
10218         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10219         (mcore_legitimate_constant_p): New function.
10220
10221         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
10222         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
10223         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
10224         Add a mode argument.
10225         (mep_legitimate_address): Update accordingly.
10226         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10227
10228         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
10229         Delete.
10230         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
10231         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
10232         static.  Check OP's mode for VOIDmode.
10233         (microblaze_legitimate_constant_p): New function.
10234         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10235
10236         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
10237         * config/mips/mips.c (mips_legitimate_constant_p): New function.
10238         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
10239         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10240         * config/mips/predicates.md: Update comments.
10241
10242         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
10243         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
10244         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10245         (mmix_legitimate_constant_p): Make static, return a bool, and take
10246         a mode argument.
10247         (mmix_print_operand_address): Update accordingly.
10248
10249         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
10250         Delete.
10251         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
10252         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
10253         static.  Add a mode argument.
10254         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10255
10256         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
10257
10258         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
10259         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10260         (pa_legitimate_constant_p): New function.
10261
10262         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
10263
10264         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
10265         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10266         (pdp11_legitimate_constant_p): New function.
10267
10268         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
10269         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10270         (rs6000_legitimate_constant_p): New function.
10271
10272         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
10273         (rx_legitimate_constant_p): ...this.
10274         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
10275         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
10276         (rx_legitimate_constant_p): ...this.
10277         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10278         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
10279
10280         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
10281         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
10282         * config/s390/s390.c (legitimate_constant_p): Rename to...
10283         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
10284         and add a mode argument.
10285         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10286
10287         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
10288
10289         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
10290         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10291         (sh_legitimate_constant_p): New function.
10292
10293         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
10294         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
10295         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10296         (legitimate_constant_p): Rename to...
10297         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
10298         argument.
10299         (constant_address_p): Update accordingly.
10300
10301         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
10302         argument and return a bool.
10303         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
10304         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10305         (spu_legitimate_constant_p): Add a mode argument and return a bool.
10306         (spu_rtx_costs): Update accordingly.
10307         * config/spu/predicates.md (vec_imm_operand): Likewise.
10308
10309         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
10310
10311         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
10312         * config/v850/v850.c (v850_legitimate_constant_p): New function.
10313         (TARGET_LEGITIMATE_CONSTANT_P): Define.
10314
10315         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
10316         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
10317         * config/vax/vax.c (legitimate_constant_p): Likewise.
10318
10319         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
10320         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10321         (xtensa_legitimate_constant_p): New function.
10322
10323 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
10324
10325         * target.def (cannot_force_const_mem): Add a mode argument.
10326         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
10327         * doc/tm.texi: Regenerate.
10328         * hooks.h (hook_bool_mode_rtx_false): Declare.
10329         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
10330         (hook_bool_mode_const_rtx_true): Likewise.
10331         (hook_bool_mode_rtx_false): New function.
10332         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
10333         to be non-VOID.  Update call to cannot_force_const_mem.
10334         (find_reloads): Update accordingly.
10335         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
10336         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
10337         argument.
10338         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
10339         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
10340         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
10341         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
10342         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
10343         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
10344         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
10345         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
10346         (m68k_cannot_force_const_mem): ...this new function.
10347         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
10348         argument.
10349         (mips_const_insns, mips_legitimize_const_move): Update calls.
10350         (mips_secondary_reload_class): Likewise.
10351         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
10352         (pa_cannot_force_const_mem): ...this new function.
10353         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
10354         (rs6000_cannot_force_const_mem): ...this new function.
10355         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
10356         argument.
10357         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
10358         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
10359         to...
10360         (xtensa_cannot_force_const_mem): ...this new function.
10361
10362 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
10363
10364         * config/mips/mips.c (mips16_build_function_stub): Call
10365         build_function_type_list instead of build_function_type.
10366         (mips16_build_call_stub): Likewise.
10367
10368 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
10369
10370         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
10371         instead of build_function_type.
10372
10373 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
10374
10375         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
10376         instead of build_function_type.
10377
10378 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
10379
10380         PR target/48678
10381         * config/i386/i386.md (insv): Change operand 0 constraint to
10382         "register_operand".  Change operand 1 and 2 constraint to
10383         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
10384         * config/i386/sse.md (sse4_1_pinsrb): Export.
10385         (sse2_pinsrw): Ditto.
10386         (sse4_1_pinsrd): Ditto.
10387         (sse4_1_pinsrq): Ditto.
10388         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
10389         * config/i386/i386.c (ix86_expand_pinsr): New.
10390
10391 2011-04-20  Easwaran Raman  <eraman@google.com>
10392
10393         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
10394         containing union type only with -fstrict-aliasing.
10395
10396 2011-04-20  Jim Meyering  <meyering@redhat.com>
10397
10398         Remove useless if-before-free tests.
10399         * calls.c (expand_call, save_area): Likewise.
10400         * cfgcleanup.c (try_forward_edges): Likewise.
10401         * collect2.c (collect_execute): Likewise.
10402         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
10403         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
10404         * coverage.c (coverage_checksum_string): Likewise.
10405         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
10406         * cselib.c (cselib_init): Likewise.
10407         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
10408         (df_set_clean_cfg): Likewise.
10409         * function.c (free_after_compilation): Likewise.
10410         * gcc.c (do_spec_1, main): Likewise.
10411         * gcov.c (create_file_names): Likewise.
10412         * gensupport.c (identify_predicable_attribute): Likewise.
10413         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
10414         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
10415         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
10416         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
10417         * ipa-pure-const.c (local_pure_const): Likewise.
10418         * ipa-reference.c (propagate): Likewise.
10419         * ira-costs.c (free_ira_costs): Likewise.
10420         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
10421         * matrix-reorg.c (mat_free): Likewise.
10422         * prefix.c (get_key_value): Likewise.
10423         * profile.c (compute_value_histograms): Likewise.
10424         * reload1.c (free_reg_equiv): Likewise.
10425         * sched-deps.c (free_deps): Likewise.
10426         * sel-sched-ir.c (fence_clear): Likewise.
10427         * sese.c (set_rename, if_region_set_false_region): Likewise.
10428         * tree-data-ref.c (free_rdg): Likewise.
10429         * tree-eh.c (lower_try_finally): Likewise.
10430         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
10431         * tree-ssa-live.c (delete_var_map): Likewise.
10432         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
10433         * tree-ssa-pre.c (phi_trans_add): Likewise.
10434
10435 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
10436
10437         PR tree-optimization/48611
10438         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
10439         beyond ERT_MUST_NOT_THROW region.
10440
10441 2011-04-20  Catherine Moore  <clm@codesourcery.com>
10442
10443         * config/mips/mips.opt (mfix-24k): New.
10444         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
10445         * config/mips/mips.md (length): Increase by 4 for stores if
10446         fixing 24K errata.
10447         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
10448         all noreorder if fixing 24K errata.
10449         * doc/invoke.texi: Document mfix-24k.
10450
10451 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
10452
10453         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
10454         quad-word modes, reduce to 9-bit index range when above 1016 limit.
10455
10456 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
10457
10458         * config/arm/arm.c (arm_gen_constant): Move movw support ....
10459         (const_ok_for_op): ... to here.
10460
10461 2011-04-20  Kai Tietz  <ktietz@redhat.com>
10462
10463         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
10464         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
10465
10466 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
10467
10468         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
10469
10470 2011-04-20  Richard Guenther  <rguenther@suse.de>
10471
10472         PR tree-optimization/47892
10473         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
10474         are if-convertible.
10475
10476 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
10477
10478         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
10479
10480 2011-04-20  Tristan Gingold  <gingold@adacore.com>
10481
10482         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
10483
10484 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
10485
10486         PR target/18145
10487
10488         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
10489         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
10490         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
10491         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
10492         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
10493
10494         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
10495         New prototype.
10496
10497         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
10498         (avr_asm_named_section, avr_asm_output_aligned_common,
10499         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
10500         New functions to update...
10501         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
10502         (avr_asm_init_sections): Overwrite section callbacks for
10503         data_section, bss_section.
10504         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
10505         from here to...
10506         (avr_file_end): ...here.
10507
10508 2011-04-20  Richard Guenther  <rguenther@suse.de>
10509
10510         PR middle-end/48695
10511         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
10512         objects and types here.  Adjust for their offset before comparing.
10513
10514 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
10515
10516         * tree-vect-stmts.c (vectorizable_store): Only chain one related
10517         statement per copy.
10518
10519 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
10520
10521         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
10522         (GIMPLE_H): Include $(INTERNAL_FN_H).
10523         (OBJS-common): Add internal-fn.o.
10524         (internal-fn.o): New rule.
10525         * internal-fn.def: New file.
10526         * internal-fn.h: Likewise.
10527         * internal-fn.c: Likewise.
10528         * gimple.h: Include internal-fn.h.
10529         (GF_CALL_INTERNAL): New gf_mask.
10530         (gimple_statement_call): Put fntype into a union with a new
10531         internal_fn field.
10532         (gimple_build_call_internal): Declare.
10533         (gimple_build_call_internal_vec): Likewise.
10534         (gimple_call_same_target_p): Likewise.
10535         (gimple_call_internal_p): New function.
10536         (gimple_call_internal_fn): Likewise.
10537         (gimple_call_fntype): Return null for internal calls.
10538         (gimple_call_set_fntype): Assert that the function is not internal.
10539         (gimple_call_set_fn): Likewise.
10540         (gimple_call_set_fndecl): Likewise.
10541         (gimple_call_set_internal_fn): New function.
10542         (gimple_call_addr_fndecl): Handle null functions.
10543         (gimple_call_return_type): Likewise null types.
10544         * gimple.c (gimple_build_call_internal_1): New function.
10545         (gimple_build_call_internal): Likewise.
10546         (gimple_build_call_internal_vec): Likewise.
10547         (gimple_call_same_target_p): Likewise.
10548         (gimple_call_flags): Handle calls to internal functions.
10549         (gimple_call_fnspec): New function.
10550         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
10551         (gimple_has_side_effects): Handle null functions.
10552         (gimple_rhs_has_side_effects): Likewise.
10553         (gimple_call_copy_skip_args): Handle calls to internal functions.
10554         * cfgexpand.c (expand_call_stmt): Likewise.
10555         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
10556         * gimple-fold.c (gimple_fold_call): Handle null functions.
10557         (gimple_fold_stmt_to_constant_1): Don't fold
10558         calls to internal functions.
10559         * gimple-low.c (gimple_check_call_args): Handle calls to internal
10560         functions.
10561         * gimple-pretty-print.c (dump_gimple_call): Likewise.
10562         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
10563         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
10564         (do_warn_unused_result): Likewise.
10565         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
10566         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
10567         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
10568         the target of a call.
10569         (initialize_hash_element): Update accordingly.
10570         (hashable_expr_equal_p): Use gimple_call_same_target_p.
10571         (iterative_hash_hashable_expr): Handle calls to internal functions.
10572         (print_expr_hash_elt): Likewise.
10573         * tree-ssa-pre.c (can_value_number_call): Likewise.
10574         (eliminate): Handle null functions.
10575         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
10576         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
10577         (find_func_aliases): Likewise.
10578         * value-prof.c (gimple_ic_transform): Likewise.
10579         (gimple_indirect_call_to_profile): Likewise.
10580         * lto-streamer-in.c (input_gimple_stmt): Likewise.
10581         * lto-streamer-out.c (output_gimple_stmt): Likewise.
10582
10583 2011-04-19  Jan Hubicka  <jh@suse.cz>
10584
10585         * ipa-inline-transform.c (save_inline_function_body): Add comments.
10586         * ipa-inline.c (inline_small_functions): Compute summaries first,
10587         populate heap later.
10588
10589 2011-04-19  Jan Hubicka  <jh@suse.cz>
10590
10591         * cgraph.h (save_inline_function_body): Remove.
10592         * ipa-inline-transform.c: New file, broke out of...
10593         * ipa-inline.c: ... this one; Update toplevel comment.
10594         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
10595         make global.
10596         (update_noncloned_frequencies): Move to ipa-inline-transform.c
10597         (cgraph_mark_inline_edge): Rename to inline_call; move to
10598         ipa-inline-transform.c.
10599         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
10600         move to ipa-inline-transform.c
10601         (recursive_inlining, inline_small_functions, flatten_function,
10602         ipa_inline, inline_always_inline_functions,
10603         early_inline_small_functions): Update.
10604         (inline_transform): Move to ipa-inline-transform.c.
10605         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
10606         Declare.
10607         * Makefile.in (ipa-inline-transform.o): New file.
10608         * cgraphunit.c (save_inline_function_body): Move to
10609         ipa-inline-transform.c
10610
10611 2011-04-19  DJ Delorie  <dj@redhat.com>
10612
10613         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
10614         registers if we already know there aren't any.
10615         (m32c_emit_epilogue): Don't emit a barrier here.
10616         (m32c_emit_eh_epilogue): Likewise.
10617         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
10618         operands at expand time.
10619         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
10620         int" wchar type.
10621         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
10622         duplicates.  Provide aliases instead.
10623         * config/m32c/prologue.md (eh_return): Emit a barrier here.
10624         (eh_epilogue): Add a "(return)" here as a hint to other parts of
10625         the compiler.
10626
10627 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
10628
10629         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
10630         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
10631         (general_or_i64_p, sparc_register_move_cost): New function.
10632
10633 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10634
10635         * doc/install.texi (Configuration, --enable-threads): Remove mach.
10636         Add lynx, mipssde.  Sort table.
10637
10638 2011-04-19  Xinliang David Li  <davidxl@google.com>
10639
10640         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
10641         not negative.
10642
10643 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
10644
10645         PR target/48678
10646         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
10647         is a SUBREG with non-MODE_INT mode inside of it.
10648
10649 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10650
10651         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
10652         also according to actual contants.
10653         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
10654         (gimple_fold_call): Use it.
10655         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
10656
10657 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10658
10659         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
10660         non-pointer assignments.
10661
10662 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10663
10664         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
10665         account anc_offset and otr_type from the indirect edge info.
10666         * ipa-prop.c (get_ancestor_addr_info): New function.
10667         (compute_complex_ancestor_jump_func): Assignment analysis moved to
10668         get_ancestor_addr_info, call it.
10669         (ipa_note_param_call): Do not initialize information about polymorphic
10670         calls, return the indirect call graph edge.  Remove the last
10671         parameter, adjust all callers.
10672         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
10673         parameters.  Initialize polymorphic information in the indirect edge.
10674
10675 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10676
10677         PR lto/48148
10678         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
10679         the types if they have different enumeration identifiers.
10680
10681 2011-04-19  Jan Hubicka  <jh@suse.cz>
10682
10683         * cgraph.h (cgraph_optimize_for_size_p): Declare.
10684         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
10685         * predict.c (cgraph_optimize_for_size_p): Break out from ...
10686         (optimize_function_for_size_p) ... here.
10687
10688 2011-04-19  Richard Guenther  <rguenther@suse.de>
10689
10690         PR lto/48207
10691         * tree.c (free_lang_data): Do not reset the decl-assembler-name
10692         langhook.
10693
10694 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10695
10696         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
10697         if DECL_NO_INLINE_WARNING_P is set on the function.
10698
10699 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
10700
10701         PR fortran/47976
10702         * reload1.c (inc_for_reload): Return void. All callers changed.
10703         (emit_input_reload_insns): Don't try to delete previous output
10704         reloads to a register, or record spill_reg_store for autoincs.
10705
10706 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
10707
10708         * gengtype.h: Updated copyright year.
10709         (struct input_file_st): Add inpisplugin field.
10710         (type_fileloc): New function.
10711         * gengtype.c
10712         (write_typed_struct_alloc_def): Add gcc_assert.
10713         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
10714         (write_typed_alloc_defns): Don't output for plugin files.
10715         (input_file_by_name): Clear inpisplugin field.
10716         (main): Set inpisplugin field for plugin files.
10717
10718 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
10719
10720         * gengtype-state.c (string_eq): New.
10721         (read_state): Use string_eq instead of strcmp when creating the
10722         state_ident_tab.
10723
10724 2011-04-19  Wei Guozhi  <carrot@google.com>
10725
10726         PR target/47855
10727         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
10728         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
10729         linkage.
10730         * config/arm/constraints.md (Uu): New constraint.
10731         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
10732
10733 2011-04-19  Tristan Gingold  <gingold@adacore.com>
10734
10735         * config.gcc (-*-*-*vms): Added.
10736         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
10737         definitions moved.
10738         * config/vms/vms-ld.c: New file.
10739         * config/vms/vms-ar.c: New file.
10740         * config/vms/t-vmsnative: New file.
10741
10742 2011-04-18  Xinliang David Li  <davidxl@google.com>
10743
10744         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
10745
10746 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
10747
10748         PR middle-end/48661
10749         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
10750         if TREE_TYPE (v) is non-NULL.
10751
10752         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
10753         gimple_get_virt_mehtod_for_binfo.
10754         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
10755         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
10756         callers.
10757         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
10758
10759 2011-04-18  Michael Matz  <matz@suse.de>
10760             Steve Ellcey  <sje@cup.hp.com>
10761
10762         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
10763         use its mode as source mode if it isn't VOIDmode.
10764
10765 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
10766
10767         * doc/passes.texi: Fill crossref nodes.
10768
10769 2011-04-18  Jim Meyering  <meyering@redhat.com>
10770
10771         Fix doubled-word typos in comments and strings
10772         * config/alpha/vms-unwind.h: s/for for/for/
10773         * config/arm/unwind-arm.h: Likewise.
10774         * config/microblaze/microblaze.c: Likewise.
10775         * config/sh/constraints.md: s/in in/in/
10776         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
10777
10778 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
10779
10780         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
10781         (AVX_FLOAT_MODE_P): Ditto.
10782         (AVX128_VEC_FLOAT_MODE_P): Ditto.
10783         (AVX256_VEC_FLOAT_MODE_P): Ditto.
10784         (AVX_VEC_FLOAT_MODE_P): Ditto.
10785         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
10786         (UNSPEC_MASKSTORE): Ditto.
10787         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
10788         Merge from <sse>_movmsk<ssemodesuffix> and
10789         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
10790         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
10791         iterator.
10792         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
10793         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
10794         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
10795
10796 2011-04-18  Jan Hubicka  <jh@suse.cz>
10797
10798         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
10799
10800         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
10801         (want_inline_function_called_once_p): Break out the logic from
10802         ipa_inline.
10803         (edge_badness): Ensure that profile is not misupdated.
10804         (lookup_recursive_calls): Prioritize by call frequencies.
10805         (inline_small_functions): Move program size estimates here;
10806         actually process whole queue even when unit growth has been
10807         met. (to properly compute inline_failed reasons and for the
10808         case unit size decrease.) Revisit comments on recursive inlining.
10809         (ipa_inline): Remove unit summary code; first inline hot calls
10810         of functions called once, cold calls next.
10811         (order, nnodes): Remove unused variables.
10812         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
10813         (GTFILES): Remove ipa-inline.c
10814         * sel-sched.c (fill_insns): Silence uninitialized var warning.
10815
10816 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
10817
10818         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
10819
10820 2011-04-18  Jie Zhang  <jie@codesourcery.com>
10821             Richard Earnshaw  <rearnsha@arm.com>
10822
10823         * arm.c (neon_builtin_type_bits): Remove.
10824         (typedef enum neon_builtin_mode): New.
10825         (T_MAX): Don't define.
10826         (typedef enum neon_builtin_datum): Remove bits, codes[],
10827         num_vars and base_fcode.  Add mode, code and fcode.
10828         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
10829         VAR10): Change accordingly.
10830         (neon_builtin_data[]): Change accordingly
10831         (arm_init_neon_builtins): Change accordingly.
10832         (neon_builtin_compare): Remove.
10833         (locate_neon_builtin_icode): Remove.
10834         (arm_expand_neon_builtin): Change accordingly.
10835
10836         * arm.h (enum arm_builtins): Move to ...
10837         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
10838
10839         * arm.c (arm_builtin_decl): Declare.
10840         (TARGET_BUILTIN_DECL): Define.
10841         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
10842         (arm_builtin_decls[]): New.
10843         (arm_init_neon_builtins): Store builtin declarations in
10844         arm_builtin_decls[].
10845         (arm_init_tls_builtins): Likewise.
10846         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
10847         (arm_builtin_decl): New.
10848
10849 2011-04-18  Richard Guenther  <rguenther@suse.de>
10850
10851         * tree.c (upper_bound_in_type): Build properly canonicalized
10852         INTEGER_CSTs.
10853         (lower_bound_in_type): Likewise.
10854
10855 2011-04-18  Richard Guenther  <rguenther@suse.de>
10856
10857         * gimple.h (gimple_call_addr_fndecl): New function.
10858         (gimple_call_fndecl): Use it.
10859         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
10860         for direct calls.
10861         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
10862         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
10863
10864 2011-04-18  Richard Guenther  <rguenther@suse.de>
10865
10866         PR middle-end/48650
10867         * tree.c (build_string): STRING_CST is now derived from tree_typed.
10868
10869 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
10870
10871         PR lto/48492
10872         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
10873         DECL_IN_CONSTANT_POOL without RTL.
10874
10875 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
10876             Ira Rosen  <ira.rosen@linaro.org>
10877
10878         PR target/48252
10879         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
10880         to match neon_vzip/vuzp/vtrn_internal.
10881         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
10882         outputs explicitly dependent on both inputs.
10883         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
10884
10885 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
10886
10887         PR tree-optimization/48616
10888         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
10889         whether the shift is by scalar or vector based on whether all SLP
10890         scalar stmts have the same rhs.
10891
10892 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
10893
10894         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
10895         memory operands.
10896
10897 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
10898
10899         PR target/43700
10900         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
10901         registers.
10902
10903 2011-04-17  Jan Hubicka  <jh@suse.cz>
10904
10905         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
10906         * cgrpahunit.c (cgraph_finalize_function): Do not set
10907         finalized_by_frontend.
10908         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
10909         finalized_by_frontend.
10910
10911 2011-04-17  Jan Hubicka  <jh@suse.cz>
10912
10913         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
10914         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
10915         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
10916         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
10917         method.
10918         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
10919         gimple-fold.c
10920         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
10921
10922 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
10923
10924         PR lto/48538
10925         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
10926         is non-null before accessing it.
10927         (input_cgraph): Remove trailing spaces.
10928
10929 2011-04-17  Revital Eres  <revital.eres@linaro.org>
10930
10931         * params.def (sms-min-sc): New param flag.
10932         * modulo-sched.c (sms_schedule): Use it.
10933         * doc/invoke.texi (sms-min-sc): Document it.
10934
10935 2011-04-17  Jan Hubicka  <jh@suse.cz>
10936
10937         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
10938         present, also set gimple_call_set_cannot_inline.
10939         * ipa-inline.c: Update toplevel comment.
10940         (MAX_TIME): Remove.
10941         (cgraph_clone_inlined_nodes): Fix linebreaks.
10942         (cgraph_check_inline_limits): Restructure to ...
10943         (caller_growth_limits): ... this one; be more tolerant
10944         on growth in nested inline chains; add explanatory comment;
10945         fix stack accounting thinko introduced by previous patch.
10946         (cgraph_default_inline_p): Remove.
10947         (report_inline_failed_reason): New function.
10948         (can_inline_edge_p): New function.
10949         (can_early_inline_edge_p): New function.
10950         (leaf_node_p): Move upwards in file.
10951         (want_early_inline_function_p): New function.
10952         (want_inline_small_function_p): New function.
10953         (want_inline_self_recursive_call_p): New function.
10954         (cgraph_edge_badness): Rename to ...
10955         (edge_badness) ... this one; fix linebreaks.
10956         (update_edge_key): Update call of edge_baddness; add
10957         detailed dump about queue updates.
10958         (update_caller_keys): Use can_inline_edge_p and
10959         want_inline_small_function_p.
10960         (cgraph_decide_recursive_inlining): Rename to...
10961         (recursive_inlining): Use can_inline_edge_p and
10962         want_inline_self_recursive_call_p; simplify and remove no longer
10963         valid FIXME.
10964         (cgraph_set_inline_failed): Remove.
10965         (add_new_edges_to_heap): Use can_inline_edge_p and
10966         want_inline_small_function_p.
10967         (cgraph_decide_inlining_of_small_functions): Rename to ...
10968         (inline_small_functions): ... this one; cleanup; use
10969         can/want predicates; cleanup debug ouput; work edges till fibheap
10970         is exhausted and do not stop once unit growth is reached; remove
10971         later loop processing remaining edges.
10972         (cgraph_flatten): Rename to ...
10973         (flatten_function): ... this one; use can_inline_edge_p
10974         and can_early_inline_edge_p predicates.
10975         (cgraph_decide_inlining): Rename to ...
10976         (ipa_inline): ... this one; remove unreachable nodes before
10977         inlining functions called once; simplify the pass.
10978         (cgraph_perform_always_inlining): Rename to ...
10979         (inline_always_inline_functions): ... this one; use
10980         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
10981         (cgraph_decide_inlining_incrementally): Rename to ...
10982         (early_inline_small_functions): ... this one; simplify
10983         using new predicates; cleanup; make dumps prettier.
10984         (cgraph_early_inlining): Rename to ...
10985         (early_inliner): newer inline regular functions into always-inlines;
10986         fix updating of call stmt summaries.
10987         (pass_early_inline): Update for new names.
10988         (inline_transform): Fix formating.
10989         (gate_cgraph_decide_inlining): Rename to ...
10990         (pass_ipa_inline): ... this one.
10991         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
10992         * ipa-inline-analysis.c (dump_inline_summary): Update.
10993         (compute_inline_parameters): Do not compute disregard_inline_limits;
10994         look for mismatching arguments.
10995         (estimate_growth): Fix handlig of non-trivial self recursion.
10996         (inline_read_summary): Do not read info->disregard_inline_limits.
10997         (inline_write_summary): Do not write info->disregard_inline_limits.
10998         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
10999         and move all checks into can_inline_edge_p predicate; re-enable code
11000         comparing optimization levels.
11001         (expand_call_inline): Do not test inline_forbidden_into_p.
11002         * Makefile.in (ipa-inline.o): Update arguments.
11003
11004 2011-04-17  Revital Eres  <revital.eres@linaro.org>
11005
11006         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
11007
11008 2011-04-17  Revital Eres  <revital.eres@linaro.org>
11009
11010         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
11011
11012 2011-04-17  Michael Matz  <matz@suse.de>
11013
11014         PR tree-optimization/48622
11015         PR lto/48645
11016         * ipa-inline-analysis.c (inline_read_summary): Read size/time
11017         in same order as they're written.
11018
11019 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11020
11021         * config/pa/predicates.md: Reorganize and simplify predicates.
11022         Eliminate duplicate code checks.
11023         (arith_operand): Rename to arith14_operand
11024         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
11025         * config/pa/pa.md: Use renamed operands.
11026         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
11027         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
11028         arith11_operand, adddi3_operand, indexed_memory_operand,
11029         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
11030         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
11031         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
11032         move_dest_operand, move_src_operand, prefetch_cc_operand,
11033         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
11034         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
11035         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
11036         div_operand, int5_operand, movb_comparison_operator,
11037         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
11038         arith_double_operand, ireg_operand, lhs_lshift_operand,
11039         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
11040         integer_store_memory_operand): Likewise.
11041         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
11042         (integer_store_memory_operand, read_only_operand,
11043         function_label_operand, borx_reg_operand,
11044         non_hard_reg_operand): Likewise.
11045         (eq_neq_comparison_operator): Delete unused operator.
11046         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
11047         function_label_operand.
11048         (emit_move_sequence): Likewise.
11049
11050 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
11051
11052         * config/i386/sse.md (sseunpackmode): New mode attribute.
11053         (ssepackmode): Ditto.
11054         (vec_pack_trunc_<mode>): Macroize expander from
11055         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
11056         (vec_unpacks_lo_<mode>): Macroize expander from
11057         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11058         (vec_unpacks_hi_<mode>): Macroize expander from
11059         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11060         (vec_unpacku_lo_<mode>): Macroize expander from
11061         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11062         (vec_unpacku_hi_<mode>): Macroize expander from
11063         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11064         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
11065         ix86_expand_sse4_unpack.
11066         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
11067
11068 2011-04-16  Jan Hubicka  <jh@suse.cz>
11069
11070         * cgraphbuild.c: Include ipa-inline.h.
11071         (reset_inline_failed): Use initialize_inline_failed.
11072         * cgraph.c: Include ipa-inline.h.
11073         (cgraph_create_node_1): Do not initialize estimated_growth.
11074         (initialize_inline_failed): More to ipa-inline-analysis.c
11075         (dump_cgraph_node): Do not dump inline flags.
11076         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
11077         and disregard_inline_limits flags.
11078         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
11079         time, size, estimated_growth.
11080         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
11081         Update.
11082         * cgraphunit.c (cgraph_decide_is_function_needed): Use
11083         DECL_DISREGARD_INLINE_LIMITS.
11084         (cgraph_analyze_function): Do not initialize
11085         node->local.disregard_inline_limits.
11086         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
11087         inlinable, versionable and disregard_inline_limits.
11088         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
11089         cgraph_check_inline_limits, cgraph_default_inline_p,
11090         cgraph_edge_badness, update_caller_keys, update_callee_keys,
11091         add_new_edges_to_heap): Update.
11092         (cgraph_decide_inlining_of_small_function): Update; set
11093         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
11094         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
11095         cgraph_decide_inlining_incrementally): Update.
11096         * ipa-inline.h (inline_summary): Add inlinable, versionable,
11097         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
11098         time, size and estimated_growth parameters.
11099         (estimate_edge_growth): Update.
11100         (initialize_inline_failed): Declare.
11101         * ipa-split.c: Include ipa-inline.h
11102         (execute_split_functions): Update.
11103         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
11104         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
11105         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
11106         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
11107         estimated_growth to INT_MIN.
11108         (inline_node_duplication_hook): Likewise.
11109         (dump_inline_summary): Dump new fields.
11110         (compute_inline_parameters): Update.
11111         (estimate_edge_time, estimate_time_after_inlining,
11112         estimate_size_after_inlining, estimate_growth, inline_read_summary,
11113         inline_write_summary):
11114         (initialize_inline_failed): Move here from cgraph.c.
11115         * tree-sra.c: Include ipa-inline.h.
11116         (ipa_sra_preliminary_function_checks): Update.
11117         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
11118         ipa-inline.h.
11119
11120 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
11121
11122         * config/i386/sse.md (V16): New mode iterator.
11123         (VI1, VI8): Ditto.
11124         (AVXMODEQI, AVXMODEDI): Remove.
11125         (sse2, sse3): New mode attribute.
11126         (mov<mode>): Use V16 mode iterator.
11127         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
11128         (push<mode>1): Use V16 mode iterator.
11129         (movmisalign<mode>): Ditto.
11130         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
11131         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
11132         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
11133         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
11134         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
11135         avx_movdqu<avxmodesuffix>.
11136         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
11137         *avx_movdqu<avxmodesuffix>.
11138         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
11139         avx_lddqu<avxmodesuffix>.
11140         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
11141         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
11142         avx_movnt<AVXMODEDI:mode>.
11143         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
11144         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
11145
11146 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
11147
11148         PR target/48629
11149         * haifa-sched.c (prune_ready_list, schedule_block): Use
11150         sched_pressure_p rather than flag_sched_pressure.
11151
11152 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
11153
11154         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
11155         cgraph_get_node instead of cgraph_get_create_node.
11156
11157 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
11158
11159         * cfgexpand.c (expand_debug_expr): Use
11160         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
11161
11162 2011-04-15  Michael Matz  <matz@suse.de>
11163
11164         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
11165         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
11166         * function.c (gimplify_parameters): Ditto.
11167         * gimplify.c (gimplify_vla_decl): Ditto.
11168
11169         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
11170         (gimple_call_set_alloca_for_var): New inline function.
11171         (gimple_call_alloca_for_var_p): Ditto.
11172         * gimple.c (gimple_build_call_from_tree): Remember
11173         CALL_ALLOCA_FOR_VAR_P state.
11174         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
11175
11176         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
11177         calls if they were for VLA objects.
11178
11179 2011-04-15  Martin Jambor  <mjambor@suse.cz>
11180
11181         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
11182         of ADR_EXPRs.
11183
11184 2011-04-15  Martin Jambor  <mjambor@suse.cz>
11185
11186         PR middle-end/48601
11187         * tree-emutls.c (lower_emutls_function_body): Call
11188         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
11189         result is non-NULL.
11190
11191 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
11192
11193         * c-decl.c (detect_field_duplicates): Call
11194         objc_detect_field_duplicates instead of objc_get_interface_ivars.
11195
11196 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
11197
11198         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
11199         * gimple.c (gimple_asm_clobbers_memory_p): Define.
11200         * ipa-pure-const.c (check_stmt): Call it.
11201         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
11202
11203 2011-04-15  Richard Guenther  <rguenther@suse.de>
11204
11205         PR tree-optimization/48290
11206         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
11207         Properly decide inhibiting propagation based on the valueized
11208         operand.  Do loop-closed SSA form preserving here ...
11209         (init_copy_prop): ... not here.
11210
11211 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
11212
11213         PR target/48612
11214         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
11215         (*ieee_smax<mode>3): Likewise.
11216
11217 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11218
11219         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
11220         Replace match_operand with match_dup for the third operand in
11221         these expanders.
11222
11223 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
11224
11225         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
11226         to track processing of conditionals.  Update all callers.
11227         (try_combine, simplify_if_then_else): Update.
11228
11229 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
11230
11231         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
11232         -fsched-pressure.
11233
11234 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
11235
11236         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
11237         instead of match_operand for operand 3.
11238
11239 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
11240
11241         * recog.h (insn_operand_data): Add an "allows_mem" field.
11242         * genoutput.c (output_operand_data): Initialize it.
11243         * optabs.c (maybe_legitimize_operand_same_code): New function.
11244         (maybe_legitimize_operand): Use it when matching the original
11245         op->value.
11246
11247 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
11248
11249         * gimplify.c: Fix issues in comments throughout.
11250         (voidify_wrapper_expr): Fix long line.
11251         (build_stack_save_restore): Likewise.
11252         (gimplify_loop_expr): Likewise.
11253         (gimplify_compound_lval): Likewise.
11254         (gimplify_init_ctor_eval): Likewise.
11255         (gimplify_modify_expr_rhs): Likewise.
11256         (omp_notice_threadprivate_variable): Likewise.
11257
11258 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
11259
11260         * cfgexpand.c (expand_call_stmt): Convert the function type to the
11261         original one if this is not a builtin function.
11262
11263 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
11264
11265         PR target/48605
11266         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
11267         offset it as needed based on top 2 bits in operands[3], change
11268         MEM mode to SFmode and mask those 2 bits away from operands[3].
11269
11270 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
11271
11272         * c-parser.c (c_parser_objc_protocol_definition): Updated for
11273         change from objc_declare_protocols() to objc_declare_protocol().
11274
11275 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
11276
11277         * config/i386/sse.md (sse4_1): New mode attribute.
11278         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
11279         avx_blend<ssemodesuffix><avxmodesuffix> and
11280         sse4_1_blend<ssemodesuffix> using VF mode iterator.
11281         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
11282         avx_blendv<ssemodesuffix><avxmodesuffix> and
11283         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
11284         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
11285         avx_dp<ssemodesuffix><avxmodesuffix> and
11286         sse4_1_dp<ssemodesuffix> using VF mode iterator.
11287         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
11288         (sse4_1_packusdw): Merge with *avx_packusdw.
11289         (sse4_1_pblendvb): Merge with *avx_pblendvb.
11290         (sse4_1_pblendw): Merge with *avx_pblendw.
11291         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
11292         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
11293         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
11294         VF mode iterator.
11295         (sse4_1_round<ssescalarmodesuffix>): Merge with
11296         *avx_round<ssescalarmodesuffix>.
11297         (aesenc): Merge with *avx_aesenc.
11298         (aesenclast): Merge with *avx_aesenclast.
11299         (aesdec): Merge with *avx_aesdec.
11300         (aesdeclast): Merge with *avx_aesdeclast.
11301         (pclmulqdq): Merge with *pclmulqdq.
11302         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
11303         New predicate.
11304         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
11305
11306 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
11307
11308         PR middle-end/48608
11309         * cfgexpand.c (get_decl_align_unit): Renamed to ...
11310         (align_local_variable): This.  Update DECL_ALIGN.
11311         (add_stack_var): Updated.
11312         (expand_one_stack_var): Likewise.
11313
11314 2011-04-14  Richard Guenther  <rguenther@suse.de>
11315
11316         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
11317         Remove.
11318         (dse_initialize_block_local_data, dse_leave_block,
11319         record_voperand_set, get_stmt_uid): Likewise.
11320         (dse_possible_dead_store_p): Allow any kind of killing stmt.
11321         (dse_optimize_stmt): Remove voperand set handling code.
11322         Simplify and improve to handle any kind of killing stmt.
11323         (dse_record_phi): Remove.
11324         (dse_enter_block): Simplify.
11325         (tree_ssa_dse): Likewise.
11326         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
11327
11328 2011-04-14  Jan Hubicka  <jh@suse.cz>
11329
11330         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
11331         * cgraph.h (struct inline_summary): Move to ipa-inline.h
11332         (cgraph_local_info): Remove inline_summary.
11333         * ipa-cp.c: Include ipa-inline.h.
11334         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
11335         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
11336         accesor.
11337         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
11338         (input_overwrite_node): Do not set inline summary.
11339         (input_node): Do not stream inline summary.
11340         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
11341         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
11342         growth; we do not have inline parameters computed for that anyway.
11343         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
11344         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
11345         (inline_summary_t): New type and VECtor.
11346         (debug_inline_summary, dump_inline_summaries): Declare.
11347         (inline_summary): Use VOCtor.
11348         (estimate_edge_growth): Kill hack computing call stmt size directly.
11349         * lto-section-in.c (lto_section_name): Add inline section.
11350         * ipa-inline-analysis.c: Include lto-streamer.h
11351         (node_removal_hook_holder, node_duplication_hook_holder): New holders
11352         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
11353         (inline_summary_vec): Define.
11354         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
11355         dump_inline_summaries): New functions.
11356         (estimate_function_body_sizes): Properly compute size/time of outgoing
11357         calls.
11358         (compute_inline_parameters): Alloc inline_summary; do not compute
11359         size/time of incomming calls.
11360         (estimate_edge_time): Avoid missing time summary hack.
11361         (inline_read_summary): Read inline summary info.
11362         (inline_write_summary): Write inline summary info.
11363         (inline_free_summary): Free all hooks and inline summary vector.
11364         * lto-streamer.h: Add LTO_section_inline_summary section.
11365         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
11366         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
11367
11368 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11369
11370         * tree-vectorizer.h (vect_strided_store_supported): Add a
11371         HOST_WIDE_INT argument.
11372         (vect_strided_load_supported): Likewise.
11373         (vect_permute_store_chain): Return void.
11374         (vect_transform_strided_load): Likewise.
11375         (vect_permute_load_chain): Delete.
11376         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
11377         count argument.  Check that the count is a power of two.
11378         (vect_strided_load_supported): Likewise.
11379         (vect_permute_store_chain): Return void.  Update after above changes.
11380         Assert that the access is supported.
11381         (vect_permute_load_chain): Likewise.
11382         (vect_transform_strided_load): Return void.
11383         * tree-vect-stmts.c (vectorizable_store): Update calls after
11384         above interface changes.
11385         (vectorizable_load): Likewise.
11386         (vect_analyze_stmt): Don't check for strided powers of two here.
11387
11388 2011-04-14  Richard Guenther  <rguenther@suse.de>
11389
11390         PR tree-optimization/48590
11391         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
11392         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
11393         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
11394         BUILT_IN_STACK_SAVE.
11395         * tree-ssa-dce.c (propagate_necessity): Handle
11396         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
11397
11398 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
11399
11400         * c-parser.c (c_parser_objc_class_declaration): Updated call to
11401         objc_declare_class.
11402
11403 2011-04-14  Richard Guenther  <rguenther@suse.de>
11404
11405         * tree.h (get_object_alignment_1): Declare.
11406         * builtins.c (get_object_alignment_1): Split out worker from ...
11407         (get_object_alignment): ... here.
11408         * fold-const.c (get_pointer_modulus_and_residue): Use
11409         get_object_alignment_1.
11410
11411 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11412
11413         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
11414         type parameter.
11415         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
11416         parameter.  Generalise code to handle arrays as well as vectors.
11417         (vect_setup_realignment): Update accordingly.
11418         * tree-vect-stmts.c (vectorizable_store): Likewise.
11419         (vectorizable_load): Likewise.
11420
11421 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11422
11423         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
11424         within the per-copy loop.
11425
11426 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11427
11428         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
11429         in the dump file.
11430
11431 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
11432
11433         * doc/options.texi (Negative): Explicitly mention that the
11434         Negative chain must be circular.
11435
11436 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
11437
11438         * function.h (block_chainon): Declare.
11439         * function.c (block_chainon): Define.
11440
11441 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
11442             Eric Weddington  <eric.weddington@atmel.com>
11443             Georg-Johann Lay  <avr@gjlay.de>
11444
11445         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
11446         New Includes
11447         (avr_init_builtins, avr_expand_builtin,
11448         avr_expand_delay_cycles, avr_expand_unop_builtin,
11449         avr_expand_binop_builtin ): New functions.
11450         (avr_builtin_id): New enum
11451         (struct avr_builtin_description): New struct
11452         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
11453         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
11454
11455         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
11456         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
11457         UNSPECV_DELAY_CYCLES): new enumeration values
11458         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
11459         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
11460         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
11461         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
11462         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
11463         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
11464         "fmulsu"): New insns
11465
11466         * config/avr/avr-c.c: fix line endings
11467         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
11468         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
11469         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
11470         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
11471         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
11472
11473         * doc/extend.texi (AVR Built-in Functions): New node
11474         (Target Builtins): Add documentation of AVR
11475         built-in functions.
11476
11477 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
11478
11479         PR target/44643
11480         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
11481         alone. Error if non-const data has attribute progmem.
11482
11483 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11484
11485         * tree.h (struct tree_constructor): Include tree_typed instead of
11486         tree_common.
11487         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
11488         TS_TYPED instead of TS_COMMON.
11489
11490 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
11491
11492         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
11493         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
11494         (sse2_psadbw): Merge with *avx_psadbw.
11495         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
11496         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
11497         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
11498         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
11499         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
11500         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
11501         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
11502         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
11503         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
11504         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
11505         (ssse3_palignrti): Merge with *avx_palignrti.
11506
11507 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11508
11509         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
11510         * tree-ssanames.c (fini_ssanames): VEC_free it.
11511         (make_ssa_name_fn): Update for VECness of free_ssanames.
11512         (release_ssa_name, release_dead_ssa_names): Likewise.
11513         * tree.h (struct tree_ssa_name): Include tree_typed instead of
11514         tree_common.
11515         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
11516         TS_TYPED instead of TS_COMMON.
11517
11518 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11519
11520         * postreload-gcse.c (gcse_after_reload_main): Add calls to
11521         statistics_counter_event.
11522         * tree-ssa-copyrename.c (stats): Define.
11523         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
11524         statistics_counter_event.
11525         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
11526         (bswap_stats, widen_mul_stats): Define.
11527         (insert_reciprocals): Increment rdivs_inserted.
11528         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
11529         rfuncs_inserted.  Add calls to statistics_counter_event.
11530         (execute_cse_sincos_1): Increment inserted.
11531         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
11532         statistics_counter_event.
11533         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
11534         of bswap_stats.  Add calls to statistics_counter_event.
11535         (convert_mult_to_widen): Increment widen_mults_inserted.
11536         (convert_plusminus_to_widen): Increment maccs_inserted.
11537         (convert_mult_to_fma): Increment fmas_inserted.
11538         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
11539         calls to statistics_counter_event.
11540
11541 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
11542
11543         PR rtl-optimization/48455
11544         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
11545         `temp_costs->mem_cost'.
11546
11547 2011-04-13  Jan Hubicka  <jh@suse.cz>
11548
11549         * ipa-inline.h: New file.
11550         * ipa-inline-analysis.c: New file. Broken out of ...
11551         * ipa-inline.c: ... this file; update toplevel comment;
11552         include ipa-inline.h
11553         (inline_summary): Move to ipa-inline.h
11554         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
11555         ipa-inline-analysis.c.
11556         (cgraph_estimate_time_after_inlining): Rename to
11557         estiamte_time_after_inlining; move to ipa-inline-analysis.c
11558         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
11559         to estimate_edge_growth.
11560         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
11561         rename to estimate_size_after_inlining.
11562         (cgraph_mark_inline_edge): Update for new naming convention.
11563         (cgraph_check_inline_limits): Likewise.
11564         (cgraph_edge_badness): Likewise.
11565         (cgraph_decide_recursive_inlining): Likewise.
11566         (cgraph_decide_inlining_of_small_functions): Likewise.
11567         (cgraph_decide_inlining_incrementally): Likewise.
11568         (cgraph_estimate_growth): Rename to estimate_growth; move to
11569         ipa-inline-analysis.c.
11570         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
11571         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
11572         (compute_inline_parameters): Likewise.
11573         (compute_inline_parameters_for_current): Likewise.
11574         (pass_inline_parameters): Likewise.
11575         (inline_indirect_intraprocedural_analysis): Likewise.
11576         (analyze_function): Rename to inline_analyze_function; likewise.
11577         (add_new_function): Move to ipa-inline-analysis.c.
11578         (inline_generate_summary): Likewise.
11579         (inline_read_summary): Likewise.
11580         (inline_write_summary): Likewise.
11581         * Makefile.in (ipa-inline-analysis.c): New file.
11582
11583 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11584
11585         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
11586         * configure: Regenerate.
11587
11588 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11589
11590         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
11591         instead of tree_common.
11592         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
11593         Likewise.
11594         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
11595         TS_TYPED rather than TS_COMMON.
11596         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
11597
11598 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
11599
11600         PR target/45263
11601         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
11602         r20 around calls of __tablejump_elpm__
11603
11604 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
11605
11606         PR middle-end/48591
11607         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
11608         NULL.
11609         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
11610
11611 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
11612
11613         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
11614         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
11615         (cfi_vec): New typedef.
11616         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
11617         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
11618         (cie_cfi_vec): New static variable.
11619         (cie_cfi_head): Delete.
11620         (add_cfi): Accept a cfi_vec * as first argument. All callers and
11621         declaration changed. Use vector rather than list operations.
11622         (new_cfi): Don't initialize the dw_cfi_next field.
11623         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
11624         rather than list operations.
11625         (lookup_cfa): Use vector rather than list operations.
11626         (output_cfis): New argument upto. Accept a cfi_vec rather than
11627         a dw_cfi_ref list head as argument. All callers changed.
11628         Iterate over the vector using upto as a maximum index.
11629         (output_all_cfis): New static function.
11630         (output_fde): Use vector rather than list operations. Use the
11631         new upto argument for output_cfis rather than manipulating a
11632         list.
11633         (dwarf2out_begin_prologue): Change initializations to match
11634         new struct members.
11635         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
11636         from the vector length rather than searching for the end of a list.
11637         Use output_all_cfis.
11638         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
11639
11640 2011-04-13  Nick Clifton  <nickc@redhat.com>
11641
11642         * config/rx/rx.md (movmemsi): Do not use this pattern when
11643         volatile pointers are involved.
11644
11645 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
11646
11647         * config/i386/sse.md (pinsrbits): Remove.
11648         (sse2_packsswb): Merge with *avx_packsswb.
11649         (sse2_packssdw): Merge with *avx_packssdw.
11650         (sse2_packuswb): Merge with *avx_packuswb.
11651         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
11652         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
11653         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
11654         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
11655         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
11656         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
11657         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
11658         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
11659         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
11660         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
11661         (sse2_loadld): Merge with *avx_loadld.
11662         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
11663         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
11664         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
11665         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
11666         (vec_concatv2di): Merge with *vec_concatv2di_avx.
11667
11668 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
11669
11670         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
11671         calling TREE_CHAIN.
11672         * print-tree.c (print_node): Likewise.
11673         * tree-inline.c (copy_tree_r): Likewise.
11674         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
11675         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
11676         instead of TS_COMMON.
11677         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
11678         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
11679         (copy_node_stat): Zero TREE_CHAIN only if necessary.
11680         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
11681         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
11682         ...and these...
11683         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
11684         * tree.h: ...here.
11685         (TREE_CHAIN): Check for a TS_COMMON structure.
11686         (TREE_TYPE): Check for a TS_TYPED structure.
11687
11688 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
11689
11690         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
11691         cgraph_get_create_node instead of cgraph_node.
11692
11693 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11694
11695         * c-parser.c (c_parser_initelt): Updated call to
11696         objc_build_message_expr.
11697         (c_parser_postfix_expression): Likewise.
11698
11699 2011-04-12  Kai Tietz  <ktietz@redhat.com>
11700
11701         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
11702         MASK_MS_BITFIELD_LAYOUT bit.
11703
11704 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11705
11706         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
11707         assert it is always true.
11708         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
11709         moves.
11710
11711 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11712
11713         * c-parser.c (c_lex_one_token): Rewritten conditional used when
11714         compiling Objective-C to be more efficient.
11715
11716 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
11717
11718         * opts-common.c (decode_cmdline_options_to_array): Remove variable
11719         argv_copied.
11720
11721 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11722
11723         * recog.h, genoutput.c, optabs.c: Revert last patch.
11724
11725 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11726
11727         PR target/48090
11728         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
11729
11730 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11731
11732         * recog.h (insn_operand_data): Add an "allows_mem" field.
11733         * genoutput.c (output_operand_data): Initialize it.
11734         * optabs.c (maybe_legitimize_operand_same_code): New function.
11735         (maybe_legitimize_operand): Use it when matching the original
11736         op->value.
11737
11738 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11739
11740         * genpreds.c (process_define_predicate): Move most processing
11741         to gensupport.c.  Continue to validate the expression.
11742         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
11743         (process_define_predicate): Move processing to gensupport.c.
11744         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
11745         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
11746         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
11747         argument.
11748         (valid_predicate_name_p): New function, split out from old
11749         genpreds.c:process_define_predicate.
11750         (process_define_predicate): New function, combining code from
11751         old genpreds.c and genrecog.c functions.
11752         (process_rtx): Call it for DEFINE_PREDICATE and
11753         DEFINE_SPECIAL_PREDICATE.
11754
11755 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11756
11757         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
11758         size of a '%A' memory reference.
11759         (T_DREG, T_QREG): New neon_builtin_type_bits.
11760         (arm_init_neon_builtins): Assert that the load and store operands
11761         are neon_struct_operands.
11762         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
11763         (NEON_ARG_MEMORY): New builtin_arg.
11764         (neon_dereference_pointer): New function.
11765         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
11766         Handle NEON_ARG_MEMORY.
11767         (arm_expand_neon_builtin): Update after above interface changes.
11768         Use NEON_ARG_MEMORY for loads and stores.
11769         * config/arm/predicates.md (neon_struct_operand): New predicate.
11770         * config/arm/iterators.md (V_two_elem): Tweak formatting.
11771         (V_three_elem): Use BLKmode for accesses that have no associated mode.
11772         (V_four_elem): Tweak formatting.
11773         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
11774         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
11775         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
11776         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
11777         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
11778         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
11779         (neon_vst4<mode>): Replace pointer operand with a memory operand.
11780         Use %A in the output template.
11781         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
11782         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
11783         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
11784         the width of the memory access.  Remove post-increment.
11785         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
11786
11787 2011-04-12  Nick Clifton  <nickc@redhat.com>
11788
11789         * config/v850/v850.c (expand_prologue): Do not use the CALLT
11790         instruction for interrupt handlers if the target is the basic V850
11791         architecture.
11792         (expand_epilogue): Likewise.
11793
11794 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11795
11796         PR rtl-optimization/48549
11797         * combine.c (propagate_for_debug): Also stop after BB_END of
11798         this_basic_block.  Process LAST and just stop processing after it.
11799         (combine_instructions): If last_combined_insn has been deleted,
11800         set last_combined_insn to its PREV_INSN.
11801
11802 2011-04-12  Richard Guenther  <rguenther@suse.de>
11803
11804         PR tree-optimization/46076
11805         * gimple.h (struct gimple_statement_call): Add fntype field.
11806         (gimple_call_fntype): Adjust.
11807         (gimple_call_set_fntype): New function.
11808         * gimple.c (gimple_build_call_1): Set the call function type.
11809         * gimplify.c (gimplify_call_expr): Preserve the function
11810         type the frontend used for the call.
11811         (gimplify_modify_expr): Likewise.
11812         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
11813         function type.
11814         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
11815         function type.
11816         * tree-ssa.c (useless_type_conversion_p): Function pointer
11817         conversions are useless.
11818
11819 2011-04-12  Martin Jambor  <mjambor@suse.cz>
11820
11821         * cgraph.h (cgraph_node): Remove function declaration.
11822         (cgraph_create_node): Declare.
11823         (cgraph_get_create_node): Likewise.
11824         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
11825         Updated all callers.
11826         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
11827         the decl does not already exist.  Call cgraph_get_create_node instead
11828         of cgraph_node.
11829         (cgraph_get_create_node): New function.
11830         (cgraph_same_body_alias): Update comment.
11831         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
11832         assert it does not return NULL.
11833         (cgraph_update_edges_for_call_stmt): Likewise.
11834         (cgraph_clone_edge): Likewise.
11835         (cgraph_create_virtual_clone): Likewise.
11836         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
11837         instead of cgraph_node.
11838         (cgraph_add_new_function): Call cgraph_create_node or
11839         cgraph_get_create_node instead of cgraph_node.
11840         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
11841         instead of cgraph_node.
11842         (record_eh_tables): Likewise.
11843         (mark_address): Likewise.
11844         (mark_load): Likewise.
11845         (build_cgraph_edges): Call cgraph_get_create_node instead
11846         of cgraph_node.
11847         (rebuild_cgraph_edges): Likewise.
11848         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
11849         instead of cgraph_node.
11850         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
11851         cgraph_node.
11852         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
11853         cgraph_create_node instead of cgraph_node.
11854         * c-decl.c (finish_function): Call cgraph_get_create_node instead
11855         of cgraph_node.
11856         * lto-cgraph.c (input_node): Likewise.
11857         * lto-streamer-in.c (input_function): Likewise.
11858         * varasm.c (mark_decl_referenced): Likewise.
11859         (assemble_alias): Likewise.
11860
11861 2011-04-12  Martin Jambor  <mjambor@suse.cz>
11862
11863         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
11864         instead of cgraph_node and assert it does not return NULL.
11865         * lto-streamer-in.c (lto_read_body): Likewise.
11866         * omp-low.c (new_omp_context): Likewise.
11867         (create_task_copyfn): Likewise.
11868         * tree-emutls.c (lower_emutls_function_body): Likewise.
11869         * matrix-reorg.c (transform_allocation_sites): Likewise.
11870
11871 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11872
11873         PR c/48552
11874         * c-typeck.c (build_asm_expr): Error out on attempts to use
11875         void type outputs or inputs for constraints that allow reg or
11876         don't allow memory.
11877
11878 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
11879             Richard Earnshaw  <rearnsha@arm.com>
11880
11881         PR target/48250
11882         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
11883         to use sign-magnitude offsets. Reject unsupported unaligned
11884         cases. Add detailed description in comments.
11885         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
11886         condition from TARGET_32BIT to TARGET_ARM.
11887
11888 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
11889
11890         * tree.h (struct typed_tree): New.
11891         (struct tree_common): Include it instead of tree_base.
11892         (TREE_TYPE): Update for new location of type field.
11893         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
11894         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
11895         (union tree_node): Add typed field.
11896         * treestruct.def (TS_TYPED): New.
11897         * lto-streamer.c (check_handled_ts_structures): Handle it.
11898         * tree.c (MARK_TS_TYPED): New macro.
11899         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
11900
11901 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
11902
11903         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
11904         (force_nonfallthru): Do not alter the loop nest if no basic block
11905         was created.
11906
11907 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
11908
11909         * config/i386/sse.md (VI): New mode iterator.
11910         (SSEMODEI): Remove.
11911         (AVX256MODEI): Ditto.
11912         (AVXMODEF4P): Ditto.
11913         (avxvecpsmode): Ditto.
11914         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
11915         (sse2_andnot<mode>3): New expander.
11916         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
11917         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
11918         (<any_logic:code><mode>3): Use VI mode iterator.
11919         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
11920         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
11921         (*andnottf3): Handle AVX three-operand constraints.
11922         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
11923
11924 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11925             Robert Millan  <rmh@gnu.org>
11926
11927         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
11928         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
11929         GNU_USER_DYNAMIC_LINKER64): Define.
11930         (REG_NAME): Don't undefine.
11931         (MD_UNWIND_SUPPORT): Undefine.
11932         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
11933         (REG_NAME): Don't undefine.
11934         (MD_UNWIND_SUPPORT): Undefine.
11935         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
11936
11937 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11938
11939         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
11940         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
11941
11942 2011-04-11  Xinliang David Li  <davidxl@google.com>
11943
11944         * value-profile.c (check_ic_target): New function.
11945         (gimple_ic_transform): Sanity check indirect call target.
11946         * gimple-low.c (gimple_check_call_args): Interface change.
11947         (gimple_check_call_matching_types): New function.
11948         * tree-inline.c (tree_can_inline_p): Call new function.
11949
11950 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
11951
11952         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
11953         tree-pretty-print.h & realmpfr.h.
11954
11955 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
11956
11957         PR middle-end/48464
11958         * ira.c (setup_pressure_classes): Fix typo in loop condition.
11959         (setup_allocno_and_important_classes): Ditto.
11960
11961 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11962
11963         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
11964         GNU_USER_DYNAMIC_LINKER.
11965         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
11966         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11967         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
11968         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11969         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11970         GNU_USER_TARGET_OS_CPP_BUILTINS.
11971         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
11972         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11973         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
11974         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11975         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
11976         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11977         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11978         GNU_USER_TARGET_OS_CPP_BUILTINS.
11979         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11980         GNU_USER_DYNAMIC_LINKER.
11981         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11982         GNU_USER_TARGET_OS_CPP_BUILTINS.
11983         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
11984         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11985         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
11986         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11987         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
11988         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
11989         GNU_USER_DYNAMIC_LINKER64): Remove.
11990         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
11991         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11992         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11993         GNU_USER_DYNAMIC_LINKER.
11994         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11995         GNU_USER_TARGET_OS_CPP_BUILTINS.
11996         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11997         GNU_USER_TARGET_OS_CPP_BUILTINS.
11998         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
11999         to GNU_USER_TARGET_OS_CPP_BUILTINS.
12000         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
12001         GNU_USER_TARGET_OS_CPP_BUILTINS.
12002         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
12003         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
12004         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
12005         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
12006         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12007         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12008         GNU_USER_DYNAMIC_LINKER.
12009         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
12010         GNU_USER_TARGET_OS_CPP_BUILTINS.
12011         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
12012         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12013         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12014         GNU_USER_DYNAMIC_LINKER.
12015         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
12016         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12017         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
12018         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12019         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12020         GNU_USER_DYNAMIC_LINKER.
12021         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
12022         GNU_USER_DYNAMIC_LINKERN32.
12023         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
12024         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
12025         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
12026         GNU_USER_DYNAMIC_LINKER32.
12027         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
12028         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12029         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12030         GNU_USER_DYNAMIC_LINKER.
12031         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
12032         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12033         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
12034         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12035         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
12036         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
12037         GNU_USER_DYNAMIC_LINKER32.
12038         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
12039         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
12040         GNU_USER_DYNAMIC_LINKER.
12041         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
12042         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12043         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
12044         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
12045         GNU_USER_DYNAMIC_LINKER64.
12046         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
12047         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12048         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12049         GNU_USER_DYNAMIC_LINKER.
12050         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
12051         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12052         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12053         GNU_USER_DYNAMIC_LINKER.
12054         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
12055         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12056         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
12057         GNU_USER_DYNAMIC_LINKER32.
12058         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
12059         GNU_USER_DYNAMIC_LINKER64.
12060         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
12061         GNU_USER_DYNAMIC_LINKER64.
12062         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
12063         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12064         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
12065         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12066         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
12067
12068 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
12069
12070         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
12071         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
12072         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
12073         GNU_USER_DYNAMIC_LINKER.
12074         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
12075         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
12076         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
12077         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
12078         GNU_USER_DYNAMIC_LINKER64.
12079         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
12080         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
12081         GNU_USER_LINK_EMULATION.
12082         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
12083         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
12084         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
12085         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
12086         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
12087         CPP_SPEC, CC1_SPEC): Remove.
12088         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
12089         (GNU_USER_DYNAMIC_LINKER): Define.
12090         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
12091         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
12092         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
12093         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
12094         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
12095         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
12096         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
12097         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
12098         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
12099         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
12100         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
12101         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
12102         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
12103         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
12104         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
12105         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
12106         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12107         GNU_USER_DYNAMIC_LINKER.
12108         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12109         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
12110         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12111         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
12112         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12113         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
12114         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
12115         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
12116         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
12117         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
12118
12119 2011-04-11  Kai Tietz  <ktietz@redhat.com>
12120
12121         PR target/9601
12122         PR target/11772
12123         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
12124         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
12125         comment.
12126         (ix86_is_msabi_thiscall): Removed.
12127         (ix86_is_type_thiscall): Likewise.
12128         (ix86_get_callcvt): New function.
12129         (ix86_comp_type_attributes): Simplify check.
12130         (ix86_function_regparm): Use ix86_get_callcvt for calling
12131         convention attribute checks.
12132         (ix86_return_pops_args): Likewise.
12133         (ix86_static_chain): Likewise.
12134         (x86_this_parameter): Likewise.
12135         (x86_output_mi_thunk): Likewise.
12136         (ix86_function_type_abi): Optimize check for types without attributes.
12137         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
12138         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
12139         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
12140         by flag-values.
12141         (IX86_BASE_CALLCVT): Helper macro.
12142         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
12143         Use ix86_get_callcvt for calling convention attribute checks and avoid
12144         symbol-decoration for stdcall in TARGET_RTD case.
12145         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
12146         Likewise.
12147         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
12148         for declaration.
12149
12150 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
12151
12152         * config/i386/sse.md (VI_128): New mode iterator.
12153         (VI12_128): Rename from SSEMODE12.
12154         (VI14_128): Rename from SSEMODE14.
12155         (VI124_128): New mode iterator.
12156         (VI24_128): Rename from SSEMODE248.
12157         (VI248_128): Rename from SSEMODE248.
12158         (SSEMODE124C8): Remove.
12159         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
12160         (*sse2_<plusminus_insn><mode>3): Merge with
12161         *avx_<plusminus_insn><mode>3.
12162         (*mulv8hi3): Merge with *avx_mulv8hi3.
12163         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
12164         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
12165         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
12166         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
12167         (ashr<mode>3): Merge with *avx_ashr<mode>3.
12168         (lshr<mode>3): Merge with *avx_lshr<mode>3.
12169         (ashl<mode>3): Merge with *avx_ashl<mode>3.
12170         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
12171         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
12172         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12173         (*<smaxmin:code>v8hi3): Ditto.
12174         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
12175         (*<smaxmin:code>v16qi3): Ditto.
12176         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
12177         (*sse2_eq<mode>3): Ditto.
12178         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
12179         (*sse2_gt<mode>3): Ditto.
12180         (vcondv2di): Split out of vcond<mode>.
12181         (vconduv2di): Split out of vcondu<mode>.
12182
12183 2011-04-11  Richard Guenther  <rguenther@suse.de>
12184
12185         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
12186         before calling tree_low_cst.
12187
12188 2011-04-11  Richard Guenther  <rguenther@suse.de>
12189
12190         * stor-layout.c (layout_type): Compute all array index size operations
12191         in the original type.
12192         (initialize_sizetypes): Add comment.
12193         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
12194
12195 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
12196
12197         * common.opt (Tbss=, Tdata=, Ttext=): New options.
12198
12199 2011-04-11  Martin Jambor  <mjambor@suse.cz>
12200
12201         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
12202         of cgraph_node, handle NULL return value.
12203         (cgraph_global_info): Likewise.
12204         (cgraph_rtl_info): Likewise.
12205         * tree-inline.c (estimate_num_insns): Likewise.
12206         * gimplify.c (unshare_body): Likewise.
12207         (unvisit_body): Likewise.
12208         (gimplify_body): Likewise.
12209         * predict.c (optimize_function_for_size_p): Likewise.
12210         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
12211         (call_may_clobber_ref_p_1): Likewise.
12212         * varasm.c (function_section_1): Likewise.
12213         (assemble_start_function): Likewise.
12214
12215 2011-04-11  Martin Jambor  <mjambor@suse.cz>
12216
12217         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
12218         of cgraph_node.
12219         * final.c (rest_of_clean_state): Likewise.
12220         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
12221         * passes.c (pass_init_dump_file): Likewise.
12222         (execute_all_ipa_transforms): Likewise.
12223         (function_called_by_processed_nodes_p): Likewise.
12224         * predict.c (maybe_hot_frequency_p): Likewise.
12225         (probably_never_executed_bb_p): Likewise.
12226         (compute_function_frequency): Likewise.
12227         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
12228         (unnest_nesting_tree_1): Likewise.
12229         (lower_nested_functions): Likewise.
12230         * tree-optimize.c (execute_fixup_cfg): Likewise.
12231         (tree_rest_of_compilation): Likewise.
12232         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
12233         * tree-sra.c (ipa_early_sra): Likewise.
12234         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
12235         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
12236         * ipa.c (record_cdtor_fn): Likewise.
12237         * ipa-inline.c (cgraph_early_inlining): Likewise.
12238         (compute_inline_parameters_for_current): Likewise.
12239         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
12240         * ipa-pure-const.c (local_pure_const): Likewise.
12241         * ipa-split.c (split_function): Likewise.
12242         (execute_split_functions): Likewise.
12243         * cgraphbuild.c (build_cgraph_edges): Likewise.
12244         (rebuild_cgraph_edges): Likewise.
12245         (cgraph_rebuild_references): Likewise.
12246         (remove_cgraph_callee_edges): Likewise.
12247         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
12248         (verify_cgraph_node): Likewise.
12249         (cgraph_analyze_functions): Likewise.
12250         (cgraph_preserve_function_body_p): Likewise.
12251         (save_inline_function_body): Likewise.
12252         (save_inline_function_body): Likewise.
12253         * tree-inline.c (copy_bb): Likewise.
12254         (optimize_inline_calls): Likewise.
12255
12256 2011-04-11  Martin Jambor  <mjambor@suse.cz>
12257
12258         PR tree-optimization/48195
12259         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
12260         ipa_check_create_edge_args.
12261         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
12262         ipa_check_create_edge_args.
12263         * ipa-inline.c (inline_generate_summary): Do not call
12264         ipa_check_create_node_params and ipa_check_create_edge_args.
12265         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
12266         ipa_check_create_edge_args.
12267
12268 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
12269
12270         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
12271         instead of loop.
12272         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
12273         * function.c (record_hard_reg_sets): Likewise.
12274         * ira.c (compute_regs_asm_clobbered): Likewise.
12275         * sched-deps.c (sched_analyze_1): Likewise.
12276         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
12277
12278 2011-04-09  Xinliang David Li  <davidxl@google.com>
12279
12280         PR tree-optimization/PR48484
12281         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
12282         has_valid_pred lazily
12283
12284 2011-04-09  Duncan Sands  <baldrick@free.fr>
12285
12286         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
12287
12288 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
12289
12290         * combine.c (combine_validate_cost): Adjust comments.  Set registered
12291         cost of I0 to zero at the end, if any.
12292
12293 2011-04-08  Xinliang David Li  <davidxl@google.com>
12294
12295         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
12296         to insane profile data.
12297
12298 2011-04-08  Xinliang David Li  <davidxl@google.com>
12299
12300         * ipa-cp.c (ipcp_update_profiling): Correct
12301          negative scale factor due to insane profile data.
12302
12303 2011-04-08  Xinliang David Li  <davidxl@google.com>
12304
12305         * final.c (dump_basic_block_info): New function.
12306         (final): Dump basic block.
12307         (final_scan_insn): Remove old dump.
12308
12309 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
12310
12311         PR target/47829
12312         * config.gcc (i386-*-freebsd): Disable unwind table generation for
12313         crtbegin/crtend.
12314
12315 2011-04-08  Michael Matz  <matz@suse.de>
12316
12317         PR middle-end/48389
12318         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
12319         functions.
12320         (rebuild_jump_labels): Call rebuild_jump_labels_1.
12321         * rtl.h (rebuild_jump_labels_chain): Declare.
12322         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
12323         insns inserted on edges.
12324
12325 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
12326
12327         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
12328         * config/arm/arm-arches.def: New.
12329         * config/arm/arm-opts.h: New.
12330         * config/arm/genopt.sh: New.
12331         * config/arm/arm-tables.opt: New (generated).
12332         * config/arm/arm.c (arm_handle_option, arm_target_help,
12333         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
12334         (all_architectures): Get most table contents from arm-arches.def.
12335         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
12336         arm_selected_tune here.
12337         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
12338         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
12339         (march=, mcpu=, mtune=): Use Enum and Var.
12340         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
12341         (arm.o): Update dependencies.
12342
12343 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
12344
12345         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
12346         of header_file.
12347         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
12348         (write_typed_alloc_defns): Likewise.
12349         (main): Calls write_typed_alloc_defns with output_header.
12350
12351 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
12352
12353         PR inline-asm/48435
12354         * ira-color.c (setup_profitable_hard_regs): Add comments.
12355         Don't take prohibited hard regs into account.
12356         (setup_conflict_profitable_regs): Rename to
12357         get_conflict_profitable_regs.
12358         (check_hard_reg_p): Check prohibited hard regs.
12359
12360 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
12361
12362         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
12363         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
12364         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
12365
12366 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12367
12368         PR target/48366
12369         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
12370         move from floating point to shift amount register.
12371         (emit_move_sequence): Remove secondary reload support for floating
12372         point to shift amount amount register copies.
12373         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
12374         amount register copies.
12375         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
12376         register, return false if mode isn't a scalar integer mode.
12377         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
12378
12379 2011-04-08  Richard Guenther  <rguenther@suse.de>
12380
12381         * gimple.c (gimple_call_flags): Remove kludge.
12382
12383 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12384
12385         * sel-sched.c (sel_region_init): Move call to
12386         sel_setup_region_sched_flags after setup_current_loop_nest.
12387
12388 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
12389
12390         PR rtl-optimization/48272
12391         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
12392         init_insn_reg_pressure_info.  Adjust a caller.
12393         * sched-int.h (init_insn_reg_pressure_info): Declare.
12394         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
12395         when sched-pressure is enabled.
12396
12397 2011-04-08  Richard Guenther  <rguenther@suse.de>
12398
12399         * gimple.c (gimple_set_modified): Do not queue calls to
12400         MODIFIED_NORETURN_CALLS here ...
12401         * tree-ssa-operands.c (update_stmt_operands): ... but here.
12402
12403 2011-04-08  Richard Guenther  <rguenther@suse.de>
12404
12405         PR lto/48467
12406         * toplev.c (lang_dependent_init): Do not open asm_out_file
12407         in WPA mode, nor perform debug machinery initialization.
12408         (finalize): Do not unlink asm_out_file in WPA mode.
12409
12410 2011-04-08  Richard Guenther  <rguenther@suse.de>
12411
12412         * gimple.h (gimple_call_fntype): New function.
12413         (gimple_call_return_type): Use it.
12414         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
12415         * gimple-low.c (gimple_check_call_args): Likewise.
12416         * gimple.c (gimple_call_flags): Likewise.
12417         (gimple_call_arg_flags): Likewise.
12418         (gimple_call_return_flags): Likewise.
12419         * tree-cfg.c (verify_gimple_call): Likewise.
12420         (do_warn_unused_result): Likewise.
12421         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
12422         * value-prof.c (gimple_ic_transform): Fix fndecl check.
12423
12424 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
12425
12426         PR rtl-optimization/48235
12427         * sel-sched.c (code_motion_process_successors): Recompute the last
12428         insn in basic block if control flow changed.
12429         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
12430         Update condition for ilist_remove.
12431
12432 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12433
12434         PR rtl-optimization/48302
12435         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
12436         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
12437         it to record added preheader blocks.
12438         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
12439         on to sel_add_loop_preheaders.
12440         (sel_region_init): Move call to setup_current_loop_nest after
12441         sel_init_bbs.
12442
12443 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12444
12445         PR target/48273
12446         * cfgloop.h (loop_has_exit_edges): New helper.
12447         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
12448         non-clonable.
12449         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
12450         that have no exit edges.
12451
12452 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12453
12454         PR rtl-optimization/48442
12455         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
12456         all callers.  Adjust assert.
12457
12458 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
12459
12460         PR tree-optimization/48377
12461         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
12462         is_packed to true even for types with smaller TYPE_ALIGN than
12463         TYPE_SIZE.
12464
12465 2011-04-08  Richard Guenther  <rguenther@suse.de>
12466
12467         PR bootstrap/48513
12468         * doc/tm.texi: Re-generate.
12469
12470 2011-04-08  Wei Guozhi  <carrot@google.com>
12471
12472         PR target/47855
12473         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
12474         * config/arm/arm.c (arm_attr_length_push_multi): New function.
12475         * config/arm/arm.md (*push_multi): Change the length computation to
12476         call a C function.
12477
12478 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
12479
12480         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
12481         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
12482         * doc/tm.texi: Regenerate.
12483         * system.h (ASM_OUTPUT_BSS): Poison.
12484         * varasm.c (asm_output_bss): Remove function.
12485         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
12486
12487         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
12488         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
12489         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
12490         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12491         Likewise.
12492         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12493         Likewise.
12494         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12495         Likewise.
12496         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
12497
12498 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
12499
12500         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
12501         EnumValue lines.
12502
12503 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
12504
12505         * config/m68k/m68k.c (m68k_handle_option): Don't handle
12506         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
12507         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
12508         OPT_mcpu32.
12509         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
12510         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
12511         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
12512         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
12513         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
12514         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
12515         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
12516         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
12517         options.  Don't map other m68k options manually.  Don't handle
12518         old-style options as canonical.
12519         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
12520         * doc/install.texi (m68k-*-*): Document binutils version requirement.
12521
12522 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
12523
12524         * basic-block.h (force_nonfallthru): Move to...
12525         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
12526         (force_nonfallthru): ...here.
12527         * cfghooks.c (force_nonfallthru): New function.
12528         * cfgrtl.c (force_nonfallthru): Rename into...
12529         (rtl_force_nonfallthru): ...this.
12530         (commit_one_edge_insertion): Do not set AUX field.
12531         (commit_edge_insertions): Do not discover new basic blocks.
12532         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
12533         (cfg_layout_rtl_cfg_hooks): Likewise.
12534         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
12535         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
12536         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
12537
12538 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
12539
12540         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12541         Remove macros.
12542
12543 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
12544
12545         * config/i386/sse.md: Update copyright year.
12546         (avxcvtvecmode): Remove.
12547         (sse_movhlps): Merge with *avx_movhlps.
12548         (sse_movlhps): Merge with *avx_movlhps.
12549         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
12550         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
12551         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
12552         (sse_loadhps): Merge with *avx_loadhps.
12553         (sse_storelps): Merge with *avx_storelps.
12554         (sse_loadlps): Merge with *avx_loadlps.
12555         (sse_movss): Merge with *avx_movss.
12556         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
12557         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
12558         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
12559         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
12560         (vec_set<mode>_0): Ditto.
12561         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
12562         (sse4_1_insertps): Merge with *avx_insertps.
12563         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
12564         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
12565         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
12566         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
12567         (sse2_storehpd): Merge with *avx_storehpd.
12568         (sse2_loadhpd): Merge with *avx_loadhpd.
12569         (sse2_loadlpd): Merge with *avx_loadlpd.
12570         (sse2_movsd): Merge with *avx_movsd.
12571         (*vec_concatv2df): Merge with *vec_concatv2df.
12572
12573 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
12574
12575         PR debug/48343
12576         * combine.c (combine_instructions): Add last_combined_insn,
12577         update it if insn is after it, pass it to all try_combine calls.
12578         (try_combine): Add last_combined_insn parameter, pass it instead of
12579         i3 to propagate_for_debug.
12580
12581 2011-04-07  Nick Clifton  <nickc@redhat.com>
12582
12583         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
12584         to handle MDR <-> data register transfers.
12585         (movhi_internal): Likewise.
12586
12587 2011-04-07  Alan Modra  <amodra@gmail.com>
12588
12589         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
12590         previous stack info.
12591
12592 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12593
12594         PR target/43920
12595         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
12596         flow_find_cross_jump.  Swap variables to implement backward replacement.
12597         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
12598
12599 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12600
12601         PR target/43920
12602         * cfgcleanup.c (walk_to_nondebug_insn): New function.
12603         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
12604         and bb2.
12605         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
12606         src1 or src2.  Redirect edges to the last basic block.  Update
12607         frequency and count on multiple basic blocks in case of fallthru.
12608
12609 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12610
12611         PR target/43920
12612         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
12613         function.
12614         (old_insns_match_p): Change return type.  Replace return false/true
12615         with return dir_none/dir_both.  Use can_replace_by.
12616         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
12617         direction from dir_p.  Register replacement direction in dir, last_dir
12618         and afterlast_dir.  Handle new return type of old_insns_match_p using
12619         merge_dir.  Return replacement direction in dir_p.
12620         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
12621         return type of old_insns_match_p.
12622         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
12623         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
12624         flow_find_cross_jump.
12625         * basic-block.h (enum replace_direction): New type.
12626         (flow_find_cross_jump): Add parameter to declaration.
12627
12628 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
12629
12630         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
12631         (AVXMODEDCVTPS2DQ): Ditto.
12632         (VEC_FLOAT_MODE): Ditto.
12633         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
12634         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
12635         (<any_logic:code><mode>3): Use VF mode iterator.
12636         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
12637         Use VF mode iterator.
12638         (copysign<mode>3): Use VF mode iterator.
12639         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
12640         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
12641         (*<any_logic:code><MODEF:mode>3): Merge with
12642         *avx_<any_logic:code><MODEF:mode>3.
12643         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
12644         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
12645         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
12646         (avx_cvtdq2ps<avxmodesuffix>): Remove.
12647         (sse2_cvtdq2ps): Use %v modifier.
12648         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
12649         (avx_cvtps2dq<avxmodesuffix>): Remove.
12650         (sse2_cvtps2dq): Use %v modifier.
12651         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
12652         (avx_cvttps2dq<avxmodesuffix>): Remove.
12653         (sse2_cvttps2dq): Use %v modifier.
12654         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
12655         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
12656         (sse2_cvtsd2siq): Fix insn template.
12657         (sse2_cvtsd2siq_2): Ditto.
12658         (sse2_cvttsd2siq): Ditto.
12659         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
12660         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
12661
12662 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
12663
12664         * gcov-io.c: Use GCC Runtime Library Exception.
12665
12666 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
12667
12668         PR debug/48466
12669         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
12670         as base_reg whatever register reg has been eliminated to, instead
12671         of hardcoding STACK_POINTER_REGNUM.
12672
12673 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
12674
12675         * doc/tm.texi.in: Document C target hooks as separate from general
12676         target hooks.
12677         * doc/tm.texi: Regenerate.
12678         * genhooks.c (struct hook_desc): Add docname field.
12679         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
12680         docname field.
12681         (hook_array): Include c-target.def.
12682         (emit_documentation): Use docname field in output.
12683         (emit_init_macros): Take docname argument.  Only emit definitions
12684         for hooks matching docname.
12685         (main): Expect additional arguments in all cases.  Pass argument
12686         to emit_init_macros.
12687         * target.def: Move initial macro definitions and comments to
12688         target-hooks-macros.h.
12689         (gcc_targetcm): Move to c-family/c-target.def.
12690         * target.h (targetcm): Move declaration to c-family/c-target.h.
12691         * targhooks.c (default_handle_c_option): Move to
12692         c-family/c-opts.c.
12693         * targhooks.h (default_handle_c_option): Move declaration to
12694         c-family/c-common.h.
12695         * target-hooks-macros.h: New file.
12696         * config.gcc (target_has_targetcm): Define and use to add to
12697         c_target_objs and cxx_target_objs.
12698         * config/default-c.c: New file.
12699         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
12700         of target.h and target-def.h.
12701         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
12702         (darwin_objc_construct_string, darwin_cfstring_ref_p,
12703         darwin_check_cfstring_format_arg): Make static.
12704         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
12705         TARGET_STRING_OBJECT_REF_TYPE_P,
12706         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
12707         * config/darwin-protos.h (darwin_objc_construct_string,
12708         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
12709         declare.
12710         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
12711         TARGET_STRING_OBJECT_REF_TYPE_P,
12712         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
12713         * config/t-darwin (darwin-c.o): Update dependencies.
12714         * system.h (TARGET_HAS_TARGETCM): Poison.
12715         * Makefile.in (TARGET_H): Update.
12716         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
12717         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
12718         (default-c.o): New target.
12719         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
12720         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
12721         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
12722         c-target.def.
12723         (build/genhooks.o): Update dependencies.
12724
12725 2011-04-06  Richard Guenther  <rguenther@suse.de>
12726
12727         * ipa-inline.c (enum inlining_mode): Remove.
12728         (cgraph_flatten): Use some other token.
12729         (cgraph_edge_early_inlinable_p): New function, split out from ...
12730         (cgraph_perform_always_inlining): New function, split out from ...
12731         (cgraph_decide_inlining_incrementally): ... here.
12732         (cgraph_mark_inline_edge): Adjust.
12733         (cgraph_early_inlining): Re-structure.
12734         (pass_early_inline): Require SSA form.
12735
12736 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
12737             Julian Brown  <julian@codesourcery.com>
12738             Mark Shinwell  <shinwell@codesourcery.com>
12739
12740         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
12741         LO_REGS only for Thumb-1.
12742         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
12743         be used in short instructions when optimising for size on Thumb-2.
12744
12745 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12746
12747         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
12748         associated with user returns to be preserved.
12749
12750 2011-04-06  Tristan Gingold  <gingold@adacore.com>
12751
12752         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
12753         symbol_queue_size, DBXOUT_DECR_NESTING,
12754         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
12755         if XCOFF_DEBUGGING_INFO.
12756
12757 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
12758
12759         * config/i386/i386.md (attribute isa): New.
12760         (attribute enabled): New.
12761         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
12762         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
12763         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
12764         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
12765         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
12766         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12767         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
12768         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
12769
12770         * config/i386/sse.md (VF): New mode iterator.
12771         (VF1): Ditto.
12772         (VF2): Ditto.
12773         (VF_128): Ditto.
12774         (SSEMODEF4): Remove.
12775         (attribute sse): Handle V8SF and V4DF modes.
12776         (<absneg:code><mode>2): Use VF mode iterator.
12777         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
12778         mode iterator.
12779         (<plusminus_insn><mode>3): Use VF mode iterator.
12780         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
12781         Use VF mode iterator.
12782         (<sse>_vm<plusminus_insn><mode>3): Merge with
12783         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
12784         (mul<mode>3): Use VF mode iterator.
12785         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
12786         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
12787         mode iterator.
12788         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
12789         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
12790         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
12791         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
12792         mode iterator.
12793         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
12794         Use VF1 mode iterator.
12795         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
12796         (sqrt<VF2:mode>2): New expander.
12797         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
12798         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
12799         and sqrtv2df2.  Use VF mode iterator.
12800         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
12801         mode iterator.
12802         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
12803         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
12804         Use VF1 mode iterator.
12805         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
12806         (<smaxmin:code><mode>3): Use VF mode iterator.
12807         (*<smaxmin:code><mode>3_finite): Merge with
12808         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
12809         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12810         (<sse>_vm<smaxmin:code><mode>2): Merge with
12811         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
12812         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
12813         mode iterator.
12814         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
12815         mode iterator.
12816         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
12817         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
12818         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
12819         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
12820         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
12821         VF mode iterator.
12822         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
12823         Use VF_128 mode iterator.
12824         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
12825         mode iterator.
12826         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
12827         VF_128 mode iterator.
12828         (vcond<mode>): Use VF mode iterator.
12829         * config/i386/predicates.md (sse_comparison_operator): Merge with
12830         avx_comparison_float_operator.  Do not declare as special_predicate.
12831         * config/i386/i386.c (struct builtin_description): Update for renamed
12832         compare patterns.
12833         (ix86_expand_args_builtin): Ditto.
12834         (ix86_expand_sse_compare_mask): Ditto.
12835
12836 2011-04-06  Richard Guenther  <rguenther@suse.de>
12837
12838         * tree-inline.c (estimate_num_insns): For calls simply account
12839         for all passed arguments and a used return value.
12840
12841 2011-04-06  Richard Guenther  <rguenther@suse.de>
12842
12843         PR tree-optimization/47663
12844         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
12845         call_stmt_time fields.
12846         (cgraph_edge_inlinable_p): Declare.
12847         (cgraph_edge_recursive_p): New inline function.
12848         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
12849         (cgraph_clone_edge): Copy it.
12850         * ipa-inline.c (cgraph_estimate_edge_time): New function.
12851         Account for call stmt time.
12852         (cgraph_estimate_time_after_inlining): Take edge argument.
12853         (cgraph_estimate_edge_growth): Account call stmt size.
12854         (cgraph_estimate_size_after_inlining): Take edge argument.
12855         (cgraph_mark_inline_edge): Adjust.
12856         (cgraph_check_inline_limits): Likewise.
12857         (cgraph_recursive_inlining_p): Remove.
12858         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
12859         (cgraph_decide_recursive_inlining): Take edge argument and
12860         adjust.
12861         (cgraph_decide_inlining_of_small_functions): Do not avoid
12862         diags for recursive inlining here.
12863         (cgraph_flatten): Adjust.
12864         (cgraph_decide_inlining_incrementally): Likewise.
12865         (estimate_function_body_sizes): Remove call cost handling.
12866         (compute_inline_parameters): Initialize caller edge call costs.
12867         (cgraph_estimate_edge_growth): New function.
12868         (cgraph_estimate_growth): Use it.
12869         (cgraph_edge_badness): Likewise.
12870         (cgraph_check_inline_limits): Take an edge argument.
12871         (cgraph_decide_inlining_of_small_functions): Adjust.
12872         (cgraph_decide_inlining): Likewise.
12873         * tree-inline.c (estimate_num_insns): Only account for call
12874         return value if it is used.
12875         (expand_call_inline): Avoid diagnostics on recursive inline
12876         functions here.
12877         * lto-cgraph.c (lto_output_edge): Output edge call costs.
12878         (input_edge): Input edge call costs.
12879
12880 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12881
12882         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
12883
12884 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
12885
12886         * doc/invoke.texi (Spec Files): Fix typo.
12887
12888 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12889
12890         * profile.c (branch_prob): Move declaration of local variable.  Remove
12891         obsolete ??? comment.  Expand the location explicitly instead of using
12892         the LOCATION_FILE and LOCATION_LINE macros.
12893
12894 2011-04-06  Wei Guozhi  <carrot@google.com>
12895
12896         PR target/47855
12897         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
12898         (arm_cond_branch): Likewise.
12899         (arm_cond_branch_reversed): Likewise.
12900         (arm_jump): Likewise.
12901         (push_multi): Likewise.
12902         * config/arm/constraints.md (Py): New constraint.
12903
12904 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12905
12906         PR bootstrap/48471
12907         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
12908         Move these...
12909         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
12910         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
12911         #ifdef DBX_DEBUGGING_INFO.
12912
12913 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
12914
12915         PR bootstrap/48403
12916         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
12917         if old and new states differ.
12918
12919 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
12920
12921         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
12922         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
12923         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
12924         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
12925         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
12926         mcfv4e): Use Alias.
12927         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
12928         ColdFire options to -mcpu= options.
12929
12930 2011-04-05  Jeff Law  <law@redhat.com>
12931
12932         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
12933         check if BB is a successor of LOOP->header and return
12934         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
12935
12936 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
12937
12938         * cprop.c (struct reg_use): Remove.
12939         (reg_use_table): Make an array of RTX.
12940         (find_used_regs, constprop_register, local_cprop_pass,
12941         bypass_block): Simplify users of reg_use_table.
12942         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
12943         on one of the uses found by find_used_regs.
12944
12945 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12946
12947         PR bootstrap/48469
12948         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
12949         declaration.
12950
12951 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12952
12953         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
12954         as an rtx.
12955         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
12956
12957 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
12958
12959         PR middle-end/48441
12960         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
12961
12962 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12963
12964         * combine.c: Include obstack.h.
12965         (struct insn_link): Define.
12966         (uid_log_links): Adjust type.
12967         (FOR_EACH_LOG_LINK): New macro.
12968         (insn_link_obstack): Declare.
12969         (alloc_insn_link): Define.
12970         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
12971         type of link variables.
12972         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
12973         (try_combine, record_promoted_values, distribute_notes): Likewise.
12974         (distribute_links): Likewise.  Tweak prototype.
12975         (clear_log_links): Delete.
12976         (adjust_for_new_dest): Call alloc_insn_link.
12977         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
12978
12979 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12980
12981         * gcse.c (modify_mem_list): Convert to an array of VECs.
12982         (canon_modify_mem_list, compute_transp): Tweak formatting.
12983         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
12984         (load_killed_in_block_p): Likewise.
12985         (record_last_mem_set_info): Likewise.
12986         (clear_modify_mem_tables): Likewise.
12987
12988 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12989
12990         PR middle-end/48461
12991         * function.c (emit_use_return_register_into_block): Only define if
12992         HAVE_return.
12993
12994 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
12995
12996         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
12997
12998 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
12999
13000         * config/rx/rx-opts.h: New.
13001         * config/rx/rx.c (rx_cpu_type): Remove.
13002         (rx_handle_option): Don't assert that global structures are in
13003         use.  Access variables via opts pointer.  Defer most handling of
13004         OPT_mint_register_.  Use error_at.
13005         (rx_option_override): Handle deferred OPT_mint_register_ here.
13006         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
13007         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
13008         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
13009         (rx_cpu_types): New Enum and EnumValue entries.
13010         (mint-register=): Use Defer and use Var accordingly.
13011
13012 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
13013
13014         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
13015         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
13016         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
13017         Move these...
13018         (debug_free_queue, debug_nesting, symbol_queue_index):
13019         ...and these...
13020         * dbxout.c: ...to here.  Make static.
13021
13022 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
13023
13024         * gcse.c (modify_pair): Define.  Define a VEC of it.
13025         (canon_modify_mem_list): Convert to an array of VECs.
13026         (free_insn_expr_list_list): Delete.
13027         (clear_modify_mem_tables): Call VEC_free instead.
13028         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
13029         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
13030         (canon_list_insert, compute_transp): Likewise.
13031
13032 2011-04-05  Tom de Vries  <tom@codesourcery.com>
13033
13034         PR target/43920
13035         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
13036         for size.
13037
13038 2011-04-05  Tom de Vries  <tom@codesourcery.com>
13039
13040         PR target/43920
13041         * function.c (emit_use_return_register_into_block): New function.
13042         (thread_prologue_and_epilogue_insns): Use
13043         emit_use_return_register_into_block.
13044
13045 2011-04-05  Tom de Vries  <tom@codesourcery.com>
13046
13047         PR target/43920
13048         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
13049         insn.
13050
13051 2011-04-05  Tom de Vries  <tom@codesourcery.com>
13052
13053         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
13054
13055 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
13056
13057         * config/arm/arm.md (define_constants for unspec): Replace with
13058         define_c_enum.
13059         (define_constants for unspecv): Replace with define_c_enum.
13060         * config/arm/neon.md (define_constants for unspec): Replace with
13061         define_c_enum.
13062
13063 2011-04-04  Richard Henderson  <rth@redhat.com>
13064
13065         PR bootstrap/48400
13066         * dwarf2out.c (output_line_info): Always emit line info from
13067         at least one section.
13068         (dwarf2out_init): Create text_section_line_info here ...
13069         (set_cur_line_info_table): ... not here.
13070
13071 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
13072
13073         PR target/48380
13074         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
13075         not called.
13076
13077         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
13078
13079 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
13080
13081         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
13082         (expr_equiv_p): Remove.
13083         (insert_set_in_table): Look at <dest, src> pair instead of expr.
13084         (hash_scan_set): Update call to insert_set_in_table.
13085         (dump_hash_table): Dump <dest, src> pair.
13086         (lookup_set): Simplify.  Lookup <dest, src> pair.
13087         (compute_transp): Remove, fold heavily simplified code into...
13088         (compute_local_properties): ...here.  Expect COMP and TRANSP
13089         unconditionally.
13090         (find_avail_set): Take set directly from struct expr.
13091         (find_bypass-set): Likewise.
13092         (bypass_block): Likewise.
13093         (cprop_insn): Likewise.  Remove redundant INSN_P test.
13094
13095         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
13096         checks on form of COND from find_implicit_sets to here.
13097         (find_implicit_sets): Cleanup control flow. Split critical edges
13098         if it exposes implicit sets.  Allocate/resize implicit_sets as
13099         necessary.
13100         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
13101         changed something.  Run df_analyze after find_implicit_sets if any
13102         edges were split.  Do not allocate implicit_sets here.
13103
13104         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
13105         (gcse_obstack): Renamed to cprop_obstack.
13106         (GNEW, GNEWVEC, GNEWVAR): Remove.
13107         (gmalloc): Remove.
13108         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
13109         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
13110         (gcse_alloc): Likewise, and rename to cprop_alloc.
13111         (alloc_gcse_men, free_gcse_mem): Remove.
13112         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
13113         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
13114         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
13115
13116         * cprop.c (oprs_not_set_p): Remove.
13117         (mark_set, mark_clobber): Remove.
13118         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
13119         (reg_not_set_p): New function.
13120         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
13121         (cprop_insn): Likewise.
13122         (cprop_jump): Use FOR_EACH_EDGE.
13123
13124 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
13125
13126         PR bootstrap/48403
13127         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
13128         (rank_for_schedule): Use scheduled_insns vector instead of
13129         last_scheduled_insn.
13130         (ok_for_early_queue_removal): Likewise.
13131         (queue_to_ready): Search forward in nonscheduled_insns_begin if
13132         we have a dbg_cnt.
13133         (choose_ready): Likewise.
13134         (commit_schedule): Use VEC_iterate.
13135         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
13136         a dbg_cnt, use it and ensure the first insn is in the ready list.
13137         (haifa_sched_init): Allocate scheduled_insns.
13138         (sched_extend_ready_list): Don't allocate it; reserve space.
13139         (haifa_sched_finish): Free it.
13140
13141 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
13142
13143         * optc-gen.awk: Always remove type from Variable entry before
13144         recording in var_seen.
13145
13146 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
13147
13148         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
13149         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
13150         call to tidy_fallthru_edges.
13151
13152 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
13153
13154         * doc/options.texi (ToLower): Document.
13155         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
13156         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
13157         * opts.h (cl_option): Add cl_tolower field.
13158         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
13159         arguments with lowercase strings.
13160         * config/rx/rx.opt (mcpu=): Add ToLower.
13161         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
13162         argument.
13163
13164 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
13165
13166         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
13167
13168 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
13169
13170         * config/vax/vax.c: Include reload.h.
13171
13172 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
13173
13174         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
13175         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13176         (sparc_preferred_reload_class): New function.
13177
13178 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
13179
13180         PR debug/48401
13181         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
13182         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
13183
13184 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
13185
13186         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
13187         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
13188
13189 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
13190
13191         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
13192         (ASM_OUTPUT_ALIGNED_BSS): Define.
13193
13194 2011-04-03  Michael Matz  <matz@suse.de>
13195
13196         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
13197         and next_slot members.
13198         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
13199         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
13200         (lto_streamer_cache_append): Declare.
13201         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
13202         unsigned index, remove offset parameter, ensure that we append
13203         or update existing entries.
13204         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
13205         parameter, update next_slot for append.
13206         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
13207         parameter.
13208         (lto_streamer_cache_insert_at): Likewise.
13209         (lto_streamer_cache_append): New function.
13210         (lto_streamer_cache_lookup): Use unsigned index.
13211         (lto_streamer_cache_get): Likewise.
13212         (lto_record_common_node): Don't test tree_node_can_be_shared.
13213         (preload_common_node): Adjust call to lto_streamer_cache_insert.
13214         (lto_streamer_cache_delete): Don't free offsets member.
13215         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
13216         (lto_output_string_with_length): Use lto_output_data_stream.
13217         (lto_output_tree_header): Remove ix parameter, don't write it.
13218         (lto_output_builtin_tree): Likewise.
13219         (lto_write_tree): Adjust callers to above, don't track and write
13220         offset, write unsigned index.
13221         (output_unreferenced_globals): Don't emit all global vars.
13222         (write_global_references): Use unsigned indices.
13223         (lto_output_decl_state_refs): Likewise.
13224         (write_symbol): Likewise.
13225         * lto-streamer-in.c (lto_input_chain): Move earlier.
13226         (input_function): Use unsigned index.
13227         (input_alias_pairs): Don't read and then ignore all global vars.
13228         (lto_materialize_tree): Remove ix_p parameter, don't read index,
13229         don't pass it back, use lto_streamer_cache_append.
13230         (lto_register_var_decl_in_symtab): Use unsigned index.
13231         (lto_register_function_decl_in_symtab): Likewise.
13232         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
13233         index.
13234         (lto_get_builtin_tree): Don't read index, use
13235         lto_streamer_cache_append.
13236         (lto_read_tree): Adjust call to lto_materialize_tree.
13237
13238         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
13239         don't use function calls in arguments to MIN.
13240
13241         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
13242         twice.
13243
13244         * gimple.c (gimple_type_leader_entry): Mark deletable.
13245
13246 2011-04-03  Alan Modra  <amodra@gmail.com>
13247
13248         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
13249
13250 2011-04-03  Michael Matz  <matz@suse.de>
13251
13252         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
13253         an integer.
13254         * tree.h (tree_decl_non_common.vindex): Adjust comment.
13255
13256 2011-04-03  Michael Matz  <matz@suse.de>
13257
13258         * cgraphbuild.c (record_reference): Canonicalize constructor values.
13259         * gimple-fold.c (canonicalize_constructor_val): Accept being called
13260         without function context.
13261         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
13262         current_function_decl and cfun.
13263
13264 2011-04-03  Michael Matz  <matz@suse.de>
13265
13266         * tree.c (decl_init_priority_insert): Don't create entry for
13267         default priority.
13268         (decl_fini_priority_insert): Ditto.
13269         (fields_compatible_p, find_compatible_field): Remove.
13270         * tree.h (fields_compatible_p, find_compatible_field): Remove.
13271         * gimple.c (gimple_compare_field_offset): Adjust block comment.
13272
13273 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
13274
13275         * combine.c (try_combine): Remove useless local variable.
13276
13277 2011-04-03  Richard Guenther  <rguenther@suse.de>
13278             Ira Rosen  <ira.rosen@linaro.org>
13279
13280         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
13281         non-variable offsets and compare the remaining bases of the two
13282         accesses instead of looking for exact same data-ref.
13283
13284 2011-04-02  Kai Tietz  <ktietz@redhat.com>
13285
13286         PR target/48416
13287         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
13288
13289         * i386.c (ix86_is_msabi_thiscall): New helper function.
13290         (ix86_is_type_thiscall): New helper function.
13291         (ix86_comp_type_attributes): Handle thiscall for method-functions
13292         special.
13293         (init_cumulative_args): Likewise.
13294         (find_drap_reg): Likewise.
13295         (ix86_static_chain): Likewise.
13296         (x86_this_parameter): Likewise.
13297         (x86_output_mi_thunk): Likewise.
13298
13299 2011-04-01  Olivier Hainque  <hainque@adacore.com>
13300             Nicolas Setton  <setton@adacore.com>
13301             Eric Botcazou  <ebotcazou@adacore.com>
13302
13303         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
13304         (add_gnat_descriptive_type_attribute): New function.
13305         (gen_array_type_die): Call it.
13306         (gen_enumeration_type_die): Likewise.
13307         (gen_struct_or_union_type_die): Likewise.
13308         (modified_type_die): Likewise.
13309         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
13310         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
13311         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
13312
13313 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
13314
13315         PR bootstrap/48148
13316         * dwarf2out.c (resolve_addr): Don't call force_decl_die
13317         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
13318
13319         Revert:
13320         2011-03-17  Richard Guenther  <rguenther@suse.de>
13321
13322         PR bootstrap/48148
13323         * lto-cgraph.c (input_overwrite_node): Clear the abstract
13324         origin for decls in other ltrans units.
13325         (input_varpool_node): Likewise.
13326
13327 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
13328
13329         PR middle-end/48335
13330         * expr.c (expand_assignment): Handle all possibilities
13331         if TO_RTX is CONCAT.
13332         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
13333         (store_split_bit_field): If SUBREG_REG (op0) or
13334         op0 itself has smaller mode than word, return it
13335         for offset 0 and const0_rtx for out-of-bounds stores.
13336         If word is const0_rtx, skip it.
13337
13338 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
13339
13340         * config/h8300/h8300.c (print_operand_address): Rename to...
13341         (h8300_print_operand_address): ...this. Make static. Adjust comments.
13342         Call h8300_print_operand and h8300_print_operand_address instead of
13343         print_operand and print_operand_address. Declare.
13344         (print_operand): Renake to...
13345         (h8300_print_operand): ...this. Make static. Adjust comments.
13346         Call h8300_print_operand instead of print_operand. Declare.
13347         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
13348         (h8300_register_move_cost): Likewise.
13349         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
13350         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
13351         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
13352         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
13353         * config/h8300/h8300-protos.h (print_operand): Delete.
13354         (print_operand_address): Delete.
13355
13356 2011-04-01  Richard Henderson  <rth@redhat.com>
13357
13358         PR 48400
13359         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
13360         in strict mode before dwarf4.  Re-order tests to early out
13361         before switching sections.
13362
13363 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
13364
13365         * config/h8300/constraints.md: New file.
13366         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
13367         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
13368         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
13369         * config/h8300/predicates.md (bit_operand): Likewise.
13370         (incdec_operand): Use satisfies_constraint_M and
13371         satisfies_constraint_O.  Don't use C code block.
13372         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
13373         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
13374         (compute_mov_length): Use satisfies_constraint_G.
13375         (fix_bit_operand): Use satisfies_constraint_U.
13376         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
13377         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
13378         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
13379         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
13380         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
13381         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
13382         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13383         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
13384         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
13385         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
13386         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
13387         (EXTRA_MEMORY_CONSTRAINT): Delete.
13388
13389 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
13390             Michael Meissner  <meissner@linux.vnet.ibm.com>
13391
13392         PR target/48262
13393         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
13394         operands, as per the specifications.
13395
13396         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
13397         (vec_extract_evenv4sf): Ditto.
13398         (vec_extract_evenv8hi): Ditto.
13399         (vec_extract_evenv16qi): Ditto.
13400         (vec_extract_oddv4si): Ditto.
13401
13402 2011-03-31  Mark Wielaard  <mjw@redhat.com>
13403
13404         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
13405         high_pc attribute if the CU has no associated code. Only output
13406         DW_AT_entry_pc for CU if not generating strict dwarf and
13407         dwarf_version < 4.
13408
13409 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
13410
13411         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
13412         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
13413         out of ...
13414         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
13415         * final.c (final_start_function): Call the new function rather
13416         than using a NULL argument for dwarf2out_frame_debug.
13417
13418         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
13419         that contains the prologue.
13420
13421         * haifa-sched.c (queue_insn): New arg REASON.  All callers
13422         changed.  Print it in debugging output.
13423
13424         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
13425
13426         * sched-ebb.c (begin_schedule_ready): Remove second argument.
13427         Split most of the code into...
13428         (begin_move_insn): ... here.  New function.
13429         (ebb_sched_info): Add a pointer to it.
13430         * haifa-sched.c (scheduled_insns): New static variable.
13431         (sched_extend_ready_list): Allocate it.
13432         (schedule_block): Use it to record the order of scheduled insns.
13433         Perform RTL changes to move insns only after all scheduling
13434         decisions have been made.
13435         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
13436         begin_move_insn field.
13437         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
13438         * sched-int.h (struct haifa_sched_info): Remove second argument
13439         from begin_schedule_ready hook.  Add new member begin_move_insn.
13440         * sched-rgn.c (begin_schedule_ready): Remove second argument.
13441         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
13442
13443         * haifa-sched.c (prune_ready_list): New function, broken out of
13444         schedule_block.
13445         (schedule_block): Use it.
13446
13447 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13448
13449         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
13450
13451 2011-04-01  Kai Tietz  <ktietz@redhat.com>
13452
13453         * config.gcc (*-*-mingw*): Allow as option the
13454         posix threading model.
13455         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
13456         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
13457         definition.
13458         (CPP_SPEC): Add pthread/no-pthread handling.
13459         (LIB_SPEC): Likewise.
13460         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
13461         (LIB_SPEC): Likewise.
13462         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
13463         flag to pass -pthread option for shared libgcc build.
13464         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
13465         for shared libgcc build.
13466         * config/i386/t-mingw-pthread: New file.
13467         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
13468         New define to enable use of library pthread by default.
13469         * config/i386/mingw.opt (pthread): New driver option.
13470         (no-pthread): New driver option.
13471         * config/i386/cygming.opt: Make sure trailing empty line is retained.
13472         * config/i386/mingw-w64.opt: Likewise.
13473
13474 2011-04-01  Gary Funck  <gary@intrepid.com>
13475
13476         * c-decl.c (grokdeclarator): Fix formatting.
13477
13478 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13479
13480         * expr.c (emit_block_move_via_movmem): Use n_generator_args
13481         instead of n_operands.
13482         (set_storage_via_setmem): Likewise.
13483         * optabs.c (maybe_gen_insn): Likewise.
13484         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
13485         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
13486         (mips_expand_builtin_direct): Likewise.
13487         * config/spu/spu.c (expand_builtin_args): Likewise.
13488
13489 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13490
13491         * recog.h (insn_data_d): Add n_generator_args.
13492         * genoutput.c (data): Likewise.
13493         (output_insn_data): Print it.
13494         (max_opno, num_dups): Delete.
13495         (scan_operands): Just fill in "d->operand[...]".
13496         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
13497
13498 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13499
13500         * gensupport.h (pattern_stats): New structure.
13501         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
13502         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
13503         (max_operand_1, max_operand_vec): Delete.
13504         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
13505
13506 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
13507
13508         * emit-rtl.c (emit_pattern_after_setloc): New function.
13509         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
13510         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
13511         (emit_pattern_after): New function.
13512         (emit_insn_after, emit_jump_insn_after): Call it.
13513         (emit_call_insn_after, emit_debug_insn_after): Likewise.
13514         (emit_pattern_before_setloc): New function.
13515         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
13516         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
13517         Likewise.
13518         (emit_pattern_before): New function.
13519         (emit_insn_before, emit_jump_insn_before): Call it.
13520         (emit_call_insn_before, emit_debug_insn_before): Likewise.
13521
13522 2011-03-31  Richard Henderson  <rth@redhat.com>
13523
13524         * dwarf2out.c (dw_separate_line_info_ref): Remove.
13525         (dw_separate_line_info_entry): Remove.
13526         (enum dw_line_info_opcode): New.
13527         (dw_line_info_entry): Use it.
13528         (dw_line_info_table, dw_line_info_table_p): New.
13529         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
13530         (line_info_table, line_info_label_num): Remove.
13531         (line_info_table_in_use): Remove.
13532         (separate_line_info_table): Remove.
13533         (separate_line_info_table_allocated): Remove.
13534         (separate_line_info_table_in_use): Remove.
13535         (LINE_INFO_TABLE_INCREMENT): Remove.
13536         (line_info_label_num): New.
13537         (cur_line_info_table): New.
13538         (text_section_line_info, cold_text_section_line_info): New.
13539         (separate_line_info): New.
13540         (SEPARATE_LINE_CODE_LABEL): Remove.
13541         (print_dwarf_line_table): Remove.
13542         (debug_dwarf): Don't dump it.
13543         (output_one_line_info_table): New.
13544         (output_line_info): Use it.
13545         (new_line_info_table): New.
13546         (set_cur_line_info_table): New.
13547         (dwarf2out_switch_text_section): Use it.
13548         (dwarf2out_begin_function): Likewise.
13549         (push_dw_line_info_entry): New.
13550         (dwarf2out_source_line): Rewrite for new line info tables.
13551         (dwarf2out_init): Remove dead initailizations.
13552
13553 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
13554
13555         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
13556         various flags.
13557         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
13558         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
13559         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
13560         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
13561         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
13562         * opt-functions.awk (flag_init, switch_bit_fields): New.
13563         (switch_flags): Don't handle flags moved to bit-fields.  Don't
13564         generate CL_MISSING_OK or CL_SAVE.
13565         * optc-gen.awk: Update to generate bit-field output as well as
13566         flags field.
13567         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
13568         bit-field instead of CL_REJECT_DRIVER flag.
13569         * opts-common.c (generate_canonical_option,
13570         decode_cmdline_option): Use bit-fields instead of CL_* flags.
13571         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
13572         instead of CL_REJECT_NEGATIVE flag.
13573         * toplev.c (print_switch_values): Use cl_report bit-field instead
13574         of CL_REPORT flag.
13575
13576 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
13577
13578         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
13579         a zero minimum index only if it is redundant.
13580
13581 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
13582
13583         PR rtl-optimization/48381
13584         * ira-color.c (assign_hard_reg): Use hard reg set intersection
13585         instead of ira_class_hard_reg_index for calculating conflicting
13586         hard registers.
13587
13588 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
13589
13590         * cprop.c: Clean up hash table building.
13591         (reg_avail_info): Remove.
13592         (oprs_available_p): Remove.
13593         (record_last_reg_set_info): Remove.
13594         (record_last_set_info): Remove.
13595         (reg_available_p): New function.
13596         (gcse_constant_p): Do not treat unfolded conditions as constants.
13597         (make_set_regs_unavailable): New function.
13598         (hash_scan_set): Simplify with new reg_available_p.
13599         (compute_hash_table_work): Traverse insns stream only once.
13600         Do not compute reg_avail_info. Traverse insns in reverse order.
13601         Record implicit sets after recording explicit sets from the block.
13602
13603 2011-03-31  Michael Matz  <matz@suse.de>
13604
13605         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
13606
13607 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
13608
13609         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
13610         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
13611         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13612         (h8300_mode_dependent_address_p): New function.
13613         (h8300_get_index): Make static.
13614
13615 2011-03-31  Jeff Law  <law@redhat.com>
13616
13617         * reload1.c (elimination_effects): Fix typo in recent change.
13618
13619         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
13620         typo potentially leading to null pointer dereference.
13621
13622         * caller-save.c (new_saved_hard_reg): Eliminate return value.
13623         (setup_save_areas): Corresponding changes to avoid useless
13624         assignments.
13625
13626         * jump.c (reversed_comparison_code_parts): Avoid successive return
13627         statements when REVERSE_CONDITION is defined.
13628
13629         * expr.c (expand_assignment): Avoid useless assignments.
13630         (expand_expr_real_1): Likewise.
13631         (expand_expr_real_2): Avoid useless statements.
13632
13633         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
13634
13635         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
13636
13637         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
13638         statements.
13639
13640         * stmt.c (expand_expr_stmt): Avoid useless assignment.
13641
13642 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
13643
13644         PR target/47109
13645         * doc/tm.texi.in (TARGET_VERSION): Remove.
13646         * doc/tm.texi: Regenerate.
13647         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
13648         * collect2.c (main): Don't use TARGET_VERSION.
13649         * mips-tdump.c (main): Don't use TARGET_VERSION.
13650         * mips-tfile.c (main): Don't use TARGET_VERSION.
13651         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
13652         * config/rs6000/vxworksae.h: Remove.
13653         * config/alpha/alpha.h (TARGET_VERSION): Remove.
13654         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
13655         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
13656         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
13657         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
13658         * config/arm/arm.h (TARGET_VERSION): Remove.
13659         * config/arm/coff.h (TARGET_VERSION): Remove.
13660         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
13661         * config/arm/elf.h (TARGET_VERSION): Remove.
13662         * config/arm/freebsd.h (TARGET_VERSION): Remove.
13663         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
13664         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
13665         * config/arm/pe.h (TARGET_VERSION): Remove.
13666         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
13667         * config/arm/semi.h (TARGET_VERSION): Remove.
13668         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
13669         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
13670         * config/arm/vxworks.h (TARGET_VERSION): Remove.
13671         * config/avr/avr.h (TARGET_VERSION): Remove.
13672         * config/bfin/bfin.h (TARGET_VERSION): Remove.
13673         * config/fr30/fr30.h (TARGET_VERSION): Remove.
13674         * config/frv/frv.h (TARGET_VERSION): Remove.
13675         * config/h8300/h8300.h (TARGET_VERSION): Remove.
13676         * config/i386/cygwin.h (TARGET_VERSION): Remove.
13677         * config/i386/darwin.h (TARGET_VERSION): Remove.
13678         * config/i386/darwin64.h (TARGET_VERSION): Remove.
13679         * config/i386/djgpp.h (TARGET_VERSION): Remove.
13680         * config/i386/freebsd.h (TARGET_VERSION): Remove.
13681         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
13682         * config/i386/gnu.h (TARGET_VERSION): Remove.
13683         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
13684         * config/i386/i386elf.h (TARGET_VERSION): Remove.
13685         * config/i386/linux.h (TARGET_VERSION): Remove.
13686         * config/i386/linux64.h (TARGET_VERSION): Remove.
13687         * config/i386/lynx.h (TARGET_VERSION): Remove.
13688         * config/i386/mingw32.h (TARGET_VERSION): Remove.
13689         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
13690         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
13691         * config/i386/netware.h (TARGET_VERSION): Remove.
13692         * config/i386/nto.h (TARGET_VERSION): Remove.
13693         * config/i386/openbsd.h (TARGET_VERSION): Remove.
13694         * config/i386/vxworks.h (TARGET_VERSION): Remove.
13695         * config/ia64/elf.h (TARGET_VERSION): Remove.
13696         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
13697         * config/ia64/hpux.h (TARGET_VERSION): Remove.
13698         * config/ia64/linux.h (TARGET_VERSION): Remove.
13699         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
13700         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
13701         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
13702         * config/lm32/lm32.h (TARGET_VERSION): Remove.
13703         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
13704         * config/m32c/m32c.h (TARGET_VERSION): Remove.
13705         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
13706         * config/m32r/m32r.h (TARGET_VERSION): Remove.
13707         * config/m68k/linux.h (TARGET_VERSION): Remove.
13708         * config/m68k/m68k.h (TARGET_VERSION): Remove.
13709         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
13710         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
13711         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
13712         * config/mep/mep.h (TARGET_VERSION): Remove.
13713         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
13714         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
13715         * config/mips/iris6.h (MACHINE_TYPE): Remove.
13716         * config/mips/linux.h (TARGET_VERSION): Remove.
13717         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
13718         * config/mips/vxworks.h (TARGET_VERSION): Remove.
13719         * config/mmix/mmix.h (TARGET_VERSION): Remove.
13720         * config/mn10300/linux.h (TARGET_VERSION): Remove.
13721         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
13722         * config/pa/pa.h (TARGET_VERSION): Remove.
13723         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
13724         * config/picochip/picochip.h (TARGET_VERSION): Remove.
13725         * config/rs6000/aix.h (TARGET_VERSION): Remove.
13726         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
13727         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
13728         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
13729         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
13730         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
13731         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
13732         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
13733         * config/rs6000/linux.h (TARGET_VERSION): Remove.
13734         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
13735         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
13736         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
13737         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
13738         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
13739         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
13740         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
13741         * config/s390/linux.h (TARGET_VERSION): Remove.
13742         * config/s390/s390.h (TARGET_VERSION): Remove.
13743         * config/s390/tpf.h (TARGET_VERSION): Remove.
13744         * config/score/score.h (TARGET_VERSION): Remove.
13745         * config/sh/linux.h (TARGET_VERSION): Remove.
13746         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
13747         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
13748         * config/sh/sh.h (TARGET_VERSION): Remove.
13749         * config/sh/sh64.h (TARGET_VERSION): Remove.
13750         * config/sh/superh.h (TARGET_VERSION): Remove.
13751         * config/sh/vxworks.h (TARGET_VERSION): Remove.
13752         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
13753         * config/sparc/linux.h (TARGET_VERSION): Remove.
13754         * config/sparc/linux64.h (TARGET_VERSION): Remove.
13755         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
13756         TARGET_NAME32, TARGET_NAME): Remove.
13757         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
13758         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
13759         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
13760         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
13761         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
13762         * config/spu/spu.h (TARGET_VERSION): Remove.
13763         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
13764         * config/v850/v850.h (TARGET_VERSION): Remove.
13765         * config/vax/linux.h (TARGET_VERSION): Remove.
13766         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
13767         * config/xtensa/elf.h (TARGET_VERSION): Remove.
13768         * config/xtensa/linux.h (TARGET_VERSION): Remove.
13769
13770 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
13771
13772         PR target/48142
13773         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
13774         frame-related from frame-unrelated adjustments to the stack pointer.
13775
13776 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
13777
13778         * common.opt (fdebug-types-section): Move earlier.
13779         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
13780
13781 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
13782
13783         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
13784         var.
13785
13786 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
13787
13788         * tree.h (CASE_CHAIN): Define.
13789         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
13790         (gimple_redirect_edge_and_branch): Likewise.
13791
13792 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13793
13794         PR middle-end/48367
13795         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
13796         calculation.
13797
13798 2011-03-30  Jeff Law  <law@redhat.com>
13799
13800         * PR bootstrap/48371
13801         * reload1.c (reload): Fix botch in last change.
13802
13803         * reload.h (struct reload): Fix typo introduced in last change.
13804
13805 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13806
13807         * config/arm/arm.opt (mhard-float, msoft-float): Mark
13808         Undocumented.  Remove help text.
13809         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
13810         -mhard-float.
13811
13812 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13813
13814         * doc/options.texi (NegativeAlias): Document.
13815         (Alias): Mention NegativeAlias.
13816         * opt-functions.awk: Handle NegativeAlias.
13817         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
13818         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
13819         * opts.h (CL_NEGATIVE_ALIAS): Define.
13820         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
13821         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
13822         OPT_mspe_.
13823         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
13824         Alias entries.
13825         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
13826         mno-spe and mno-isel instead of mspe=no and -misel=no.
13827
13828 2011-03-29  Mark Wielaard  <mjw@redhat.com>
13829
13830         * common.opt (fdebug-types-section): New flag.
13831         * doc/invoke.texi: Document new -fno-debug-types-section flag.
13832         * dwarf2out.c (use_debug_types): New define.
13833         (struct die_struct): Mark die_id with GTY desc use_debug_types.
13834         (print_die): Guard output of type unit signatures using
13835         use_debug_types.
13836         (build_abbrev_table): Replace assert of dwarf_version >= 4
13837         with assert on use_debug_types.
13838         (size_of_die): Likewise.
13839         (unmark_dies): Likewise.
13840         (value_format): Decide AT_ref_external form on use_debug_types.
13841         (output_die): Replace dwarf_version version check guard with
13842         use_debug_types where appropriate.
13843         (modified_type_die): Likewise.
13844         (gen_reference_type_die): Likewise.
13845         (dwarf2out_start_source_file): Likewise.
13846         (dwarf2out_end_source_file): Likewise.
13847         (prune_unused_types_walk_attribs): Likewise.
13848         (dwarf2out_finish): Likewise.
13849
13850 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13851
13852         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
13853
13854 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13855
13856         PR rtl-optimization/48332
13857         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
13858         mode of input operand N and modeN to its actual mode.
13859
13860 2011-03-30  Jeff Law  <law@redhat.com>
13861
13862         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
13863         define accessor macro.
13864         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
13865         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
13866         (reg_equiv_init): Likewise.
13867         (reg_equivs_size): New variable.
13868         (reg_equiv_init_size): Remove.
13869         (allocate_initial_values): Move prototype to here from....
13870         * integrate.h (allocate_initial_values): Remove prototype.
13871         * integrate.c: Include reload.h.
13872         (allocate_initial_values): Corresponding changes.
13873         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
13874         (fix_reg_equiv_init, no_equiv): Corresponding changes.
13875         (update_equiv_regs): Corresponding changes.
13876         (ira): Corresponding changes.
13877         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
13878         (push_secondary_reload): Corresponding changes.
13879         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
13880         (make_memloc, find_reloads_address): Corresponding changes.
13881         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
13882         (find_reloads_address_1): Corresponding changes.
13883         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
13884         (refers_to_regno_for_reload_p): Corresponding changes.
13885         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
13886         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
13887         * reload1.c: Include ggc.h.
13888         (grow_reg_equivs): New function.
13889         (replace_pseudos_in, reload): Corresponding changes.
13890         (calculate_needs_all_insns, alter_regs): Corresponding changes.
13891         (eliminate_regs_1, elimination_effects): Corresponding changes.
13892         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
13893         (delete_output_reload): Likewise.
13894         * caller-save.c (mark_referenced_regs): Corresponding changes.
13895         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
13896         * frv/predicates.md (frv_load_operand): Corresponding changes.
13897         * microblaze/microblaze.c (double_memory_operand): Corresponding
13898         changes.
13899         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
13900         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
13901         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
13902         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
13903         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
13904         changes.
13905         * pa/pa.c (emit_move_sequence): Corresponding changes.
13906         * vax/vax.c (nonindexed_address_p): Corresponding changes.
13907
13908 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13909
13910         PR target/47551
13911         * config/arm/arm.c (coproc_secondary_reload_class): Handle
13912         structure modes.  Don't check neon_vector_mem_operand for
13913         vector or structure modes.
13914
13915 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13916             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13917
13918         PR target/43590
13919         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
13920         operand 1 and reshuffle the operands to match.
13921         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
13922
13923 2011-03-30  Christian Schüler  <cschueler@gmx.de>
13924
13925         PR driver/48208
13926         * config/c.opt (F): Added 'Driver' to -F option.
13927
13928         PR driver/48260
13929         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
13930           handler function.
13931         * config/darwin.opt: Added '-arch' option.
13932
13933 2011-03-30  Nick Clifton  <nickc@redhat.com>
13934
13935         * config/rx/rx.md: Add peepholes and patterns to combine
13936         extending loads and simple arithmetic instructions.
13937         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
13938         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
13939         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
13940         modes to use pre-decrement and post-increment addressing.
13941         (rx_is_restricted_memory_address): Add range checking of REG+INT
13942         addresses.
13943         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
13944         (rx_memory_move_cost): Adjust cost of stores.
13945         (rx_adjust_insn_length): New function.
13946
13947 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
13948
13949         PR c/48305
13950         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
13951         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
13952         matching arg00/arg01 types.
13953
13954 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
13955
13956         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
13957         last_location to UNKNOWN_LOCATION.
13958
13959 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
13960
13961         PR target/48349
13962         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
13963         FLOAT_SSE_REGS.
13964
13965 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13966             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13967
13968         PR bootstrap/48337
13969         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
13970         Init(PROCESSOR_V7).
13971         (sparc_cpu): Likewise.
13972         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
13973         PROCESSOR_V7.
13974
13975 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13976
13977         PR target/48336
13978         PR middle-end/48342
13979         PR rtl-optimization/48345
13980         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
13981         hard regs for given mode from profitable regs when doing secondary
13982         allocation.
13983
13984 2011-03-29  Jeff Law  <law@redhat.com>
13985
13986         PR bootstrap/48327
13987         * tree-ssa-threadupdate.c (struct redirection_data): Remove
13988         do_not_duplicate field.
13989         (lookup_redirection_data): Corresponding changes.
13990         (create_duplicates): Always create a template block.
13991         (redirect_edges): Remove code which reused the original block
13992         when it was going to become unreachable code.
13993         (thread_block): Don't set do_not_duplicate field.
13994
13995 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
13996
13997         * lto-opts.c (register_user_option_p, lto_register_user_option):
13998         Make type argument unsigned.
13999         * lto-streamer.h (lto_register_user_option): Make type argument
14000         unsigned.
14001         * opth-gen.awk: Make CL_* macros unsigned.
14002         * opts-common.c (find_opt): Make lang_mask argument unsigned.
14003         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
14004         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
14005         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
14006         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
14007         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
14008         (find_opt): Make lang_mask argument unsigned.
14009
14010 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
14011
14012         PR rtl-optimization/48331
14013         PR rtl-optimization/48334
14014         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
14015         for any used algorithm.
14016
14017 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
14018
14019         * ira-conflicts.c (build_object_conflicts): Add unused attribute
14020         to parent_max.
14021
14022 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
14023
14024         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
14025         (alpha_option_override): Don't set alpha_sr_alias_set.
14026         (emit_frame_store_1): Use gen_frame_mem rather than calling
14027         set_mem_alias_set.
14028         (alpha_expand_epilogue): Ditto.
14029
14030 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
14031
14032         PR tree-optimization/48290
14033         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
14034         vectorization, check that relevant phis in the basic block after
14035         the inner loop are really inner loop's exit phis.
14036
14037 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
14038
14039         PR debug/48190
14040         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
14041         (cached_dw_loc_list_def): New structure.
14042         (cached_dw_loc_list): New typedef.
14043         (cached_dw_loc_list_table): New variable.
14044         (cached_dw_loc_list_table_hash): New function.
14045         (cached_dw_loc_list_table_eq): Likewise.
14046         (add_location_or_const_value_attribute): Take a bool cache_p.
14047         Cache the list when the parameter is true.
14048         (gen_formal_parameter_die): Update caller.
14049         (gen_variable_die): Likewise.
14050         (dwarf2out_finish): Likewise.
14051         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
14052         while generating debug info for the decl.
14053         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
14054         (dwarf2out_init): Initialize cached_dw_loc_list_table.
14055         (resolve_addr): Cache the result of resolving a chain of
14056         location lists.
14057
14058 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
14059
14060         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
14061         conflict object hard regset nodes have intersecting hard reg sets.
14062
14063         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
14064         after regstat_init_n_sets_and_refs.
14065
14066         * ira.c: Add more comments at the top.
14067         (setup_stack_reg_pressure_class, setup_pressure_classes):
14068         Add comments how we compute the register pressure classes.
14069         (setup_allocno_and_important_classes): Add more comments.
14070         (setup_class_translate_array, reorder_important_classes)
14071         (setup_reg_class_relations): Add comments.
14072
14073         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
14074         start of the file.
14075
14076         * ira-color.c: Add 2011 to the Copyright line.
14077         (assign_hard_reg):  Add more comments.
14078         (improve_allocation): Ditto.
14079
14080         * ira-costs.c: Add 2011 to the Copyright line.
14081         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
14082         comments.
14083         (setup_regno_cost_classes_by_mode): Ditto.
14084
14085         Initial patches from ira-improv branch:
14086
14087         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
14088
14089         * ira-build.c (ira_create_object): Remove initialization of
14090         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
14091         (ira_create_allocno): Remove initialization of
14092         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
14093         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
14094         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
14095         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
14096         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
14097         Initialize ALLOCNO_ADD_DATA.
14098         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
14099         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
14100         ALLOCNO_REG.
14101         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
14102         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
14103
14104         * ira.c (ira_reallocate): Remove.
14105         (setup_pressure_classes): Call
14106         ira_init_register_move_cost_if_necessary.  Use
14107         ira_register_move_cost instead of ira_get_register_move_cost.
14108         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
14109         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
14110
14111         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
14112         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
14113         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
14114         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
14115         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
14116         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
14117         Fix formatting.
14118         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
14119         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
14120         (struct allocno_color_data): New.
14121         (allocno_color_data_t): New typedef.
14122         (allocno_color_data): New definition.
14123         (ALLOCNO_COLOR_DATA): New macro.
14124         (struct object_color_data): New.
14125         (object_color_data_t): New typedef.
14126         (object_color_data): New definition.
14127         (OBJECT_COLOR_DATA): New macro.
14128         (update_copy_costs, calculate_allocno_spill_cost): Call
14129         ira_init_register_move_cost_if_necessary.  Use
14130         ira_register_move_cost instead of ira_get_register_move_cost.
14131         (move_spill_restore, update_curr_costs): Ditto.
14132         (allocno_spill_priority): Make it inline.
14133         (color_pass): Allocate and free allocno_color_dat and object_color_data.
14134         (struct coalesce_data, coalesce_data_t): New.
14135         (allocno_coalesce_data): New definition.
14136         (ALLOCNO_COALESCE_DATA): New macro.
14137         (merge_allocnos, coalesced_allocno_conflict_p): Use
14138         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
14139         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
14140         (coalesce_allocnos): Ditto.
14141         (setup_coalesced_allocno_costs_and_nums): Ditto.
14142         (collect_spilled_coalesced_allocnos): Ditto.
14143         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
14144         (setup_slot_coalesced_allocno_live_ranges): Ditto.
14145         (coalesce_spill_slots): Ditto.
14146         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
14147         free allocno_coalesce_data.
14148
14149         * ira-conflicts.c: Fix formatting.
14150         (process_regs_for_copy): Call
14151         ira_init_register_move_cost_if_necessary.  Use
14152         ira_register_move_cost instead of ira_get_register_move_cost.
14153         (build_object_conflicts): Optimize.
14154
14155         * ira-costs.c (record_reg_classes): Optimize.  Call
14156         ira_init_register_move_cost_if_necessary.  Use
14157         ira_register_move_cost, ira_may_move_in_cost, and
14158         ira_may_move_out_cost instead of ira_get_register_move_cost and
14159         ira_get_may_move_cost.
14160         (record_address_regs): Ditto.
14161         (scan_one_insn): Optimize.
14162         (find_costs_and_classes): Optimize.
14163         (process_bb_node_for_hard_reg_moves): Call
14164         ira_init_register_move_cost_if_necessary.  Use
14165         ira_register_move_cost instead of ira_get_register_move_cost.
14166
14167         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
14168         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
14169         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
14170         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
14171         definitions.
14172         (ira_initiate_emit_data, ira_finish_emit_data)
14173         (create_new_allocno): New functions.
14174         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
14175         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
14176         Use ira_register_move_cost instead of ira_get_register_move_cost.
14177
14178         * ira-int.h: Fix some comments.
14179         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
14180         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
14181         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
14182         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
14183         add_data.
14184         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
14185         bitfield after mode.  Make hard_regno a short int.  Make
14186         hard_regno short.  Remove first_coalesced_allocno and
14187         next_coalesced_allocno.  Move mem_optimized_dest_p,
14188         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
14189         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
14190         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
14191         temp, colorable_p.  Add new member add_data.
14192         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
14193         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
14194         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
14195         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
14196         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
14197         (ALLOCNO_ADD_DATA): New macro.
14198         (ira_emit_data_t): New typedef.
14199         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
14200         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
14201         from struct ira_allocno.
14202         (ALLOCNO_EMIT_DATA): New macro.
14203         (ira_allocno_emit_data, allocno_emit_reg): New.
14204         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
14205         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
14206         (OBJECT_ADD_DATA): New macro.
14207         (ira_reallocate): Remove.
14208         (ira_initiate_emit_data, ira_finish_emit_data): New.
14209         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
14210         (ira_init_register_move_cost_if_necessary): New.
14211         (ira_object_conflict_iter_next): Merge into
14212         ira_object_conflict_iter_cond.
14213         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
14214
14215         * ira-live.c (process_single_reg_class_operands): Call
14216         ira_init_register_move_cost_if_necessary.  Use
14217         ira_register_move_cost instead of ira_get_register_move_cost.
14218
14219         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
14220
14221         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
14222
14223         * ira-costs.c: Fix formatting.
14224         (cost_classes, cost_classes_num): Remove.
14225         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
14226         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
14227         (cost_classes_del, cost_classes_htab): New.
14228         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
14229         (initiate_regno_cost_classes, setup_cost_classes): New.
14230         (setup_regno_cost_classes_by_aclass): New.
14231         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
14232         (record_reg_classes): Use regno_cost_classes instead of
14233         cost_classes.  Move checking opposite operand up.
14234         (record_address_regs): Use regno_cost_classes
14235         instead of cost_classes.
14236         (scan_one_insn): Ditto.  Use always general register.
14237         (print_allocno_costs): Use regno_cost_classes instead of
14238         cost_classes.
14239         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
14240         (find_costs_and_classes): Set up cost classes for each registers.
14241         Use also their mode for this.  Use regno_cost_classes instead of
14242         cost_classes.
14243         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
14244         cost_classes.
14245         (free_ira_costs, ira_init_costs): Don't use cost_classes.
14246         (ira_costs, ira_set_pseudo_classes): Call
14247         initiate_regno_cost_classes and finish_regno_cost_classes.
14248
14249         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
14250
14251         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
14252
14253         * target.def (ira_cover_classes): Remove.
14254
14255         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
14256
14257         * doc/tm.texi.in: Ditto.
14258
14259         * ira-conflicts.c: Remove mentioning cover classes from the file.
14260         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
14261         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
14262
14263         * targhooks.c (default_ira_cover_classes): Remove.
14264
14265         * targhooks.h (default_ira_cover_classes): Ditto.
14266
14267         * haifa-sched.c: Remove mentioning cover classes from the file.
14268         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
14269         ira_pressure_classes and ira_pressure_classes_num instead of
14270         ira_reg_class_cover_size and ira_reg_class_cover.  Use
14271         sched_regno_pressure_class instead of sched_regno_cover_class.
14272         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
14273         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14274
14275         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
14276         classes from the file.
14277         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
14278         (struct object_hard_regs, struct object_hard_regs_node): New.
14279         (struct ira_object): New members profitable_hard_regs,
14280         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
14281         (struct ira_allocno): Rename cover_class to aclass.  Rename
14282         cover_class_cost and updated_cover_class_cost to class_cost and
14283         updated_class_cost.  Remove splay_removed_p and
14284         left_conflict_size.  Add new members colorable_p.
14285         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
14286         (ALLOCNO_COLORABLE_P): New macro.
14287         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
14288         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
14289         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
14290         (OBJECT_...): Rename parameter C to O.
14291         (OBJECT_PROFITABLE_HARD_REGS): New macro.
14292         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
14293         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
14294         (struct target_ira_int): New members x_ira_max_memory_move_cost,
14295         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
14296         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
14297         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
14298         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
14299         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
14300         x_ira_reg_class_subunion.
14301         (ira_max_memory_move_cost, ira_max_register_move_cost)
14302         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
14303         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
14304         (ira_important_class_nums, ira_reg_class_superunion): New macros.
14305         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
14306         (ira_reg_class_union): Rename to ira_reg_class_subunion.
14307         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
14308         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
14309         (ira_tune_allocno_costs_and_cover_classes): Rename to
14310         ira_tune_allocno_costs.
14311         (ira_debug_hard_regs_forest): New.
14312         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
14313         (ira_object_conflict_iter_next): Fix comments.
14314         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
14315         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
14316         cover_class to aclass.
14317         (ira_allocate_and_accumulate_costs): Ditto.
14318         (ira_allocate_and_set_or_copy_costs): Ditto.
14319
14320         * opts.c (decode_options): Remove ira_cover_class check.
14321
14322         * ira-color.c: Remove mentioning cover classes from the file.  Use
14323         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
14324         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
14325         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
14326         (splay-tree.h): Remove include.
14327         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
14328         before copy_freq_compare_func.
14329         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
14330         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
14331         New definitions.
14332         (hard_regs_roots, hard_regs_node_vec): Ditto.
14333         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
14334         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
14335         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
14336         (create_new_object_hard_regs_node): Ditto.
14337         (add_new_object_hard_regs_node_to_forest): Ditto.
14338         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
14339         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
14340         Ditto.
14341         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
14342         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
14343         (remove_unused_object_hard_regs_nodes): Ditto.
14344         (enumerate_object_hard_regs_nodes): Ditto.
14345         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
14346         (object_hard_regs_subnode_t): Ditto.
14347         (struct object_hard_regs_subnode): Ditto.
14348         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
14349         (setup_object_hard_regs_subnode_index): Ditto.
14350         (get_object_hard_regs_subnodes_num): Ditto.
14351         (form_object_hard_regs_nodes_forest): Ditto.
14352         (finish_object_hard_regs_nodes_tree): Ditto.
14353         (finish_object_hard_regs_nodes_forest): Ditto.
14354         (allocnos_have_intersected_live_ranges_p): Rename to
14355         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
14356         (pseudos_have_intersected_live_ranges_p): Rename to
14357         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
14358         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
14359         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
14360         (update_copy_costs): Remove assert.  Skip cost update if the hard
14361         reg does not belong the class.
14362         (assign_hard_reg): Process only profitable hard regs.
14363         (uncolorable_allocnos_num): Make it scalar.
14364         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
14365         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
14366         and ira_reg_class_max_nregs.
14367         (bucket_allocno_compare_func): Check frequency first.
14368         (sort_bucket): Add compare function as a parameter.
14369         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
14370         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
14371         (push_allocno_to_stack): Rewrite for checking new allocno
14372         colorability.
14373         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
14374         (push_only_colorable): Pass new parameter to sort_bucket.
14375         (push_allocno_to_spill): Remove.
14376         (allocno_spill_priority_compare): Make it inline and rewrite.
14377         (splay_tree_allocate, splay_tree_free): Remove.
14378         (allocno_spill_sort_compare): New function.
14379         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
14380         build and use splay tree.  Choose first allocno in uncolorable
14381         allocno bucket to spill.  Remove setting spill cost.
14382         (all_conflicting_hard_regs): Remove.
14383         (setup_allocno_available_regs_num): Check only profitable hard
14384         regs.  Print info about hard regs nodes.
14385         (setup_allocno_left_conflicts_size): Remove.
14386         (put_allocno_into_bucket): Don't call
14387         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
14388         (improve_allocation): New.
14389         (color_allocnos): Call setup_profitable_hard_regs,
14390         form_object_hard_regs_nodes_forest, improve_allocation,
14391         finish_object_hard_regs_nodes_forest.  Setup spill cost.
14392         (print_loop_title): Use pressure classes.
14393         (color_allocnso): Ditto.
14394         (do_coloring): Remove allocation and freeing splay_tree_node_pool
14395         and allocnos_for_spilling.
14396         (ira_sort_regnos_for_alter_reg): Don't setup members
14397         {first,next}_coalesced_allocno.
14398         (color): Remove allocating and freeing removed_splay_allocno_vec.
14399         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
14400         prohibited_class_mode_regs.
14401
14402         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
14403         formatting.
14404         (update_allocno_pressure_excess_length): Use pressure classes.
14405         (inc_register_pressure, dec_register_pressure): Check for pressure
14406         class.
14407         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
14408         pressure class.  Use ira_reg_class_nregs instead of
14409         ira_reg_class_max_nregs.
14410         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
14411         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
14412         (single_reg_class): Use ira_reg_class_nregs instead of
14413         ira_reg_class_max_nregs.
14414         (process_bb_node_lives): Use pressure classes.
14415
14416         * ira-emit.c: Remove mentioning cover classes from the file.  Use
14417         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
14418         (change_loop): Use pressure classes.
14419         (modify_move_list): Call ira_set_allocno_class instead of
14420         ira_set_allocno_cover_class.
14421
14422         * ira-build.c: Remove mentioning cover classes from the file.  Use
14423         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
14424         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
14425         ALLOCNO_UPDATED_CLASS_COST instead of
14426         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
14427         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
14428         (ira_create_allocno): Remove initialization of
14429         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
14430         ALLOCNO_COLORABLE_P.
14431         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
14432         Update conflict regs for the objects.
14433         (create_cap_allocno): Remove assert.  Don't propagate
14434         ALLOCNO_AVAILABLE_REGS_NUM.
14435         (ira_free_allocno_costs): New function.
14436         (finish_allocno): Change a part of code into call of
14437         ira_free_allocno_costs.
14438         (low_pressure_loop_node_p): Use pressure classes.
14439         (object_range_compare_func): Don't compare classes.
14440         (setup_min_max_conflict_allocno_ids): Ditto.
14441
14442         * loop-invariant.c: Remove mentioning cover classes from the file.
14443         Use ira_pressure_classes and ira_pressure_classes_num instead of
14444         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
14445         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
14446         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14447         Use reg_allocno_class instead of reg_cover_class.
14448         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
14449         STACK_REG_COVER_CLASS.
14450         (get_regno_cover_class): Rename to get_regno_pressure_class.
14451         (move_loop_invariants): Initialize and finalize regstat.
14452
14453         * ira.c: Remove mentioning cover classes from the file.  Add
14454         comments about coloring without cover classes.  Use ALLOCNO_CLASS
14455         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
14456         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
14457         setup_class_subset_and_memory_move_costs.
14458         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
14459         (setup_cover_and_important_classes): Rename to
14460         setup_allocno_and_important_classes.
14461         (setup_class_translate_array): New.
14462         (setup_class_translate): Call it for allocno and pressure classes.
14463         (cover_class_order): Rename to allocno_class_order.
14464         (comp_reg_classes_func): Use ira_allocno_class_translate instead
14465         of ira_class_translate.
14466         (reorder_important_classes): Set up ira_important_class_nums.
14467         (setup_reg_class_relations): Set up ira_reg_class_superunion.
14468         (print_class_cover): Rename to print_classes.  Add parameter.
14469         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
14470         Print pressure classes too.
14471         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
14472         setup_reg_subclasses.
14473         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
14474         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
14475         (setup_prohibited_class_mode_regs): Use
14476         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
14477         (clarify_prohibited_class_mode_regs): New function.
14478         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
14479         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
14480         (ira_init_once): Initialize them.
14481         (free_register_move_costs): Process them.
14482         (ira_init): Move calls of find_reg_classes and
14483         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
14484         Call clarify_prohibited_class_mode_regs.
14485         (ira_no_alloc_reg): Remove.
14486         (too_high_register_pressure_p): Use pressure classes.
14487
14488         * sched-deps.c: Remove mentioning cover classes from the file.
14489         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
14490         ira_pressure_classes and ira_pressure_classes_num instead of
14491         ira_reg_class_cover_size and ira_reg_class_cover.
14492         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
14493         sched_regno_pressure_class instead of sched_regno_cover_class.
14494         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
14495         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14496
14497         * ira.h: Add 2010 to Copyright.
14498         (ira_no_alloc_reg): Remove external.
14499         (struct target_ira): Rename x_ira_hard_regno_cover_class,
14500         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
14501         x_ira_class_translate to x_ira_hard_regno_allocno_class,
14502         x_ira_allocno_classes_num, x_ira_allocno_classes, and
14503         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
14504         x_ira_pressure_classes, x_ira_pressure_class_translate, and
14505         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
14506         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
14507         x_ira_no_alloc_regs.
14508         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
14509         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
14510         ira_allocno_classes_num and ira_allocno_classes.
14511         (ira_class_translate): Rename to ira_allocno_class_translate.
14512         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
14513         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
14514         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
14515         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
14516         (ira_no_alloc_regs): New.
14517
14518         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
14519         classes from the file.  Use ALLOCNO_CLASS instead of
14520         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
14521         ALLOCNO_COVER_CLASS_COST.
14522         (regno_cover_class): Rename to regno_aclass.
14523         (record_reg_classes): Use ira_reg_class_subunion instead of
14524         ira_reg_class_union.
14525         (record_address_regs): Check overflow.
14526         (scan_one_insn): Ditto.
14527         (print_allocno_costs): Print total mem cost fore regional allocation.
14528         (print_pseudo_costs): Use REG_N_REFS.
14529         (find_costs_and_classes): Use classes intersected with them on the
14530         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
14531         ira_reg_class_union.  Use ira_allocno_class_translate and
14532         regno_aclass instead of ira_class_translate and regno_cover_class.
14533         Modify code for finding regno_aclass.  Setup preferred classes for
14534         the next pass.
14535         (setup_allocno_cover_class_and_costs): Rename to
14536         setup_allocno_class_and_costs.  Use regno_aclass instead of
14537         regno_cover_class.  Use ira_set_allocno_class instead of
14538         ira_set_allocno_cover_class.
14539         (init_costs, finish_costs): Use regno_aclass instead of
14540         regno_cover_class.
14541         (ira_costs): Use setup_allocno_class_and_costs instead of
14542         setup_allocno_cover_class_and_costs.
14543         (ira_tune_allocno_costs_and_cover_classes): Rename to
14544         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
14545         by processing objects.  Use ira_reg_class_max_nregs instead of
14546         ira_reg_class_nregs.
14547
14548         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
14549
14550         * sched-int.h: Remove mentioning cover classes from the file.
14551         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
14552
14553         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
14554         classes from the file.
14555         (struct reg_pref): Rename coverclass into allocnoclass.
14556         (reg_cover_class): Rename to reg_allocno_class.
14557
14558         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
14559
14560         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
14561
14562         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
14563
14564         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
14565
14566         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
14567
14568         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
14569
14570         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
14571
14572         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
14573
14574         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
14575
14576         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
14577
14578         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
14579         (i386_ira_cover_classes): Ditto.
14580
14581         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
14582
14583         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
14584
14585         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
14586
14587         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
14588
14589         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
14590
14591         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
14592
14593         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
14594         (mips_ira_cover_classes): Ditto.
14595
14596         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
14597
14598         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
14599
14600         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
14601
14602         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
14603
14604         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
14605
14606         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
14607         (IRA_COVER_CLASSES_VSX): Ditto.
14608
14609         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
14610         (rs6000_ira_cover_classes): Ditto.
14611
14612         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
14613
14614         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
14615
14616         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
14617
14618         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
14619
14620         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
14621
14622         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
14623
14624         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
14625
14626         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
14627
14628         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
14629
14630         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
14631
14632 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
14633
14634         PR debug/48253
14635         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
14636         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
14637         dw_fde_unlikely_section_end_label, cold_in_std_section,
14638         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
14639         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
14640         fields.
14641         (output_fde): Use dw_fde_second_{begin,end} if second is
14642         true, otherwise dw_fde_{begin,end}.
14643         (output_call_frame_info): Test dw_fde_second_begin != NULL
14644         instead of dw_fde_switched_sections.
14645         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
14646         fields, initialize new fields.  Initialize in_std_section
14647         unconditionally from the first partition.
14648         (dwarf2out_end_epilogue): Don't override dw_fde_end when
14649         dw_fde_second_begin is non-NULL.
14650         (dwarf2out_switch_text_section): Stop initializing removed
14651         dw_fde_struct fields, initialize new fields, initialize
14652         also dw_fde_end here.  Set dw_fde_switch_cfi even when
14653         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
14654         (struct var_loc_list_def): Add last_before_switch field.
14655         (arange_table, arange_table_allocated, arange_table_in_use,
14656         ARANGE_TABLE_INCREMENT, add_arange): Removed.
14657         (size_of_aranges): Count !in_std_section and !second_in_std_section
14658         hunks in fdes, instead of looking at arange_table_in_use.
14659         (output_aranges): Add aranges_length argument, don't call
14660         size_of_aranges here.  Instead of using aranges_table*
14661         emit ranges for fdes when !in_std_section resp.
14662         !second_in_std_section.
14663         (dw_loc_list): Break ranges crossing section switch.
14664         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
14665         use dw_fde_second_end instead of dw_fde_end as end of last range.
14666         (gen_subprogram_die): Don't call add_arange.  Use
14667         dw_fde_{begin,end} for first partition and if switched
14668         section dw_fde_second_{begin,end} for the second.
14669         (var_location_switch_text_section_1,
14670         var_location_switch_text_section): New functions.
14671         (dwarf2out_begin_function): Initialize cold_text_section even
14672         when function_section () isn't text_section.
14673         (prune_unused_types): Don't walk arange_table.
14674         (dwarf2out_finish): Don't needlessly test
14675         flag_reorder_blocks_and_partition when testing cold_text_section_used.
14676         If info_section_emitted, call size_of_aranges and if it indicates
14677         non-empty .debug_aranges, call output_aranges with the computed
14678         size.  Stop using removed dw_fde_struct fields, use
14679         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
14680         for second.
14681
14682         PR debug/48203
14683         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
14684         create ENTRY_VALUE if incoming or address of incoming's MEM
14685         is a hard REG.
14686         * dwarf2out.c (mem_loc_descriptor): Don't emit
14687         DW_OP_GNU_entry_value of DW_OP_fbreg.
14688         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
14689         on ENTRY_VALUE is able to find the canonical parameter VALUE.
14690         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
14691         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
14692         ENTRY_VALUE_EXPs.
14693         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
14694         is a REG_P or MEM_P with REG_P address, compute hash directly
14695         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
14696         (preserve_only_constants): Don't clear VALUES forwaring
14697         ENTRY_VALUE to some other VALUE.
14698
14699 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
14700
14701         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
14702         instead of GEN_INT.
14703
14704 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
14705
14706         * cfgexpand.c (expand_gimple_cond): Always set the source location and
14707         block before expanding the statement.
14708         (expand_gimple_stmt_1): Likewise.  Set them here...
14709         (expand_gimple_stmt): ...and not here.  Tidy.
14710         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
14711         unknown.
14712
14713 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
14714
14715         * Makefile.in: New rule for cprop.o.
14716         * gcse.c: Move constant/copy propagation to cprop.c.
14717         (compute_local_properties): Only handle expression tables.
14718         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
14719         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
14720         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
14721         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
14722         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
14723         compute_cprop_data, find_used_regs, try_replace_reg,
14724         find_avail_set, cprop_jump, constprop_register, cprop_insn,
14725         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
14726         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
14727         find_bypass_set, reg_killed_on_edge, bypass_block,
14728         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
14729         execute_rtl_cprop, pass_rtl_cprop): Move to...
14730         * cprop.c: ...here.  New file, constant/copy propagation for RTL
14731         moved from gcse.c to here with minor cleanups in duplicated code.
14732
14733 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
14734
14735         * config/i386/i386.c (flag_opts): Fix a typo in
14736         -mavx256-split-unaligned-store.
14737
14738 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
14739
14740         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
14741         LIBCALL_VALUE): Remove macros.
14742         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14743         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14744         (h8300_function_value, h8300_libcall_value,
14745         h8300_function_value_regno_p): New functions.
14746
14747 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
14748
14749         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
14750
14751 2011-03-28  Jeff Law  <law@redhat.com>
14752
14753         * tree-ssa-threadupdate.c (redirect_edges): Call
14754         create_edge_and_update_destination_phis as needed.
14755         (create_edge_and_update_destination_phis): Accept new BB argument.
14756         All callers updated.
14757         (thread_block): Do not update the profile when threading around
14758         intermediate blocks.
14759         (thread_single_edge): Likewise.
14760         (determine_bb_domination_status): If BB is not a successor of the
14761         loop header, return NONDOMINATING.
14762         (register_jump_thread): Note when we register a jump thread around
14763         an intermediate block.
14764         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
14765         (thread_across_edge): Use it.
14766
14767 2011-03-28  Tristan Gingold  <gingold@adacore.com>
14768
14769         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
14770         when for_return is 2.
14771
14772 2011-03-28  Jeff Law  <law@redhat.com>
14773
14774         * var-tracking.c (canonicalize_values_mark): Delete unused
14775         lhs assignment.
14776         (canonicalize_values_star, set_variable_part): Likewise.
14777         (clobber_variable_part, delete_variable_part): Likewise.
14778
14779 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
14780
14781         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
14782
14783 2011-03-28  Martin Jambor  <mjambor@suse.cz>
14784
14785         * tree-inline.c (expand_call_inline): Do not check that destination
14786         node is analyzed.
14787         (optimize_inline_calls): Assert that destination node is analyzed.
14788         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
14789         not call tree_lowering_passes.
14790         * cgraph.h (cgraph_analyze_function): Declare.
14791         * cgraphunit.c (cgraph_analyze_function): Make public.
14792
14793 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
14794
14795         * config/sparc/sparc-opts.h: New.
14796         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
14797         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
14798         (sparc_option_override): Store processor_type enumeration rather
14799         than string in cpu_default.  Remove name and enumeration from
14800         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
14801         without using sparc_select.  Use target_flags_explicit instead of
14802         fpu_option_set.
14803         * config/sparc/sparc.h (enum processor_type): Move to
14804         sparc-opts.h.
14805         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
14806         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
14807         HeaderInclude entry.
14808         (mcpu=, mtune=): Use Var and Enum.
14809         (sparc_processor_type): New Enum and EnumValue entries.
14810
14811 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14812             Iain Sandoe  <iains@gcc.gnu.org>
14813
14814         PR target/48245
14815         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
14816
14817 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
14818
14819         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
14820         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
14821         Insert new statements at it in lieu of STMT.
14822         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
14823         * tree-vect-stmts.c (vectorizable_store): Likewise.
14824         (vectorizable_load): Likewise.
14825
14826 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
14827
14828         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
14829         (divtf3): Ditto.
14830         (multf3): Ditto.
14831         (subtf3): Ditto.
14832
14833 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14834
14835         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
14836         unaligned 256bit load/store.
14837         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
14838         (*avx_movdqu<avxmodesuffix>): Likewise.
14839
14840 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14841
14842         PR target/48288
14843         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
14844         * config/pa/pa.md (iordi3): Use new predicate in expander.
14845         (iorsi3): Likewise.
14846
14847 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
14848
14849         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
14850         FUNCTION_VALUE_REGNO_P): Remove macros.
14851         * config/mips/mips-protos.h (mips_function_value): Remove.
14852         * config/mips/mips.c (mips_function_value): Rename to...
14853         (mips_function_value_1): ... this. Make static.  Handle receiving
14854         the function type in 'fn_decl_or_type' argument.
14855         (mips_function_value, mips_libcall_value,
14856         mips_function_value_regno_p): New function.
14857         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14858         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14859
14860 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14861
14862         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
14863         and -mavx256-split-unaligned-store.
14864         (ix86_option_override_internal): Split 32-byte AVX unaligned
14865         load/store by default.
14866         (ix86_avx256_split_vector_move_misalign): New.
14867         (ix86_expand_vector_move_misalign): Use it.
14868
14869         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
14870         -mavx256-split-unaligned-store.
14871
14872         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
14873         256bit load/store.  Generate unaligned store on misaligned memory
14874         operand.
14875         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
14876         256bit load/store.
14877         (*avx_movdqu<avxmodesuffix>): Likewise.
14878
14879         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
14880         -mavx256-split-unaligned-store.
14881
14882 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
14883
14884         PR target/38598
14885         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
14886         Update commentary.
14887
14888 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
14889
14890         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
14891         opno arguments with an expand_operand.  Use create_input_operand.
14892         (mips_prepare_builtin_target): Delete.
14893         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
14894         functions.
14895         (mips_expand_builtin_direct): Use create_output_operand and
14896         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
14897         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
14898         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
14899
14900 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
14901
14902         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
14903         function.
14904         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
14905
14906 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
14907
14908         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
14909         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
14910         basic blocks and call commit_edge_insertions directly.
14911         (fixup_abnormal_edges): Move from here to...
14912         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
14913         on the edges and return whether some have actually been inserted.
14914         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
14915         compensation code.
14916
14917 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
14918
14919         PR rtl-optimization/48144
14920         * sel-sched-ir.c (merge_history_vect): Factor out from ...
14921         (merge_expr_data): ... here.
14922         (av_set_intersect): Rename to av_set_code_motion_filter.
14923         Update all callers.  Call merge_history_vect when an expression
14924         is found in both sets.
14925         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
14926
14927 2011-03-26  Alan Modra  <amodra@gmail.com>
14928
14929         * config/rs6000/predicates.md (word_offset_memref_op): Handle
14930         cmodel medium addresses.
14931         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
14932         64-bit gpr loads and stores.
14933         (rs6000_secondary_reload_ppc64): New function.
14934         * config/rs6000/rs6000-protos.h: Declare it.
14935         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
14936
14937 2011-03-26  Alan Modra  <amodra@gmail.com>
14938
14939         PR target/47487
14940         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
14941         GNU Go in traceback table.
14942
14943 2011-03-25  Richard Henderson  <rth@redhat.com>
14944
14945         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
14946         if there are exactly 6 operands.
14947         (set_storage_via_setmem): Similarly.
14948
14949 2011-03-25  Kai Tietz  <ktietz@redhat.com>
14950
14951         * collect2.c (write_c_file_stat): Handle backslash
14952         as right-hand directory separator.
14953         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
14954         checking just for slash.
14955         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
14956         instead of checking for trailing slash.
14957         * gcc.c (record_temp_file): Use filename_cmp instead
14958         of strcmp.
14959         (do_spec_1): Likewise.
14960         (replace_outfile_spec_function): Likewise.
14961         (is_directory): Use filename_ncmp instead of strncmp.
14962         (print_multilib_info): Likewise.
14963         * gcov.c (find_source): Use filename_cmp instead
14964         instead of strcmp.
14965         (make_gcov_file_name): Fix order of slash/backslash
14966         checks.
14967         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
14968         (add_standard_paths): Likewise.
14969         * mips-tfile.c (saber_stop): Handle backslash.
14970         * prefix.c (update_path): Use filename_ncmp instead of
14971         strncmp.
14972         * profile.c (output_location): Use filename_cmp instead
14973         of strcmp.
14974         * read-md.c (handle_toplevel_file): Handle backslash.
14975         * tlink.c (frob_extension):  Likewise.
14976         * tree-cfg.c (same_line_p): Use filename_cmp instead of
14977         strcmp.
14978         * tree-dump.c (dequeue_and_dump): Handle backslash.
14979         * tree.c (get_file_function_name): Likewise.
14980         * gengtype.c (read_input_list): Likewise.
14981         (get_file_realbasename): Likewise.
14982         (get_output_file_with_visibility): Use filename_cmp
14983         instead of strcmp.
14984
14985 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
14986
14987         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
14988         case to VFPv1.
14989
14990 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
14991
14992         * fold-const.c (expr_location_or): New function.
14993         (fold_truth_not_expr): Call it.
14994
14995 2011-03-25  Jeff Law  <law@redhat.com>
14996
14997         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
14998         va_end.
14999         * c-family/c-common.c (def_fn_type): Likewise.
15000         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
15001         * emit-rtl.c (gen_rtvec): Likewise.
15002         * lto/lto-lang.c (def_fn_type): Likewise.
15003
15004 2011-03-25  Richard Guenther  <rguenther@suse.de>
15005
15006         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
15007         also generate copies.
15008         (fini_copy_prop): Handle constant values properly.
15009
15010 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
15011
15012         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
15013         mode size instead of bitsize with DWARF2_ADDR_SIZE.
15014         (hash_loc_operands, compare_loc_operands): Handle
15015         DW_OP_GNU_entry_value.
15016
15017 2011-03-25  Kai Tietz  <ktietz@redhat.com>
15018
15019         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
15020         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
15021         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
15022         comment and use macro TARGET_64BIT_MS_ABI instead.
15023         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
15024         and change default behavior for 32-bit MS_ABI.
15025         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
15026         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
15027         32-bit, too.
15028         (ix86_cfun_abi): Likewise.
15029         (ix86_maybe_switch_abi): Adjust comment.
15030         (init_cumulative_args): Check for bit-ness in MS_ABI case.
15031         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
15032         instead of checking for SYSV_ABI.
15033         (ix86_nsaved_sseregs): Likewise.
15034         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
15035         to 16 bytes.
15036         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
15037         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
15038         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
15039         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
15040         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
15041
15042 2011-03-25  Richard Guenther  <rguenther@suse.de>
15043
15044         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
15045         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
15046         (verify_gimple): Remove.
15047         * tree-cfg.c (verify_gimple_call): Merge verification
15048         from verify_stmts.
15049         (verify_gimple_phi): Merge verification from verify_stmts.
15050         (verify_gimple_label): New function.
15051         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
15052         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
15053         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
15054         (verify_stmts): Rename to verify_gimple_in_cfg.
15055         (verify_gimple_in_cfg): New function.
15056         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
15057         * tree-ssa.c (verify_ssa): Likewise.
15058         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
15059
15060 2011-03-25  Richard Guenther  <rguenther@suse.de>
15061
15062         * passes.c (init_optimization_passes): Add FRE pass after
15063         early SRA.
15064
15065 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
15066             Andrew Stubbs  <ams@codesourcery.com>
15067
15068         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
15069         for Cortex-A8.
15070         (arm_movdi_vfp_cortexa8): New pattern.
15071         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
15072         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
15073         instructions when tuning for Cortex-A8.  Set attribute "arch".
15074         * config/arm/arm.md: Move include arm-tune.md up a bit.
15075         (define_attr "arch"): Add "onlya8" and "nota8" values.
15076         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
15077
15078 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
15079
15080         PR bootstrap/48282
15081         Revert:
15082         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15083
15084         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
15085         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
15086         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
15087         * passes.c (init_optimization_passes): Move
15088         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
15089
15090 2011-03-25  Kai Tietz  <ktietz@redhat.com>
15091
15092         * c-typeck.c (comptypes_internal): Replace target
15093         hook call of comp_type_attributes by version in tree.c file.
15094         * gimple.c (gimple_types_compatible_p_1): Likewise.
15095         * tree-ssa.c (useless_type_conversion_p): Likewise.
15096         * tree.c (build_type_attribute_qual_variant): Likewise.
15097         (attribute_value_equal): New static helper function.
15098         (comp_type_attributes): New function.
15099         (merge_attributes): Use attribute_value_equal for comparison.
15100         (attribute_list_contained): Likewise.
15101         * tree.h (comp_type_attributes): New prototype.
15102
15103 2011-03-25  Richard Guenther  <rguenther@suse.de>
15104
15105         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
15106         of complex types at -O0.
15107         (verify_gimple_assign_binary): Likewise.
15108         (verify_gimple_assign_ternary): Likewise.
15109
15110 2011-03-24  Mark Wielaard  <mjw@redhat.com>
15111
15112         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
15113         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
15114
15115 2011-03-24  Mark Wielaard  <mjw@redhat.com>
15116
15117         PR debug/48041
15118         * dwarf2out.c (output_abbrev_section): Only write table when
15119         abbrev_die_table_in_use > 1.
15120
15121 2011-02-24  Richard Henderson  <rth@redhat.com>
15122
15123         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
15124         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
15125         (alpha_expand_unaligned_load_words): Use extql.
15126         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
15127         (emit_insxl): Handle all modes for consistency.
15128
15129 2011-02-24  Richard Henderson  <rth@redhat.com>
15130
15131         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
15132         (alpha_expand_unaligned_load): Likewise.
15133         (alpha_expand_unaligned_store): Likewise.
15134         (alpha_expand_unaligned_load_words): Likewise.
15135         (alpha_expand_unaligned_store_words): Likewise.
15136         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
15137         (alpha_split_lock_test_and_set_12): Likewise.
15138         (print_operand, alpha_fold_builtin_extxx): Likewise.
15139         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
15140         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
15141         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
15142         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
15143         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
15144         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
15145         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
15146         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
15147         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
15148         (extwl, extll, extql): Similarly.
15149         (inswh, inslh, insqh): Similarly.
15150         (mskbl, mskwl, mskll, mskql): Similarly.
15151         (mskwh, msklh, mskqh): Similarly.
15152
15153 2011-02-24  Richard Henderson  <rth@redhat.com>
15154
15155         * config/alpha/alpha.md (attribute isa): Add er, ner.
15156         (attribute enabled): Handle them.
15157         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
15158
15159 2011-02-24  Richard Henderson  <rth@redhat.com>
15160
15161         * config/alpha/alpha.md (attribute isa): Add vms.
15162         (attribute enabled): Handle it.
15163         (*movsf): Merge *movsf_{nofix,fix,nofp}.
15164         (*movdf): Merge *movdf_{nofix,fix,nofp}.
15165         (*movtf): Rename from *movtf_internal for consistency.
15166         (*movsi): Merge with *movsi_nt_vms.
15167         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
15168         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
15169         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
15170         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
15171
15172 2011-02-24  Richard Henderson  <rth@redhat.com>
15173
15174         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
15175         (extendqisi2, extendhisi2): Likewise.
15176         (extendqidi2): Simplify BWX/non-BWX expansions.
15177         (extendhidi2): Similarly.
15178
15179 2011-02-24  Richard Henderson  <rth@redhat.com>
15180
15181         * config/alpha/alpha.md (attribute isa): New.
15182         (attribute enabled): New.
15183         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
15184         (zero_extendqisi2, zero_extendqidi2): Similarly.
15185         (zero_extendhisi2, zero_extendhidi2): Similarly.
15186         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
15187
15188 2011-02-24  Richard Henderson  <rth@redhat.com>
15189
15190         * config/alpha/predicates.md (input_operand): Revert last change;
15191         update comment to mention 32-bit VMS rather than Windows.
15192
15193 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15194
15195         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
15196         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
15197         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
15198         * passes.c (init_optimization_passes): Move
15199         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
15200
15201 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
15202
15203         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
15204
15205 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
15206
15207         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
15208         correctly.
15209
15210 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
15211
15212         PR debug/48204
15213         * simplify-rtx.c (simplify_const_unary_operation): Call
15214         real_convert when changing mode class with FLOAT_EXTEND.
15215
15216 2011-03-24  Nick Clifton  <nickc@redhat.com>
15217
15218         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
15219         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
15220         * config/rx/rx.c (rx_option_override): Set align_jumps,
15221         align_loops and align_labels if not set by the user.
15222         (rx_align_for_label): New function.
15223         (rx_max_skip_for_label): New function.
15224         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
15225         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
15226         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
15227         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
15228         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
15229
15230 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
15231
15232         PR rtl-optimization/48263
15233         * optabs.c (expand_binop_directly): Reinstate convert_modes code
15234         and original commutative_p handling.  Use maybe_gen_insn.
15235
15236 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15237
15238         * reload.c (find_reloads_subreg_address): Add address_reloaded
15239         parameter and return true there if the full address has been
15240         reloaded.
15241         (find_reloads_toplev): Pass address_reloaded flag.
15242         (find_reloads_address_1): Don't use address_reloaded parameter.
15243
15244 2011-03-24  Jeff Law  <law@redhat.com>
15245
15246         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
15247         unused variable "ann".
15248         (remove_unused_locals): Likewise.
15249
15250         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
15251         statement.
15252
15253         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
15254         after it is freed.
15255
15256 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15257
15258         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
15259         for invalid symbolic addresses.
15260         (s390_secondary_reload): Don't use s390_check_symref_alignment for
15261         larl operands.
15262
15263 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
15264
15265         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
15266         the argument in calls to fold_truth_not_expr.
15267
15268 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15269
15270         * tree.c (record_node_allocation_statistics): New function.
15271         (make_node_stat, copy_node_stat, build_string): Call it.
15272         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
15273         (build1_stat, build_omp_clause): Likewise.
15274
15275 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
15276
15277         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
15278         last commit.
15279
15280 2011-03-24  Richard Guenther  <rguenther@suse.de>
15281
15282         PR tree-optimization/48271
15283         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
15284         blocks that still exist.
15285
15286 2011-03-24  Richard Guenther  <rguenther@suse.de>
15287
15288         PR tree-optimization/48270
15289         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
15290         not free datarefs before ddrs.
15291
15292 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
15293
15294         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
15295         from the address built for a reference with variable offset.
15296
15297 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
15298
15299         PR target/48237
15300         * config/i386/i386.md (*movdf_internal_rex64): Do not split
15301         alternatives that can be handled with movq or movabsq insn.
15302         (*movdf_internal): Disable for !TARGET_64BIT.
15303         (*movdf_internal_nointeger): Ditto.
15304         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
15305
15306 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
15307
15308         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
15309         (FUNCTION_ARG_ADVANCE): Likewise.
15310         * tm.texi.in: Change references to them to hook references.
15311         * tm.texi: Regenerate.
15312         * targhooks.c (default_function_arg): Eliminate check for target macro.
15313         (default_function_incoming_arg): Likewise.
15314         (default_function_arg_advance): Likewise.
15315         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
15316         (function_arg_advance): Likewise.
15317         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
15318
15319 2011-03-24  Richard Guenther  <rguenther@suse.de>
15320
15321         PR middle-end/48269
15322         * tree-object-size.c (addr_object_size): Do not double-account
15323         for MEM_REF offsets.
15324
15325 2011-03-24  Diego Novillo  <dnovillo@google.com>
15326
15327         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
15328         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
15329         (lto_input_data_block): Move from lto-opts.c.  Make extern.
15330         Update all users.
15331         (lto_input_string): Rename from input_string.  Make extern.
15332         Update all users.
15333         * lto-streamer-out.c (lto_output_string_with_length): Rename from
15334         output_string_with_length.
15335         Output 0 to indicate a non-NULL string.  Update all callers to
15336         not emit 0.
15337         (lto_output_string): Rename from output_string.  Make extern.
15338         Update all users.
15339         (lto_output_decl_state_streams): Make extern.
15340         (lto_output_decl_state_refs): Make extern.
15341         * lto-streamer.h (lto_input_string): Declare.
15342         (lto_input_data_block): Declare.
15343         (lto_output_string): Declare.
15344         (lto_output_string_with_length): Declare.
15345         (lto_output_decl_state_streams): Declare.
15346         (lto_output_decl_state_refs): Declare.
15347
15348 2011-03-24  Richard Guenther  <rguenther@suse.de>
15349
15350         PR tree-optimization/46562
15351         * tree.c (build_invariant_address): New function.
15352         * tree.h (build_invariant_address): Declare.
15353         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
15354         a renamed function moved ...
15355         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
15356         Take valueization callback parameter.
15357         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
15358         * gimple-fold.h: New file.
15359         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
15360         (ccp_fold, fold_const_aggregate_ref,
15361         fold_ctor_reference, fold_nonarray_ctor_reference,
15362         fold_array_ctor_reference, fold_string_cst_ctor_reference,
15363         get_base_constructor): Move ...
15364         * gimple-fold.c: ... here.
15365         (gimple_fold_stmt_to_constant_1): New function
15366         split out from ccp_fold.  Take a valueization callback parameter.
15367         Valueize all operands.
15368         (gimple_fold_stmt_to_constant): New wrapper function.
15369         (fold_const_aggregate_ref_1): New function split out from
15370         fold_const_aggregate_ref.  Take a valueization callback parameter.
15371         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
15372         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
15373         invariant POINTER_PLUS_EXPRs to invariant form.
15374         (vn_valueize): New function.
15375         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
15376         * tree-vrp.c (vrp_valueize): New function.
15377         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
15378         to fold statements to constants.
15379         * tree-ssa-pre.c (eliminate): Properly guard propagation of
15380         function declarations.
15381         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
15382         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
15383
15384 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
15385
15386         * config/h8300/predicates.md (jump_address_operand): Fix register
15387         mode check.
15388
15389 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
15390
15391         * doc/invoke.texi (max-stores-to-sink): Document.
15392         * params.h (MAX_STORES_TO_SINK): Define.
15393         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
15394         if either vectorization or if-conversion is disabled.
15395         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
15396         tree-vect-data-refs.c vect_equal_offsets.
15397         (dr_equal_offsets_p): New function.
15398         (find_data_references_in_bb): Remove static.
15399         * tree-data-ref.h (find_data_references_in_bb): Declare.
15400         (dr_equal_offsets_p): Likewise.
15401         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
15402         (vect_drs_dependent_in_basic_block): Update calls to
15403         vect_equal_offsets.
15404         (vect_check_interleaving): Likewise.
15405         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
15406         (cond_if_else_store_replacement): Rename to...
15407         (cond_if_else_store_replacement_1): ... this.  Change arguments and
15408         documentation.
15409         (cond_if_else_store_replacement): New function.
15410         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
15411         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
15412
15413 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
15414
15415         PR target/46934
15416         * config/arm/arm.md (casesi): Use the gen_int_mode() function
15417         to subtract lower bound instead of GEN_INT().
15418
15419 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
15420
15421         PR other/48179
15422         PR other/48221
15423         PR other/48234
15424         * doc/extend.texi (Alignment): Move section to match order in TOC.
15425         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
15426         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
15427
15428 2011-03-23  Jeff Law  <law@redhat.com>
15429
15430         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
15431         before removing the edge.
15432
15433         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
15434         it may have been freed by redirect_branch_edge or
15435         redirect_edge_succ_nodup.
15436
15437 2011-03-23  Richard Guenther  <rguenther@suse.de>
15438
15439         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
15440         (check_va_list_escapes): Likewise.
15441         (check_all_va_list_escapes): Likewise.
15442
15443 2011-03-23  Richard Guenther  <rguenther@suse.de>
15444
15445         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
15446         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
15447         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
15448         (alias.o): Likewise.
15449         (ipa-type-escape.o): Remove.
15450         (ipa-struct-reorg.o): Likewise.
15451         (GTFILES): Remove ipa-struct-reorg.c.
15452         * alias.c: Do not include ipa-type-escape.h.
15453         * tree-ssa-alias.c: Likewise.
15454         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
15455         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
15456         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
15457         and ipa-type-escape passes.
15458         * tree-pass.h (pass_ipa_type_escape): Remove.
15459         (pass_ipa_struct_reorg): Likewise.
15460         * ipa-struct-reorg.h: Remove.
15461         * ipa-struct-reorg.c: Likewise.
15462         * ipa-type-escape.h: Likewise.
15463         * ipa-type-escape.c: Likewise.
15464         * doc/invoke.texi (-fipa-struct-reorg): Remove.
15465         (--param struct-reorg-cold-struct-ratio): Likewise.
15466         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
15467         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
15468         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
15469
15470 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15471
15472         * config/s390/2084.md: Enable all insn reservations also for z9_ec
15473         cpu attribute value.
15474         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
15475         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
15476         * config/s390/s390.c (processor_flags_table): New constant array.
15477         (s390_handle_arch_option): Remove.
15478         (s390_handle_option): Remove s390_handle_arch_option invocations
15479         and OPT_mwarn_framesize_ handling.
15480         (s390_option_override): Remove s390_handle_arch_option invocation.
15481         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
15482         warnings.
15483         * config/s390/s390.md (cpu attribute): Add z9_ec value.
15484         * config/s390/s390.opt (s390_tune, s390_arch)
15485         (march=): Replace s390_arch_option enum and values with
15486         processor_type.  Set variable name to s390_arch.  Set
15487         initialization value.
15488         (mtune=): Replace s390_arch_option with processor_type.  Set
15489         variable name to s390_tune.  Set initialization value.
15490
15491 2011-03-23  Julian Brown  <julian@codesourcery.com>
15492
15493         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
15494         accesses which are not naturally aligned.
15495
15496 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
15497
15498         PR target/47553
15499         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
15500
15501 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
15502
15503         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
15504         parameter from "int" to "enum insn_code".
15505         (expand_operand_type): New enum.
15506         (expand_operand): New structure.
15507         (create_expand_operand): New function.
15508         (create_fixed_operand, create_output_operand): Likewise
15509         (create_input_operand, create_convert_operand_to): Likewise.
15510         (create_convert_operand_from, create_address_operand): Likewise.
15511         (create_integer_operand): Likewise.
15512         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
15513         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
15514         (expand_insn, expand_jump_insn): Likewise.
15515         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
15516         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
15517         (expand_movstr, expand_builtin___clear_cache): Likewise.
15518         (expand_builtin_lock_release): Likewise.
15519         * explow.c (allocate_dynamic_stack_space): Likewise.
15520         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
15521         and use the default handling in that case.
15522         * expmed.c (check_predicate_volatile_ok): Delete.
15523         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
15524         (emit_cstore): Likewise.
15525         * expr.c (emit_block_move_via_movmem): Likewise.
15526         (set_storage_via_setmem, expand_assignment): Likewise.
15527         (emit_storent_insn, try_casesi): Likewise.
15528         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
15529         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
15530         (expand_vec_shift_expr, expand_binop_directly): Likewise.
15531         (expand_twoval_unop, expand_twoval_binop): Likewise.
15532         (expand_unop_direct, emit_indirect_jump): Likewise.
15533         (emit_conditional_move, vector_compare_rtx): Likewise.
15534         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
15535         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
15536         (expand_sync_lock_test_and_set): Likewise.
15537         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
15538         (emit_unop_insn): Likewise.
15539         (expand_copysign_absneg): Change icode to an insn_code.
15540         (create_convert_operand_from_type): New function.
15541         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
15542         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
15543         (expand_insn, expand_jump_insn): Likewise.
15544         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
15545         than const_int_operand for operand 2.
15546
15547 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15548
15549         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
15550         if possible.
15551
15552 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15553
15554         * emit-rtl.c (emit_pattern_before_noloc): New function.
15555         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
15556         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
15557         (emit_pattern_after_noloc): New function.
15558         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
15559         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
15560
15561 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15562
15563         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
15564         (__ffsDI2): Likewise.
15565
15566 2011-03-22  Richard Henderson  <rth@redhat.com>
15567
15568         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
15569         of !TARGET_ABI_OPEN_VMS.
15570         (alpha_trampoline_init, alpha_start_function): Likewise.
15571         (alpha_expand_epilogue, alpha_file_start): Likewise.
15572         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
15573         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
15574         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
15575         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
15576         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
15577
15578 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15579
15580         * config/s390/s390-opts.h: New.
15581         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
15582         s390_arch_flags, s390_warn_framesize, s390_stack_size,
15583         s390_stack_guard): Remove.
15584         (s390_handle_arch_option): Return void.  Take enum
15585         s390_arch_option value instead of string and searching array.
15586         (s390_handle_option): Don't assert that global structures are in
15587         use.  Access variables via opts pointer.  Use error_at.  Don't use
15588         sscanf for -mstack-guard= or -mstack-size=.  Update call to
15589         s390_handle_arch_option.
15590         (s390_option_override): Update call to s390_handle_arch_option.
15591         (s390_emit_prologue): Use %d format for s390_stack_size in
15592         diagnostic.  Use %wd for HOST_WIDE_INT.
15593         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
15594         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
15595         * config/s390/s390.opt (config/s390/s390-opts.h): New
15596         HeaderInclude entry.
15597         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
15598         s390_arch_flags, s390_warn_framesize): New Variable entries.
15599         (s390_arch_option): New Enum and EnumValue entries.
15600         (march=): Use Enum instead of Var.
15601         (mstack-guard=, mstack-size=): Use UInteger and Var.
15602         (mtune=): Use Enum.
15603
15604 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15605
15606         * config/score/score.c (score_handle_option): Don't assert that
15607         global structures are in use.  Access target_flags via opts
15608         pointer.  Use value of -march= option to determine target_flags
15609         settings.
15610         * config/score/score.opt (march=): Use Enum.
15611         (score_arch): New Enum and EnumValue entries.
15612
15613 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15614
15615         * config/mep/mep.c (option_mtiny_specified): Remove.
15616         (mep_option_override): Move register handling for -mivc2 from
15617         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
15618         instead of option_mtiny_specified.
15619         (mep_handle_option): Access target_flags via opts pointer.  Don't
15620         assert that global structures are in use.  Defer part of -mivc2
15621         handling and move it to mep_option_override.
15622         * config/mep/mep.opt (IVC2): New Mask entry.
15623         (mivc2): Use Var and Defer instead of Mask.
15624
15625 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15626
15627         * config/v850/v850-opts.h: New.
15628         * config/v850/v850.c (small_memory): Replace with
15629         small_memory_physical_max array.  Make that array static const.
15630         (v850_handle_memory_option): Take integer value of argument.  Take
15631         gcc_options pointer, option text and location.  Return void.
15632         Update for changes to small memory structures.
15633         (v850_handle_option): Access target_flags via opts pointer.  Don't
15634         assert that global structures are in use.  Update calls to
15635         v850_handle_memory_option.
15636         (v850_encode_data_area): Update references to small memory settings.
15637         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
15638         (enum small_memory_type): Move to v850-opts.h.
15639         * config/v850/v850.opt (config/v850/v850-opts.h): New
15640         HeaderInclude entry.
15641         (small_memory_max): New Variable entry.
15642         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
15643         (mtda, mzda): Likewise.
15644
15645 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15646
15647         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
15648         pointer.  Don't assert that global structures are in use.
15649
15650 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15651
15652         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
15653         via opts pointer.  Don't assert that global structures are in use.
15654
15655 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15656
15657         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
15658         (munix=93): Use Var.
15659         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
15660         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
15661         * config/pa/pa-opts.h: New.
15662         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
15663         (pa_handle_option): Don't assert that global structures are in
15664         use.  Access target_flags via opts pointer.  Don't handle
15665         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
15666         OPT_munix_98 here.
15667         (pa_option_override): Handle deferred OPT_mfixed_range_.
15668
15669 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15670
15671         * config/mn10300/mn10300-opts.h: New.
15672         * config/mn10300/mn10300.c (mn10300_processor,
15673         mn10300_tune_string): Remove.
15674         (mn10300_handle_option): Don't assert that global structures are
15675         in use.  Access mn10300_processor via opts pointer.  Don't handle
15676         OPT_mtune_ here.
15677         * config/mn10300/mn10300.h (enum processor_type): Move to
15678         mn10300-opts.h.
15679         (mn10300_processor): Remove.
15680         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
15681         HeaderInclude entry.
15682         (mn10300_processor): New Variable entry.
15683         (mtune=): Use Var.
15684
15685 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15686
15687         * config/microblaze/microblaze.c: Don't include opts.h.
15688         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
15689         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
15690         (mno-clearbss): Use Var and Warn.
15691
15692 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15693
15694         * config/m32r/m32r-opts.h: New.
15695         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
15696         (m32r_handle_option): Don't assert that global structures are in
15697         use.  Access target_flags and m32r_cache_flush_func via opts
15698         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
15699         OPT_mno_flush_trap here.
15700         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
15701         include of m32r-opts.h.
15702         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
15703         HeaderInclude entry.
15704         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
15705         (mmodel=): Use Enum and Var.
15706         (m32r_model): New Enum and EnumValue entries.
15707         (mno-flush-trap): Use Var.
15708         (msdata=): Use Enum and Var.
15709         (m32r_sdata): New Enum and EnumValue entries.
15710
15711 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15712
15713         * config/m32c/m32c.c: Don't include opts.h.
15714         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
15715         m32c_handle_option): Remove.
15716         (m32c_option_override): Check global_options_set.x_target_memregs
15717         instead of target_memregs_set.
15718         * config/m32c/m32c.h (target_memregs): Remove.
15719         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
15720         variable.
15721
15722 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15723
15724         * config/iq2000/iq2000-opts.h: New.
15725         * config/iq2000/iq2000.c: Don't include opts.h.
15726         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
15727         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
15728         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
15729         HeaderInclude entry.
15730         (iq2000_tune): New Variable entry.
15731         (march=): Add comment.  Use Enum.
15732         (iq2000_arch): New Enum and EnumValue entries.
15733         (mcpu=): Use Enum and Var.
15734         (iq2000_tune): New Enum and EnumValue entries.
15735
15736 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15737
15738         * config/ia64/ia64-opts.h: New.
15739         * config/ia64/ia64.c (ia64_tune): Remove.
15740         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
15741         here.  Use error_at.
15742         (ia64_option_override): Handle deferred OPT_mfixed_range_.
15743         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
15744         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
15745         HeaderInclude entry.
15746         (ia64_tune): New Variable entry.
15747         (mfixed-range=): Use Defer and Var.
15748         (mtune=): Use Enum and Var.
15749         (ia64_tune): New Enum and EnumValue entries.
15750
15751 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15752
15753         * config/frv/frv-opts.h: New.
15754         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
15755         frv-opts.h.
15756         (frv_cpu_type): Remove.
15757         * config/frv/frv.c: Don't include opts.h.
15758         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
15759         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
15760         (frv_cpu_type): New Variable entry.
15761         (frv_cpu): New Enum and EnumValue entries.
15762
15763 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15764
15765         * config/cris/cris.c (cris_handle_option): Access target_flags via
15766         opts pointer.  Don't assert that global structures are in use.
15767         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
15768         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
15769
15770 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15771
15772         * config/bfin/bfin-opts.h: New.
15773         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
15774         bfin_si_revision, bfin_workarounds): Remove.
15775         (bfin_cpus): Make static const.
15776         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
15777         not bfin_lib_id_given.
15778         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
15779         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
15780         pointer. Use error_at.  Don't assert that global structures are in use.
15781         * config/bfin/bfin.h: Include bfin-opts.h.
15782         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
15783         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
15784         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
15785         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
15786         entries.
15787
15788 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15789
15790         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
15791         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
15792         or -msoft-float here.
15793         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
15794         -msoft-float and -mhard-float.
15795         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
15796         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
15797         msoft-float.
15798         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
15799         -msoft-float.
15800         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
15801         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
15802         not mhard-float.
15803         (LIBGCC_SPEC): Don't handle -msoft-float.
15804         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
15805         -mhard-float.
15806         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
15807         msoft-float.
15808         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
15809         -mfloat-abi=*, not -msoft-float and -mhard-float.
15810         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
15811         -msoft-float.
15812         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
15813         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
15814         mhard-float and msoft-float.
15815         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
15816         mfloat-abi=soft in comments, not mhard-float and msoft-float.
15817         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15818         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
15819         mhard-float.
15820         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
15821         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
15822         msoft-float.
15823         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
15824         not mhard-float.
15825         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
15826         not msoft-float.
15827
15828 2011-03-22  Richard Henderson  <rth@redhat.com>
15829
15830         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
15831         TARGET_ABI_WINDOWS_NT.
15832         (alpha_output_function_end_prologue): Likewise.
15833         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
15834         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
15835         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
15836         (trap, *movsi_nt_vms): Likewise.
15837         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
15838         (*tablejump_osf_nt_internal): Remove.
15839         * config/alpha/predicates.md (input_operand): Only test Pmode.
15840
15841 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15842
15843         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
15844         via opts pointer.  Use error_at.  Don't assert that global
15845         structures are in use.
15846
15847 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15848
15849         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
15850         (ix86_handle_option): Access ix86_isa_flags and
15851         ix86_isa_flags_explicit via opts pointer.  Don't assert that
15852         global structures are in use.
15853         (ix86_function_specific_save, ix86_function_specific_restore):
15854         Update ix86_isa_flags_explicit field name.
15855         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
15856         (ix86_isa_flags_explicit): Rename TargetSave entry to
15857         x_ix86_isa_flags_explicit.
15858
15859 2011-03-22  Richard Henderson  <rth@redhat.com>
15860
15861         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
15862         (alpha_option_override, direct_return): Likewise.
15863         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
15864         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
15865         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
15866         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
15867         (alpha_expand_epilogue, alpha_end_function): Likewise.
15868         (alpha_init_libfuncs): Likewise.
15869         (struct machine_function): Remove unicosmk members.
15870         (print_operand) ['t']: Remove.
15871         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
15872         unicosmk_output_module_name, unicosmk_output_common,
15873         current_section_align, unicosmk_output_text_section_asm_op,
15874         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
15875         unicosmk_section_type_flags, unicosmk_unique_section,
15876         unicosmk_asm_named_section, unicosmk_insert_attributes,
15877         unicosmk_output_align, unicosmk_defer_case_vector,
15878         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
15879         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
15880         unicosmk_output_ssib, unicosmk_add_call_info_word,
15881         unicosmk_extern_head, unicosmk_output_default_externs,
15882         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
15883         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
15884         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
15885         * config/alpha/alpha-protos.h: Update.
15886         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
15887         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
15888         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
15889         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
15890         (*mulsi_se, mulvsi3): Likewise.
15891         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
15892         (*divmodsi_internal, call, call_value, realign): Likewise.
15893         (moddi3, umoddi3): Likewise; remove duplicate expander.
15894         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
15895         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
15896         (*movdi_nofix): Remove r/U alternative.
15897         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
15898         * config/alpha/constraints.md ("U"): Remove.
15899         * config/alpha/predicates.md (call_operand"): Don't test
15900         TARGET_ABI_UNICOSMK.
15901
15902 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15903
15904         * target.def (handle_option): Take gcc_options and
15905         cl_decoded_option pointers and location_t.
15906         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
15907         * doc/tm.texi: Regenerate.
15908         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
15909         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
15910         * lto-opts.c (lto_reissue_options): Generate option structure for
15911         targetm.handle_option call.
15912         * opts.c (target_handle_option): Update call to
15913         targetm.handle_option.  Remove assertions about values now passed
15914         down to hook.
15915         * targhooks.c (default_target_handle_option): New.
15916         * targhooks.h (default_target_handle_option): Declare.
15917         * config/alpha/alpha.c: Include opts.h.
15918         (alpha_handle_option): Update to new hook interface.
15919         * config/arm/arm.c: Include opts.h.
15920         (arm_handle_option): Update to new hook interface.
15921         * config/arm/t-arm (arm.o): Update dependencies.
15922         * config/bfin/bfin.c: Include opts.h.
15923         (bfin_handle_option): Update to new hook interface.
15924         * config/cris/cris.c: Include opts.h.
15925         (cris_handle_option): Update to new hook interface.
15926         * config/frv/frv.c: Include opts.h.
15927         (frv_handle_option): Update to new hook interface.
15928         * config/i386/i386.c: Include opts.h.
15929         (ix86_handle_option): Update to new hook interface.
15930         (ix86_valid_target_attribute_inner_p): Generate option structure
15931         for call to ix86_handle_option.
15932         * config/i386/t-i386 (i386.o): Update dependencies.
15933         * config/ia64/ia64.c: Include opts.h.
15934         (ia64_handle_option): Update to new hook interface.
15935         * config/ia64/t-ia64 (ia64.o): Update dependencies.
15936         * config/iq2000/iq2000.c: Include opts.h.
15937         (iq2000_handle_option): Update to new hook interface.
15938         * config/m32c/m32c.c: Include opts.h.
15939         (m32c_handle_option): Update to new hook interface.
15940         * config/m32r/m32r.c: Include opts.h.
15941         (m32r_handle_option): Update to new hook interface.
15942         * config/m68k/m68k.c: Include opts.h.
15943         (m68k_handle_option): Update to new hook interface.
15944         * config/mep/mep.c: Include opts.h.
15945         (mep_handle_option): Update to new hook interface.
15946         * config/microblaze/microblaze.c: Include opts.h.
15947         (microblaze_handle_option): Update to new hook interface.
15948         * config/mips/mips.c: Include opts.h.
15949         (mips_handle_option): Update to new hook interface.
15950         * config/mn10300/mn10300.c: Include opts.h.
15951         (mn10300_handle_option): Update to new hook interface.
15952         * config/pa/pa.c: Include opts.h.
15953         (pa_handle_option): Update to new hook interface.
15954         * config/pdp11/pdp11.c: Include opts.h.
15955         (pdp11_handle_option): Update to new hook interface.
15956         * config/rs6000/rs6000.c: Include opts.h.
15957         (rs6000_handle_option): Update to new hook interface.
15958         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
15959         * config/rx/rx.c: Include opts.h.
15960         (rx_handle_option): Update to new hook interface.
15961         * config/s390/s390.c: Include opts.h.
15962         (s390_handle_option): Update to new hook interface.
15963         * config/score/score.c: Include opts.h.
15964         (score_handle_option): Update to new hook interface.
15965         * config/sh/sh.c: Include opts.h.
15966         (sh_handle_option): Update to new hook interface.
15967         * config/sparc/sparc.c: Include opts.h.
15968         (sparc_handle_option): Update to new hook interface.
15969         * config/v850/v850.c: Include opts.h.
15970         (v850_handle_option): Update to new hook interface.
15971
15972 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15973
15974         * gcc.c (driver_unknown_option_callback): Only permit and save
15975         unknown -Wno- options.
15976         (driver_wrong_lang_callback): Save options directly instead of via
15977         driver_unknown_option_callback.
15978
15979 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
15980
15981         * combine.c (simplify_set): Try harder to find the best CC mode when
15982         simplifying a nested COMPARE on the RHS.
15983
15984 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15985
15986         * config/alpha/gnu.h: Remove.
15987         * config/arc: Remove directory.
15988         * config/arm/netbsd.h: Remove.
15989         * config/arm/t-pe: Remove.
15990         * config/crx: Remove directory.
15991         * config/i386/netbsd.h: Remove.
15992         * config/m68hc11: Remove directory.
15993         * config/m68k/uclinux-oldabi.h: Remove.
15994         * config/mcore/mcore-pe.h: Remove.
15995         * config/mcore/t-mcore-pe: Remove.
15996         * config/netbsd-aout.h: Remove.
15997         * config/rs6000/gnu.h: Remove.
15998         * config/sh/sh-symbian.h: Remove.
15999         * config/sh/symbian-base.c: Remove.
16000         * config/sh/symbian-c.c: Remove.
16001         * config/sh/symbian-cxx.c: Remove.
16002         * config/sh/symbian-post.h: Remove.
16003         * config/sh/symbian-pre.h: Remove.
16004         * config/sh/t-symbian: Remove.
16005         * config/svr3.h: Remove.
16006         * config/vax/netbsd.h: Remove.
16007         * config.build: Don't handle i[34567]86-*-pe.
16008         * config.gcc: Remove handling of deprecations for most deprecated
16009         targets.
16010         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
16011         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
16012         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
16013         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
16014         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
16015         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
16016         Remove cases.
16017         * config.host: Don't handle i[34567]86-*-pe.
16018         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
16019         (ASM_SPEC32): Don't handle -mcall-gnu.
16020         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
16021         -mcall-gnu.
16022         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
16023         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
16024         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
16025         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
16026         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
16027         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
16028         conditional on SYMBIAN.
16029         * configure.ac: Don't handle powerpc*-*-gnu*.
16030         * configure: Regenerate.
16031         * doc/extend.texi (interrupt attribute): Don't mention CRX.
16032         * doc/install-old.texi (m6811, m6812): Don't mention.
16033         * doc/install.texi (arc-*-elf*): Don't document multilib option.
16034         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
16035         (m68k-uclinuxoldabi): Don't mention.
16036         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
16037         Remove.
16038         (-mcall-gnu): Remove.
16039         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
16040         families): Remove constraint documentation.
16041
16042 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
16043
16044         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
16045         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
16046         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
16047
16048 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
16049
16050         PR target/48226
16051         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
16052         vector when peeking at the next token for vector, don't expand the
16053         keywords.
16054
16055 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
16056
16057         * config/avr/avr-protos.h (expand_epilogue): Change prototype
16058         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
16059         * config/avr/avr.c (init_cumulative_args)
16060         (avr_function_arg_advance): Use it.
16061         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
16062         sibcall epilogues.
16063         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
16064         (avr_function_ok_for_sibcall): ...this new function.
16065         (avr_lookup_function_attribute1): New static Function.
16066         (avr_naked_function_p, interrupt_function_p)
16067         (signal_function_p, avr_OS_task_function_p)
16068         (avr_OS_main_function_p): Use it.
16069         * config/avr/avr.md ("sibcall", "sibcall_value")
16070         ("sibcall_epilogue"): New expander.
16071         ("*call_insn", "*call_value_insn"): New insn.
16072         ("call_insn", "call_value_insn"): Remove
16073         ("call", "call_value", "epilogue"): Change expander to handle
16074         sibling calls.
16075
16076 2011-03-21  Nick Clifton  <nickc@redhat.com>
16077
16078         * doc/invoke.texi (Overall Options): Move closing brace to end of
16079         options list.
16080         (Optimization Options): Add missing @gol.
16081         (Directory Options): Likewise.
16082         (i386 and x86-64 Options): Likewise.
16083         (RS6000 and PowerPC Options): Likewise.
16084         (i386 and x86-64 Windows Options): Likewise.
16085         (V850 Options): Add text missing from descriptions.
16086
16087 2011-03-22  Richard Henderson  <rth@redhat.com>
16088
16089         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
16090         (avr_incoming_return_addr_rtx): New.
16091         (emit_push_byte): New.
16092         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
16093         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
16094         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
16095         (emit_pop_byte): New.
16096         (expand_epilogue): Use it.  Pop frame pointer by bytes.
16097         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
16098         (INCOMING_RETURN_ADDR_RTX): New.
16099         (INCOMING_FRAME_SP_OFFSET): New.
16100         (ARG_POINTER_CFA_OFFSET): New.
16101         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
16102         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
16103         (pophi): Remove.
16104
16105         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
16106
16107 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
16108
16109         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
16110         (FUNCTION_ARG_ADVANCE): Likewise.
16111         * tm.texi.in: Change references to them to hook references.
16112         * tm.texi: Regenerate.
16113         * targhooks.c (default_function_arg): Eliminate check for target
16114         macro.
16115         (default_function_incoming_arg): Likewise.
16116         (default_function_arg_advance): Likewise.
16117         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
16118         (function_arg_advance): Likewise.
16119         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
16120
16121 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
16122
16123         * tree.c (build_call_1): New function.
16124         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
16125
16126 2011-03-22  Richard Guenther  <rguenther@suse.de>
16127
16128         PR tree-optimization/48228
16129         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
16130         for single-arg PHIs.
16131
16132 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
16133
16134         PR rtl-optimization/48143
16135         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
16136         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
16137         sse2_cvtps2pd): Likewise.
16138
16139 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16140
16141         * recog.c (canonicalize_change_group): Use validate_unshare_change.
16142
16143 2011-03-22  Richard Guenther  <rguenther@suse.de>
16144
16145         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
16146         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
16147         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
16148         and REALIGN_LOAD_EXPR.
16149         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
16150         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
16151         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
16152         DOT_PROD_EXPR case ...
16153         (expand_expr_real_2): ... here.
16154         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
16155         and REALIGN_LOAD_EXPR.
16156         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
16157         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
16158         (vect_create_epilog_for_reduction): Likewise.
16159         (vectorizable_reduction): Likewise.
16160         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
16161         * tree-vect-stmts.c (vectorizable_load): Likewise.
16162
16163 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
16164
16165         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
16166
16167 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16168
16169         * config/s390/s390.c (s390_delegitimize_address): Fix offset
16170         handling for PLTOFF/GOTOFF.
16171
16172 2011-03-22  Nick Clifton  <nickc@redhat.com>
16173
16174         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
16175         trailing backslash from the end of the macro definition.
16176
16177 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16178
16179         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
16180         and PLT unspecs.
16181
16182 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
16183
16184         * expr.h (prepare_operand): Move to...
16185         * optabs.h (prepare_operand): ...here and change the insn code
16186         parameter from "int" to "enum insn_code".
16187         (insn_operand_matches): Declare.
16188         * expr.c (init_expr_target): Use insn_operand_matches.
16189         (compress_float_constant): Likewise.
16190         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
16191         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
16192         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
16193         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
16194         Likewise.
16195         (gen_cond_trap): Likewise.
16196         (prepare_operand): Likewise.  Change icode to an insn_code.
16197         (insn_operand_matches): New function.
16198         * reload.c (find_reloads_address_1): Use insn_operand_matches.
16199         * reload1.c (gen_reload): Likewise.
16200         * targhooks.c (default_secondary_reload): Likewise.
16201
16202 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
16203
16204         * config/alpha/alpha.md (unspec): New define_c_enum.
16205         (unspecv): Ditto.
16206
16207 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
16208
16209         PR debug/48214
16210         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
16211         between a call and its CALL_ARG_LOCATION note.
16212
16213 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
16214
16215         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
16216
16217 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
16218
16219         PR c/42544
16220         PR c/48197
16221         * c-common.c (shorten_compare): If primopN is first sign-extended
16222         to opN and then zero-extended to result type, set primopN to opN.
16223
16224 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
16225
16226         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
16227         for barrier handlers.
16228
16229 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
16230
16231         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
16232         UNSPEC constants to be in the unspec enumeration, and redefine
16233         all UNSPECV constants to be in the unspecv enumeration, so that
16234         dumps print which unspec/unspec_volatile this is.
16235         * config/rs6000/vector.md (UNSPEC_*): Ditto.
16236         * config/rs6000/paired.md (UNSPEC_*): Ditto.
16237         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
16238         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
16239         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
16240
16241         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
16242         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
16243         UNSPECV_LWSYNC, since these are used as unspec_volatile.
16244         * config/rs6000/sync.md (isync, lwsync): Ditto.
16245
16246 2011-03-21  Richard Guenther  <rguenther@suse.de>
16247
16248         * params.def (lto-min-partition): Fix typo.
16249
16250 2011-03-21  Richard Guenther  <rguenther@suse.de>
16251
16252         PR c/47939
16253         * c-decl.c (grokdeclarator): Drop to the main variant only
16254         for array types.  Drop flag_gen_aux_info check.
16255
16256 2011-03-21  Richard Guenther  <rguenther@suse.de>
16257
16258         PR translation/47911
16259         * params.def (lto-partitions): Fix typo.
16260         (lto-min-partition): Fix wording.
16261
16262 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
16263
16264         * config/rs6000/t-freebsd: Remove duplication from file.
16265
16266 2011-03-21  Richard Guenther  <rguenther@suse.de>
16267
16268         PR middle-end/47661
16269         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
16270
16271 2011-03-21  Richard Guenther  <rguenther@suse.de>
16272
16273         PR lto/48210
16274         * params.def (lto-partitions): Require at least 1 partition.
16275
16276 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16277
16278         * gthr-solaris.h: Remove.
16279         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
16280         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
16281         (LIB_SPEC): Likewise.
16282         * config/sol2.opt (threads): Remove.
16283         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
16284         (sparc*-*-solaris2*): Likewise.
16285         * configure.ac (enable_threads): Enable solaris support.
16286         * configure: Regenerate.
16287         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
16288         * doc/install.texi (Configuration, --enable-threads=lib): Remove
16289         solaris.
16290
16291 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16292
16293         * config.gcc: Obsolete *-*-solaris2.8*.
16294         * doc/install.texi (Specific, *-*-solaris2*): Document it.
16295
16296 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16297
16298         PR bootstrap/48135
16299         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
16300         reference.  Solaris 8 perl works.
16301
16302 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16303
16304         PR bootstrap/48135
16305         * doc/install.texi (Prerequisites): Move jar etc. up.
16306         Explain support library version requirements.
16307
16308 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16309
16310         PR bootstrap/48135
16311         * doc/install.texi (Prerequisites): Move Perl to build
16312         requirements.  Always necessary on Solaris 2 with Sun ld.
16313
16314 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16315
16316         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
16317         binutils 2.21.
16318         (Specific, i?86-*-solaris2.[89]): Likewise.
16319         (Specific, i?86-*-solaris2.10): Likewise.
16320         (Specific, mips-sgi-irix6): Likewise.
16321         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
16322         Update for binutils 2.21.
16323
16324 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16325
16326         * configure.ac (gcc_cv_lto_plugin): Fix typo.
16327         Allow -fuse-linker-plugin for non-default plugin linker.
16328         * configure: Regenerate.
16329
16330 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
16331
16332         PR bootstrap/48167
16333         * gengtype.c (files_rules): Added rule for cp/parser.h.
16334
16335 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
16336
16337         PR target/48213
16338         * config/s390/s390.c (s390_delegitimize_address): Don't call
16339         lowpart_subreg if orig_x has BLKmode.
16340
16341 2011-03-21  Kai Tietz  <ktietz@redhat.com>
16342
16343         PR target/12171
16344         * doc/plugins.texi: Adjust documentation for plugin register_callback.
16345         * tree.h (attribute_spec): Add new member affects_type_identity.
16346         * attribs.c (empty_attribute_table): Adjust attribute_spec
16347         initializers.
16348         * config/alpha/alpha.c: Likewise.
16349         * config/arc/arc.c: Likewise.
16350         * config/arm/arm.c: Likewise.
16351         * config/avr/avr.c: Likewise.
16352         * config/bfin/bfin.c: Likewise.
16353         * config/crx/crx.c: Likewise.
16354         * config/darwin.h: Likewise.
16355         * config/h8300/h8300.c: Likewise.
16356         * config/i386/cygming.h: Likewise.
16357         * config/i386/i386.c: Likewise.
16358         * config/ia64/ia64.c: Likewise.
16359         * config/m32c/m32c.c: Likewise.
16360         * config/m32r/m32r.c: Likewise.
16361         * config/m68hc11/m68hc11.c: Likewise.
16362         * config/m68k/m68k.c: Likewise.
16363         * config/mcore/mcore.c: Likewise.
16364         * config/mep/mep.c: Likewise.
16365         * config/microblaze/microblaze.c: Likewise.
16366         * config/mips/mips.c: Likewise.
16367         * config/rs6000/rs6000.c: Likewise.
16368         * config/rx/rx.c: Likewise.
16369         * config/sh/sh.c: Likewise.
16370         * config/sol2.h: Likewise.
16371         * config/sparc/sparc.c: Likewise.
16372         * config/spu/spu.c: Likewise.
16373         * config/stormy16/stormy16.c: Likewise.
16374         * config/v850/v850.c: Likewise.
16375
16376 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
16377
16378         * simplify-rtx.c (simplify_binary_operation_1): Handle
16379         (xor (and A B) C) case when B and C are both constants.
16380
16381 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
16382
16383         * tree-dfa.c (add_referenced_var): Fix typo in comment.
16384
16385 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
16386
16387         PR bootstrap/48168
16388         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
16389
16390 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
16391
16392         PR rtl-optimization/48156
16393         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
16394         assume df and df_lr are not NULL.
16395
16396 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16397
16398         PR debug/48023
16399         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
16400         between a call and its CALL_ARG_LOCATION note.
16401
16402 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
16403
16404         PR debug/48178
16405         * config/sh/sh.c (find_barrier): Don't emit a constant pool
16406         between a call and its corresponding CALL_ARG_LOCATION note.
16407
16408 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
16409
16410         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
16411         instead of loop. Use HARD_REGISTER_NUM_P predicate.
16412         * haifa-sched.c (setup_ref_regs): Ditto.
16413         * caller-save.c (add_used_regs_1): Ditto.
16414         * dse.c (look_for_hardregs): Ditto.
16415         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
16416         * sched-rgn.c (check_live_1): Ditto.
16417
16418 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
16419
16420         * c-decl.c (diagnose_mismatched_decls): Give an error for
16421         redefining a typedef with variably modified type.
16422
16423 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
16424
16425         * c-decl.c (grokfield): Don't allow typedefs for structures or
16426         unions with no tag by default.
16427         * doc/extend.texi (Unnamed Fields): Update.
16428
16429 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
16430
16431         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
16432         Rewrite using indirect functions.
16433         (lwp_slwpcb): Ditto.
16434         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
16435         (avx_vinsertf128<mode>): Ditto.
16436
16437 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16438
16439         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
16440         unspecs.
16441
16442 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16443
16444         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
16445         splitting between a call and its corresponding CALL_ARG_LOCATION note.
16446
16447 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16448
16449         PR rtl-optimization/48170
16450         * gcse.c (hoist_code): Remove bogus asserts.
16451
16452 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
16453
16454         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
16455         computation for prologue/epilogue.
16456
16457 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16458
16459         * Makefile.in (check-consistency): Remove.
16460
16461 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
16462
16463         PR debug/48176
16464         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
16465         arange_table_in_use is 0, but either text_section_used or
16466         cold_text_section_used is true.  Don't call it if
16467         !info_section_emitted.
16468
16469 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
16470
16471         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
16472         FUNCTION_VALUE_REGNO_P): Remove.
16473         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
16474         Remove.
16475         * config/avr/avr.c (avr_ret_register): Make static inline.
16476         (avr_function_value_regno_p): New function.
16477         (avr_libcall_value): Make static. Add 'func' argument.
16478         (avr_function_value): Make static. Rename 'func' argument to
16479         'fn_decl_or_type', forward it to avr_libcall_value. Call
16480         avr_ret_register function instead of RET_REGISTER macro.
16481         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
16482
16483 2011-03-18  Jason Merrill  <jason@redhat.com>
16484
16485         PR c++/23372
16486         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
16487
16488 2011-03-18  Richard Guenther  <rguenther@suse.de>
16489
16490         * doc/install.texi (--enable-gold): Remove.
16491         (--with-plugin-ld): Document.
16492         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
16493
16494 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
16495
16496         PR middle-end/47790
16497         * expr.c (optimize_bitfield_assignment_op): Revamp to work
16498         again after expansion changes.
16499
16500 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
16501
16502         * combine.c (try_combine): Do simplification only call of
16503         subst() on i2 even when i1 is present. Update comments.
16504
16505 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16506
16507         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
16508         and UNSPEC_PCREL_SYMOFF.
16509
16510 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16511
16512         * config/s390/s390.md: Use define_c_enum for the unspec constant
16513         definitions.
16514
16515 2011-03-18  Richard Henderson  <rth@redhat.com>
16516             Jakub Jelinek  <jakub@redhat.com>
16517
16518         PR bootstrap/48161
16519         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
16520         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
16521
16522 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16523
16524         PR middle-end/47725
16525         * combine.c (cant_combine_insn_p): Don't check zero/sign
16526         extended hard registers.
16527
16528 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16529
16530         PR middle-end/47725
16531         * combine.c (cant_combine_insn_p): Check zero/sign extended
16532         hard registers.
16533
16534 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
16535
16536         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16537         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
16538         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
16539         Change return type to bool.
16540         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16541
16542 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16543
16544         PR debug/48163
16545         * var-tracking.c (prepare_call_arguments): If CALL target
16546         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
16547         pc instead of looking it up using cselib_lookup and use
16548         Pmode for it if x has VOIDmode.
16549         * dwarf2out.c (gen_subprogram_die): If also both first and
16550         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
16551
16552         PR debug/48163
16553         * function.c (assign_parms): For data.passed_pointer parms
16554         use MEM of data.entry_parm instead of data.entry_parm itself
16555         as DECL_INCOMING_RTL.
16556         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
16557         also when passed and declared mode is the same, DECL_RTL
16558         is a MEM with pseudo as address and DECL_INCOMING_RTL is
16559         a MEM too.
16560
16561 2011-03-16  Jeff Law  <law@redhat.com>
16562
16563         PR rtl-optimization/37273
16564         * ira-costs.c (scan_one_insn): Detect constants living in memory and
16565         handle them like argument loads from stack slots.  Do not double
16566         count memory for memory constants and argument loads from stack slots.
16567
16568 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16569
16570         PR debug/48160
16571         * var-tracking.c (prepare_call_arguments): Check SUBREG.
16572
16573 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16574
16575         PR target/48171
16576         * config/i386/i386.opt: Add Save to -mavx and -mfma.
16577
16578 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16579
16580         PR bootstrap/48153
16581         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
16582         if dwarf_strict.
16583         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
16584         Clear call_arg_locations and call_arg_loc_last always.
16585
16586         PR middle-end/48152
16587         * var-tracking.c (prepare_call_arguments): If argument needs to be
16588         passed by reference, adjust argtype and mode.
16589
16590 2011-03-17  Richard Guenther  <rguenther@suse.de>
16591
16592         PR middle-end/48134
16593         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
16594         a value make sure to fold the statement.
16595
16596 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
16597
16598         PR target/43872
16599         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
16600         return condition with !cfun->calls_alloca.
16601
16602 2011-03-17  Richard Guenther  <rguenther@suse.de>
16603
16604         PR bootstrap/48148
16605         * lto-cgraph.c (input_overwrite_node): Clear the abstract
16606         origin for decls in other ltrans units.
16607         (input_varpool_node): Likewise.
16608
16609 2011-03-17  Richard Guenther  <rguenther@suse.de>
16610
16611         PR middle-end/48165
16612         * tree-object-size.c (compute_object_offset): Properly return
16613         the offset operand of MEM_REFs as sizetype.
16614
16615 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16616
16617         PR rtl-optimization/48141
16618         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
16619         * dse.c: Include params.h.
16620         (active_local_stores_len): New variable.
16621         (add_wild_read, dse_step1): Clear it when setting active_local_stores
16622         to NULL.
16623         (record_store, check_mem_read_rtx): Decrease it when removing
16624         from the chain.
16625         (scan_insn): Likewise.  Increase it when adding to chain, if it
16626         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
16627         set active_local_stores to NULL before the addition.
16628         * Makefile.in (dse.o): Depend on $(PARAMS_H).
16629
16630         PR rtl-optimization/48141
16631         * dse.c (record_store): If no positions are needed in an insn
16632         that cannot be deleted, at least unchain it from active_local_stores.
16633
16634 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
16635
16636         PR debug/47510
16637         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
16638         (lookup_type_die_strip_naming_typedef): ... here.
16639         (get_context_die): Use it.
16640         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
16641         the anonymous struct named by the naming typedef.
16642
16643 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
16644
16645         PR target/48154
16646         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
16647         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
16648
16649 2011-03-16  Jeff Law  <law@redhat.com>
16650
16651         * tree-vrp.c (identify_jump_threads): Slightly simplify type
16652         check for operands of conditional.  Allow type to be a pointer.
16653
16654 2011-03-16  Richard Guenther  <rguenther@suse.de>
16655
16656         PR tree-optimization/48149
16657         * fold-const.c (fold_binary_loc): Fold
16658         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
16659
16660 2011-03-16  Richard Guenther  <rguenther@suse.de>
16661
16662         PR tree-optimization/26134
16663         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
16664         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
16665         (non_rewritable_mem_ref_base): Handle complex type component
16666         accesses, constrain offsets for vector and complex extracts
16667         more properly.
16668
16669 2011-03-16  Richard Guenther  <rguenther@suse.de>
16670
16671         PR tree-optimization/48146
16672         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
16673         operands avoiding the need for renaming.
16674
16675 2011-03-16  Richard Guenther  <rguenther@suse.de>
16676
16677         * gimple-fold.c (maybe_fold_reference): Open-code relevant
16678         constant folding.  Move MEM_REF canonicalization first.
16679         Rely on fold_const_aggregate_ref for initializer folding.
16680         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
16681
16682 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
16683
16684         PR middle-end/48136
16685         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16686         arg0/arg1 or their arguments are always fold converted to matching
16687         types.
16688
16689         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
16690         to nargs.
16691
16692 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16693
16694         PR lto/46944
16695         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
16696         Handle in-tree gold.
16697         (ld_vers): Extract binutils version for gold.
16698         (gcc_cv_ld_hidden): Handle gold here.
16699         (gcc_cv_lto_plugin): Determine level of linker plugin support.
16700         * configure: Regenerate.
16701         * config.in: Regenerate.
16702         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
16703         -fuse-linker-plugin otherwise.
16704         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
16705         (LINK_COMMAND_SPEC): Use it.
16706         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
16707
16708 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
16709
16710         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
16711         * calls.c: Remove debug.h include.
16712         (emit_call_1): Don't call virtual_call_token debug hook.
16713         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
16714         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
16715         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
16716         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
16717         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
16718         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
16719         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
16720         dwarf2out_virtual_call): Remove.
16721         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
16722         copy_call_info and virtual_call hooks.
16723         (dwarf2out_init): Don't initialize vcall_insn_table,
16724         debug_dcall_section and debug_vcall_section.
16725         (prune_unused_types): Don't mark nodes from dcall_table.
16726         (dwarf2out_finish): Don't output dcall or vcall tables.
16727         * final.c (final_scan_insn): Don't call direct_call or
16728         virtual_call debug hooks.
16729         * debug.h (struct gcc_debug_hooks): Remove direct_call,
16730         virtual_call_token, copy_call_info and virtual_call hooks.
16731         (debug_nothing_uid): Remove prototype.
16732         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
16733         copy_call_info and virtual_call hooks.
16734         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
16735         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
16736         * debug.c (do_nothing_debug_hooks): Likewise.
16737         (debug_nothing_uid): Remove.
16738         * doc/invoke.texi (-fenable-icf-debug): Remove.
16739         * common.opt (-fenable-icf-debug): Likewise.
16740
16741         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
16742         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
16743         call's MEM.  Handle functions returning aggregate through a hidden
16744         first pointer.  For virtual calls add clobbered pc to call arguments
16745         chain.
16746         * dwarf2out.c (gen_subprogram_die): Emit
16747         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
16748         can't be emitted.
16749
16750         PR debug/45882
16751         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
16752         * rtl.h (ENTRY_VALUE_EXP): Define.
16753         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
16754         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
16755         * print-rtl.c (print_rtx): Likewise.
16756         * gengtype.c (adjust_field_rtx_def): Likewise.
16757         * var-tracking.c (vt_add_function_parameter): Adjust
16758         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
16759         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
16760         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
16761         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
16762         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
16763
16764         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
16765         Call var_location debug hook even on CALL_INSNs.
16766         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
16767         * rtl.def (ENTRY_VALUE): New.
16768         * dwarf2out.c: Include cfglayout.h.
16769         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
16770         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
16771         (struct call_arg_loc_node): New type.
16772         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
16773         tail_call_site_count): New variables.
16774         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
16775         DW_TAG_GNU_call_site_parameter.
16776         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
16777         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
16778         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
16779         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
16780         and DW_AT_GNU_all_source_call_sites.
16781         (mem_loc_descriptor): Handle ENTRY_VALUE.
16782         (add_src_coords_attributes): Don't add enything if
16783         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
16784         (dwarf2out_abstract_function): Save and clear call_arg_location,
16785         call_site_count and tail_call_site_count around dwarf2out_decl call.
16786         (gen_call_site_die): New function.
16787         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
16788         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
16789         (dwarf2out_function_decl): Clear call_arg_locations,
16790         call_arg_loc_last, set call_site_count and tail_call_site_count
16791         to -1 and free block_map.
16792         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
16793         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
16794         followed by any real instructions.
16795         (dwarf2out_begin_function): Set call_site_count and
16796         tail_call_site_count to 0.
16797         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
16798         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
16799         attempt to force a DIE for it and worst case remove the attribute.
16800         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
16801         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
16802         the decl itself.
16803         * var-tracking.c: Include tm_p.h.
16804         (vt_stack_adjustments): For calls call note_register_arguments.
16805         (argument_reg_set): New variable.
16806         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
16807         ensure the VALUE is resolved.
16808         (call_arguments): New variable.
16809         (prepare_call_arguments): New function.
16810         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
16811         (struct expand_loc_callback_data): Add ignore_cur_loc field.
16812         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
16813         always use the best expression.
16814         (vt_expand_loc): Add ignore_cur_loc argument.
16815         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
16816         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
16817         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
16818         note for all calls.
16819         (vt_add_function_parameter): Use cselib_lookup_from_insn.
16820         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
16821         argument.  Don't call cselib_preserve_only_values and
16822         cselib_reset_table.
16823         (note_register_arguments): New function.
16824         (vt_initialize): Compute argument_reg_set.  Call
16825         vt_add_function_parameters before processing basic blocks instead of
16826         afterwards.  For calls call prepare_call_arguments before calling
16827         cselib_process_insn.
16828         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
16829         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
16830         (var-tracking.o): Depend on $(TM_P_H).
16831         * cfglayout.h (insn_scope): New prototype.
16832         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
16833         * cfglayout.c (insn_scope): No longer static.
16834         * insn-notes.def (CALL_ARG_LOCATION): New.
16835         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
16836         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
16837         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
16838         nothing for DECL_EXTERNAL BLOCK_VARS.
16839
16840 2011-03-16  Alan Modra  <amodra@gmail.com>
16841
16842         PR target/45844
16843         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
16844         create invalid offset address for vsx splat insn.
16845         * config/rs6000/predicates.md (splat_input_operand): New.
16846         * config/rs6000/vsx.md (vsx_splat_*): Use it.
16847
16848 2011-03-15  Xinliang David Li  <davidxl@google.com>
16849
16850         PR c/47837
16851         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
16852         (normalize_preds): New function.
16853         (is_use_properly_guarded): Normalize def predicates.
16854
16855 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16856
16857         PR target/46788
16858         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
16859         in the output template.
16860
16861 2011-03-15  Richard Guenther  <rguenther@suse.de>
16862
16863         PR middle-end/47650
16864         * tree-pretty-print.c (dump_function_declaration): Properly
16865         dump unprototyped and varargs function types.
16866
16867 2011-03-15  Richard Guenther  <rguenther@suse.de>
16868
16869         PR tree-optimization/13954
16870         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
16871         and friends.
16872
16873 2011-03-15  Richard Guenther  <rguenther@suse.de>
16874
16875         PR tree-optimization/48037
16876         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
16877         selects into BIT_FIELD_REFs.
16878         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
16879         vector select.
16880
16881 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
16882
16883         PR tree-optimization/48129
16884         * builtins.c (fold_builtin_snprintf): Convert to type of
16885         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
16886         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
16887
16888 2011-03-15  Richard Guenther  <rguenther@suse.de>
16889
16890         PR tree-optimization/41490
16891         * tree-ssa-dce.c (propagate_necessity): Handle returns without
16892         value but with VUSE.
16893         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
16894         return statements.
16895         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
16896         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
16897         * tree-tailcall.c (find_tail_calls): Ignore returns.
16898
16899 2011-03-15  Richard Guenther  <rguenther@suse.de>
16900
16901         PR middle-end/48031
16902         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
16903         or variable-indexed array accesses when in gimple form.
16904
16905 2011-03-15  Richard Guenther  <rguenther@suse.de>
16906
16907         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
16908
16909 2011-03-15  Alan Modra  <amodra@gmail.com>
16910
16911         PR target/48032
16912         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
16913         presume symbol_refs without a symbol_ref_decl are suitably
16914         aligned, nor other trees we may see here.  Handle anchor symbols.
16915         (legitimate_constant_pool_address_p): Comment.  Add mode param.
16916         Check cmodel=medium addresses.  Adjust all calls.
16917         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
16918         creating cmodel=medium optimized access to locals.
16919         * config/rs6000/constraints.md (R): Pass QImode to
16920         legitimate_constant_pool_address_p.
16921         * config/rs6000/predicates.md (input_operand): Pass mode to
16922         legitimate_constant_pool_address_p.
16923         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
16924         Update prototype.
16925
16926 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16927
16928         PR target/48053
16929         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
16930         64-bit constants being loaded into registers other than GPRs such
16931         as loading 0 into a VSX register.
16932
16933 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16934
16935         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
16936
16937 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16938
16939         PR middle-end/47917
16940         * builtins.c (fold_builtin_snprintf): New function.
16941         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
16942         (fold_builtin_4): Likewise.
16943
16944         PR middle-end/38878
16945         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
16946         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
16947         and C - X == X also strip nops from +/-/p+ operand.
16948         When optimizing -X == C, fold C to arg0's type.
16949
16950         PR debug/47946
16951         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
16952         emit it as add_AT_int instead of add_AT_unsigned.
16953
16954 2011-03-14  Tom Tromey  <tromey@redhat.com>
16955
16956         * unwind-dw2.c: Include sys/sdt.h if it exists.
16957         (_Unwind_DebugHook): Use STAP_PROBE2.
16958         * config.in, configure: Rebuild.
16959         * configure.ac: Check for sys/sdt.h.
16960
16961 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
16962
16963         * config/i386/i386.md (ROUND_FLOOR): New constant.
16964         (ROUND_CEIL): Ditto.
16965         (ROUND_TRUNC): Ditto.
16966         (ROUND_MXCSR): Ditto.
16967         (ROUND_NO_EXC): Ditto.
16968         (rint<mode>2): Use new defines instead of numerical constants.
16969         (floor<mode>2): Ditto.
16970         (ceil<mode>2): Ditto.
16971         (btrunc<mode>2): Ditto.
16972         * config/i386/i386-builtin-types.def: Define ROUND function type
16973         aliases.
16974         * config/i386/i386.c (enum ix86_builtins): Add
16975         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
16976         (struct builtin_description): Add
16977         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
16978         (ix86_expand_sse_round): New static function.
16979         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
16980         function types.
16981         (ix86_builtin_vectorized_function): Handle
16982         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
16983
16984 2011-03-14  Tom Tromey  <tromey@redhat.com>
16985
16986         * c-parser.c (c_parser_asm_string_literal): Clear
16987         warn_overlength_strings.
16988
16989 2011-03-14  Tom Tromey  <tromey@redhat.com>
16990
16991         * c-parser.c (disable_extension_diagnostics): Save
16992         warn_overlength_strings.
16993         (restore_extension_diagnostics): Restore warn_overlength_strings.
16994
16995 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16996
16997         * BASE-VER: Change to 4.7.0.
16998
16999 2011-03-14  Richard Guenther  <rguenther@suse.de>
17000
17001         PR middle-end/48098
17002         * tree.c (build_vector_from_val): Adjust assert to requirements
17003         and reality.
17004
17005 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
17006
17007         PR bootstrap/48102
17008         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
17009
17010 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
17011
17012         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
17013         terms of target_flags_explicit. Adjust copyright year.
17014
17015         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
17016         * config/rs6000/t-freebsd: New file. Add override for
17017         LIB2FUNCS_EXTRA.
17018
17019 2011-03-13  Chris Demetriou  <cgd@google.com>
17020
17021         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
17022         (-fno-diagnostics-show-option): this, to reflect current default.
17023         (-Werror=): Update text about -fno-diagnostics-show-option.
17024
17025 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
17026
17027         PR target/48053
17028         * config/rs6000/predicates.md (easy_vector_constant_add_self,
17029         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
17030         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
17031         mode is not V2DImode or V2DFmode.
17032         (vspltis_constant): Do not handle V2DImode and V2DFmode.
17033         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
17034         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
17035         registers to 0.
17036         (movdi_internal64): Likewise.
17037
17038 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
17039
17040         PR tree-optimization/47127
17041         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
17042         parameter.
17043         (set_cloog_options): Same.
17044         (scop_to_clast): Same.
17045         (print_clast_stmt): Do not call cloog_state_malloc and
17046         cloog_state_free.
17047         (print_generated_program): Same.
17048         (gloog): Same.
17049         * graphite-clast-to-gimple.h (cloog_state): Declared.
17050         (scop_to_clast): Adjust declaration.
17051         * graphite.c (cloog_state): Defined here.
17052         (graphite_initialize): Call cloog_state_malloc.
17053         (graphite_finalize): Call cloog_state_free.
17054
17055 2011-03-11  Jason Merrill  <jason@redhat.com>
17056
17057         * attribs.c (lookup_attribute_spec): Take const_tree.
17058         * tree.h: Adjust.
17059
17060 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
17061
17062         * config/sparc/sparc.c (sparc_option_override): Use
17063         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
17064
17065 2011-03-11  Richard Guenther  <rguenther@suse.de>
17066
17067         PR tree-optimization/48067
17068         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
17069         multiplication result will be only used once on the target
17070         stmt.
17071
17072 2011-03-11  Richard Guenther  <rguenther@suse.de>
17073
17074         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
17075
17076 2011-03-11  Richard Guenther  <rguenther@suse.de>
17077
17078         PR lto/48073
17079         * tree.c (find_decls_types_r): Do not walk types only reachable
17080         from IDENTIFIER_NODEs.
17081
17082 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
17083
17084         PR middle-end/48044
17085         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
17086         all vnode->force_output nodes as needed.
17087
17088 2011-03-11  Jason Merrill  <jason@redhat.com>
17089
17090         PR c++/48069
17091         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
17092         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
17093
17094 2011-03-11  Martin Jambor  <mjambor@suse.cz>
17095
17096         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
17097         cgraph_node.
17098
17099 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
17100
17101         PR tree-optimization/48063
17102         * ipa-inline.c (cgraph_decide_inlining): Don't try to
17103         inline functions called once if !tree_can_inline_p (node->callers).
17104
17105 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
17106
17107         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
17108         extra_objs.
17109         * config/score/score3.c: Delete.
17110         * config/score/score3.h: Delete.
17111         * config/score/mul-div.S: Delete.
17112         * config/score/sfp-machine.h: Add new file.
17113         * config/score/constraints.md: Add new file.
17114         * config/score/t-score-softfp: Add new file.
17115         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
17116         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
17117         (score7_extra_constraint): Delete.
17118         (score7_option_override): Remove unused code.
17119         * config/score/score.c: Remove score3 and score5 define and code.
17120         * config/score/score.h: Remove score3 and score5 define and code.
17121         * config/score/score.md: Remove score3 template and unusual insn.
17122         * config/score/score.opt: Remove score3 and score5 options.
17123
17124 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17125
17126         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
17127         when _HPUX_SOURCE is defined.
17128         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
17129
17130 2011-03-10  Jason Merrill  <jason@redhat.com>
17131
17132         PR c++/48029
17133         * stor-layout.c (layout_type): Don't set structural equality
17134         on arrays of incomplete type.
17135         * tree.c (type_hash_eq): Handle comparing them properly.
17136
17137 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
17138
17139         PR debug/48043
17140         * config/s390/s390.c (s390_delegitimize_address): Make sure the
17141         result mode matches original rtl mode.
17142
17143 2011-03-10  Nick Clifton  <nickc@redhat.com>
17144
17145         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
17146         (andsi3, andsi3_flags): Fix timings for three operand alternative.
17147
17148 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
17149
17150         PR rtl-optimization/47866
17151         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
17152         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
17153         if target wasn't scalar.
17154         * function.c (assign_stack_temp_for_type): Assert that neither
17155         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
17156         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
17157         macro.
17158         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
17159
17160 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17161
17162         * config/s390/s390-protos.h (s390_label_align): New prototype.
17163         * config/s390/s390.c (s390_label_align): New function.
17164         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
17165
17166 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
17167
17168         PR target/47755
17169         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
17170         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
17171         (output_vec_const_move): Ditto.
17172
17173 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
17174
17175         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
17176         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
17177         * config/mips/mips.c (mips_preferred_reload_class): Make static.
17178         Change 'rclass' argument and result type to reg_class_t.
17179         (TARGET_PREFERRED_RELOAD_CLASS): Define.
17180
17181 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
17182
17183         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
17184         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
17185         (TARGET_MEMORY_MOVE_COST): Define.
17186         (avr_register_move_cost, avr_memory_move_cost): New Functions.
17187
17188 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
17189
17190         PR debug/47881
17191         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
17192         removed anything.
17193
17194         PR tree-optimization/48022
17195         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
17196         for EQ/NE_EXPR.
17197
17198 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
17199
17200         PR debug/47991
17201         * var-tracking.c (find_use_val): Return NULL for
17202         cui->sets && cui->store_p BLKmode MEMs.
17203
17204 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
17205
17206         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
17207         Remove.
17208         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
17209         xstormy16_print_operand_address): Remove.
17210         * config/stormy16/stormy16.c (xstormy16_print_operand,
17211         xstormy16_print_operand_address): Make static.
17212         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17213
17214 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
17215
17216         PR target/47862
17217         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
17218         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
17219         before definition.
17220
17221 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
17222
17223         PR bootstrap/48000
17224         * cfgloopmanip.c (fix_bb_placements): Return immediately
17225         if FROM is BASE_LOOP's header.
17226
17227 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
17228
17229         * gimplify.c (gimplify_function_tree): Fix building calls
17230         to __builtin_return_address.
17231
17232 2011-03-07  Alan Modra  <amodra@gmail.com>
17233
17234         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
17235         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
17236         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
17237         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
17238         return_mode args.
17239         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
17240         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
17241         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
17242         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
17243         * config/rs6000/rs6000.c
17244         (rs6000_elf_end_indicate_exec_stack): Rename to..
17245         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
17246         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
17247         (rs6000_file_start): ..here.
17248         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
17249         file scope variables.
17250         (call_ABI_of_interest): New function.
17251         (init_cumulative_args): Set above vars when function return value
17252         is a float, vector, or small struct.
17253         (rs6000_function_arg_advance_1): Likewise for function args.
17254         (rs6000_va_start): Set rs6000_passes_float if variable arg function
17255         references float args.
17256
17257 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
17258
17259         * doc/cfg.texi: Remove "See" before @ref.
17260         * doc/invoke.texi: Likewise.
17261
17262 2011-03-05  Jason Merrill  <jason@redhat.com>
17263
17264         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
17265
17266 2011-03-05  Anthony Green  <green@moxielogic.com>
17267
17268         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
17269
17270 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
17271
17272         PR rtl-optimization/47899
17273         * cfgloopmanip.c (fix_bb_placements): Fix first argument
17274         to flow_loop_nested_p when moving the loop upward.
17275
17276 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
17277
17278         PR target/47719
17279         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
17280
17281 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
17282
17283         PR tree-optimization/47967
17284         * ipa-cp.c (build_const_val): Return NULL instead of creating
17285         VIEW_CONVERT_EXPR for mismatching sizes.
17286         (ipcp_create_replace_map): Return NULL if build_const_val failed.
17287         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
17288         give up on versioning.
17289
17290 2011-03-05  Alan Modra  <amodra@gmail.com>
17291
17292         PR target/47986
17293         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
17294         full cmodel medium/large lo_sum + high addresses.
17295
17296 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17297
17298         * config/s390/s390.c (s390_decompose_address): Reject non-literal
17299         pool references in UNSPEC_LTREL_OFFSET.
17300
17301 2011-03-04  Jan Hubicka  <jh@suse.cz>
17302
17303         PR lto/47497
17304         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
17305         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
17306         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
17307         Add node pointers.
17308         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
17309         cgraph_add_thunk): Add node pointers.
17310         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
17311         associated to right node.
17312         (input_node): Update use of cgraph_same_body_alias
17313         and cgraph_add_thunk.
17314
17315 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
17316
17317         * config/i386/i386.opt (mprefer-avx128): New flag.
17318         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
17319         modes when the flag -mprefer-avx128 is on.
17320
17321 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
17322
17323         * dwarf2out.c (compare_loc_operands): Fix address handling.
17324
17325 2011-03-04  Alan Modra  <amodra@gmail.com>
17326
17327         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
17328
17329 2011-03-04  Richard Guenther  <rguenther@suse.de>
17330
17331         PR middle-end/47968
17332         * expmed.c (extract_bit_field_1): Prefer vector modes that
17333         vec_extract patterns can handle.
17334
17335 2011-03-04  Richard Guenther  <rguenther@suse.de>
17336
17337         PR middle-end/47975
17338         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
17339
17340 2011-03-04  Richard Henderson  <rth@redhat.com>
17341
17342         * explow.c (emit_stack_save): Remove 'after' parameter.
17343         (emit_stack_restore): Likewise.
17344         * expr.h: Update to match.
17345         * builtins.c, calls.c, stmt.c: Likewise.
17346         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
17347         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
17348         * function.c (expand_function_end): Insert the emit_stack_save
17349         sequence before parm_birth_insn instead of after.
17350
17351 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
17352
17353         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
17354         (ssse3_pmaddubsw128): Ditto.
17355         (ssse3_pmaddubsw): Ditto.
17356
17357 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
17358
17359         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
17360
17361 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
17362
17363         PR c/47963
17364         * gimplify.c (omp_add_variable): Only call omp_notice_variable
17365         on TYPE_SIZE_UNIT if it is a DECL.
17366
17367         PR debug/47283
17368         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
17369         first operand is not is_gimple_mem_ref_addr, try to fold it.
17370         If the operand still isn't is_gimple_mem_ref_addr, clear
17371         MEM_EXPR on op0.
17372
17373 2011-03-03  Richard Guenther  <rguenther@suse.de>
17374
17375         PR middle-end/47283
17376         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
17377         match comment.
17378         (refs_may_alias_p_1): For release branches return true if
17379         we are confused by our input.
17380
17381 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17382
17383         * config/s390/s390.c (s390_function_value): Rename to ...
17384         (s390_function_and_libcall_value): ... this.
17385         (s390_function_value): New function.
17386         (s390_libcall_value): New function.
17387         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
17388         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
17389         target macro definitions.
17390         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
17391
17392 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
17393
17394         * config/i386/freebsd64.h (CC1_SPEC): Define.
17395         * config/i386/linux64.h (CC1_SPEC): Define.
17396         * config/i386/x86-64.h (CC1_SPEC): Don't define.
17397
17398 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
17399
17400         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17401         Remove.
17402         * config/stormy16/stormy16.c: Include reload.h.
17403         (xstormy16_memory_move_cost): New function.
17404         (TARGET_MEMORY_MOVE_COST): Define.
17405
17406 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
17407
17408         PR rtl-optimization/47925
17409         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
17410         with side effects.  Remove the more-specific check for volatile asms.
17411
17412 2011-03-02  Alan Modra  <amodra@gmail.com>
17413
17414         PR target/47935
17415         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
17416         toc relative addresses for valid offsets.
17417
17418 2011-03-01  Richard Guenther  <rguenther@suse.de>
17419
17420         PR tree-optimization/47890
17421         * tree-vect-loop.c (get_initial_def_for_induction): Set
17422         related stmt properly.
17423
17424 2011-03-01  Richard Guenther  <rguenther@suse.de>
17425
17426         PR lto/47924
17427         * lto-streamer.c (lto_record_common_node): Also register
17428         the canonical type.
17429
17430 2011-03-01  Richard Guenther  <rguenther@suse.de>
17431
17432         PR lto/46911
17433         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
17434         Do not stream DECL_ABSTRACT_ORIGIN.
17435         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
17436         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
17437         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
17438         Do not stream DECL_ABSTRACT_ORIGIN.
17439         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
17440         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
17441
17442 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
17443
17444         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
17445         FUNCTION_VALUE_REGNO_P): Remove.
17446         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
17447         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
17448         Add 'outgoing' argument.
17449         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
17450         function.
17451         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17452         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17453
17454 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
17455
17456         PR debug/28047
17457         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
17458         (lookup_filename): Likewise.
17459         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
17460
17461 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
17462             Jakub Jelinek  <jakub@redhat.com>
17463
17464         PR middle-end/47893
17465         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
17466         (assign_stack_local_1): Change last argument type to int.
17467         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
17468         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
17469         don't record padding space into frame_space_list nor use those areas.
17470         (assign_stack_local): Adjust caller.
17471         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
17472         of assign_stack_local, pass 0 as last argument.
17473         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
17474         callers.
17475
17476 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
17477
17478         PR debug/47283
17479         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
17480         Use target address_mode and pointer_mode hooks instead of hardcoded
17481         Pmode and ptr_mode.  Handle some simple cases of extending if
17482         POINTERS_EXTEND_UNSIGNED < 0.
17483         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
17484         Call convert_debug_memory_address.
17485         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
17486         convert_debug_memory_address.
17487
17488         PR middle-end/46790
17489         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
17490         * configure: Regenerated.
17491         * config.in: Regenerated.
17492         * varasm.c (default_function_section): Return NULL
17493         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
17494
17495 2011-02-28  Martin Jambor  <mjambor@suse.cz>
17496
17497         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
17498         the description to match the printed values.
17499
17500 2011-02-28  Richard Guenther  <rguenther@suse.de>
17501
17502         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
17503         of the copied scope tree.
17504
17505 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17506
17507         * doc/extend.texi (Function Attributes): Avoid deeply (and
17508         wrongly) nested tables.
17509
17510 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
17511
17512         PR middle-end/47903
17513         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
17514         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
17515         r isn't op0 nor op1.
17516
17517 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
17518
17519         * config/avr/avr.md: Remove magic comment for emacs.
17520
17521 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
17522
17523         PR target/45261
17524         * config/avr/avr.c (avr_option_override): Use error on bad options.
17525         (avr_help): New function.
17526         (TARGET_HELP): Define.
17527
17528 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
17529
17530         PR target/42240
17531         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
17532         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
17533
17534 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
17535
17536         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
17537         (ARM Options): Ditto.
17538         (i386 and x86-64 Options): Ditto.
17539         (RX Options): Ditto.
17540         (SPARC Options): Ditto.
17541
17542 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
17543
17544         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
17545         FreeBSD 6 and later.  Generally use cpu generic.
17546
17547 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
17548
17549         * doc/cpp.texi: Update copyright years.
17550
17551 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
17552
17553         PR target/46898
17554         * config/lm32/lm32.md (ashrsi3): Added needed variable.
17555
17556 2011-02-25  Jon Beniston  <jon@beniston.com>
17557
17558         PR target/46898
17559         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
17560         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
17561         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
17562         (lm32_block_move_inline): Add type cast to remove warning.
17563         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
17564         (gen_int_relational): Move declarations to start of function.
17565
17566 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
17567
17568         PR tree-optimization/45470
17569         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
17570         can throw internally only.
17571         * tree-vect-stmts.c (vectorizable_call): Likewise.
17572
17573 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
17574
17575         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
17576         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
17577         * config/stormy16/stormy16-protos.h
17578         (xstormy16_preferred_reload_class): Remove.
17579         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
17580         static. Change 'rclass' argument and return type to reg_class_t.
17581         (TARGET_PREFERRED_RELOAD_CLASS,
17582         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
17583
17584 2011-02-24  Richard Guenther  <rguenther@suse.de>
17585
17586         * lto-streamer-in.c (input_bb): Do not find referenced vars
17587         in debug statements.
17588
17589 2011-02-23  Jason Merrill  <jason@redhat.com>
17590
17591         * common.opt (fabi-version): Document v5 and v6.
17592
17593 2011-02-23  Richard Guenther  <rguenther@suse.de>
17594
17595         PR tree-optimization/47849
17596         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
17597
17598 2011-02-23  Jie Zhang  <jie@codesourcery.com>
17599
17600         * opts-common.c (decode_cmdline_option): Print empty string
17601         argument as "" in decoded->orig_option_with_args_text.
17602         * gcc.c (execute): Print empty string argument as ""
17603         in the verbose output.
17604         (do_spec_1): Keep empty string argument.
17605
17606 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
17607
17608         * config.gcc: Declare score-* and crx-* obsolete.
17609
17610 2011-02-23  Jie Zhang  <jie@codesourcery.com>
17611
17612         PR rtl-optimization/47763
17613         * web.c (web_main): Ignore naked clobber when replacing register.
17614
17615 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
17616
17617         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
17618         Remove.
17619
17620 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
17621
17622         PR doc/47848
17623         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
17624
17625 2011-02-22  Mike Stump  <mikestump@comcast.net>
17626
17627         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
17628         assembler.
17629         * configure: Regenerate.
17630
17631 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
17632
17633         PR rtl-optimization/46002
17634         * ira-color.c (update_copy_costs): Change class intersection
17635         test to reg_class_contents[] test of 'hard_regno'.
17636
17637 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
17638
17639         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
17640         than Driver option.
17641         * config/hpux11.opt (mt): Likewise.
17642         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
17643         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
17644         * config/vax/elf.opt (mno-asm-pic): Likewise.
17645         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
17646
17647 2011-02-21  Mike Stump  <mikestump@comcast.net>
17648
17649         PR target/47822
17650         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
17651         tree so we can get save the type.
17652         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
17653         for CFString instead of trying to use past the end of the builtins.
17654         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
17655         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
17656         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
17657         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
17658         Rename to darwin_builtin_cfstring.
17659         (darwin_init_cfstring_builtins): Return the built type.
17660
17661 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
17662
17663         PR target/47840
17664         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
17665         (_mm256_insert_epi64): Use _mm_insert_epi64.
17666
17667 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
17668
17669         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17670         * config/stormy16/stormy16-protos.h
17671         (xstormy16_mode_dependent_address_p): Remove.
17672         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
17673         Make static. Change return type to bool. Change argument type to
17674         const_rtx. Remove dead code.
17675         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17676
17677 2011-02-21  Richard Guenther  <rguenther@suse.de>
17678
17679         PR lto/47820
17680         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
17681         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
17682         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
17683         TUs context.
17684         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
17685         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
17686
17687 2011-02-20  Richard Guenther  <rguenther@suse.de>
17688
17689         PR lto/47822
17690         * tree.c (free_lang_data_in_decl): Clean builtins from
17691         the TU decl BLOCK_VARS.
17692
17693 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
17694
17695         PR debug/47620
17696         PR debug/47630
17697         * haifa-sched.c (fix_tick_ready): Skip tick computation
17698         for debug insns.
17699
17700 2011-02-19  Richard Guenther  <rguenther@suse.de>
17701
17702         PR lto/47647
17703         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
17704         Remove lazy BLOCK_VARS streaming.
17705         (lto_input_ts_block_tree_pointers): Likewise.
17706         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
17707
17708 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
17709
17710         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
17711
17712 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
17713
17714         * config/i386/biarch32.h, config/i386/mach.h,
17715         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
17716
17717 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
17718
17719         PR target/47800
17720         * config/i386/i386.md (peephole2 for shift and plus): Use
17721         operands[1] original mode in the first insn.
17722
17723 2011-02-18  Mike Stump  <mikestump@comcast.net>
17724
17725         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
17726
17727 2011-02-18  Jan Hubicka  <jh@suse.cz>
17728
17729         PR middle-end/47788
17730         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
17731         to zero when the function is not inlinable at all.
17732
17733 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17734
17735         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
17736         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
17737         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
17738         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
17739         * config/pa/t-pa64: Likewise.
17740         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
17741
17742 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
17743
17744         PR driver/47787
17745         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
17746
17747 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17748
17749         PR target/47792
17750         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
17751
17752 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
17753
17754         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
17755         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
17756         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
17757         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
17758         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
17759         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
17760         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
17761         m32r_load_postinc_p, m32r_store_preinc_predec_p,
17762         m32r_legitimate_address_p): New functions.
17763         * config/m32r/constraints.md (constraint "S"): Don't use
17764         STORE_PREINC_PREDEC_P.
17765         (constraint "U"): Don't use LOAD_POSTINC_P.
17766
17767 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
17768
17769         PR rtl-optimization/46178
17770         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
17771         compute ira_hard_regno_cover_class[].
17772
17773 2011-02-18  Richard Guenther  <rguenther@suse.de>
17774
17775         PR lto/47798
17776         * lto-streamer.h (lto_global_var_decls): Declare.
17777         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
17778         statics for global var processing.
17779
17780 2011-02-18  Richard Guenther  <rguenther@suse.de>
17781
17782         PR tree-optimization/47737
17783         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
17784         edge dominance check.
17785
17786 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
17787
17788         PR debug/47780
17789         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
17790         avoid invalid rtx sharing.
17791
17792 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
17793
17794         * doc/cpp.texi (Obsolete Features): Add background on the
17795         origin of assertions.
17796
17797 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
17798
17799         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
17800         objc_abi == 2.
17801         * config/darwin.c (output_objc_section_asm_op): Added support for
17802         ABI v1 and v2.
17803         (is_objc_metadata): New.
17804         (darwin_objc2_section): New.
17805         (darwin_objc1_section): New.
17806         (machopic_select_section): Added support for ABI v1 and v2.
17807         (darwin_emit_objc_zeroed): New.
17808         (darwin_output_aligned_bss): Detect objc metadata and treat it
17809         appropriately.
17810         (darwin_asm_output_aligned_decl_common): Same.
17811         (darwin_asm_output_aligned_decl_local): Same.
17812         * config/darwin-sections.def: Updated for ABI v1 and v2.
17813         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
17814         compiling Objective-C code for the NeXT runtime, default to using
17815         ABI version 0 for 32-bit, and version 2 for 64-bit.
17816
17817 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17818
17819         * common.opt (optimize_fast): New Variable.
17820         * opts.c (default_options_optimization): Use opts->x_optimize_fast
17821         instead of local variable ofast.
17822
17823 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
17824
17825         * doc/invoke.texi (fobjc-abi-version): Documented.
17826         (fobjc-nilcheck): Documented.
17827         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
17828         version.
17829
17830 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17831
17832         PR driver/47390
17833         * common.opt (export-dynamic): New Driver option.
17834         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
17835
17836 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17837
17838         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
17839
17840 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
17841             Jan Hubicka  <jh@suse.cz>
17842
17843         PR debug/47106
17844         PR debug/47402
17845         * cfgexpand.c (account_used_vars_for_block): Remove.
17846         (estimated_stack_frame_size): Use referenced vars.
17847         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
17848         that were referenced in the original function.  Test src_fn
17849         rather than cfun.  Drop redundant get_var_ann.
17850         (setup_one_parameter): Drop redundant get_var_ann.
17851         (declare_return_variable): Likewise.
17852         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
17853         (copy_arguments_for_versioning): Drop redundant get_var_ann.
17854         * ipa-inline.c (compute_inline_parameters): Do not compute
17855         disregard_inline_limits here.
17856         (compute_inlinable_for_current, pass_inlinable): New.
17857         (pass_inline_parameters): Require PROP_referenced_vars.
17858         * cgraphunit.c (cgraph_process_new_functions): Don't run
17859         compute_inline_parameters explicitly unless function is in SSA form.
17860         (cgraph_analyze_function): Set .disregard_inline_limits.
17861         * tree-sra.c (convert_callers): Compute inliner parameters
17862         only for functions already in SSA form.
17863
17864 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17865
17866         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
17867         -mlittle-endian-data.
17868
17869 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17870
17871         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
17872         -mno-fpu, not -fpu and -no-fpu.
17873         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
17874         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
17875
17876 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
17877
17878         PR target/43653
17879         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
17880         input reload with PLUS RTX.
17881
17882 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17883
17884         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
17885         of InverseVar(MDMX).
17886
17887 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17888
17889         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
17890         --m4-340.
17891
17892 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17893
17894         * config/mn10300/mn10300.opt (mno-crt0): New.
17895
17896 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17897
17898         * config/m68k/uclinux.opt (static-libc): New Driver option.
17899
17900 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17901
17902         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
17903
17904 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17905
17906         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
17907         %{muser-extend-enabled}.
17908
17909 2011-02-16  Richard Guenther  <rguenther@suse.de>
17910
17911         PR tree-optimization/47738
17912         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
17913         the TODO from tree_predictive_commoning.
17914
17915 2011-02-15  Jeff Law  <law@redhat.com>
17916
17917         Revert
17918         2011-01-25  Jeff Law  <law@redhat.com>
17919
17920         PR rtl-optimization/37273
17921         * ira-costs.c (scan_one_insn): Detect constants living in memory and
17922         handle them like argument loads from stack slots.  Do not double
17923         count memory for memory constants and argument loads from stack slots.
17924
17925 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
17926
17927         PR middle-end/47725
17928         * combine.c (cant_combine_insn_p): Revert the last change.
17929
17930 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
17931
17932         PR target/47755
17933         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
17934         mode for vector constants.  Remove code that checks for TImode.
17935
17936 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17937
17938         PR debug/47106
17939         PR debug/47402
17940         * cgraph.h (compute_inline_parameters): Return void.
17941         * ipa-inline.c (compute_inline_parameters): Adjust.
17942
17943 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17944
17945         PR debug/47106
17946         PR debug/47402
17947         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
17948         rather than decl.
17949         * cfgexpand.c (estimated_stack_frame_size): Likewise.
17950         * ipa-inline.c (compute_inline_parameters): Adjust.
17951
17952 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17953
17954         PR debug/47106
17955         PR debug/47402
17956         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
17957         Adjust all users.  Pass FN to...
17958         * tree-flow-inline.h (first_referenced_var): ... this.  Add
17959         fn argument.
17960         * ipa-struct-reorg.c: Adjust.
17961         * tree-dfa.c: Adjust.
17962         * tree-into-ssa.c: Adjust.
17963         * tree-sra.c: Adjust.
17964         * tree-ssa-alias.c: Adjust.
17965         * tree-ssa-live.c: Adjust.
17966         * tree-ssa.c: Adjust.
17967         * tree-ssanames.c: Adjust.
17968         * tree-tailcall.c: Adjust.
17969
17970 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17971
17972         PR debug/47106
17973         PR debug/47402
17974         * tree-flow.h (referenced_var_lookup): Add fn parameter.
17975         Adjust all callers.
17976         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
17977         * tree-flow-inline.h: Adjust.
17978         * gimple-pretty-print.c: Adjust.
17979         * tree-into-ssa.c: Adjust.
17980         * tree-ssa.c: Adjust.
17981         * cfgexpand.c: Adjust.
17982
17983 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
17984
17985         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
17986         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17987         (EXTRA_CONSTRAINT): Delete.
17988         * config/iq2000/constraints.md: New file.
17989         * config/iq2000/iq2000.md: Include it.
17990         (define_insn ""): Delete.
17991         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
17992         unsupported constraint letters from patterns.
17993         (call_value, call_value_internal1): Likewise.
17994         (call_value_multiple_internal1): Likewise.
17995
17996 2011-02-15  Nick Clifton  <nickc@redhat.com>
17997
17998         * config/mn10300/mn10300.c: Include tm-constrs.h.
17999         (struct liw_data): New data structure describing an LIW candidate
18000         instruction.
18001         (extract_bundle): Use struct liw_data.  Allow small integer
18002         operands for some instructions.
18003         (check_liw_constraints): Use struct liw_data.  Remove swapped
18004         parameter.  Add comments describing the checks.  Fix bug when
18005         assigning the source of liw1 to the source of liw2.
18006         (liw_candidate): Delete.  Code moved into extract_bundle.
18007         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
18008         before swapping.
18009         * config/mn10300/predicates.md (liw_operand): New predicate.
18010         Allows registers and small integer constants.
18011         * config/mn10300/constraints.md (O): New constraint.  Accetps
18012         integers in the range -8 to +7 inclusive.
18013         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
18014         for moving a small integer into a register.  Give this alternative
18015         LIW attributes.
18016         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
18017         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
18018         using the J,K,L and M constraints,
18019         (liw): Remove SI mode on second operands to allow for HI and QI
18020         mode values.
18021         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
18022         instruction.
18023
18024 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
18025
18026         PR middle-end/47725
18027         * combine.c (cant_combine_insn_p): Check zero/sign extended
18028         hard registers.
18029
18030 2011-02-15  Richard Guenther  <rguenther@suse.de>
18031
18032         PR tree-optimization/47743
18033         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
18034         for a non-type-compatible VN lookup bail out.
18035
18036 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
18037
18038         * config/fr30/constraints.md: New file.
18039         * config/fr30/fr30.md: Include it.
18040         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
18041         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18042         (EXTRA_CONSTRAINT): Delete.
18043
18044 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
18045
18046         * config/frv/constraints.md: New file.
18047         * config/frv/predicates.md: Include it.
18048         * config/frv/frv.c (reg_class_from_letter): Delete.
18049         (frv_option_override): Don't initialize it.
18050         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
18051         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
18052         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
18053         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
18054         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
18055         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18056         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
18057         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
18058         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
18059         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
18060         (REG_CLASS_FROM_CONSTRAINT): Delete.
18061
18062 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
18063
18064         PR middle-end/47581
18065         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
18066         if frame size is 0 in a leaf function.
18067
18068 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18069
18070         PR pch/14940
18071         * config/alpha/host-osf.c: New file.
18072         * config/alpha/x-osf: New file.
18073         * config.host (alpha*-dec-osf*): Use it.
18074
18075 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
18076
18077         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18078         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
18079         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
18080         (rx_mode_dependent_address_p): ...this. Make static. Change argument
18081         type to const_rtx.
18082         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18083
18084 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
18085
18086         * config/stormy16/constraints.md: New file.
18087         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
18088         Use satisfies_constraint_Q and satisfies_constraint_R.
18089         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
18090         Delete.
18091         (xstormy16_legitiamte_address_p): Declare.
18092         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
18093         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18094         (EXTRA_CONSTRAINT): Delete.
18095         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
18096         Un-staticize.
18097         (xstormy16_extra_constraint_p): Delete.
18098
18099 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
18100
18101         PR tree-optimization/46494
18102         * loop-unroll.c (split_edge_and_insert): Adjust comment.
18103         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
18104         (pass_rtl_loop_done): Add TODO_verify_flow.
18105         * fwprop.c (pass_rtl_fwprop): Likewise.
18106         * modulo-sched.c (pass_sms): Likewise.
18107         * tree-ssa-dom.c (pass_dominator): Likewise.
18108         * tree-ssa-loop-ch.c (pass_ch): Likewise.
18109         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
18110         (pass_tree_loop_done): Likewise.
18111         * tree-ssa-pre.c (execute_pre): Likewise.
18112         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
18113         * tree-ssa-sink.c (pass_sink_code): Likewise.
18114         * tree-vrp.c (pass_vrp): Likewise.
18115
18116 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
18117
18118         * config/v850/constraints.md: New file.
18119         * config/v850/v850.md: Include it.
18120         * config/v850/predicates.md (reg_or_0_operand): Use
18121         satisfies_constraint_G.
18122         (special_symbolref_operand): Use satisfies_constraint_K.
18123         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
18124         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
18125         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
18126         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
18127         (EXTRA_CONSTRAINT): Delete.
18128         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
18129         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
18130         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
18131
18132 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
18133
18134         PR target/47696
18135         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
18136         description.
18137
18138 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
18139
18140         * config/mcore/constraints.md: New file.
18141         * config/mcore/mcore.md: Include it.
18142         * config/mcore/mcore.c (reg_class_from_letter): Delete.
18143         * config/mcore/mcore.h (reg_class_from_letter): Delete.
18144         (REG_CLASS_FROM_LETTER): Delete.
18145         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
18146         insn_const_int_ok_for_constraint.
18147         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
18148         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
18149         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18150         (EXTRA_CONSTRAINT): Delete.
18151
18152 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18153
18154         PR ada/41929
18155         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
18156         (IS_SIGHANDLER): Define.
18157         (sparc64_is_sighandler): New function, split off from
18158         sparc64_fallback_frame_state.
18159         (sparc_is_sighandler): New function, split off from
18160         sparc_fallback_frame_state.
18161         (sparc64_fallback_frame_state): Merge with ...
18162         (sparc_fallback_frame_state): ... this into ...
18163         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
18164         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
18165         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
18166         stack instead of hardcoded offsets.
18167
18168 2011-02-14  Andriy Gapon  <avg@freebsd.org>
18169
18170         PR target/45808
18171         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
18172
18173 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18174
18175         * configure: Regenerate.
18176
18177 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
18178
18179         PR driver/45731
18180         * gcc.c (asm_options): Correct spec matching --target-help.
18181
18182 2011-02-12  Martin Jambor  <mjambor@suse.cz>
18183
18184         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
18185         to gimple call error.
18186
18187 2011-02-12  Mike Stump  <mikestump@comcast.net>
18188
18189         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
18190         comments in backslash regions.
18191
18192 2011-02-12  Mike Stump  <mikestump@comcast.net>
18193             Jakub Jelinek  <jakub@redhat.com>
18194             Iain Sandoe  <iains@gcc.gnu.org>
18195
18196         PR target/47324
18197         * dwarf2out.c (output_cfa_loc): When required, apply the
18198         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
18199         (output_loc_sequence): Likewise.
18200         (output_loc_operands_raw): Likewise.
18201         (output_loc_sequence_raw): Likewise.
18202         (output_cfa_loc): Likewise.
18203         (output_loc_list): Suppress register number adjustment when
18204         calling output_loc_sequence()
18205         (output_die): Likewise.
18206
18207 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
18208
18209         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18210         Remove macros.
18211         * config/xtensa/xtensa.c (xtensa_register_move_cost,
18212         xtensa_memory_move_cost): New functions.
18213         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
18214
18215 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
18216
18217         PR lto/47225
18218         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
18219         in the current directory.
18220         * configure: Rebuilt.
18221
18222 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
18223
18224         * config/darwin.c (darwin_override_options): Add a hunk missed
18225         from the commit of r168571.  Trim comment line lengths and
18226         correct indents of the preceding block.
18227
18228 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
18229
18230         * gcc.c (driver_handle_option): Concatenate the argument to -F with
18231         the switch.
18232
18233 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
18234
18235         * common.opt (nostartfiles): New Driver option.
18236
18237 2011-02-11  Xinliang David Li  <davidxl@google.com>
18238
18239         PR tree-optimization/47707
18240         * tree-chrec.c (convert_affine_scev): Keep type precision.
18241
18242 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
18243
18244         PR tree-optimization/47420
18245         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
18246
18247 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
18248
18249         PR rtl-optimization/47614
18250         * rtl.h (check_for_inc_dec): Declare.
18251         * dse.c (check_for_inc_dec): Externalize...
18252         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
18253         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
18254
18255 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
18256
18257         PR driver/47678
18258         * gcc.c (main): Do not compile inputs if there were errors in
18259         option handling.
18260         * opts-common.c (read_cmdline_option): Check for wrong language
18261         after other error checks.
18262
18263 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
18264
18265         * cgraph.c: Fix comment typos.
18266         * cgraph.h: Likewise.
18267         * cgraphunit.c: Likewise.
18268         * ipa-cp.c: Likewise.
18269         * ipa-inline.c: Likewise.
18270         * ipa-prop.c: Likewise.
18271         * ipa-pure-const.c: Likewise.
18272         * ipa-ref.c: Likewise.
18273         * ipa-reference.c: Likewise.
18274
18275 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
18276
18277         PR debug/47684
18278         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
18279
18280 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18281
18282         PR testsuite/47400
18283         * doc/sourcebuild.texi (Require Support): Document
18284         dg-require-ascii-locale.
18285
18286 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
18287
18288         * doc/lto.texi (Write summary): Fix missing parentheses.
18289
18290 2011-02-10  DJ Delorie  <dj@redhat.com>
18291
18292         * config/m32c/m32c.c (m32c_option_override): Disable
18293         -fcombine-stack-adjustments until flag value tracking and compare
18294         optimization can be rewritten.
18295
18296 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
18297
18298         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
18299         PROCESSOR_POWER7.
18300         (PROCESSOR_DEFAULT64): Likewise.
18301
18302 2011-02-10  Richard Henderson  <rth@redhat.com>
18303
18304         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
18305         change from 2011-02-03.
18306         * config/rx/rx.c (flags_from_code): Likewise.
18307         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
18308         is valid, n/pz otherwise.
18309         (rx_select_cc_mode): Return CCmode if Y is not zero.
18310
18311 2011-02-10  Richard Guenther  <rguenther@suse.de>
18312
18313         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
18314
18315 2011-02-10  Richard Guenther  <rguenther@suse.de>
18316
18317         PR tree-optimization/47677
18318         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
18319
18320 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
18321
18322         PR target/47665
18323         * combine.c (make_compound_operation): Only change shifts into
18324         multiplication for SCALAR_INT_MODE_P.
18325
18326 2011-02-10  Jie Zhang  <jie@codesourcery.com>
18327
18328         PR testsuite/47622
18329         Revert
18330         2011-02-05  Jie Zhang  <jie@codesourcery.com>
18331         PR debug/42631
18332         * web.c (entry_register): Don't clobber the number of the
18333         first uninitialized reference in used[].
18334
18335 2011-02-09  Richard Guenther  <rguenther@suse.de>
18336
18337         PR tree-optimization/47664
18338         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
18339         all edges again.
18340
18341 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
18342
18343         PR target/46481
18344         PR target/47032
18345         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
18346         PROCESSOR_POWER7.
18347         (PROCESSOR_DEFAULT64): Same.
18348         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
18349
18350 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18351
18352         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
18353
18354 2011-02-09  Martin Jambor  <mjambor@suse.cz>
18355
18356         PR middle-end/45505
18357         * tree-sra.c (struct access): New flags grp_scalar_read and
18358         grp_scalar_write.  Changed description of assignment read and write
18359         flags.
18360         (dump_access): Dump new flags, reorder all of them.
18361         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
18362         to detect multiple scalar reads.
18363         (analyze_access_subtree): Use the new scalar read write flags instead
18364         of the old flags.  Adjusted comments.
18365
18366 2011-02-08  DJ Delorie  <dj@redhat.com>
18367
18368         PR target/47548
18369         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
18370         patterns.
18371
18372 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18373
18374         * config/m68k/uclinux.opt: New.
18375         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
18376
18377 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18378
18379         * config/cris/elf.opt (sim): New Driver option.
18380
18381 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18382
18383         * config/xtensa/elf.opt: New.
18384         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
18385
18386 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18387
18388         * config/vax/elf.opt: New.
18389         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
18390
18391 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18392
18393         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
18394
18395 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18396
18397         * config/gnu-user.opt: New.
18398         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
18399         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
18400         *-*-uclinux*): Use gnu-user.opt.
18401
18402 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
18403
18404         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
18405         * config/i386/gnu.h (CPP_SPEC): Likewise.
18406
18407 2011-02-08  Ian Lance Taylor  <iant@google.com>
18408
18409         * common.opt (fcx-limited-range): Add SetByCombined flag.
18410         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
18411         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
18412         (fassociative-math, freciprocal-math): Likewise.
18413         (funsafe-math-optimizations): Likewise.
18414         * opth-gen.awk: Handle SetByCombined.
18415         * optc-gen.awk: Likewise.
18416         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
18417         (set_unsafe_math_optimizations_flags): Likewise.
18418         * doc/options.texi (Option properties): Document SetByCombined.
18419
18420 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
18421
18422         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
18423         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
18424         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
18425         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
18426         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
18427
18428 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
18429
18430         PR tree-optimization/46834
18431         PR tree-optimization/46994
18432         PR tree-optimization/46995
18433         * graphite-sese-to-poly.c (used_outside_reduction): New.
18434         (detect_commutative_reduction): Call used_outside_reduction.
18435         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
18436         translate_scalar_reduction_to_array only when at least one
18437         loop-phi/close-phi tuple has been detected.
18438
18439 2011-02-08  Richard Guenther  <rguenther@suse.de>
18440
18441         PR middle-end/47639
18442         * tree-vect-generic.c (expand_vector_operations_1): Update
18443         stmts here ...
18444         (expand_vector_operations): ... not here.  Cleanup EH info
18445         and the CFG if required.
18446
18447 2011-02-08  Richard Guenther  <rguenther@suse.de>
18448
18449         PR tree-optimization/47641
18450         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
18451         require type compatibility.
18452
18453 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18454
18455         * gimple-low.c (lower_function_body): Don't remove the location of
18456         the return statement here.
18457         (lower_gimple_return): Do it here instead but only if the return
18458         statement is actually used twice.
18459
18460 2011-02-08  Richard Guenther  <rguenther@suse.de>
18461
18462         PR tree-optimization/47632
18463         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
18464         unused up_to_stmt parameter, return whether cfg-cleanup is
18465         necessary, remove EH info properly.
18466         (forward_propagate_into_gimple_cond): Adjust caller.
18467         (forward_propagate_into_cond): Likewise.
18468         (forward_propagate_comparison): Likewise.
18469         (tree_ssa_forward_propagate_single_use_vars): Make
18470         forward_propagate_comparison case similar to the two others.
18471
18472 2011-02-08  Nick Clifton  <nickc@redhat.com>
18473
18474         * config/mn10300/mn10300.opt (mliw): New command line option.
18475         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
18476         (liw_bundling): New automaton.
18477         (liw): New attribute.
18478         (liw_op): New attribute.
18479         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
18480         (movsi_internal): Add LIW attributes.
18481         (andsi3): Likewise.
18482         (iorsi3): Likewise.
18483         (xorsi3): Likewise.
18484         (addsi3): Separate register and immediate alternatives.
18485         Add LIW attributes.
18486         (subsi3): Likewise.
18487         (cmpsi): Likewise.
18488         (aslsi3): Likewise.
18489         (lshrsi3): Likewise.
18490         (ashrsi3): Likewise.
18491         (liw): New pattern.
18492         * config/mn10300/mn10300.c (liw_op_names): New
18493         (mn10300_print_operand): Handle 'W' operand descriptor.
18494         (extract_bundle): New function.
18495         (check_liw_constraints): New function.
18496         (liw_candidate): New function.
18497         (mn10300_bundle_liw): New function.
18498         (mn10300_reorg): New function.
18499         (TARGET_MACHINE_DEPENDENT_REORG): Define.
18500         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
18501         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
18502         __LIW__ or __NO_LIW__.
18503         * doc/invoke.texi: Describe the -mliw command line option.
18504
18505 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18506
18507         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
18508         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
18509         pthread_mutex_unlock): Remove.
18510         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
18511         * config/pa/t-pa64: Likewise.
18512         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
18513         shared libc if not linking against libpthread.
18514         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
18515
18516 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
18517
18518         PR target/47558
18519         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
18520         on 10.6 and later to ensure that we always use the unwinder from
18521         the system.  Only add -no_compact_unwind when tarteting darwin
18522         10.6 or later.
18523
18524 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
18525
18526         PR target/46997
18527         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
18528         (vec_interleave_lowv2sf): Ditto.
18529         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
18530         (vec_extract_oddv2sf): Ditto.
18531
18532 2011-02-07  Mike Stump  <mikestump@comcast.net>
18533
18534         PR target/42333
18535         Add __ieee_divdc3 entry point.
18536         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
18537         entry point.
18538         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
18539         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
18540         * config/darwin.c (darwin_rename_builtins): Add.
18541         * config/darwin-protos.h (darwin_rename_builtins): Add.
18542
18543 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
18544
18545         PR target/47636
18546         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
18547         for the condition.
18548
18549 2011-02-07  Mike Stump  <mikestump@comcast.net>
18550
18551         * config/darwin.opt (mmacosx-version-min): Update default OS version.
18552
18553 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
18554
18555         PR target/47534
18556         * config/avr/libgcc.S (exit): Move .endfunc
18557
18558 2011-02-07  Richard Guenther  <rguenther@suse.de>
18559
18560         PR tree-optimization/47615
18561         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
18562         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
18563         (run_scc_vn): Initialize it.
18564         (visit_reference_op_load): Use it.
18565         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
18566
18567 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18568
18569         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
18570         DImode trapping arithmetic libfuncs.
18571
18572 2011-02-07  Richard Guenther  <rguenther@suse.de>
18573
18574         PR tree-optimization/47621
18575         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
18576         two duplicates ...
18577         (execute_update_addresses_taken): ... here.  Make it more
18578         conservative in what we accept.
18579
18580 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
18581
18582         * config/sparc/freebsd.h (ASM_SPEC): Define.
18583         * config/sparc/vxworks.h (ASM_SPEC): Define.
18584
18585 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
18586
18587         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
18588
18589 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
18590
18591         * doc/invoke.texi: Remove reference to compiler internals from
18592         user documentation.
18593
18594         * reg-notes.def: Remove REG_VALUE_PROFILE.
18595         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
18596
18597 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
18598
18599         PR middle-end/47610
18600         * varasm.c (default_section_type_flags): If decl is NULL,
18601         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
18602
18603 2011-02-05  Jie Zhang  <jie@codesourcery.com>
18604
18605         PR debug/42631
18606         * web.c (entry_register): Don't clobber the number of the
18607         first uninitialized reference in used[].
18608
18609 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
18610
18611         PR tree-optimization/46194
18612         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
18613         (build_classic_dist_vector_1): Do not represent classic distance
18614         vectors when the access functions are variating in different loops.
18615
18616 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18617
18618         * config/mips/iris6.opt: New.
18619         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
18620
18621 2011-02-04  Richard Henderson  <rth@redhat.com>
18622             Steve Ellcey  <sje@cup.hp.com>
18623
18624         PR target/46997
18625         * config/ia64/predicates.md (mux1_brcst_element): New.
18626         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
18627         * config/ia64/ia64.c (ia64_unpack_assemble): New.
18628         (ia64_unpack_sign): New.
18629         (ia64_expand_unpack): Rewrite using new routines.
18630         (ia64_expand_widen_sum): Ditto.
18631         (ia64_expand_dot_prod_v8qi): Ditto.
18632         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
18633         routines, add endian check.
18634         (pmpy2_even): Rename from pmpy2_r, add endian check.
18635         (pmpy2_odd): Rename from pmpy2_l, add endian check.
18636         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
18637         (vec_widen_smult_hi_v4hi): Ditto.
18638         (vec_widen_umult_lo_v4hi): Ditto.
18639         (vec_widen_umult_hi_v4hi): Ditto.
18640         (mulv2si3): Change endian checks.
18641         (sdot_prodv4hi): Rewrite with new calls.
18642         (udot_prodv4hi): New.
18643         (vec_pack_ssat_v4hi): Add endian check.
18644         (vec_pack_usat_v4hi): Ditto.
18645         (vec_pack_ssat_v2si): Ditto.
18646         (max1_even): Rename from max1_r, add endian check.
18647         (max1_odd): Rename from max1_l, add endian check.
18648         (*mux1_rev): Format change.
18649         (*mux1_mix): Ditto.
18650         (*mux1_shuf): Ditto.
18651         (*mux1_alt): Ditto.
18652         (*mux1_brcst_v8qi): Use new predicate.
18653         (vec_extract_evenv8qi): Remove endian check.
18654         (vec_extract_oddv8qi): Ditto.
18655         (vec_interleave_lowv4hi): Format change.
18656         (vec_interleave_highv4hi): Ditto.
18657         (mix2_even): Rename from mix2_r, add endian check.
18658         (mix2_odd): Rename from mux2_l, add endian check.
18659         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
18660         (vec_extract_evenodd_helper): Format change.
18661         (vec_extract_evenv4hi): Remove endian check.
18662         (vec_extract_oddv4hi): Remove endian check.
18663         (vec_interleave_lowv2si): Format change.
18664         (vec_interleave_highv2si): Format change.
18665         (vec_initv2si): Remove endian check.
18666         (vecinit_v2si): Add endian check.
18667         (reduc_splus_v2sf): Add endian check.
18668         (reduc_smax_v2sf): Ditto.
18669         (reduc_smin_v2sf): Ditto.
18670         (vec_initv2sf): Remove endian check.
18671         (fpack): Add endian check.
18672         (fswap): Add endian check.
18673         (vec_interleave_highv2sf): Add endian check.
18674         (vec_interleave_lowv2sf): Add endian check.
18675         (fmix_lr): Add endian check.
18676         (vec_setv2sf): Format change.
18677         (*vec_extractv2sf_0_be): Use shift to extract operand.
18678         (*vec_extractv2sf_1_be): New.
18679         (vec_pack_trunc_v4hi): Add endian check.
18680         (vec_pack_trunc_v2si): Format change.
18681
18682 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
18683
18684         PR inline-asm/23200
18685         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
18686         do bb, locus and block comparison and disallow loads if it is not set.
18687         (stmt_is_replaceable_p): New function.
18688         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
18689         callers.
18690         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
18691         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
18692         SSA_NAME_DEF_STMT.
18693         * tree-flow.h (stmt_is_replaceable_p): New prototype.
18694
18695 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18696
18697         * config/rs6000/xilinx.opt: New.
18698         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
18699
18700 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18701
18702         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
18703
18704 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
18705
18706         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
18707         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
18708         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
18709         secondary_reload_info, xtensa_secondary_reload): Remove.
18710         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
18711         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
18712         (xtensa_preferred_reload_class): Make static. Change return and
18713         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
18714         Use CONST_DOUBLE_P predicate.
18715         (xtensa_preferred_output_reload_class): New function.
18716         (xtensa_secondary_reload): Make static.
18717
18718 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
18719
18720         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
18721         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
18722         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
18723
18724 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18725
18726         PR middle-end/31490
18727         * output.h (SECTION_RELRO): Define.
18728         (SECTION_MACH_DEP): Adjust.
18729         (get_variable_section): New prototype.
18730         * varpool.c (varpool_finalize_named_section_flags): New function.
18731         (varpool_assemble_pending_decls): Call it.
18732         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
18733         * cgraphunit.c (cgraph_output_in_order): Call
18734         varpool_finalize_named_section_flags.
18735         * varasm.c (get_section): Allow section flags conflicts between
18736         relro and read-only sections if the section hasn't been declared yet.
18737         Set SECTION_OVERRIDE after diagnosing section type conflict.
18738         (get_variable_section): No longer static.
18739         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
18740         readonly sections that need relocations.
18741         (decl_readonly_section_1): New function.
18742         (decl_readonly_section): Use it.
18743
18744         Revert:
18745         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
18746                     Steve Ellcey  <sje@cup.hp.com>
18747
18748         PR middle-end/31490
18749         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
18750         if section attribute used.
18751
18752 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18753
18754         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
18755         * config/darwin.c (SECTION_NO_ANCHOR): Define.
18756         (darwin_init_sections): Remove assertion.
18757
18758 2011-02-03  Nick Clifton  <nickc@redhat.com>
18759
18760         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
18761         lt and ge.
18762         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
18763         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
18764         instead of "n" and "pz".
18765         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
18766         CC_FLAG_S.
18767
18768 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18769
18770         PR target/47312
18771         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
18772         fma, expand FMA_EXPR as fma{,f,l} call.
18773
18774         PR lto/47274
18775         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
18776         copy them into a unsigned char variable and pass address of it to
18777         lto_output_data_stream.
18778
18779         PR target/47564
18780         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
18781         around backend_init_target and lang_dependent_init_target calls.
18782         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
18783         (verify_cgraph_node): Don't call set_cfun here.  Use
18784         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
18785         Set error_found for incorrectly represented calls to thunks.
18786
18787 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
18788
18789         PR debug/43092
18790         PR rtl-optimization/43494
18791         * rtl.h (for_each_inc_dec_fn): New type.
18792         (for_each_inc_dec): Declare.
18793         * rtlanal.c (struct for_each_inc_dec_ops): New type.
18794         (for_each_inc_dec_find_inc_dec): New fn.
18795         (for_each_inc_dec_find_mem): New fn.
18796         (for_each_inc_dec): New fn.
18797         * dse.c (struct insn_size): Remove.
18798         (replace_inc_dec, replace_inc_dec_mem): Remove.
18799         (emit_inc_dec_insn_before): New fn.
18800         (check_for_inc_dec): Use it, along with for_each_inc_dec.
18801         (canon_address): Pass mem modes to cselib_lookup.
18802         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
18803         (cselib_lookup_from_insn): Likewise.
18804         (cselib_subst_to_values): Likewise.
18805         * cselib.c (find_slot_memmode): New var.
18806         (cselib_find_slot): New fn.  Use it instead of
18807         htab_find_slot_with_hash everywhere.
18808         (entry_and_rtx_equal_p): Use find_slot_memmode.
18809         (autoinc_split): New fn.
18810         (rtx_equal_for_cselib_p): Rename and implement in terms of...
18811         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
18812         Deal with autoinc.  Special-case recursion into MEMs.
18813         (cselib_hash_rtx): Likewise.
18814         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
18815         address and MEM modes.
18816         (cselib_subst_to_values): Add memmode, pass it on.
18817         Deal with autoinc.
18818         (cselib_lookup): Add memmode argument, pass it on.
18819         (cselib_lookup_from_insn): Add memmode.
18820         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
18821         (struct cselib_record_autoinc_data): New.
18822         (cselib_record_autoinc_cb): New fn.
18823         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
18824         mode to cselib_lookup.  Reset autoinced REGs here instead of...
18825         (cselib_process_insn): ... here.
18826         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
18827         to cselib_lookup.
18828         (add_uses): Likewise, also to cselib_subst_to_values.
18829         (add_stores): Likewise.
18830         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
18831         cselib_subst_to_values.
18832         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
18833         * gcse.c (do_local_cprop): Adjusted.
18834         * postreload.c (reload_cse_simplify_set): Adjusted.
18835         (reload_cse_simplify_operands): Adjusted.
18836         * sel-sched-dump (debug_mem_addr_value): Pass mode.
18837
18838 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
18839
18840         PR tree-optimization/45122
18841         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
18842         unsafe assumptions when there's more than one loop exit.
18843
18844 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
18845
18846         PR target/47272
18847         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
18848         Document using vector double with the load/store builtins, and
18849         that the load/store builtins always use Altivec instructions.
18850
18851         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
18852         to use altivec memory instructions, even on VSX.
18853         (vector_altivec_store_<mode>): Ditto.
18854
18855         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
18856         function.
18857
18858         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
18859         V2DF, V2DI support to load/store overloaded builtins.
18860
18861         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
18862         altivec load/store builtins for V2DF/V2DI types.
18863
18864         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
18865         set avoid indexed addresses on power6 if -maltivec.
18866         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
18867         vector_altivec_load/vector_altivec_store builtins.
18868         (altivec_expand_st_builtin): Ditto.
18869         (altivec_expand_builtin): Add VSX memory builtins.
18870         (rs6000_init_builtins): Add V2DI types to internal types.
18871         (altivec_init_builtins): Add support for V2DF/V2DI altivec
18872         load/store builtins.
18873         (rs6000_address_for_altivec): Insure memory address is appropriate
18874         for Altivec.
18875
18876         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
18877         vec_vsx_ld and vec_vsx_st.
18878         (vsx_store_<mode>): Ditto.
18879
18880         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
18881         variables to hold long long types for VSX vector memory builtins.
18882         (RS6000_BTI_unsigned_long_long): Ditto.
18883         (long_long_integer_type_internal_node): Ditti.
18884         (long_long_unsigned_type_internal_node): Ditti.
18885
18886         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
18887         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
18888         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
18889
18890         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
18891         short cuts.
18892         (vec_vsx_st): Ditto.
18893
18894 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18895
18896         * config/pa/pa-hpux10.opt: New.
18897         * config/hpux11.opt (pthread): New Driver option.
18898         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
18899         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
18900
18901 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18902
18903         * config/ia64/vms.opt: New.
18904         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
18905
18906 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
18907
18908         PR target/47580
18909         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
18910         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
18911         generator functions.
18912         (vsx_floatuns<VSi><mode>2): Ditto.
18913         (vsx_fix_trunc<mode><VSi>2): Ditto.
18914         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
18915
18916 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18917
18918         * config/i386/djgpp.opt (posix): New Driver option.
18919
18920 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
18921
18922         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
18923         Move to the unsupported targets list.
18924
18925 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
18926
18927         PR rtl-optimization/47525
18928         * df-scan.c: Update copyright years.
18929         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
18930         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
18931
18932 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18933
18934         * config/i386/sysv4.h (TARGET_VERSION): Remove.
18935         (SUBTARGET_RETURN_IN_MEMORY): Remove.
18936         (ASM_OUTPUT_ASCII): Remove.
18937         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
18938
18939 2011-02-02  Jeff Law  <law@redhat.com>
18940
18941         PR middle-end/47543
18942         * reload.c (find_reloads_address): Handle reg+d address where both
18943         components are invalid by reloading the entire address.
18944
18945 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
18946             Richard Guenther  <rguenther@suse.de>
18947
18948         PR tree-optimization/40979
18949         PR bootstrap/47044
18950         * passes.c (init_optimization_passes): After LIM call copy_prop
18951         and DCE to clean up.
18952         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
18953
18954 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
18955
18956         PR tree-optimization/47576
18957         PR tree-optimization/47555
18958         * doc/invoke.texi (scev-max-expr-complexity): Documented.
18959         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
18960         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
18961         * tree-scalar-evolution.c (follow_ssa_edge): Use
18962         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
18963
18964 2011-02-02  Richard Guenther  <rguenther@suse.de>
18965
18966         PR tree-optimization/47566
18967         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
18968
18969 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
18970
18971         PR debug/47106
18972         PR debug/47402
18973         * tree-inline.c (declare_return_variable): Remove unused caller
18974         variable.
18975
18976         PR debug/47106
18977         PR debug/47402
18978         * tree-flow-inline.h (clear_is_used, is_used_p): New.
18979         * cfgexpand.c (account_used_vars_for_block): Use them.
18980         * tree-nrv.c (tree_nrv): Likewise.
18981         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
18982         (dump_scope_block): Likewise.
18983         (remove_unused_locals): Likewise.
18984
18985         PR debug/47106
18986         PR debug/47402
18987         * tree-inline.c (declare_return_variable): Add result decl to
18988         local decls only once.
18989         * gimple-low.c (record_vars_into): Mark newly-created variables
18990         as referenced.
18991
18992 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
18993
18994         PR debug/47498
18995         PR debug/47501
18996         PR debug/45136
18997         PR debug/45130
18998         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
18999         debug insns.
19000         (no_real_insns_p, schedule_block, set_priorities): Drop special
19001         treatment of boundary debug insns.
19002         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
19003         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
19004         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19005         (BOUNDARY_DEBUG_INSN_P): Likewise.
19006         (SCHEDULE_DEBUG_INSN_P): Likewise.
19007         * sched-rgn.c (init_ready_list): Drop special treatment of
19008         boundary debug insns.
19009         * final.c (rest_of_clean_state): Clear notes' BB.
19010
19011 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
19012
19013         * config/openbsd.opt (assert=): New Driver option.
19014
19015 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
19016
19017         * config/i386/nto.opt: New.
19018         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
19019
19020 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
19021
19022         * config/i386/netware.opt: New.
19023         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
19024
19025 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
19026
19027         * config/interix.opt (posix): New Driver option.
19028
19029 2011-02-01  DJ Delorie  <dj@redhat.com>
19030
19031         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
19032
19033         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
19034         class for A0/A1.
19035
19036 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
19037
19038         PR tree-optimization/47561
19039         * toplev.c (process_options): Print the Graphite flags.  Add
19040         flag_loop_flatten to the list of options requiring Graphite.
19041
19042 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
19043
19044         * config/i386/cygming.opt (posix): New Driver option.
19045
19046 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
19047
19048         * config/arm/vxworks.opt: New.
19049         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
19050
19051 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
19052
19053         * config/alpha/elf.opt: New.
19054         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
19055         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
19056
19057 2011-02-01  Richard Guenther  <rguenther@suse.de>
19058
19059         PR tree-optimization/47559
19060         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
19061         store-motion on references that can throw.
19062
19063 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
19064
19065         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
19066         * tree-pass.h (TDF_CSELIB): New macro.
19067         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
19068         cselib_lookup): Check for it rather than for TDF_DETAILS.
19069
19070 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
19071
19072         PR driver/47547
19073         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
19074         is HOST_BIT_BUCKET.
19075
19076         * opts.c (finish_options): Don't add x_aux_base_name if it is
19077         HOST_BIT_BUCKET.
19078
19079 2011-02-01  Richard Guenther  <rguenther@suse.de>
19080
19081         PR tree-optimization/47555
19082         Revert
19083         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
19084
19085         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
19086
19087 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
19088
19089         PR gcc/46692
19090         * config/lm32/t-lm32: Add multilib for all CPU options.
19091
19092 2011-02-01  Richard Guenther  <rguenther@suse.de>
19093
19094         PR tree-optimization/47541
19095         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
19096         sure to have a field at offset zero.
19097
19098 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
19099
19100         * config/arc/arc.opt (EB, EL): New Driver options.
19101
19102 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
19103
19104         * config/alpha/osf5.opt: New.
19105         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
19106
19107 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
19108
19109         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
19110
19111 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
19112
19113         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
19114         -floop-interchange.
19115         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
19116         is an alias of -floop-interchange and that it requires the
19117         Graphite infrastructure.
19118         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
19119         flag_loop_interchange based on the value of flag_tree_loop_linear.
19120
19121 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
19122             Richard Guenther  <rguenther@suse.de>
19123
19124         PR tree-optimization/47538
19125         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
19126         type instead of r1type, except for comparisons.  For right
19127         shifts and comparisons punt if there are mismatches in
19128         sizetype vs. non-sizetype types.
19129
19130 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19131
19132         * doc/sourcebuild.texi (Effective-Target Keywords): Document
19133         avx_runtime.
19134
19135 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19136
19137         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
19138         version number.
19139         * configure: Regenerate.
19140
19141 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19142
19143         * configure.ac (gcc_cv_ld_static_option): Define.
19144         (gcc_cv_ld_dynamic_option): Define.
19145         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
19146         instead.
19147         (HAVE_LD_STATIC_DYNAMIC): Update message.
19148         (LD_STATIC_OPTION): Define.
19149         (LD_DYNAMIC_OPTION): Define.
19150         * configure: Regenerate.
19151         * config.in: Regenerate.
19152         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
19153         HAVE_LD_STATIC_DYNAMIC]: Use them.
19154
19155 2011-01-31  Nick Clifton  <nickc@redhat.com>
19156
19157         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
19158         registers inside interrupt handlers if the handler is not a leaf
19159         function.
19160
19161 2011-01-31  Nick Clifton  <nickc@redhat.com>
19162
19163         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
19164         reg_renumber returning an INVALID_REGNUM.
19165
19166 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
19167
19168         PR libgcj/44341
19169         * doc/install.texi: Document host options discarded when cross
19170         configuring target libraries.
19171
19172 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
19173
19174         Reverted:
19175         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
19176         PR debug/45136
19177         PR debug/45130
19178         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
19179         debug insns.
19180         (no_real_insns_p, schedule_block, set_priorities): Drop special
19181         treatment of boundary debug insns.
19182         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
19183         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
19184         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19185         (BOUNDARY_DEBUG_INSN_P): Likewise.
19186         (SCHEDULE_DEBUG_INSN_P): Likewise.
19187         * sched-rgn.c (init_ready_list): Drop special treatment of
19188         boundary debug insns.
19189         * final.c (rest_of_clean-state): Clear notes' BB.
19190
19191 2011-01-31  Alan Modra  <amodra@gmail.com>
19192
19193         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
19194         toc relative expressions as we do in print_operand_address.
19195
19196 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
19197
19198         * doc/extend.texi: Follow spelling conventions.
19199         * doc/invoke.texi: Fix a typo.
19200
19201 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
19202
19203         * config/hpux11.opt: New.
19204         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
19205         ia64*-*-hpux*): Use hpux11.opt.
19206
19207 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
19208
19209         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
19210         to tmake_file.
19211
19212 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
19213
19214         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
19215         support sites.
19216
19217 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
19218
19219         * doc/install.texi (Binaries): Remove outdated reference for
19220         Motorola 68HC11/68HC12 downloads.
19221
19222 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
19223
19224         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
19225         Drepper's paper.
19226
19227 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
19228
19229         PR bootstrap/47147
19230         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
19231         used by NetBSD.
19232
19233 2011-01-28  Ahmad Sharif  <asharif@google.com>
19234
19235         * value-prof.c (check_counter): Corrected error message.
19236
19237 2011-01-29  Jie Zhang  <jie@codesourcery.com>
19238
19239         * config/arm/arm.c (arm_legitimize_reload_address): New.
19240         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
19241         arm_legitimize_reload_address.
19242         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
19243
19244 2011-01-28  Ian Lance Taylor  <iant@google.com>
19245
19246         * godump.c (go_define): Ignore macros whose definitions include
19247         two adjacent operands.
19248
19249 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
19250
19251         PR target/42894
19252         * varasm.c (force_const_mem): Store copy of x in desc->constant
19253         instead of x itself.
19254         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
19255         itself into REG_EQUAL note.
19256
19257 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
19258
19259         * config/freebsd.opt (posix, rdynamic): New Driver options.
19260
19261 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19262
19263         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
19264         -Bstatic/-Bdynamic.
19265         * configure: Regenerate.
19266
19267 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
19268
19269         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
19270         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
19271
19272 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
19273
19274         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
19275         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
19276         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
19277         (s390_preferred_reload_class): Make static. Change return and
19278         'rclass' argument type to reg_class_t.
19279
19280 2011-01-27  Jan Hubicka  <jh@suse.cz>
19281
19282         PR middle-end/46949
19283         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
19284         (process_function_and_variable_attributes): Check defined weakrefs.
19285
19286 2011-01-27  Martin Jambor  <mjambor@suse.cz>
19287
19288         PR tree-optimization/47228
19289         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
19290         build_ref_for_offset.
19291
19292 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19293
19294         * config/spu/spu-elf.h (ASM_SPEC): Remove.
19295
19296 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
19297
19298         PR rtl-optimization/46856
19299         * postreload.c (reload_combine_recognize_const_pattern): Do not
19300         separate cc0 setter and user on cc0 targets.
19301
19302 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
19303
19304         PR c/43082
19305         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
19306         passed a VOID_TYPE expression, immediately emit an error and
19307         return error_mark_node.
19308
19309 2011-01-26  Jeff Law  <law@redhat.com>
19310
19311         PR rtl-optimization/47464
19312         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
19313         rather than may_trap_p as needed.
19314
19315 2011-01-26  DJ Delorie  <dj@redhat.com>
19316
19317         PR rtl-optimization/46878
19318         * combine.c (insn_a_feeds_b): Check for the implicit cc0
19319         setter/user dependency as well.
19320
19321 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
19322
19323         PR rtl-optimization/44469
19324         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
19325         after removing trivially dead basic blocks.
19326
19327 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19328
19329         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
19330         * config/frv/frv.h (LINK_SPEC): Likewise.
19331         * config/i386/netware.h (LINK_SPEC): Likewise.
19332         * config/m68k/linux.h (ASM_SPEC): Likewise.
19333         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
19334         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
19335         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19336         * config/sparc/linux.h (ASM_SPEC): Likewise.
19337         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19338         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19339
19340 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19341
19342         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
19343         * config/frv/frv.h (ASM_SPEC): Likewise.
19344         * config/m68k/linux.h (ASM_SPEC): Likewise.
19345         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
19346         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
19347         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19348         * config/sparc/linux.h (ASM_SPEC): Likewise.
19349         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19350         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19351
19352 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19353
19354         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
19355         * config/frv/frv.h (LINK_SPEC): Likewise.
19356         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
19357
19358 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
19359
19360         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
19361         * config/frv/frv.h (ASM_SPEC): Likewise.
19362         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
19363         * config/m68k/linux.h (ASM_SPEC): Likewise.
19364         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
19365         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
19366         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19367         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
19368         * config/sparc/linux.h (ASM_SPEC): Likewise.
19369         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19370         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19371         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
19372
19373 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
19374
19375         PR target/46997
19376         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
19377         (*mux2): Ditto.
19378         (vec_extract_evenodd_help): Ditto.
19379         (vec_extract_evenv4hi): Ditto.
19380         (vec_extract_oddv4hi): Ditto.
19381         (vec_interleave_lowv2si): Ditto.
19382         (vec_interleave_highv2si): Ditto.
19383         (vec_extract_evenv2si): Ditto.
19384         (vec_extract_oddv2si: Ditto.
19385         (vec_pack_trunc_v2si): Ditto.
19386
19387 2011-01-22  Jan Hubicka  <jh@suse.cz>
19388
19389         PR target/47237
19390         * cgraph.h (cgraph_local_info): New field can_change_signature.
19391         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
19392         signature can change.
19393         (ipcp_estimate_growth): Call sequence simplify only if calle signature
19394         can change.
19395         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
19396         (cgraph_function_versioning): We can not change signature of functions
19397         that don't allow that.
19398         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
19399         (lto_input_node): Likewise.
19400         * ipa-inline.c (compute_inline_parameters): Compute
19401         local.can_change_signature.
19402         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
19403         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
19404         functions that can not change signature.
19405         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
19406         init_cumulative_args): Do not use local calling conventions
19407         for functions that can not change signature.
19408
19409 2011-01-22  Jan Hubicka  <jh@suse.cz>
19410
19411         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
19412
19413 2011-01-26  Richard Guenther  <rguenther@suse.de>
19414
19415         PR tree-optimization/47190
19416         * cgraphunit.c (process_common_attributes): New function.
19417         (process_function_and_variable_attributes): Use it.
19418
19419 2011-01-26  Richard Guenther  <rguenther@suse.de>
19420
19421         PR lto/47423
19422         * cgraphbuild.c (record_eh_tables): Record reference to personality
19423         function.
19424
19425 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
19426
19427         PR debug/45454
19428         * sel-sched.c (moveup_expr): Don't let debug insns prevent
19429         non-debug insns from moving up.
19430
19431 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
19432
19433         PR target/40125
19434         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
19435         t-dlldir{,-x} fragment for build and add it to tmake_file.
19436         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
19437         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
19438         * config/i386/t-dlldir: New file.
19439         (SHLIB_DLLDIR): Define.
19440         * config/i386/t-dlldir-x: New file.
19441         (SHLIB_DLLDIR): Define.
19442         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
19443         (SHLIB_INSTALL): Use it.
19444
19445 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
19446
19447         PR target/47246
19448         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
19449         lower bound of the allowed Thumb-2 coprocessor load/store
19450         index range to -256. Add explaining comment.
19451
19452 2011-01-25  Ian Lance Taylor  <iant@google.com>
19453
19454         * godump.c (go_define): Improve lexing of macro expansion to only
19455         accept expressions which match Go spec.
19456
19457 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
19458
19459         PR c++/43601
19460         * tree.c (handle_dll_attribute): Handle it.
19461         * doc/extend.texi (@item dllexport): Mention it.
19462         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
19463
19464 2011-01-25  Ian Lance Taylor  <iant@google.com>
19465
19466         PR tree-optimization/26854
19467         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
19468         (decl_jump_unsafe): Move higher in file, with no other change.
19469         (bind): Set has_jump_unsafe_decl if appropriate.
19470         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
19471         (check_earlier_gotos): Likewise.
19472         (c_check_switch_jump_warnings): Likewise.
19473
19474 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
19475
19476         * doc/invoke.texi (Warning Options): Add missing hyphen.
19477         (-fprofile-dir): Minor grammatical fixes.
19478         (-fbranch-probabilities): Likewise.
19479
19480 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
19481
19482         PR debug/45136
19483         PR debug/45130
19484         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
19485         debug insns.
19486         (no_real_insns_p, schedule_block, set_priorities): Drop special
19487         treatment of boundary debug insns.
19488         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
19489         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
19490         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19491         (BOUNDARY_DEBUG_INSN_P): Likewise.
19492         (SCHEDULE_DEBUG_INSN_P): Likewise.
19493         * sched-rgn.c (init_ready_list): Drop special treatment of
19494         boundary debug insns.
19495         * final.c (rest_of_clean-state): Clear notes' BB.
19496
19497 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19498
19499         * Makefile.in (LAMBDA_H): Removed.
19500         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
19501         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
19502         lambda-trans.o, and tree-loop-linear.o.
19503         (lto-symtab.o): Remove dependence on LAMBDA_H.
19504         (tree-loop-linear.o): Remove rule.
19505         (lambda-mat.o): Same.
19506         (lambda-trans.o): Same.
19507         (lambda-code.o): Same.
19508         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
19509         (tree-vect-slp.o): Same.
19510         * hwint.h (gcd): Moved here.
19511         (least_common_multiple): Same.
19512         * lambda-code.c: Removed.
19513         * lambda-mat.c: Removed.
19514         * lambda-trans.c: Removed.
19515         * lambda.h: Removed.
19516         * tree-loop-linear.c: Removed.
19517         * lto-symtab.c: Do not include lambda.h.
19518         * omega.c (gcd): Removed.
19519         * passes.c (init_optimization_passes): Remove pass_linear_transform.
19520         * tree-data-ref.c (print_lambda_vector): Moved here.
19521         (lambda_vector_copy): Same.
19522         (lambda_matrix_copy): Same.
19523         (lambda_matrix_id): Same.
19524         (lambda_vector_first_nz): Same.
19525         (lambda_matrix_row_add): Same.
19526         (lambda_matrix_row_exchange): Same.
19527         (lambda_vector_mult_const): Same.
19528         (lambda_vector_negate): Same.
19529         (lambda_matrix_row_negate): Same.
19530         (lambda_vector_equal): Same.
19531         (lambda_matrix_right_hermite): Same.
19532         * tree-data-ref.h: Do not include lambda.h.
19533         (lambda_vector): Moved here.
19534         (lambda_matrix): Same.
19535         (dependence_level): Same.
19536         (lambda_transform_legal_p): Removed declaration.
19537         (lambda_collect_parameters): Same.
19538         (lambda_compute_access_matrices): Same.
19539         (lambda_vector_gcd): Same.
19540         (lambda_vector_new): Same.
19541         (lambda_vector_clear): Same.
19542         (lambda_vector_lexico_pos): Same.
19543         (lambda_vector_zerop): Same.
19544         (lambda_matrix_new): Same.
19545         * tree-flow.h (least_common_multiple): Removed declaration.
19546         * tree-parloops.c (lambda_trans_matrix): Moved here.
19547         (LTM_MATRIX): Same.
19548         (LTM_ROWSIZE): Same.
19549         (LTM_COLSIZE): Same.
19550         (LTM_DENOMINATOR): Same.
19551         (lambda_trans_matrix_new): Same.
19552         (lambda_matrix_vector_mult): Same.
19553         (lambda_transform_legal_p): Same.
19554         * tree-pass.h (pass_linear_transform): Removed declaration.
19555         * tree-ssa-loop.c (tree_linear_transform): Removed.
19556         (gate_tree_linear_transform): Removed.
19557         (pass_linear_transform): Removed.
19558         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
19559         flag_loop_interchange.
19560
19561 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19562
19563         PR tree-optimization/47265
19564         PR tree-optimization/47443
19565         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
19566         if name still has some uses.
19567
19568 2011-01-25  Martin Jambor  <mjambor@suse.cz>
19569
19570         PR tree-optimization/47382
19571         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
19572         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
19573
19574 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
19575
19576         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
19577         sjlj_except_unwind_info.
19578
19579 2011-01-25  Richard Guenther  <rguenther@suse.de>
19580
19581         PR tree-optimization/47426
19582         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
19583         visible functions results escape.
19584
19585 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19586
19587         PR target/45701
19588         * config/arm/arm.c (any_sibcall_uses_r3): New function.
19589         (arm_get_frame_offsets): Use it.
19590
19591 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19592             Jakub Jelinek  <jakub@redhat.com>
19593
19594         PR tree-optimization/47271
19595         * tree-if-conv.c (bb_postdominates_preds): New.
19596         (if_convertible_bb_p): Call bb_postdominates_preds.
19597         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
19598         (predicate_scalar_phi): Call bb_postdominates_preds.
19599
19600 2011-01-25  Nick Clifton  <nickc@redhat.com>
19601
19602         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
19603         * config/rx/rx.c (rx_function_value): Likewise.
19604         (rx_promote_function_mode): Likewise.
19605         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
19606         in order to make it legitimate.
19607         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
19608         make sure that the first operand is the same as the result register.
19609         (addsi3_unspec): Delete.
19610         (subdi3): Do not accept immediate operands.
19611         (subdi3_internal): Likewise.
19612
19613 2011-01-25  Jeff Law  <law@redhat.com>
19614
19615         PR rtl-optimization/37273
19616         * ira-costs.c (scan_one_insn): Detect constants living in memory and
19617         handle them like argument loads from stack slots.  Do not double
19618         count memory for memory constants and argument loads from stack slots.
19619
19620 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19621
19622         PR tree-optimization/47427
19623         PR tree-optimization/47428
19624         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19625         coalesce if the new root var would be TREE_READONLY.
19626
19627 2011-01-25  Richard Guenther  <rguenther@suse.de>
19628
19629         PR middle-end/47414
19630         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
19631         correct type for TBAA.
19632
19633 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19634
19635         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
19636         (close_phi_written_to_memory): Call for_each_index with
19637         dr_indices_valid_in_loop.
19638
19639 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19640
19641         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
19642         when it is initialized.
19643
19644 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19645
19646         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
19647         call to graphite_find_data_references_in_stmt.
19648         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
19649         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
19650         call to graphite_find_data_references_in_stmt.
19651         (analyze_drs_in_stmts): Same.
19652         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
19653         in which the scalar analysis of indices is performed.
19654         (create_data_ref): Same.  Update call to dr_analyze_indices.
19655         (find_data_references_in_stmt): Update call to create_data_ref.
19656         (graphite_find_data_references_in_stmt): Same.
19657         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
19658         declaration.
19659         (create_data_ref): Same.
19660         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
19661         call to create_data_ref.
19662
19663 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19664
19665         * graphite-sese-to-poly.c (build_poly_scop): Move
19666         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
19667
19668 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19669
19670         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
19671         VAR_DECL, PARM_DECL, and RESULT_DECL.
19672
19673 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19674
19675         * graphite-dependences.c (reduction_dr_1): Allow several reductions
19676         in a reduction PBB.
19677         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
19678         that have already been marked as PBB_IS_REDUCTION.
19679
19680 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19681
19682         * graphite-scop-detection.c (same_close_phi_node): New.
19683         (remove_duplicate_close_phi): New.
19684         (make_close_phi_nodes_unique): New.
19685         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
19686
19687 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19688
19689         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
19690         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
19691         of both data references to be the same.
19692
19693 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19694
19695         * graphite-dependences.c (build_lexicographical_constraint): Remove
19696         the gdim parameter.
19697         (build_lexicographical_constraint): Adjust call to
19698         ppl_powerset_is_empty.
19699         (dependence_polyhedron): Same.
19700         (graphite_legal_transform_dr): Same.
19701         (graphite_carried_dependence_level_k): Same.
19702         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
19703         parameter.
19704         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
19705
19706 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19707
19708         * graphite-sese-to-poly.c
19709         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
19710         (close_phi_written_to_memory): New.
19711         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
19712         and unshare_expr.
19713
19714 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19715
19716         * doc/install.texi: Update the expected version number of PPL to 0.11.
19717         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
19718         #if PPL_VERSION_MINOR < 11.
19719
19720 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19721
19722         * graphite-dependences.c: Include graphite-cloog-util.h.
19723         (new_poly_ddr): Inlined into dependence_polyhedron.
19724         (free_poly_ddr): Moved close by new_poly_ddr.
19725         (dependence_polyhedron_1): Renamed dependence_polyhedron.
19726         Early return NULL when ppl_powerset_is_empty returns true.
19727         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
19728         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
19729         (graphite_legal_transform_dr): Call new_poly_ddr.
19730         (graphite_carried_dependence_level_k): Same.
19731         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
19732         (dot_transformed_deps_stmt_1): Removed.
19733         (dot_deps_stmt_1): Call dot_deps_stmt_2.
19734         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
19735         (dot_deps_1): Call dot_deps_2.
19736         * Makefile.in (graphite-dependences.o): Add missing dependence on
19737         graphite-cloog-util.h.
19738
19739 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19740
19741         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
19742         (build_lexicographical_constraint): Same.
19743         (dependence_polyhedron_1): Same.
19744         (graphite_legal_transform_dr): Same.
19745         (graphite_carried_dependence_level_k): Same.
19746         * graphite-ppl.c (ppl_powerset_is_empty): New.
19747         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
19748         * tree-data-ref.c (dump_data_reference): Print the basic block index.
19749
19750 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19751
19752         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
19753         the "a followed by b" relation and document it.
19754
19755 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19756
19757         * graphite-dependences.c (build_lexicographical_constraint): Stop the
19758         iteration when the bag of constraints is empty.
19759
19760 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19761
19762         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
19763
19764 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19765
19766         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
19767         nest and two loop depths as parameters.
19768         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
19769         lst_perfect_nestify.
19770
19771 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19772
19773         * graphite-dependences.c (print_pddr): Call
19774         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
19775
19776 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19777
19778         * graphite-ppl.c (debug_gmp_value): New.
19779         * graphite-ppl.h (debug_gmp_value): Declared.
19780
19781 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
19782
19783         * doc/install.texi: Document availability of cloog-0.16.
19784
19785 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
19786
19787         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
19788         invalid postdominance info.
19789
19790 2011-01-24  Jan Hubicka  <jh@suse.cz>
19791
19792         PR c/21659
19793         * doc/extend.texi (weak pragma): Drop claim that it must
19794         appear before definition.
19795         * varasm.c (merge_weak, declare_weak): Only sanity check
19796         that DECL is not output at a time it is declared weak.
19797
19798 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
19799
19800         * machmode.def: Fixed comments.
19801
19802 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
19803
19804         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
19805
19806 2011-01-24  Paul Koning  <ni1d@arrl.net>
19807
19808         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
19809         WORDS_BIG_ENDIAN.
19810
19811 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19812
19813         PR target/46519
19814         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
19815         (block_info): Add scanned and prev.
19816         (move_or_delete_vzeroupper_2): Return if the basic block
19817         has been scanned and the upper 128bit state is unchanged
19818         from the last scan.
19819         (move_or_delete_vzeroupper_1): Return true if the exit
19820         state is changed.
19821         (move_or_delete_vzeroupper): Visit basic blocks using the
19822         work-list based algorithm based on vt_find_locations in
19823         var-tracking.c.
19824
19825         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
19826
19827 2011-01-24  Nick Clifton  <nickc@redhat.com>
19828
19829         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
19830         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
19831         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
19832         then define __v850e1__.
19833         * doc/invoke.texi: Document -mv850es.
19834
19835 2011-01-24  Richard Henderson  <rth@redhat.com>
19836
19837         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
19838         compound unordered comparisons.
19839         * config/rx/rx.c (rx_split_fp_compare): Remove.
19840         * config/rx/rx-protos.h: Update.
19841         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
19842         (cbranchsf4): Don't call rx_split_fp_compare.
19843         (*cbranchsf4): Use rx_split_cbranch.
19844         (*cmpsf): Don't accept "i" constraint.
19845         (*conditional_branch): Only valid after reload.
19846         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
19847
19848 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19849
19850         PR target/47385
19851         * config/rs6000/altivec.md (vector constant splitters): Add
19852         support for creating vector single precision constants if -mvsx is
19853         used and we would create the constant using Altivec primitives.
19854
19855 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
19856             Richard Sandiford  <rdsandiford@googlemail.com>
19857
19858         PR rtl-optimization/47166
19859         * reload1.c (emit_reload_insns): Disable the spill_reg_store
19860         mechanism for PRE_MODIFY and POST_MODIFY.
19861         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
19862         reloadreg.
19863
19864 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
19865
19866         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
19867
19868 2011-01-22  Jan Hubicka  <jh@suse.cz>
19869
19870         PR lto/47333
19871         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
19872
19873 2011-01-22  Jan Hubicka  <jh@suse.cz>
19874
19875         PR tree-optimization/43884
19876         PR lto/44334
19877         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
19878         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
19879
19880 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
19881
19882         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19883         * config/s390/s390.c (s390_register_move_cost,
19884         s390_memory_move_cost): New.
19885         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
19886
19887 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19888
19889         PR middle-end/47401
19890         * except.c (sjlj_assign_call_site_values): Move setting the
19891         crtl->uses_eh_lsda flag to ...
19892         (sjlj_mark_call_sites): ... here.
19893         (sjlj_emit_function_enter): Support NULL dispatch label.
19894         (sjlj_build_landing_pads): In a function with no landing pads
19895         that still has must-not-throw regions, generate code to register
19896         a personality function with empty LSDA.
19897
19898 2011-01-21  Richard Henderson  <rth@redhat.com>
19899
19900         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
19901
19902         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
19903
19904         * compare-elim.c: New file.
19905         * Makefile.in (OBJS-common): Add it.
19906         (compare-elim.o): New.
19907         * common.opt (fcompare-elim): New.
19908         * opts.c (default_options_table): Add OPT_fcompare_elim.
19909         * tree-pass.h (pass_compare_elim_after_reload): New.
19910         * passes.c (init_optimization_passes): Add it.
19911         * recog.h: Protect against re-inclusion.
19912         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
19913         * doc/invoke.texi (-fcompare-elim): Document it.
19914         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
19915         * doc/tm.texi: Rebuild.
19916
19917 2011-01-22  Nick Clifton  <nickc@redhat.com>
19918
19919         * config/rx/rx.md (cstoresf4): Pass comparison operator to
19920         rx_split_fp_compare.
19921
19922 2011-01-22  Nick Clifton  <nickc@redhat.com>
19923
19924         * config/rx/rx.md (UNSPEC_CONST): New.
19925         (deallocate_and_return): Wrap the amount popped off the stack in
19926         an UNSPEC_CONST in order to stop it being rejected by
19927         -mmax-constant-size.
19928         (pop_and_return): Add a "(return)" rtx.
19929         (call): Drop the immediate operand.
19930         (call_internal): Likewise.
19931         (call_value): Likewise.
19932         (call_value_internal): Likewise.
19933         (sibcall_internal): Likewise.
19934         (sibcall_value_internal): Likewise.
19935         (sibcall): Likewise.  Generate an explicit call using
19936         sibcall_internal.
19937         (sibcall_value): Likewise.
19938         (mov<>): FAIL if a constant operand is not legitimate.
19939         (addsi3_unpsec): New pattern.
19940
19941         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
19942         (ok_for_max_constant): New function.
19943         (gen_safe_add): New function.
19944         (rx_expand_prologue): Use gen_safe_add.
19945         (rx_expand_epilogue): Likewise.
19946         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
19947         UNSPEC CONSTs.
19948
19949 2011-01-21  Jeff Law  <law@redhat.com>
19950
19951         PR tree-optimization/47053
19952         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
19953         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
19954         statements are deleted.
19955         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
19956         is nonempty, then purge dead edges and cleanup the CFG.
19957
19958 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19959
19960         PR debug/47402
19961         Temporarily revert:
19962         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19963         PR debug/47106
19964         * tree-dfa.c (create_var_ann): Mark variable as used.
19965
19966 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19967
19968         PR middle-end/45566
19969         * except.c (convert_to_eh_region_ranges): Emit queued no-region
19970         notes from other section in hot/cold partitioning even if
19971         last_action is -3.  Increment call_site_base.
19972
19973         PR rtl-optimization/47366
19974         * fwprop.c (forward_propagate_into): Return bool.  If
19975         any changes are made, -fnon-call-exceptions is used and
19976         REG_EH_REGION note is present, call purge_dead_edges
19977         and return true if it purged anything.
19978         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
19979         any EH edges were purged.
19980
19981 2011-01-21  Jeff Law  <law@redhat.com>
19982
19983         PR rtl-optimization/41619
19984         * caller-save.c (setup_save_areas): Break out code to determine
19985         which hard regs are live across calls by examining the reload chains
19986         so that it is always used.
19987         Eliminate code which checked REG_N_CALLS_CROSSED.
19988
19989 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19990
19991         PR tree-optimization/47355
19992         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
19993         NOP has non-debug uses beyond PHIs in new_bb.
19994
19995 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19996
19997         PR debug/47106
19998         * cfgexpand.c (account_used_vars_for_block): Only account vars
19999         that are annotated as used.
20000         (estimated_stack_frame_size): Don't set TREE_USED.
20001         * tree-dfa.c (create_var_ann): Mark variable as used.
20002
20003 2011-01-21  Richard Guenther  <rguenther@suse.de>
20004
20005         PR middle-end/47395
20006         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
20007
20008 2011-01-21  Richard Guenther  <rguenther@suse.de>
20009
20010         PR tree-optimization/47365
20011         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
20012         (vn_reference_lookup_pieces): Adjust.
20013         (vn_reference_lookup): Likewise.
20014         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
20015         (vn_reference_lookup_3): Only look through kills if in
20016         VN_WALKREWRITE mode.
20017         (vn_reference_lookup_pieces): Adjust.
20018         (vn_reference_lookup): Likewise.
20019         (visit_reference_op_load): Likewise.
20020         (visit_reference_op_store): Likewise.
20021         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
20022         (compute_avail): Likewise.
20023         (eliminate): Likewise.
20024
20025 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
20026
20027         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
20028         DECL_IGNORED_P non-reg vars if they are used.
20029
20030         PR tree-optimization/47391
20031         * varpool.c (const_value_known_p): Return false if
20032         decl is volatile.
20033
20034 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
20035
20036         PR bootstrap/47215
20037         * config/i386/i386.c (ix86_local_alignment): Handle
20038         case for va_list_type_node is nil.
20039         (ix86_canonical_va_list_type): Likewise.
20040
20041 2011-01-21  Alan Modra  <amodra@gmail.com>
20042
20043         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
20044         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
20045
20046 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20047
20048         * config/arm/arm.md (define_attr type): Rename f_load
20049         and f_store to f_fpa_load and f_fpa_store. Update.
20050         (write_conflict): Deal with rename fallout.
20051         (*push_fp_multi): Likewise.
20052         * config/arm/fpa.md (f_load): Use f_fpa_load.
20053         (f_store): Use f_fpa_store.
20054         (*movsf_fpa): Likewise.
20055         (*movdf_fpa): Likewise.
20056         (*movxf_fpa): Likewise.
20057         (*thumb2_movsf_fpa): Likewise.
20058         (*thumb2_movdf_fpa): Likewise.
20059         (*thumb2_movxf_fpa): Likewise.
20060         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
20061         f_loadd and f_stored.
20062         (*thumb2_movdi_vfp): Likewise.
20063         (*thumb2_movsf_vfp): Fix attribute to f_loads.
20064         (*thumb2_movsi_vfp): Likewise.
20065         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
20066         Use f_loads instead of f_load.
20067         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
20068
20069 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
20070
20071         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20072         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
20073         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20074         (xtensa_mode_dependent_address_p): New function.
20075         (constantpool_address_p): Make static. Change return type to bool.
20076         Change argument type to const_rtx. Use CONST_INT_P predicate.
20077
20078 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
20079
20080         PR debug/46583
20081         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
20082
20083 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
20084
20085         PR debug/47283
20086         * cfgexpand.c (expand_debug_expr): Instead of generating
20087         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
20088         etc. handling.
20089
20090 2011-01-20  Richard Guenther  <rguenther@suse.de>
20091
20092         PR middle-end/47370
20093         * tree-inline.c (remap_gimple_op_r): Recurse manually for
20094         the pointer operand of MEM_REFs.
20095
20096 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
20097
20098         PR tree-optimization/46130
20099         * ipa-split.c (consider_split): If return_bb contains non-virtual
20100         PHIs other than for retval or if split_function would not adjust it,
20101         refuse to split.
20102
20103 2011-01-20  Richard Guenther  <rguenther@suse.de>
20104
20105         PR tree-optimization/47167
20106         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
20107         Revert previous change, only avoid enumeral type changes.
20108
20109 2011-01-19  Mike Stump  <mikestump@comcast.net>
20110
20111         * doc/tm.texi.in (BRANCH_COST): Englishify.
20112         * doc/tm.texi (BRANCH_COST): Likewise.
20113
20114 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
20115
20116         PR c++/47291
20117         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
20118         (gen_scheduled_generic_parms_dies): New functions.
20119         (gen_struct_or_union_type_die): Schedule template parameters DIEs
20120         generation for the end of CU compilation.
20121         (dwarf2out_finish): Generate template parameters DIEs here.
20122
20123 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
20124
20125         PR debug/46240
20126         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
20127         debug bind stmt on merge edges.
20128
20129 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
20130
20131         PR debug/47079
20132         PR debug/46724
20133         * function.c (instantiate_expr): Instantiate incoming rtl of
20134         implicit arguments, and recurse on VALUE_EXPRs.
20135         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
20136         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
20137
20138 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
20139
20140         * c-parser.c (c_parser_for_statement): Initialize
20141         collection_expression.
20142
20143 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
20144
20145         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
20146
20147 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
20148
20149         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
20150         (LINK_SHLIB_SPEC): Don't use %(link_path).
20151         (SUBTARGET_EXTRA_SPECS): Remove link_path.
20152
20153 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
20154
20155         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
20156         (NO_SHARED_LIB_SUPPORT): Remove.
20157         (LINK_SHLIB_SPEC): Remove one conditional definition.
20158
20159 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
20160
20161         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
20162         %{call_shared}.
20163         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
20164         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
20165         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
20166         %{call_shared} and conditionals on these options not being passed.
20167         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
20168         %{call_shared}.
20169
20170 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
20171
20172         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
20173         simplify.
20174
20175         * ipa-split.c: Spelling fixes.
20176
20177 2011-01-19  Richard Henderson  <rth@redhat.com>
20178
20179         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
20180         (*mulsi3): Likewise.
20181
20182         * longlong.h [__mn10300__] (count_leading_zeros): New.
20183         [__mn10300__] (umul_ppmm, smul_ppmm): New.
20184         [__mn10300__] (add_ssaaaa, subddmmss): New.
20185         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
20186         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
20187
20188 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20189
20190         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
20191
20192 2011-01-19  Richard Henderson  <rth@redhat.com>
20193
20194         * config/mn10300/mn10300.md (addsi3_flags): New.
20195         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
20196         (subsi3_flags, subc_internal, subdi3): New.
20197         (subdi3_internal, *subdi3_degenerate): New.
20198         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
20199
20200         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
20201         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
20202         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
20203         * config/mn10300/mn10300-protos.h: Update.
20204         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
20205         (return_ret): Likewise.  Rename from return_internal_regs.
20206         (return_internal): Remove.
20207
20208         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
20209         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
20210         (mn10300_legitimate_constant_p): Likewise.
20211         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
20212         (mn10300_frame_size): New.
20213         (mn10300_expand_prologue): Use it.
20214         (mn10300_expand_epilogue): Likewise.
20215         (mn10300_initial_offset): Likewise.
20216         * config/mn10300/mn10300-protos.h: Update.
20217         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
20218         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
20219         (prologue, epilogue, return_internal): Tidy output code.
20220         (mn10300_store_multiple_operation, return): Likewise.
20221         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
20222         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
20223         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
20224         (load_pic, am33_load_pic): New.
20225         (mn10300_load_pic0, mn10300_load_pic1): New.
20226
20227         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
20228         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
20229         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
20230         (cc_flags_for_mode, cc_flags_for_code): New.
20231         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
20232         overflow flag is not valid.  Validate that the flags we need
20233         for the comparison are valid.
20234         (mn10300_output_cmp): Remove.
20235         (mn10300_output_add): New.
20236         (mn10300_select_cc_mode): Use cc_flags_for_code.
20237         (mn10300_split_cbranch): New.
20238         (mn10300_match_ccmode): New.
20239         (mn10300_split_and_operand_count): New.
20240         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
20241         to the function.
20242         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
20243         (addsi3): ... here.  Use mn10300_output_add.
20244         (*addsi3_flags): New.
20245         (*am33_subsi3, *mn10300_subsi3): Merge...
20246         (subsi3): ... here.  Use attribute isa.
20247         (*subsi3_flags): New.
20248         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
20249         when possible.
20250         (*am33_andsi3, *mn10300_andsi3): Merge...
20251         (andsi3): ... here.
20252         (*andsi3_flags): New.
20253         (andsi3 splitters): New.
20254         (*am33_iorsi3, *mn10300_iorsi3): Merge...
20255         (iorsi3): ... here.
20256         (*iorsi3_flags): New.
20257         (*am33_xorsi3, *mn10300_xorsi3): Merge...
20258         (xorsi3): ... here.
20259         (*xorsi3_flags): New.
20260         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
20261         (one_cmplsi2): ... here.
20262         (*one_cmplsi2_flags): New.
20263         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
20264         instead of "dax" in constraints.  Use mn10300_split_cbranch.
20265         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
20266         use matching constraints to eliminate a self-comparison.
20267         (*integer_conditional_branch): Rename from integer_conditional_branch.
20268         Use int_mode_flags to match CC_REG.
20269         (*cbranchsi4_btst, *btstsi): New.
20270         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
20271         mn10300_split_cbranch.
20272         (*am33_cmpsf): Rename from am33_cmpsf.
20273         (*float_conditional_branch): Rename from float_conditional_branch.
20274         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
20275         (zero_extendqisi2): ... here.
20276         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
20277         (zero_extendhisi2): ... here.
20278         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
20279         (extendqisi2): ... here.
20280         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
20281         (extendhisi2): ... here.
20282         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
20283         (ashlsi3): ... here.
20284         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
20285         (lshrsi3): ... here.
20286         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
20287         (ashrsi3): ... here.
20288         (consecutive add peephole): Remove.
20289         * config/mn10300/predicates.md (label_ref_operand): New.
20290         (int_mode_flags): New.
20291         (CCZN_comparison_operator): New.
20292
20293         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
20294         (throughput_42_latency_43): New reservation.
20295         (mulsidi3, umulsidi3): New expanders.
20296         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
20297         the MDR register to allocation; separately allocate the low and
20298         high parts of the DImode result.
20299         (umulsidi3_internal): Similarly.
20300         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
20301         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
20302         (udivsi3, umodsi3): Remove.
20303         (udivmodsi4, divmodsi4): New expanders.
20304         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
20305         (*divmodsi4): Simiarly.
20306         (ext_internal): New.
20307
20308         * config/mn10300/constraints.md ("z"): New constraint.
20309         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
20310         (FIXED_REGISTERS): Don't fix MDR.
20311         (CALL_USED_REGSITERS): Reformat nicely.
20312         (REG_ALLOC_ORDER): Add MDR.
20313         (enum regclass): Add MDR_REGS.
20314         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
20315         (IRA_COVER_CLASSES): Add MDR_REGS.
20316         (REGNO_REG_CLASS): Handle MDR_REG.
20317         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
20318         (mn10300_register_move_cost): Likewise.
20319         * config/mn10300/mn10300.md (MDR_REG): New.
20320         (*movsi_internal): Handle moves to/from MDR_REGS.
20321
20322         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
20323         POST_MODIFY.
20324         (mn10300_secondary_reload): Tidy combination reload classes.
20325         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
20326         addresses for AM33.  Allow symbolic offsets for reg+imm.
20327         (mn10300_regno_in_class_p): New.
20328         (mn10300_legitimize_reload_address): New.
20329         * config/mn10300/mn10300.h (enum reg_class): Remove
20330         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
20331         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
20332         SP_OR_GENERAL_REGS.
20333         (REG_CLASS_NAMES): Update to match.
20334         (REG_CLASS_CONTENTS): Likewise.
20335         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
20336         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
20337         (REGNO_IN_RANGE_P): Remove.
20338         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
20339         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
20340         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
20341         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
20342         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
20343         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
20344         (REGNO_GENERAL_P): New.
20345         (HAVE_POST_MODIFY_DISP): New.
20346         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
20347         (LEGITIMIZE_RELOAD_ADDRESS): New.
20348         * config/mn10300/mn10300-protos.h: Update.
20349
20350         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
20351         DATA_REGS for AM33 stack-pointer destination.
20352         (mn10300_preferred_output_reload_class): Likewise.
20353         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
20354         into a form appropriate for ...
20355         (TARGET_SECONDARY_RELOAD): New.
20356         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
20357         * config/mn10300/mn10300-protos.h: Update.
20358         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
20359         reload_insi; use the "A" constraint for the scratch; handle AM33
20360         moves of sp to non-address registers.
20361
20362         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
20363         (*movqi_internal): ... here.
20364         (*am33_movhi, *mn10300_movhi): Merge into...
20365         (*movhi_internal): ... here.
20366         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
20367         as the source/destination of moves from/to SP.
20368         (movsf): Only allow for AM33-2.
20369         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
20370         any integer constant constraint.  Only allow for AM33-2.  Tidy
20371         all of the alternative outputs.
20372         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
20373         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
20374         for MN103.
20375         (udivsi3, umodsi3): New patterns for MN103 only.
20376
20377 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
20378
20379         * doc/tm.texi.in: Spell out that a lack of register class unions
20380         can lead to ICEs.
20381         * doc/tm.texi: Regenerate.
20382
20383 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
20384
20385         PR rtl-optimization/47337
20386         * dce.c (check_argument_store): New function.
20387         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
20388
20389         PR tree-optimization/47290
20390         * tree-eh.c (infinite_empty_loop_p): New function.
20391         (cleanup_empty_eh): Use it.
20392
20393 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
20394
20395         PR target/46997
20396         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
20397         (a64_expand_widen_sum): Ditto.
20398         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
20399         (vec_extract_evenodd_help): Ditto.
20400         (vec_extract_evenv4hi): Ditto.
20401         (vec_extract_oddv4hi): Ditto.
20402         (vec_extract_evenv2si): Ditto.
20403         (vec_extract_oddv2si): Ditto.
20404         (vec_extract_evenv2sf): Ditto.
20405         (vec_extract_oddv2sf): Ditto.
20406         (vec_pack_trunc_v4hi: Ditto.
20407         (vec_pack_trunc_v2si): Ditto.
20408         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
20409         (vec_interleave_highv8qi): Ditto.
20410         (mix1_r): Ditto.
20411         (vec_extract_oddv8qi): Ditto.
20412         (vec_interleave_lowv4hi): Ditto.
20413         (vec_interleave_highv4hi): Ditto.
20414         (vec_interleave_lowv2si): Ditto.
20415         (vec_interleave_highv2si): Ditto.
20416
20417 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20418
20419         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
20420         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
20421         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
20422         (pa_c_mode_for_suffix): New.
20423         (TARGET_EXPAND_BUILTIN): Define.
20424         (TARGET_C_MODE_FOR_SUFFIX): Define.
20425         (pa_builtins): Define.
20426         (pa_init_builtins): Register __float128 type and init new support
20427         builtins.
20428         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
20429         * config/pa/quadlib.c (_U_Qfcopysign): New.
20430
20431 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
20432
20433         PR middle-end/46894
20434         * explow.c (allocate_dynamic_stack_space): Do not assume more than
20435         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
20436         are defined.
20437
20438 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20439
20440         PR tree-optimization/47179
20441         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
20442         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
20443
20444 2011-01-18  Richard Guenther  <rguenther@suse.de>
20445
20446         PR rtl-optimization/47216
20447         * emit-rtl.c: Include tree-flow.h.
20448         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
20449         of replicating it with different semantics.
20450         * Makefile.in (emit-rtl.o): Adjust.
20451
20452 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20453
20454         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
20455         (cortex_a9_dp): Handle neon types correctly.
20456
20457 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
20458
20459         PR rtl-optimization/47299
20460         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
20461         subtarget.  Use normal multiplication if both operands are constants.
20462         * expmed.c (expand_widening_mult): Don't try to optimize constant
20463         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
20464         before using it.
20465
20466 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20467
20468         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
20469         spacing after 'e.g.', typos, comma, hyphenation.
20470
20471 2011-01-17  Richard Henderson  <rth@redhat.com>
20472
20473         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
20474         (rx_restricted_mem_operand): New.
20475         (rx_shift_operand): Use register_operand.
20476         (rx_source_operand, rx_compare_operand): Likewise.
20477         * config/rx/rx.md (addsi3_flags): New expander.
20478         (adddi3): Rewrite as expander.
20479         (adc_internal, *adc_flags, adddi3_internal): New patterns.
20480         (subsi3_flags): New expander.
20481         (subdi3): Rewrite as expander.
20482         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
20483
20484         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
20485         (rx_init_builtins): Remove sat builtin.
20486         (rx_expand_builtin): Likewise.
20487         * config/rx/rx.md (ssaddsi3): New.
20488         (*sat): Rename from sat.  Represent the CC_REG input.
20489
20490         * config/rx/predicates.md (rshift_operator): New.
20491         * config/rx/rx.c (rx_expand_insv): Remove.
20492         * config/rx/rx-protos.h: Update.
20493         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
20494         operand to the canonical position.
20495         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
20496         (*bitclr, *bitclr_in_memory): Similarly.
20497         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
20498         (insv): Retain the zero_extract in the expansion.
20499
20500         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
20501         (bswaphi2, bitinvert, revw): Likewise.
20502
20503         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
20504         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
20505         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
20506         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
20507         (bitset, bitset_in_memory): Likewise.
20508         (bitinvert, bitinvert_in_memory): Likewise.
20509         (bitclr, bitclr_in_memory): Likewise.
20510         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
20511         (rx_strend, rx_cmpstrn): Likewise.
20512         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
20513         (bitop peep2 patterns): Remove.
20514
20515         * config/rx/rx.c (rx_match_ccmode): New.
20516         * config/rx/rx-protos.h: Update.
20517         * config/rx/rx.md (abssi2): Clobber, don't set flags.
20518         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
20519         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
20520         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
20521         (fix_truncsfsi2, floatsisf2): Likewise.
20522         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
20523         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
20524         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
20525         (*subsi3_flags, *xorsi3_flags): New.
20526
20527         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
20528
20529         * config/rx/rx.c (rx_print_operand): Remove workaround for
20530         unsplit comparison operations.
20531
20532         * config/rx/rx.md (movsicc): Split after reload.
20533         (*movsicc): Merge *movsieq and *movsine via match_operator.
20534         (*stcc): New pattern.
20535
20536         * config/rx/rx.c (rx_float_compare_mode): Remove.
20537         * config/rx/rx.h (rx_float_compare_mode): Remove.
20538         * config/rx/rx.md (cstoresi4): Split after reload.
20539         (*sccc): New pattern.
20540
20541         * config/rx/predicates.md (label_ref_operand): New.
20542         (rx_z_comparison_operator): New.
20543         (rx_zs_comparison_operator): New.
20544         (rx_fp_comparison_operator): New.
20545         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
20546         Validate that the flags are set properly for the comparison.
20547         (rx_gen_cond_branch_template): Remove.
20548         (rx_cc_modes_compatible): Remove.
20549         (mode_from_flags): New.
20550         (flags_from_code): Rename from flags_needed_for_conditional.
20551         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
20552         (rx_select_cc_mode): Likewise.
20553         (rx_split_fp_compare): New.
20554         (rx_split_cbranch): New.
20555         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
20556         (*cbranchsi4): Use match_operator and rx_split_cbranch.
20557         (*cbranchsf4): Similarly.
20558         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
20559         match_operator and rx_split_cbranch.
20560         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
20561         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
20562         (*cmpsi): Rename from cmpsi.
20563         (*tstsi): Rename from tstsi.
20564         (*cmpsf): Rename from cmpsf; use CC_Fmode.
20565         (*conditional_branch): Rename from conditional_branch.
20566         (*reveresed_conditional_branch): Remove.
20567         (b<code>): Remove expander.
20568         * config/rx/rx-protos.h: Update.
20569
20570         * config/rx/rx.c (rx_compare_redundant): Remove.
20571         * config/rx/rx.md (cmpsi): Don't use it.
20572         * config/rx/rx-protos.h: Update.
20573
20574         * config/rx/rx-modes.def (CC_F): New mode.
20575         * config/rx/rx.c (rx_select_cc_mode): New.
20576         * config/rx/rx.h (SELECT_CC_MODE): Use it.
20577         * config/rx/rx-protos.h: Update.
20578
20579 2011-01-17  Richard Henderson  <rth@redhat.com>
20580
20581         * except.c (dump_eh_tree): Fix stray ; after for statement.
20582
20583 2011-01-17  Richard Guenther  <rguenther@suse.de>
20584
20585         PR tree-optimization/47313
20586         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
20587         handling before copying the body.  Properly deal with
20588         by-reference result in SSA form.
20589
20590 2011-01-17  Ian Lance Taylor  <iant@google.com>
20591
20592         PR target/47219
20593         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
20594         (struct_value_alias_set): Don't define.
20595         (sparc_option_override): Don't set sparc_sr_alias_set and
20596         struct_value_alias_set.
20597         (save_or_restore_regs): Use gen_frame_mem rather than calling
20598         set_mem_alias_set.
20599         (sparc_struct_value_rtx): Likewise.
20600
20601 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
20602
20603         PR target/47318
20604         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
20605         (_mm_maskstore_pd): Likewise.
20606         (_mm_maskload_ps): Likewise.
20607         (_mm_maskstore_ps): Likewise.
20608         (_mm256_maskload_pd): Change mask to __m256i.
20609         (_mm256_maskstore_pd): Likewise.
20610         (_mm256_maskload_ps): Likewise.
20611         (_mm256_maskstore_ps): Likewise.
20612
20613         * config/i386/i386-builtin-types.def: Updated.
20614         (ix86_expand_special_args_builtin): Likewise.
20615
20616         * config/i386/i386.c (bdesc_special_args): Update
20617         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
20618         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
20619         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
20620         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
20621
20622         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
20623         Use <avxpermvecmode> on mask register.
20624         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
20625
20626 2011-01-17  Olivier Hainque  <hainque@adacore.com>
20627             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
20628             Eric Botcazou  <ebotcazou@adacore.com>
20629
20630         PR target/46655
20631         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
20632         if <= USHRT_MAX in 32-bit mode.
20633
20634 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20635
20636         * doc/install.texi (Configuration, Specific): Wrap long
20637         lines in examples.  Allow line wrapping in long options
20638         and URLs where beneficial for PDF output.
20639
20640 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
20641
20642         * config/mips/mips.c (mips_classify_symbol): Don't return
20643         SYMBOL_PC_RELATIVE for nonlocal labels.
20644
20645 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
20646
20647         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
20648
20649 2011-01-15  Jan Hubicka  <jh@suse.cz>
20650
20651         PR tree-optimization/47276
20652         * ipa.c (function_and_variable_visibility): Do not try to mark alias
20653         declarations as needed.
20654
20655 2011-01-15  Martin Jambor  <mjambor@suse.cz>
20656
20657         * common.opt (fdevirtualize): New flag.
20658         * doc/invoke.texi (Option Summary): Document it.
20659         * opts.c (default_options_table): Add devirtualize flag.
20660         * ipa-prop.c (detect_type_change): Return immediately if
20661         devirtualize flag is not set.
20662         (detect_type_change_ssa): Likewise.
20663         (compute_known_type_jump_func): Likewise.
20664         (ipa_analyze_virtual_call_uses): Likewise.
20665
20666 2011-01-14  Martin Jambor  <mjambor@suse.cz>
20667
20668         PR tree-optimization/45934
20669         PR tree-optimization/46302
20670         * ipa-prop.c (type_change_info): New type.
20671         (stmt_may_be_vtbl_ptr_store): New function.
20672         (check_stmt_for_type_change): Likewise.
20673         (detect_type_change): Likewise.
20674         (detect_type_change_ssa): Likewise.
20675         (compute_complex_assign_jump_func): Check for dynamic type change.
20676         (compute_complex_ancestor_jump_func): Likewise.
20677         (compute_known_type_jump_func): Likewise.
20678         (compute_scalar_jump_functions): Likewise.
20679         (ipa_analyze_virtual_call_uses): Likewise.
20680         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
20681
20682 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20683
20684         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
20685         * config/i386/i386.opt (msse5): New Alias.
20686
20687 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20688
20689         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20690         * config/sparc/linux64.h (CC1_SPEC): Likewise.
20691         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
20692         * config/sparc/sparc.h (CC1_SPEC): Likewise.
20693
20694 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20695
20696         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
20697         -mcpu options.
20698         * config/sparc/linux64.h (CC1_SPEC): Likewise.
20699         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
20700         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
20701         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
20702         Likewise.
20703         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
20704
20705 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20706
20707         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
20708
20709 2011-01-14  Mike Stump  <mikestump@comcast.net>
20710
20711         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
20712         * config/fr30/fr30.md: Likweise
20713         (movsi_push): Likewise.
20714         (movsi_pop): Likewise.
20715         (enter_func): Likewise.
20716         * config/moxie/moxie.md (movsi_push): Likewise.
20717         (movsi_pop): Likewise.
20718
20719 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20720
20721         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
20722         %{no_archive} %{exact_version}.
20723         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
20724         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
20725         %{no_archive} %{exact_version}.
20726         * config/mips/openbsd.h (LINK_SPEC): Likewise.
20727         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
20728         * config/mips/vxworks.h: Likewise.
20729
20730 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20731
20732         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
20733
20734 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20735
20736         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
20737         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
20738
20739 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20740
20741         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
20742         -nodefaultlib.
20743
20744 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20745
20746         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
20747         for mcpu not cpu.
20748         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
20749         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
20750         not cpu.
20751         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
20752         Don't handle -shlib.
20753
20754 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20755
20756         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
20757         (CC1_SPEC): Don't handle -profile.
20758
20759 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20760
20761         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
20762         * config/mips/mips.h (CC1_SPEC): Likewise.
20763
20764 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20765
20766         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
20767         * config/mips/mips.h (CC1_SPEC): Likewise.
20768
20769 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20770
20771         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
20772         * config/m32r/linux.h (LINK_SPEC): Likewise.
20773         * config/mips/linux.h (LINK_SPEC): Likewise.
20774         * config/mips/linux64.h (LINK_SPEC): Likewise.
20775         * config/sparc/linux.h (LINK_SPEC): Likewise.
20776         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
20777         LINK_SPEC): Likewise.
20778         * config/xtensa/linux.h (LINK_SPEC): Likewise.
20779
20780 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20781
20782         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
20783         %{version:-v}.
20784         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
20785
20786 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20787
20788         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
20789         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
20790
20791 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20792
20793         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
20794
20795 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20796
20797         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
20798         supports -Bstatic/-Bdynamic.
20799         * configure: Regenerate.
20800
20801 2011-01-14  Jan Hubicka  <jh@suse.cz>
20802             Jack Howarth  <howarth@bromo.med.uc.edu>
20803
20804         PR target/46037
20805         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
20806         when checking debug_info_level. Test write_symbols instead of
20807         debug_hooks->var_location when setting flag_var_tracking_uninit.
20808
20809 2011-01-14  Richard Guenther  <rguenther@suse.de>
20810
20811         PR tree-optimization/47179
20812         * target.def (ref_may_alias_errno): New target hook.
20813         * targhooks.h (default_ref_may_alias_errno): Declare.
20814         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
20815         (default_ref_may_alias_errno): New function.
20816         * target.h (struct ao_ref_s): Declare.
20817         * tree-ssa-alias.c: Include target.h.
20818         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
20819         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
20820         (targhooks.o): Likewise.
20821         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
20822         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
20823
20824 2011-01-14  Richard Guenther  <rguenther@suse.de>
20825
20826         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
20827
20828 2011-01-14  Richard Guenther  <rguenther@suse.de>
20829
20830         PR tree-optimization/47280
20831         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
20832         return CFG changes.
20833         (tree_ssa_forward_propagate_single_use_vars): Deal with
20834         CFG changes from associate_plusminus.
20835
20836 2011-01-14  Richard Guenther  <rguenther@suse.de>
20837
20838         PR middle-end/47281
20839         Revert
20840         2011-01-11  Richard Guenther  <rguenther@suse.de>
20841
20842         PR tree-optimization/46076
20843         * tree-ssa.c (useless_type_conversion_p): Conversions from
20844         unprototyped to empty argument list function types are useless.
20845
20846 2011-01-14  Richard Guenther  <rguenther@suse.de>
20847
20848         PR tree-optimization/47286
20849         * tree-ssa-structalias.c (new_var_info): Register variables are global.
20850
20851 2011-01-14  Martin Jambor  <mjambor@suse.cz>
20852
20853         PR middle-end/46823
20854         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
20855
20856 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
20857
20858         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
20859         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
20860         * config/xtensa/xtensa.c (xtensa_libcall_value,
20861         xtensa_function_value_regno_p): New functions.
20862         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
20863
20864 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
20865
20866         PR c++/47213
20867         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
20868         PE specific hook.
20869         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
20870         New function prototype.
20871         * config/i386/winnt.c (i386_pe_assemble_visibility):
20872         Warn only if attribute was specified by user.
20873
20874 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
20875
20876         PR target/47251
20877         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
20878         floating point.
20879         (floatunsdidf2_fcfidu): Ditto.
20880
20881 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20882
20883         * config/s390/s390.c (print_operand_address): Replace 'error' with
20884         'output_operand_lossage'.
20885         (print_operand): Likewise.
20886
20887 2011-01-13  Jeff Law  <law@redhat.com>
20888
20889         PR rtl-optimization/39077
20890         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
20891         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
20892         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
20893         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
20894         * gcse.c (prune_insertions_deletions): New function.
20895         (compute_pre_data): Use it.
20896
20897 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
20898
20899         PR debug/PR46973
20900         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
20901         static function.
20902         (prune_unused_types_mark): Use it.
20903
20904 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
20905
20906         PR rtl-optimization/45352
20907         * sel-sched.c: Update copyright years.
20908         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
20909         in the advancing loop when we have issued issue_rate insns.
20910
20911 2011-01-12  Richard Henderson  <rth@redhat.com>
20912
20913         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
20914         (TARGET_MD_ASM_CLOBBERS): New.
20915
20916         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
20917         (TARGET_DELEGITIMIZE_ADDRESS): New.
20918
20919         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
20920         (clzsi2, *bsch): New patterns.
20921
20922         * config/mn10300/mn10300.md (INT): New mode iterator.
20923         (*mov<INT>_clr): New pattern, and peep2 to generate it.
20924
20925         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
20926         flag_split_wide_types.
20927
20928         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
20929         (mn10300_trampoline_init): Rewrite without a template, an immediate
20930         load and a direct branch.
20931         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
20932
20933 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
20934
20935         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20936         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
20937         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
20938         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20939
20940 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
20941
20942         PR debug/47209
20943         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
20944         of type.
20945
20946 2011-01-12  Jan Hubicka  <jh@suse.cz>
20947
20948         PR driver/47244
20949         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
20950         (PLUGIN_COND_CLOSE): New macro.
20951         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
20952
20953 2011-01-12  Richard Guenther  <rguenther@suse.de>
20954
20955         PR lto/47259
20956         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
20957         register variables in a MEM_REF.
20958
20959 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
20960
20961         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
20962         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
20963         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
20964         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
20965         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
20966         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
20967         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
20968         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
20969         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
20970         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
20971         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
20972         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
20973         * config/gnu-user.h: New.  Copied from linux.h.
20974         (LINUX_TARGET_STARTFILE_SPEC): Rename to
20975         GNU_USER_TARGET_STARTFILE_SPEC.
20976         (LINUX_TARGET_ENDFILE_SPEC): Rename to
20977         GNU_USER_TARGET_ENDFILE_SPEC.
20978         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
20979         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
20980         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
20981         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
20982         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
20983         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
20984         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
20985         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
20986         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
20987         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
20988         * config/arm/linux-eabi.h (CC1_SPEC): Use
20989         GNU_USER_TARGET_CC1_SPEC.
20990         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
20991         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
20992         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
20993         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
20994         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
20995         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
20996         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
20997         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
20998
20999 2011-01-12  Richard Guenther  <rguenther@suse.de>
21000
21001         PR other/46946
21002         * doc/invoke.texi (ffast-math): Document it is turned on
21003         with -Ofast.
21004
21005 2011-01-12  Jan Hubicka  <jh@suse.cz>
21006
21007         PR tree-optimization/47233
21008         * opts.c (common_handle_option): Disable ipa-reference with profile
21009         feedback.
21010
21011 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
21012
21013         * c-parser.c (c_parser_objc_at_property_declaration): Improved
21014         error message.
21015
21016 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
21017
21018         * c-parser.c (c_lex_one_token): Updated and reindented some
21019         comments.  No changes in code.
21020
21021 2011-01-11  Ian Lance Taylor  <iant@google.com>
21022
21023         * godump.c (go_output_var): Don't output the variable if there is
21024         already a type with the same name.
21025
21026 2011-01-11  Ian Lance Taylor  <iant@google.com>
21027
21028         * godump.c (go_format_type): Don't generate float80.
21029
21030 2011-01-11  Richard Henderson  <rth@redhat.com>
21031
21032         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
21033         declaration.  Rewrite for both speed and size.
21034         (mn10300_address_cost_1): Remove.
21035         (mn10300_register_move_cost): New.
21036         (mn10300_memory_move_cost): New.
21037         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
21038         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
21039         extensions, shifts, BSWAP, CLZ.
21040         (mn10300_wide_const_load_uses_clr): Remove.
21041         (TARGET_REGISTER_MOVE_COST): New.
21042         (TARGET_MEMORY_MOVE_COST): New.
21043         * config/mn10300/mn10300-protos.h: Update.
21044         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
21045
21046         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
21047         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
21048         * config/mn10300/mn10300-protos.h: Update.
21049         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
21050         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
21051         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
21052         (*test_int_bitfield, *test_byte_bitfield): Remove.
21053         (*bit_test, *subreg_bit_test): Remove.
21054         * config/mn10300/predicates.md (const_8bit_operand): Remove.
21055
21056         * config/mn10300/constraints.md ("c"): Rename from "A".
21057         ("A", "D"): New constraint letters.
21058         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
21059         (fmssf4, fnmasf4, fnmssf4): Likewise.
21060
21061         * config/mn10300/mn10300.md (isa): New attribute.
21062         (enabled): New attribute.
21063
21064         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
21065         (abssf2, negsf2): Define only for hardware fp.
21066         (sqrtsf2): Reformat.
21067         (addsf3, subsf3, mulsf3): Merge expander and insn.
21068
21069         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
21070         (DEBUGGER_AUTO_OFFSET): Remove.
21071         (DEBUGGER_ARG_OFFSET): Remove.
21072
21073         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
21074         Emit register stores with the same offsets as the hardware.
21075         (mn10300_store_multiple_operation): Don't check that the register
21076         save offsets are monotonic.
21077         * config/mn10300/mn10300-protos.h: Update.
21078
21079         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
21080
21081         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
21082         in terms of the value on the stack, not the MDR register.
21083
21084 2011-01-11  Jan Hubicka  <jh@suse.cz>
21085
21086         PR lto/45721
21087         PR lto/45375
21088         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
21089         (symbol_alias_set_destroy, symbol_alias_set_contains,
21090         propagate_aliases_backward): Declare.
21091         * lto-streamer-out.c (struct sets): New sturcture.
21092         (trivally_defined_alias): New function.
21093         (output_alias_pair_p): Rewrite.
21094         (output_unreferenced_globals): Fix output of alias pairs.
21095         (produce_symtab): Likewise.
21096         * ipa.c (function_and_variable_visibility): Set weak alias destination
21097         as needed in lto.
21098         * varasm.c (symbol_alias_set_t): Remove.
21099         (symbol_alias_set_destroy): Export.
21100         (propagate_aliases_forward, propagate_aliases_backward): New functions
21101         based on ...
21102         (compute_visible_aliases): ... this one; remove.
21103         (trivially_visible_alias): New
21104         (trivially_defined_alias): New.
21105         (remove_unreachable_alias_pairs): Rewrite.
21106         (finish_aliases_1): Reorganize code checking if alias is defined.
21107         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
21108         in LTO mode.
21109
21110 2011-01-11  Richard Guenther  <rguenther@suse.de>
21111
21112         PR tree-optimization/46076
21113         * tree-ssa.c (useless_type_conversion_p): Conversions from
21114         unprototyped to empty argument list function types are useless.
21115
21116 2011-01-11  Richard Guenther  <rguenther@suse.de>
21117
21118         PR middle-end/45235
21119         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
21120         volatile MEMs as MEM_READONLY_P.
21121
21122 2011-01-11  Richard Guenther  <rguenther@suse.de>
21123
21124         PR tree-optimization/47239
21125         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
21126
21127 2011-01-11  Jeff Law  <law@redhat.com>
21128
21129         PR tree-optimization/47086
21130         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
21131         IVs from statements that might throw.
21132
21133 2011-01-10  Jan Hubicka  <jh@suse.cz>
21134
21135         PR lto/45375
21136         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
21137
21138 2011-01-10  Jan Hubicka  <jh@suse.cz>
21139
21140         PR lto/45375
21141         * profile.c (read_profile_edge_counts): Ignore profile inconistency
21142         when correcting profile.
21143
21144 2011-01-10  Jan Hubicka  <jh@suse.cz>
21145
21146         PR lto/46083
21147         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
21148         DECL_FINI_PRIORITY.
21149         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
21150         Restore DECL_FINI_PRIORITY.
21151
21152 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21153
21154         * doc/gimple.texi: Fix quoting of multi-word return values in
21155         @deftypefn statements.  Ensure presence of return value.  Wrap
21156         overlong @deftypefn lines.
21157         (is_gimple_operand, is_gimple_min_invariant_address): Remove
21158         descriptions of removed functions.
21159         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
21160         of multi-word return value in @deftypefn statement.
21161
21162 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21163
21164         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
21165         (Conditional Expressions, Logical Operators)
21166         (Statement and operand traversals): Do not indent smallexample
21167         code.  Fix duplicate function argument in example.
21168
21169 2011-01-10  Jeff Law  <law@redhat.com>
21170
21171         PR tree-optimization/47141
21172         * ipa-split.c (split_function): Handle case where we are
21173         returning a value and the return block has a virtual operand phi.
21174
21175 2011-01-10  Jan Hubicka  <jh@suse.cz>
21176
21177         PR tree-optimization/47234
21178         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
21179         (pass_feedback_split_functions): Declare.
21180         * passes.c (init_optimization_passes): Add ipa-split as subpass of
21181         tree-profile.
21182         * ipa-split.c (gate_split_functions): Update comments; disable
21183         split-functions for profile_arc_flag and branch_probabilities.
21184         (gate_feedback_split_functions): New function.
21185         (execute_feedback_split_functions): New function.
21186         (pass_feedback_split_functions): New global var.
21187
21188 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
21189
21190         PR lto/46760
21191         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
21192         calling gimple_call_set_cannot_inline.
21193
21194 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
21195
21196         * config/darwin-sections.def: Remove unused section.
21197
21198 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
21199
21200         PR c++/47218
21201         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
21202
21203 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
21204
21205         PR objc/47232
21206         * c-parser.c (c_parser_declaration_or_fndef): Improved
21207         error message.
21208
21209 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
21210
21211         * config/i386/winnt.c (i386_pe_start_function): Make sure
21212         to switch back to function's section.
21213
21214 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
21215
21216         PR gcc/46902
21217         PR testsuite/46912
21218         * plugin.c: Move include of dlfcn.h from here...
21219         * system.h: ... to here.
21220
21221 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21222
21223         * doc/cpp.texi (C++ Named Operators): Fix markup for header
21224         file name.
21225         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
21226         two extra empty pages in PDF output.
21227
21228 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
21229
21230         PR objc/47078
21231         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
21232         for error recovery purposes behave as if it was not specified so
21233         that the default type is usd.
21234
21235 2011-01-07  Jan Hubicka  <jh@suse.cz>
21236
21237         PR tree-optmization/46469
21238         * ipa.c (function_and_variable_visibility): Clear needed flags on
21239         nodes with external decls; handle weakrefs merging correctly.
21240
21241 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
21242
21243         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
21244         not false.
21245
21246 2011-01-07  Jan Hubicka  <jh@suse.cz>
21247
21248         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
21249         and no longer claim that gold is required for linker plugin.
21250         * configure: Regenerate.
21251         * gcc.c (PLUGIN_COND): New macro.
21252         (LINK_COMMAND_SPEC): Use it.
21253         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
21254         * config.in (HAVE_LTO_PLUGIN): New.
21255         * configure.ac (--with-lto-plugin): New parameter; autodetect
21256         HAVE_LTO_PLUGIN.
21257
21258 2011-01-07  Jan Hubicka  <jh@suse.cz>
21259
21260         PR tree-optimization/46367
21261         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
21262         when we can update original.
21263         (cgraph_mark_inline_edge): Sanity check.
21264         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
21265
21266 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21267
21268         * config/spu/spu.h (ASM_COMMENT_START): Define.
21269
21270 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
21271
21272         PR driver/42445
21273         * gcc.c (%>S): New.
21274         (SWITCH_KEEP_FOR_GCC): Likewise.
21275         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
21276         (do_spec_1): Handle "%>".
21277
21278         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
21279
21280 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
21281
21282         PR target/47201
21283         * config/i386/i386.c (ix86_delegitimize_address): If
21284         simplify_gen_subreg fails, return orig_x.
21285
21286         PR bootstrap/47187
21287         * value-prof.c (gimple_stringop_fixed_value): Handle
21288         lhs of the call properly.
21289
21290 2011-01-07  Jan Hubicka  <jh@suse.cz>
21291
21292         PR lto/45375
21293         * lto-opt.c (lto_reissue_options): Set flag_shlib.
21294
21295 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
21296
21297         * target.def (function_switched_text_sections): New hook.
21298         * doc/tm.texi: Regenerated.
21299         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
21300         * final.c (default_function_switched_text_sections): New.
21301         (final_scan_insn): Call function_switched_text_sections when a
21302         mid-function section change occurs.
21303         * output.h (default_function_switched_text_sections): Declare.
21304         * config/darwin-protos.h (darwin_function_switched_text_sections):
21305         Likewise.
21306         * config/darwin.c (darwin_function_switched_text_sections): New.
21307         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
21308
21309 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
21310
21311         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
21312         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
21313         the secondary code fragment when outputting for DWARF == 2.
21314
21315 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
21316
21317         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
21318         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
21319         Remove.
21320         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
21321         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
21322
21323 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
21324
21325         PR debug/46704
21326         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
21327         when it is not empty.
21328
21329 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
21330
21331         Bobcat Enablement
21332         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
21333         (case ${target}): Add btver1.
21334         * config/i386/driver-i386.c (host_detect_local_cpu): Let
21335         -march=native recognize btver1 processors.
21336         * config/i386/i386-c.c (ix86_target_macros_internal): Add
21337         btver1 def_and_undef
21338         * config/i386/i386.c (struct processor_costs btver1_cost): New
21339         btver1 cost table.
21340         (m_BTVER1): New definition.
21341         (m_AMD_MULTIPLE): Includes m_BTVER1.
21342         (initial_ix86_tune_features): Add btver1 tune.
21343         (processor_target_table): Add btver1 entry.
21344         (static const char *const cpu_names): Add btver1 entry.
21345         (software_prefetching_beneficial_p): Add btver1.
21346         (ix86_option_override_internal): Add btver1 instruction sets.
21347         (ix86_issue_rate): Add btver1.
21348         (ix86_adjust_cost): Add btver1.
21349         * config/i386/i386.h (TARGET_BTVER1): New definition.
21350         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
21351         (enum processor_type): Add PROCESSOR_BTVER1.
21352         * config/i386/i386.md (define_attr "cpu"): Add btver1.
21353
21354 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21355
21356         PR target/43309
21357         * config/i386/i386.c (legitimize_tls_address)
21358         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
21359         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
21360         (tls_initial_exec_64_sun): New pattern.
21361
21362 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
21363
21364         * doc/invoke.texi (Overall Options): Improve wording and markup
21365         of the description of -wrapper.
21366
21367 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
21368
21369         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
21370         rdynamic, threads): New Driver options.
21371
21372 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21373
21374         PR target/38118
21375         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
21376         if coming from .tdata.
21377         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
21378
21379 2011-01-06  Jan Hubicka  <jh@suse.cz>
21380
21381         PR lto/47188
21382         * collect2.c (main): Do not enable LTOmode when plugin is active.
21383
21384 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21385
21386         PR other/45915
21387         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
21388         --version output if supported.
21389         * configure: Regenerate.
21390
21391 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
21392
21393         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
21394         Driver options.
21395
21396 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
21397
21398         PR c/47150
21399         * c-convert.c (convert): When converting a complex expression
21400         other than COMPLEX_EXPR to a different complex type, ensure
21401         c_save_expr is called instead of save_expr, unless in_late_binary_op.
21402         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
21403         when converting COMPLEX_TYPE.
21404
21405 2011-01-06  Ira Rosen  <irar@il.ibm.com>
21406
21407         PR tree-optimization/47139
21408         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
21409         only the last reduction value is used outside the loop.  Update
21410         documentation.
21411
21412 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
21413
21414         * config/rtems.opt: New.
21415         * config.gcc (*-*-rtems*): Use rtems.opt.
21416
21417 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
21418
21419         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
21420         processors do not support 3DNow instructions.
21421
21422 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21423
21424         * config/spu/spu.c (spu_option_override): Set parameter
21425         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
21426
21427 2011-01-05  Jan Hubicka  <jh@suse.cz>
21428
21429         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
21430         at the command line.
21431
21432 2011-01-05  Martin Jambor  <mjambor@suse.cz>
21433
21434         PR lto/47162
21435         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
21436         deltas on streamed outgoing edges.
21437         (output_node_opt_summary): Output info for outgoing edges only when
21438         the node is in new parameter set.
21439         (output_cgraph_opt_summary): New parameter set, passed to the two
21440         aforementioned functions.  Update its forward declaration and its
21441         callee too.
21442
21443 2011-01-05  Tom Tromey  <tromey@redhat.com>
21444
21445         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
21446         operator to c_finish_omp_atomic.
21447         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
21448         (build_unary_op): Update.
21449         (build_modify_expr): Update.
21450         (build_asm_expr): Update.
21451
21452 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21453
21454         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
21455         newly inserted insns.
21456         (pad_bb): Likewise.
21457         (spu_emit_branch_hint): Likewise.
21458         (insert_hbrp_for_ilb_runout): Likewise.
21459         (spu_machine_dependent_reorg): Call df_finish_pass after
21460         schedule_insns returns.
21461
21462 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21463
21464         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
21465
21466 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
21467
21468         PR tree-optimization/47005
21469         * tree-sra.c (struct access): Add 'non_addressable' bit.
21470         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
21471         (decide_one_param_reduction): Return 0 if the parameter is passed by
21472         reference and one of the accesses in the group is non_addressable.
21473
21474 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
21475
21476         PR tree-optimization/47056
21477         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
21478         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
21479         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
21480
21481 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
21482
21483         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
21484         initializer.  Skip view conversions from aggregate types.
21485
21486 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
21487
21488         PR bootstrap/47055
21489         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
21490
21491 2011-01-04  Philipp Thomas  <pth@suse.de>
21492
21493         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
21494         obvious typo.
21495
21496 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21497
21498         * function.c (thread_prologue_and_epilogue_insns): Do not crash
21499         on empty epilogue sequences.
21500
21501 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
21502
21503         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
21504         non-static): New Driver options.
21505
21506 2011-01-04  Jie Zhang  <jie@codesourcery.com>
21507
21508         PR driver/47137
21509         * gcc.c (default_compilers[]): Set combinable field to 0
21510         for all assembly languages.
21511
21512 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
21513
21514         * config/mips/loongson3a.md: New file.
21515         * config/mips/mips.md: Include loongson3a.md.
21516         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
21517         TUNE_LOONGSON_3A.
21518
21519 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
21520
21521         PR middle-end/47017
21522         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
21523         instead of convert_memory_address_addr_space on the base expression.
21524
21525 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21526
21527         * config/spu/spu.c (spu_option_override): Update error text
21528         for bad -march= / -mtune= values.
21529
21530 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21531
21532         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
21533         if branch-hint optimization will be performed.
21534
21535 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
21536
21537         PR tree-optimization/47148
21538         * ipa-split.c (split_function): Convert arguments to
21539         DECL_ARG_TYPE if possible.
21540
21541         PR tree-optimization/47155
21542         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
21543         when computing uns.
21544
21545         PR rtl-optimization/47157
21546         * combine.c (try_combine): If undobuf.other_insn becomes
21547         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
21548         and set *new_direct_jump_p too.
21549
21550 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
21551
21552         PR tree-optimization/47021
21553         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
21554
21555 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
21556
21557         * gcc.c (process_command): Update copyright notice dates.
21558         * gcov.c (print_version): Likewise.
21559         * gcov-dump.c (print_version): Likewise.
21560         * mips-tfile.c (main): Likewise.
21561         * mips-tdump.c (main): Likewise.
21562
21563 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21564
21565         PR tree-optimization/46801
21566         * tree-sra.c (type_internals_preclude_sra_p): Check whether
21567         aggregate fields start at byte boundary instead of the bit-field flag.
21568
21569 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
21570
21571         PR driver/47137
21572         * gcc.c (main): Revert revision 168407.
21573
21574 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21575
21576         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
21577
21578 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21579
21580         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
21581         vector optab to expand vector/scalar shift, update gimple to vector.
21582
21583 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21584
21585         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
21586         a thunk.
21587
21588 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21589
21590         PR tree-optimization/46984
21591         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
21592         HOST_WIDE_INT.
21593         (cgraph_create_indirect_edge): Fixed line length.
21594         (cgraph_indirect_call_info): Declare.
21595         (cgraph_make_edge_direct) Update declaration.
21596         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
21597         (cgraph_create_indirect_edge): Use it.
21598         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
21599         callees.
21600         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
21601         the new thunk_delta representation.
21602         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
21603         HOST_WIDE_INT.
21604         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
21605         (ipa_read_indirect_edge_info): Likewise.
21606         * lto-cgraph.c (output_edge_opt_summary): New function.
21607         (output_node_opt_summary): Call it on all outgoing edges.
21608         (input_edge_opt_summary): New function.
21609         (input_node_opt_summary): Call it on all outgoing edges.
21610
21611 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
21612
21613         PR driver/47137
21614         * gcc.c (main): Don't check have_o when settting combine_inputs.
21615
21616 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
21617
21618         * regrename.c: Add general comment describing the pass.
21619         (struct du_head): Remove 'length' field.
21620         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
21621         (regrename_optimize): Do not sort chains.  Rework comments, add others.
21622         Force renaming to the preferred class (if any) in the first pass and do
21623         not consider registers that belong to it in the second pass.
21624         (create_new_chain): Do not set 'length' field.
21625         (scan_rtx_reg): Likewise.
21626
21627 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
21628
21629         PR tree-optimization/47140
21630         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
21631         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
21632         to bit_value_binop.
21633
21634         PR rtl-optimization/47028
21635         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
21636         parm_birth_insn instead of at the beginning of first bb.
21637
21638 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
21639
21640         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
21641         Remove the word "see" before "@pxref".
21642         * doc/rtl.texi: Remove the word "see" before "@pxref".
21643
21644 2011-01-01  Jan Hubicka  <jh@suse.cz>
21645
21646         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
21647         memory.
21648
21649 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
21650
21651         PR target/38662
21652         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
21653
21654 \f
21655 Copyright (C) 2011 Free Software Foundation, Inc.
21656
21657 Copying and distribution of this file, with or without modification,
21658 are permitted in any medium without royalty provided the copyright
21659 notice and this notice are preserved.